Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dr. Brigitte Mathiak Kapitel 5 SQL DDL + DML. Datenbanken, SS 12 Kapitel 5: SQL22 Lernziele Fähigkeit zur praktischen Anwendung von SQL-Anweisungen in.

Ähnliche Präsentationen


Präsentation zum Thema: "Dr. Brigitte Mathiak Kapitel 5 SQL DDL + DML. Datenbanken, SS 12 Kapitel 5: SQL22 Lernziele Fähigkeit zur praktischen Anwendung von SQL-Anweisungen in."—  Präsentation transkript:

1 Dr. Brigitte Mathiak Kapitel 5 SQL DDL + DML

2 Datenbanken, SS 12 Kapitel 5: SQL22 Lernziele Fähigkeit zur praktischen Anwendung von SQL-Anweisungen in den Bereichen: Schema-Definitionen einschl. referentieller Integrität Einfügen von Daten Ändern von Daten Löschen von Daten

3 Datenbanken, SS 12 Kapitel 5: SQL23 SQL: Komponenten der vollständigen DB-Sprache Datenmanipulation (Data Manipulation Language DML) Einfügen, Löschen und Ändern von individuellen Tupeln und von Mengen von Tupeln Zuweisung von ganzen Relationen Datendefinition (Data Definition Language DDL) Definition von Wertebereichen, Attributen und Relationen Definition von verschiedenen Sichten auf Relationen Datenkontrolle Spezifikation von Bedingungen zur Zugriffskontrolle Spezifikation von Zusicherungen (assertions) zur semantischen Integritätskontrolle Datenabfragen Abbildung von Eingaberelationen durch Auswertung von Bedingungen auf die Ergebnisrelation Kopplung mit einer Wirtssprache (z.B. C++) deskriptive Auswahl von Mengen von Tupeln sukzessive Bereitstellung einzelner Tupeln Das war Kapitel 2 In diesem Kapitel

4 Datenbanken, SS 12 Kapitel 5: SQL24 Beispiel: Universitätsschema hören StudentenVorlesungen ** MatrNr Name Semester VorlNr Titel SWS Professoren * * PersNr Name Rang Raum voraussetzen lesen * 11 * Prüfen Note Assistenten PersNr Name Fachgebiet arbeitenFür *1

5 Datenbanken, SS 12 Kapitel 5: SQL25 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhaue r Carnap Theophrastos Feuerbach2 Vorlesungen VorlNrTitelSWSgelesenV on 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheori e Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 voraussetzen VorgängerNachfolger hören MatrNrVorlNr Assistenten PerslNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 prüfen MatrNrVorlNrPersNrNote

6 Datenbanken, SS 12 Kapitel 5: SQL26 Relationale Invarianten Integritätsbedingungen des Relationenmodells Primärschlüsselbedingung (Entity-Integrität) -Eindeutigkeit des Primärschlüssels -keine Nullwerte! Referentielle Integrität: -Darstellung von Beziehungen durch Fremdschlüssel (foreign key): Attribut, das in Bezug auf den Primärschlüssel einer anderen (oder derselben) Relation definiert ist -zugehöriger Primärschlüssel muss existieren, d.h. zu jedem Wert (ungleich Null) eines Fremdschlüsselattributs einer Relation R2 muss ein gleicher Wert des Primärschlüssels in irgendeinem Tupel von Relation R1 vorhanden sein

7 Datenbanken, SS 12 Kapitel 5: SQL27 Relationale Invarianten (1) Fremdschlüssel und zugehöriger Primärschlüssel tragen wichtige interrelationale Informationen sie sind auf dem gleichen Wertebereich definiert sie gestatten die Verknüpfung von Relationen mit Hilfe von Relationenoperationen Fremdschlüssel können Nullwerte aufweisen, wenn sie nicht Teil eines Primärschlüssels sind. ein Fremdschlüssel ist zusammengesetzt, wenn der zugehörige Primärschlüssel zusammengesetzt ist Eine Relation kann mehrere Fremdschlüssel besitzen, die die gleiche oder verschiedene Relationen referenzieren Zyklen sind möglich (geschlossener referentieller Pfad) Eine Relation kann zugleich referenzierende und referenzierte Relation sein (self-referencing table).

