• Keine Ergebnisse gefunden

INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc

N/A
N/A
Protected

Academic year: 2022

Aktie "INTEGER ~ integer NUMERIC (p,s) p: precision, s: scale (nach,) etc"

Copied!
9
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1

Kapitel 6 Relationale DB-Sprache SQL

SEQUEL: Structured English Query Language, 70er Jahre SQL: System R, SQL/DS, TransBase, Oracle ...

ANSI Standards 1, 2, 3

6.1 Daten-Definitionssprache DDL

Domänen: Grundtypen, alle vordefiniert, z.B.

INTEGER ~ integer

NUMERIC (p,s) p: precision, s: scale (nach,) etc.

Problem: Domänen tragen keine Semantik, z.B.

Tel# integer Zi# integer

Join-Bedingung S.Tel# = R.Zi# wäre syntaktisch erlaubt.

Data_Type::=

TINYINT 1 B

| SMALLINT 2 B

| INTEGER 4 B

| NUMERIC [(Precision [,Scale])]

| FLOAT

| DOUBLE

| REAL

| CHAR [(Precision)]

| CHAR (*)

| BINCHAR [(Precision)]

| BINCHAR (*)

| STRING

(2)

3

| BOOL

| DATETIME Range_Qualifier

| TIMESPAN Range_Qualifier

| BLOB

Precision ::= Integer_Literal Scale ::= Integer_Literal Range_Qualifier

Vereinbarung von Relationen: TABLE

create table TEILE

(T# string Tname string

Farbe string

Gewicht integer) key is T#

drop table TEILE

Segmente:

„logische“ Speicherbereiche, Zusammenfassung von Relationen und Hilfsstrukturen für Zugriffs- und Ladezwecke.

Erweiterung durch interne Identifikatoren, wie z.B. TupelId oder RowId (Oracle), die für Benutzer nur bedingt sichtbar sind

syntaktisch gleich, semantisch

verträglich?

(3)

5

View-Begriff:

Funktionsdefinition über Relationen, Ergebnis ist „berechnete“

Relation, nicht gespeichert, nur bedingt änderbar.

create table quotations

(suppno integer not null, partno integer not null, price numeric (6,2),

deliverytime integer, qonorder numeric (4))

key is suppno, partno

create view cashpermonth (supplier, part, total) as

select qx.suppno, qx.partno, qx.price ∗ qx.qonorder

from quotations qx

where qx.deliverytime < 32 and qx. qonorder > 0

drop view cashpermonth

Themen: materialisierte views view – updates

(4)

7

Indexe:

{(Schlüssel, Tupel-Id)}

