Kapitel 5 SQL DDL + DML.

Slides:



Advertisements
Ähnliche Präsentationen
Objekt-relationale und erweiterbare Datenbanksysteme
Advertisements

Grundlagen des relationalen Modells
Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen.
Deduktive Datenbanken
XML-Datenmodellierung und Web-Services
Das Relationale Modell
Grundlagen des relationalen Datenmodells
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
XML: Extensible Markup Language
SQL standardisierte Datendefinitions (DDL)- Datenmanipulations (DML)-
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenbanksysteme Schwerpunkte: Datenbanksystem (DBS): Datenbank (DB):
Datenintegrität, Views und Zugriffsrechte
Kapitel 2 SQL Anfragen.
Kapitel 5 SQL DDL + DML.
Datenintegrität, Views und Zugriffsrechte
Kapitel 2 SQL Anfragen.
Objekt-relationale und erweiterbare Datenbanksysteme
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Datenintegrität Referentielle Integrität create table
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
Kapitel 4 SQL: Grundlagen.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Kapitel 9: Integritätssicherung
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Datenbankentwicklung IV-LK
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
Historische Entwicklung relationaler DBMS
Standardisierte -Datendefinitions (DDL)- -Datenmanipulations (DML)- -Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Standardisierte -Datendefinitions (DDL)- -Datenmanipulations (DML)- -Anfrage (Query)-Sprache derzeit aktueller Standard ist SQL 99 und SQL3 (2003) objektrelationale.
Historische Entwicklung relationaler DBMS
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Relationales Datenmodell und DDL
Relationale Datenbanken I
Structured Query Language
Vorlesung #5 SQL (Teil 2).
Integritätsbedingungen (Constraints)
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 8: Die relationale.
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #7 SQL (Teil 4).
Create Table, Rechte und Rollen
 Präsentation transkript:

Kapitel 5 SQL DDL + DML

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 Datenbanken, SS 12 Kapitel 5: SQL2

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 In diesem Kapitel In diesem Kapitel Das war Kapitel 2 Datenbanken, SS 12 Kapitel 5: SQL2

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

Wissenschaftstheorie Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper 52 2134 Augustinus 309 2136 Curie 36 2137 Kant 7 Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 29120 Theophrastos 2 29555 Feuerbach Vorlesungen VorlNr Titel SWS gelesenVon 5001 Grundzüge 4 2137 5041 Ethik 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 2133 5022 Glaube und Wissen 2134 4630 Die 3 Kritiken voraussetzen Vorgänger Nachfolger 5001 5041 5043 5049 5216 5052 5259 hören MatrNr VorlNr 26120 5001 27550 4052 28106 5041 5052 5216 29120 5049 25403 5022 Assistenten PerslNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 3007 Spinoza Gott und Natur Lesen steckt in Vorlesungen arbeitetFür steckt in Assistenten prüfen MatrNr VorlNr PersNr Note 28106 5001 2126 1 25403 5041 2125 2 Datenbanken, SS 12 Kapitel 5: SQL2

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 Datenbanken, SS 12 Kapitel 5: SQL2

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“). Datenbanken, SS 12 Kapitel 5: SQL2

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 PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 3007 Spinoza Gott und Natur Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper 52 2134 Augustinus 309 2136 Curie 36 2137 Kant 7 in VARCHAR2 werden nachfolgende Leerzeichen so erhalten, wie sie zugewiesen werden Der Zusatz on delete set null löscht die Referenz auf den Professor, falls der referenzierte Datensatz gelöscht wird (Integritätsbedingung: der referenzierte Professor ist Boss). Datenbanken, SS 12 Kapitel 5: SQL2

(Einfache) Datendefinition in SQL  (Einfache) Datendefinition in SQL CREATE TABLE <tablename> ( <columnname> <Datentyp> <Constraint>, <columnname2> …, … ) 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 … NUMERIC mit vorgegebener/variabler Nachkommastellenzahl Datenbanken, SS 12 Kapitel 5: SQL2

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: SQL2

Schemaänderungen  ALTER TABLE <table_name>  RENAME TO <new_table_name>; Beispiel: ALTER TABLE suppliers  RENAME TO vendors; Statt RENAME TO gibt es auch eine Reihe anderer Änderungsmöglichkeiten z.B. ADD <column> <Datentyp> <Constraint> MODIFY <column> <neuer_Datentyp> <neues_Constraint> DROP <column> RENAME COLUMN <column> TO <neuer_Name> Datenbanken, SS 12 Kapitel 5: SQL2

Veränderung am Datenbestand Studenten MatrNr Name Semester 29120 Theophrastos 2 29555 Feuerbach 28121 Archimedes - 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' ; Null-Wert Datenbanken, SS 12 Kapitel 5: SQL2

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

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 PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 3007 Spinoza Gott und Natur Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper 52 2134 Augustinus 309 2136 Curie 36 2137 Kant 7 in VARCHAR2 werden nachfolgende Leerzeichen so erhalten, wie sie zugewiesen werden Der Zusatz on delete set null löscht die Referenz auf den Professor, falls der referenzierte Datensatz gelöscht wird (Integritätsbedingung: der referenzierte Professor ist Boss). Datenbanken, SS 12 Kapitel 5: SQL2

CREATE TABLE Sekretärin (PersNr INT PRIMARY KEY, … Bootstrapping CREATE TABLE Sekretärin (PersNr INT PRIMARY KEY, … Boss INT REFERENCES Professor(PersNr)); CREATE TABLE Professor 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: SQL2

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: SQL2

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