8 Datenbanken, SS 12 Kapitel 5: SQL28 SQL: DDL Anweisungen DDL-Spezifikation in SQL bei CREATE TABLE: CREATE TABLE Assistenten (PersNr INT PRIMARY KEY, Name VARCHAR2 (100) NOT NULL, Fachgebiet VARCHAR2(100), Boss INT REFERENCES Professoren(PersNr)); Assistenten PersNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

9 Datenbanken, SS 12 Kapitel 5: SQL29 (Einfache) Datendefinition in SQL CREATE TABLE (, …, … ) Wichtige Datentypen in Oracle: varchar2 (n) für Strings variabler Länge NUMBER(p,s) für Zahlen mit der angegebenen Genauigkeit PLS_INTEGER für Integerwert (bessere Performanz) blob oder raw für sehr große binäre Daten clob für sehr große String-Attribute date für Datumsangaben xml für XML-Dokumente …

10 Constraints Mehr zu Constraints im Kapitel Integritätsbedingungen hier nur kurz die wichtigsten: PRIMARY KEY für den Primärschlüssel REFERENCES rel(col) für einen Fremdschlüssel, der auf die Relation rel und die Spalte col zeigt UNIQUE wenn es keine Duplikate in der Spalte geben darf (PRIMARY KEY ist automatisch UNIQUE) NOT NULL wenn Nullwerte nicht zugelassen sind Datenbanken, SS 12 Kapitel 5: SQL210

11 Schemaänderungen ALTER TABLE RENAME TO ; Beispiel: ALTER TABLE suppliers RENAME TO vendors; Statt RENAME TO gibt es auch eine Reihe anderer Änderungsmöglichkeiten z.B. ADD MODIFY DROP RENAME COLUMN TO Datenbanken, SS 12 Kapitel 5: SQL211

12 Datenbanken, SS 12 Kapitel 5: SQL212 Veränderung am Datenbestand Einfügen von Tupeln: insert into Studenten (MatrNr, Name) values (28121, 'Archimedes'); insert into hören select MatrNr, VorlNr from Studenten, Vorlesungen where Titel= 'Logik' ; Studenten MatrNrNameSemester 29120Theophrastos Feuerbach Archimedes- Null-Wert

13 Datenbanken, SS 12 Kapitel 5: SQL213 Veränderungen am Datenbestand Löschen von Tupeln delete Studenten where Semester > 13; Verändern von Tupeln update Studenten set Semester = Semester + 1;

14 Datenbanken, SS 12 Kapitel 5: SQL214 CREATE TABLE Assistenten (PersNr INT PRIMARY KEY, Name VARCHAR2 (100) NOT NULL, Fachgebiet VARCHAR2(100), Boss INT REFERENCES Professoren(PersNr)); Aufgabe: Denken Sie sich eine Insert, eine Delete und eine Update Anweisung aus, die vom System abgelehnt werden. (Jeder für sich mit Zettel und Stift; 5 min) Zusatzaufgabe: Denken Sie sich ein Alter Table aus, dass vom System abgelehnt wird Assistenten PersNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

15 Bootstrapping CREATE TABLE Sekretärin (PersNr INT PRIMARY KEY, … Boss INT REFERENCES Professor(PersNr)); CREATE TABLE Professor (PersNr INT PRIMARY KEY, … Sekräterin INT REFERENCES Sekretärin(PersNr)); Was geht da schief? Welche Tabelle lege ich zuerst an? Welche Daten füge ich zuerst ein? Datenbanken, SS 12 Kapitel 5: SQL215

16 Bootstrapping (Lösungen) ALTER TABLE MODIFY COLUMN Boss INT REFERENCES Professor(PersNr); Bei der Datenmodellierung darauf achten, solche zyklischen Abhängigkeiten zu vermeiden Transaktionen (s. spätere Kapitel) Es werden mehrere Operationen gleichzeitig ausgeführt Insert into Sekretärin values (4, …, Null); Insert into Professor values (7, …, 4); Update Sekretärin Where PersNr = 4 Set Boss = 7; Datenbanken, SS 12 Kapitel 5: SQL216

17 Datenbanken, SS 12 Kapitel 5: SQL217 Constraints.....to be continued.


Herunterladen ppt "Dr. Brigitte Mathiak Kapitel 5 SQL DDL + DML. Datenbanken, SS 12 Kapitel 5: SQL22 Lernziele Fähigkeit zur praktischen Anwendung von SQL-Anweisungen in."

Ähnliche Präsentationen


Google-Anzeigen