19
Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL Relationales Datenmodell und DDL

Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Embed Size (px)

Citation preview

Page 1: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Datenbanken

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Zusammenfassung

Relationales Datenmodell und DDLRelationales Datenmodell und DDL

Page 2: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

A. Grundlagen des relationalen Modells

1. Domänen

mögliche Wertebereiche für die Attribute

2. Relationen

Tabelle eines Datenbanksystems

- Attribute entsprechen den Spalten

- Tupel entsprechen den Zeilen

3. Tupel

Relationen mit konkreten Attributwerten

t = („Mickey Mouse“, „Main Street“, 4711)

4. Schema

legt die Struktur einer Relation fest

Telefonbuch: {[Name : string, Adresse : string, TelefonNr : integer]}

Page 3: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

A. Grundlagen des relationalen Modells

5. Ausprägung

aktueller Zustand der Datenbasis

6. Schlüsselkandidaten

minimale Anzahl der zur eindeutigen Identifikation eines Tupel nötigen Attribute

7. Primärschlüssel

nur einer der Schlüssel wird zum Primärschlüssel

wird zur Kennzeichnung unterstrichen

Page 4: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

A. Grundlagen des relationalen Modells

8. Relationale Darstellung von Entitymengen

Studenten: {[MatrNr : integer, Name : string, Semester : integer]}

9. Relationale Darstellung von Beziehungen

hören (N:M): {[MatrNr : integer, VorlNr : integer]}

10. Verfeinerte Abbildungsregeln für Beziehungen zwischen 2 Entities E und F

1:1-Beziehungen

Primärschlüssel von E in Relation F schreiben oder Umgekehrt

1:N-Beziehungen

Primärschlüssel von E in Relation F schreiben

Attribute der Relation R ebenfalls in F übernehmen

Vorlesungen: {[VorlNr, Titel, SWS, gelesenVon]}

Professoren: {[PersNr, Name, Rang, Raum]}

Page 5: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

A. Grundlagen des relationalen Modells

11. Anomalien

Update-Anomalie: was passiert wenn Sokrates einen anderen Raum bekommt?

Lösch-Anomalie: was passiert wenn „Glaube und Wissen“ wegfällt?

Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen

Page 6: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

A. Grundlagen des relationalen Modells

12. Relationale Modellierung der Generalisierung

Angestellte: {[PersNr, Name]}

Professoren: {[PersNr, Rang, Raum]}

Assistent: {[PersNr, Fachgebiet]}

Page 7: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

B. SQL (Structured Query Language)

1. Allgemeines

a.Deklarative Anfragesprache

b.Mengenorientiert

c.In andere Programmiersprachen einbettbar

d.Vier große Teile

i. DRL (Data Retrieval Language) Kommandos für Anfragen

ii. DML (Data Manipulation Language) Befehle, um Daten einzufügen, zu löschen und zu ändern (insert, delete,

update)

iii. DDL (Data Definition Language) Definition des Schemas der Datenbank Befehle, um den Zugriff auf Daten zu kontrollieren (create table, alter table,

create view, create index, drop)

iv. DCL (Data Control Language) Befehle, um den Fluss von Transaktionen zu steuern

Page 8: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

B. SQL (Structured Query Language)

2. Varianten von SQL

a.Embedded SQL SQL-Befehle werden direkt in die jeweilige Hostsprache eingebettet SQL-Befehle werden durch ein vorangestelltes EXEC SQL markiert sie werden vom Präprozessor durch Konstrukte der jeweiligen Sprache ersetzt

b.Dynamic SQL Wird eingesetzt, wenn die Anfragen zur Übersetzungszeit des Programms noch

nicht bekannt sind Standardisierte Schnittstellen (ODBC, JDBC) Flexibler, aber üblicherweise etwas langsamer als Embedded SQL

Page 9: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

B. SQL (Structured Query Language)

3. DDL: Create Table Statement

CREATE TABLE Tabellenname (

Attribut_1 Datentyp_1 [NOT NULL],

Attribut_n Datentyp_n [NOT NULL]);

Page 10: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

B. SQL (Structured Query Language)

4. DDL: Datentypen

a.Zeichenketten und Zahlen VARCHAR (n) CHAR[ACTER] NUMERIC DEC[IMAL] INT[EGER] SMALLINT FLOAT

b.Datum und Zeit DATE, TIME, TIMESTAMP

c.Zeichenketten, Binärdaten LONG, CLOB, RAW (n), LONG RAW, BLOB, CFILE, BFILE, DATALINK,

MONEY/SMALLMONEY, …

Page 11: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

1. Definition

Beschreibung der Eigenschaften der modellierten Miniwelt durch semantische Integritätsbedingungen

2. Ziel

Sicherung der Konsistenz der Daten einer Datenbank

3. Überprüfung durch Constraints

Page 12: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

4. Arten