{(Attr.Wert, (Tupel-Id)+}

B-Bäume, B*-Bäume, Präfix-B-Bäume über 1 oder mehreren Attributen, hohe Verzweigungsgrade von 100 bis 1000

Primärindex : über Schlüsselattributen Sekundärindex: über sonstigen Attributen

Þ pro Attributwert mehrere Tupel-Id Ziel: Beschleunigung der Suche von

O(|R|) auf O (log |R|)

Beispiel: R hat 1.000.000 Tupel, 50 Tupel/Seite, 20.000 Seiten O(|R|) = 20.000 O (log100 |R|) = 3

create index TEILE–Namen

on TEILE (Tname)

create unique index TEILE–Nummern

on TEILE (T#)

Hinweis: TEILE–Nummern ist Primärindex, bei manchen DBS überflüssig, z.B. TransBase

TEILE–Namen ist Sekundärindex, mehrere Einträge pro Attr.Wert

(5)

9

create index TEILE-Namen-Farben on TEILE (Tname, Farbe)

i.e. Sekundäindex über mehrere Attribute, z.B.

(Schraube, blau, ()*) drop index TEILE-Namen

drop table TEILE

zieht automatisch drop für Indexe und abhängige views nach sich, vorher Warnung? Autorisierung?

6.2 Systemtabellen

DB ist selbstbeschreibend, d.h.

• enthält eigene Struktur (Schema)

• nach festem Metaschema (DBS-spezifisch)

Katalog: DB enthält Beschreibung der

Tabellen, Views, Indexe und Attribute etc., Zugriffsrechte von Benutzern auf Tabellen;

Beschreibung selbst in Tabellenform = System – Tabellen Þ

Þ Þ

Þ DDL selbst mit SQL implementiert, und mit SQL abfragbar, z.B.

Attribute und Typ einer Relation R?

(6)

11

SYSTABLE enthält 1 Tupel pro Relation bzw. View:

create table SYSTABLE

( tname string not null , ttype string not null , segno integer

colno integer not null) key is tname

tname : Name von Rel. oder View ttype : „R“ Relation

„V“ View

segno : interne Segmentnummer, null bei Views

colno : Anzahl der Attribute, i.e. Stelligkeit der Relation

Þ d.h. SYSTABLE ist fest vorgegebene Metatabelle, enthält

Strukturbeschreibung für alle anderen Tabellen und sich selbst, d.h. initialisiert mit:

(SYSTABLE, „R“, ?, 4)

(7)

13

Relation und Attribute:

Im Prinzip kann Attribut mit derselben Bezeichnung in verschiedenen Relationen unterschiedliche Typen haben (Schlechter Entwurf, aber nicht verboten)

ÞTyp etc. muß Teil der „ist-Attribut von“ Beziehung sein

ist-Attribut-von ≡ SYSCOLUMN Relation, enthält 1 Tupel pro (Rel, Attr)

Rel Attrib

ist Attribut von

n m

create table SYSCOLUMN

(tname string not null , cname string not null , ctype string not null , cpos integer not null ,

ckey integer {Pos. in Schlüssel oder 0 oder null (view)}

notnull string {„Y“ oder „N“ oder null für view}

indexno integer {interne Index #}) key is tname, cname

Beispiel für interne Integritätsbed:

Anzahl Einträge mit tname in SYSCOLUMN = colno in SYSTABLE

(8)

15

Hinweis:

SYSCOLUMN enthält Tupel zur Selbstbeschreibung:

SYSCOLUMN tname string 1 1 Y 0 SYSCOLUMN cname string 2 2 Y 0 SYSCOLUMN cpos integer 4 0 Y 0 SYSCOLUMN ckey integer 5 0 N 0 z.B. query für Attribute von TEILE:

select cname, ctype

from SYSCOLUMN

where tname = „TEILE“

order by cpos

Query für Schlüsselattribute von TEILE?

Parametrisierung der Query für Rel?

View Beschreibungen:

create view BLAUE-TEILE

Teil-Name, Gewicht, Teil-Nr.

as

select Tname, Gewicht, T# from TEILE

where Farbe = ´blau´

Kopfleiste steht in SYSTABLE, Def. von Body steht in SYSVIEW

(9)

17

create table SYSVIEW

(vname string not null , viewtext string not null)

key is vname

vname: Name der View

viewtext: Query-Teil der View-Definition in übersetzer und optimierter Form (als optimierter Operator –

Baum). Wird ausgewertet, falls Wert der View benötigt wird.

Hinweis: Attribute der View stehen unter vname in Relation SYSCOLUMN

SYSTABLE tname

ttype segno colno

SYSCOLUMN tname cname ctype cpos ckey notnull indexno SYSVIEW

vname viewtext

Hinweis: Echte Systemtabellen enthalten viel Zusatzinfos, z.B. Größe von Tabellen,

Verteilung von Daten,

minimale und maximale Werte, etc.

Referenzen

ÄHNLICHE DOKUMENTE

Ultrasound is a stand-alone diagnostic test that is not comparable to other bedside instruments that simply enhance the provider's own senses (eg, stethoscope auscultation

 Ein Blick auf die Altersstruktur vergleichbarer Agglomerationsgemeinden (Allschwil, Binningen, Muttenz, Reinach) zeigt, dass zwar der Anteil der Personen über 65 Jahre in

Festivals 2006: Max Ophüls Preis Festival / Diagonale 06 / Philadelphia IFF / European Cinema Festival Lecce / EuroCine25 Brüssel Spectrum Junger Film Köln / Film Festival Zlin

Dabei legen wir besonders auf die Machbarkeit der Planungen, die Steuerbarkeit von Entwicklungen in Stadt und Land und die Beteiligung der Bevölkerung

I A linear program is feasible if there is such a feasible assignment. minimization) problem is unbounded if the objective function can assume arbitrarily large positive

Entlastend wirkt sich in den neuen Bundesländern allerdings auch noch der Umstand aus, daß ein Teil der Arbeitseinkommen gar nicht mehr auf dem ostdeutschen

In order to prove the main theorem, we shall make use of a result concerning the density of rational points on sets definable in the structure lRexp,sinflo,2'nJ' outlined

Auf der linken Seite der folgenden Tabelle sind alle Lehrveranstaltungen des Bachelor-Studiums (Curriculum 21W) gelistet. Auf der rechten Seite der Tabelle sind die