Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. Steffen Staab Dr. Dr. Sergej Sizov ISWeb – Information Systems & Semantic Web Kapitel 4 SQL: Grundlagen.

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. Steffen Staab Dr. Dr. Sergej Sizov ISWeb – Information Systems & Semantic Web Kapitel 4 SQL: Grundlagen."—  Präsentation transkript:

1 Prof. Dr. Steffen Staab Dr. Dr. Sergej Sizov ISWeb – Information Systems & Semantic Web Kapitel 4 SQL: Grundlagen

2 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL2 Lernziele Kenntnis der Grundkonzepte von SQL Fähigkeit zur praktischen Anwendung von einfachen SQL-Anweisungen Schema-Definitionen einschl. referentieller Integrität mengenorientierte Anfragen deskriptiver Art (SELECT) Änderungsoperationen

3 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL3 SQL: Komponenten der vollständigen DB-Sprache Datenmanipulation Einfügen, Löschen und Ändern von individuellen Tupeln und von Mengen von Tupeln Zuweisung von ganzen Relationen Datendefinition 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. PHP) deskriptive Auswahl von Mengen von Tupeln sukzessive Bereitstellung einzelner Tupeln

4 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL4 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 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL5 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer 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 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL6 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 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL7 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 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL8 SQL: DDL Anweisungen DDL-Spezifikation in SQL bei CREATE TABLE: CREATE TABLE Assistenten (PersNr INT PRIMARY KEY, Name VARCHAR2 (100) NOT NULL, Fachgebiet VARCHAR"(100), Boss INT FOREIGN KEY (Boss) REFERENCES Professoren(PersNr) ON DELETE SET NULL ) Assistenten PersNrNameFachgebietBoss 3002PlatonIdeenlehre AristotelesSyllogistik WittgensteinSprachtheorie RhetikusPlanetenbewegung NewtonKeplersche Gesetze SpinozaGott und Natur2126 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

9 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL9 (Einfache) Datendefinition in SQL Datentypen character (n), char (n) character varying (n), varchar (n) numeric (p,s), integer 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 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL10 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' ;

11 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL11 Studenten MatrNrNameSemester 29120Theophrastos Feuerbach Archimedes- Null-Wert

12 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL12 Auswertung bei Null-Werten In arithmetischen Ausdrücken werden Nullwerte propagiert, d.h. sobald ein Operand null ist, wird auch das Ergebnis null. Dementsprechend wird z.B. null + 1 zu null ausgewertet-aber auch null * 0 wird zu null ausgewertet. SQL hat eine dreiwertige Logik, die nicht nur true und false kennt, sondern auch einen dritten Wert unknown. Diesen Wert liefern Vergleichsoperationen zurück, wenn mindestens eines ihrer Argumente null ist. Beispielsweise wertet SQL das Prädikat (PersNr=...) immer zu unknown aus, wenn die PersNr des betreffenden Tupels den Wert null hat. Logische Ausdrücke werden nach den folgenden Tabellen berechnet:

13 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL13 not truefalse unknown falsetrue andtrueunknownfalse true unknownfalse unknown false ortrueunknownfalse true unknowntrueunknown falsetrueunknownfalse

14 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL14 Veränderungen am Datenbestand Löschen von Tupeln delete Studenten where Semester > 13; Verändern von Tupeln update Studenten set Semester = Semester + 1;

15 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL15 Einfache SQL-Anfrage PersNrName 2125Sokrates 2126Russel 2136Curie 2137Kant selectPersNr, Name fromProfessoren whereRang= 'C4'; Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

16 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL16 Einfache SQL-Anfragen Sortierung select PersNr, Name, Rang fromProfessoren order by Rang desc, Name asc; PersNrNameRang 2136CurieC4 2137KantC4 2126RusselC4 2125SokratesC4 2134AugustinusC3 2127KopernikusC3 2133PopperC3 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

17 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL17 select distinct Rang from Professoren Rang C3 C4 Duplikateliminierung Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47

18 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL18 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer 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

19 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL19 Anfragen über mehrere Relationen Welcher Professor liest "Mäeutik"? select Name, Titel from Professoren, Vorlesungen where PersNr = gelesenVon and Titel = `Mäeutik ;

20 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL20 Anfragen über mehrere Relationen RaumRangNamePersNr C4 Sokrates Russel Kant Professoren gelesen VonSWSTitelVorlNr 21374Grundzüge Die 3 Kritiken Mäeutik Ethik5041 Vorlesungen Verknüpfung X

21 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL VorlNr Die 3 Kritiken Ethik Grundzüge Mäeutik Ethik Grundzüge Titel SWS gelesen Von Raum C4Kant2137 RangNamePersNr C4Sokrates2125 C4Russel2126 C4Russel2126 C4Sokrates2125 C4Sokrates1225 PersNrNameRangRaumVorlNrTitelSWSgelesen Von 2125SokratesC Mäeutik22125 NameTitel SokratesMäeutik Selektion Projektion

22 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL22 Anfragen über mehrere Relationen Welche Studenten hören welche Vorlesungen? select Name, Titel from Studenten, hören, Vorlesungen where Studenten.MatrNr = hören.MatrNr and hören.VorlNr = Vorlesungen.VorlNr; Alternativ: select s.Name, v.Titel from Studenten s, hören h, Vorlesungen v where s. MatrNr = h. MatrNr and h.VorlNr = v.VorlNr

23 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL23 SELECT s1.Name, s2.Name FROM Studenten s1, hoeren h1, hoeren h2, Studenten s2 WHERE h1.VorlNr = h2.VorlNr AND h1.MatrNr = s1.MatrNr AND h2.MatrNr = s2.MatrNr Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach2 hören MatrNrVorlNr

24 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL24 Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Studenten MatrNrNameSemester 24002Xenokrates Jonas Fichte Aristoxenos Schopenhauer 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

25 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL25 Mengenoperationen Mengenoperationen union, intersect, minus select Name from Assistenten UNION select Name from Professoren

26 Grundlagen der Datenbanken, WS 08/09Kapitel 4: Grundlagen von SQL26 Geschachtelte Anfragen select Name from Professoren where PersNr not in ( select gelesenVon from Vorlesungen ); select p.Name from Professoren p where not exists ( select v gelesenVon from Vorlesungen v where v.gelesenVon = p.PersNr );


Herunterladen ppt "Prof. Dr. Steffen Staab Dr. Dr. Sergej Sizov ISWeb – Information Systems & Semantic Web Kapitel 4 SQL: Grundlagen."

Ähnliche Präsentationen


Google-Anzeigen