a. NOT NULL Bedingung

i. erzwingt Definition von Attributwerten beim Einfügen von Tupeln

-> zwingend erforderlich für Schlüssel

ii. Formulierung: NOT NULL direkt hinter Attributdefinition

-> Bsp.: PersNr INTEGER NOT NULL

iii. Default-Angabe möglich, wo NOT NULL nicht eingesetzt wird

-> ratsam, um Auftreten von NULL-Werten zu vermeiden

-> Formulierung: DEFAULT ‘Attributwert‘ direkt hinter Attributdefinition

-> Bsp.: Ort VARCHAR(80) DEFAULT ‘Garching‘

Page 13: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

b. Primärschlüssel Bedingung

i. Primärschlüssel: Attribut(-kombination), die in jeder Ausprägung der Relation keinen Wert hat, der mehr als einmal vorkommt

-> entsprechende Attribute müssen mit NOT NULL definiert sein!

ii. Formulierung

- Langform

[CONSTRAINT constraintname_pk] PRIMARY KEY (Attribut_x,…,Attribut_z)

-> Bsp.: PersNr INTEGER NOT NULL,

…,

PRIMARY KEY (PersNr)

- Kurzform

NOT NULL PRIMARY KEY direkt hinter entsprechende Schlüsseldefinition

-> Bsp.: PersNr INTEGER NOT NULL PRIMARY KEY

Page 14: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

c. UNIQUE Bedingung

i. stellt Schlüsseleigenschaft für Attribut sicher: kann nur einmal vorkommen

ii. Formulierung: UNIQUE direkt hinter Attributdefinition

-> Bsp.: PersNr INTEGER NOT NULL UNIQUE

Page 15: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

d. CHECK Klauseln

i. Einschränkung des Wertebereiches für Attribute

ii. Formulierung: CHECK (Wertebereichbedingung)

-> Bsp.: CHECK (PersNr > 0 AND PersNr < 99999)

Page 16: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

e. Referentielle Integrität: Fremdschlüssel Bedingung

i. Referenz von einer Kindtabelle auf eine Elterntabelle

ii. Annahmen

-> Relationen R und S mit Schemata R und S

-> R hat Primärschlüssel k

iii. Voraussetzungen für Fremdschlüssel f in S: für alle Tupel s in S gilt

-> entweder Attribut f aus Tupel s enthält nur NULL-Wert

-> oder Attribut f aus Tupel s enthält keine NULL-Werte und es existiert ein Tupel r aus R, dessen Attribut k gleich Attribut f aus Tupel s ist (r.k = s.f)

Page 17: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

e. Referentielle Integrität: Fremdschlüssel Bedingung

iv. Formulierung

- Langform

[CONSTRAINT constraintname_fk] FOREIGN KEY (Attribut_x,…,Attribut_z)

REFERENCES Elterntabellenname (Attribut_u,…,Attribut_w)

-> Bsp.: gelesenVon INTEGER,

…,

FOREIGN KEY (gelesenVon) REFERENCES Professoren (PersNr)

- Kurzform

REFERENCES Elterntabellenname direkt hinter entsprechende

Schlüsseldefinition

-> Bsp.: gelesenVon INTEGER REFERENCES Professoren

Page 18: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

C. Integritätsbedingungen

e. Referentielle Integrität: Fremdschlüssel Bedingung

v. Varianten: automatische Propagierung der Änderung von Schlüsselattributen

-> Änderung der Fremdschlüsselwerte bei Änderung (ON UPDATE) oder

Löschung (ON DELETE) der Schlüssel, auf die sie zeigen

- SET NULL

-> alle Fremdschlüsselwerte werden auf NULL gesetzt

-> Formulierung: SET NULL nach Fremdschlüsseldefinition

-> Bsp.: gelesenVon INTEGER REFERENCES Professoren

ON DELETE SET NULL

- CASCADE

-> alle Fremdschlüsselwerte werden ebenfalls geändert oder gelöscht

-> Formulierung: CASCADE nach Fremdschlüsseldefinition

-> Bsp.: VorlNr INTEGER REFERENCES Vorlesungen

ON DELETE CASCADE

Page 19: Datenbanken Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian Zusammenfassung Relationales Datenmodell und DDL

Frank, Pablo / Reußner, Elisabeth / Zeidler, Christian

Datenbanken Zusammenfassung

D. Beispielaufgabe

Erstelle Tabelle Professoren mit folgenden

Bedingungen:- PersNr ist Primärschlüssel- Name muss Wert erhalten, Rang nicht- Raumnummer hat höchstens fünf Stellen

CREATE TABLE Professoren(PersNr INTEGER NOT NULL, Name VARCHAR(30) NOT NULL,Rang CHAR(2), Raum INTEGER CHECK (PersNr > 0 AND PersNr < 99999),PRIMARY KEY (PersNr));