Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Nicole Rottmann 2011/12 Datenbankentwicklung IV-LK 1.Warum Datenbanken? 2.Anforderungsanalyse für Datenbanken 3.Ableitung von Tabellenstrukturen 4.Normalisierung.

Ähnliche Präsentationen


Präsentation zum Thema: "Nicole Rottmann 2011/12 Datenbankentwicklung IV-LK 1.Warum Datenbanken? 2.Anforderungsanalyse für Datenbanken 3.Ableitung von Tabellenstrukturen 4.Normalisierung."—  Präsentation transkript:

1 Nicole Rottmann 2011/12 Datenbankentwicklung IV-LK 1.Warum Datenbanken? 2.Anforderungsanalyse für Datenbanken 3.Ableitung von Tabellenstrukturen 4.Normalisierung 5.Relationenalgebra 6.Formalisierung von Tabellen in SQL 7.SQL- Anfragen

2 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL IV-LK 1.Tabellendefinition mit SQL 2.Einfügen, Löschen und Ändern von Daten 3.Datentypen in SQL 4.NULL-Werte und drei-wertige Logik 5.Constraints 6.Aufgaben

3 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 1. Tabellendefinition mit SQL IV-LK Einfaches Verkaufsbeispiel: Übertragung der Struktur und Information in SQL-Definitionssprache: CREATE TABLE Verkaeufer ( Vnr INTEGER, Name VARCHAR (6), Status VARCHAR (7), Gehalt INTEGER, PRIMARY KEY (Vnr) ) und CREATE TABLE Kunde ( Knr INTEGER, Name VARCHAR (6), Betreuer INTEGER, PRIMARY KEY (Knr) FOREIGN KEY (Betreuer) REFERENCES Verkaeufer (Vnr) ) VnrNameStatusGehalt 1001UdoJunior UteSenior UweSenior2000 KnrNameBetreuer 1Egon1001 2Erwin1001 3Erna1002 VerkaeuferKunde

4 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 1. Tabellendefinition mit SQL IV-LK Definition von Primärschlüsseln: PRIMARY-KEY (,…, ) Definition von Fremdschlüsseln: CONSTRAINT FOREIGN KEY(,…, REFERENCES,…, ) Fremdschlüsselbeziehungen können sich nur auf definierte Primärschlüssel anderer Tabellen beziehen. Diese Tabellen müssen vor der Tabelle, in der das Constraint definiert wird, erzeugt werden.

5 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Einfügen von Daten in Tabellen: INSERT INTO VALUES (,…, ) Beispiel: INSERT INTO Verkaeufer VALUES (1001,`Udo`,`Junior`,1500); INSERT INTO Verkaeufer VALUES (1002,`Ute`,`Senior`,1900); INSERT INTO Verkaeufer VALUES (1003,`Uwe`,`Senior`,2000); Einfügen von Daten in einzelne Spalten INSERT INTO Verkaeufer (Vnr, Name, Status) VALUES (1004,`Ulf`,`Junior`); Spalten, die nicht im INSERT Befehl genannt sind werden entweder mit NULL-Werten gefüllt, oder mit einem definierten Standard Wert gefüllt. Definition eines Attributs mit einem Standardwert: STATUS VARCHAR(7) DEFAULT `Junior`

6 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Kontrolle beim Einfügen: Verstoß gegen die Eindeutigkeit des Primärschlüssels: INSERT INTO Verkaeufer VALUES (1001, `Alf´, ´Senior´, 3000) Kann die Fehlermeldung folgendermaßen aussehen: Verstoß gegen Eindeutigkeit, Regel Versucht man einen Kunden mit einem Betreuer einzutragen, den es nicht gibt, z.B. INSERT INTO Kunde VALUES(4,´Edna´,999); Wird der Eintrag nicht vorgenommen und man erhält z.B. folgende Fehlermeldung: Verstoß gegen Contraint (FK_KUNDE). Übergeordneten Schlüssel nicht gefunden

7 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Ändern von Tabelleneinträgen: UPDATE Kunde SET Name = ´Edwina´, Betreuer = 1002 WHERE Name = 'Edna' Allgemeine Syntax: UPDATE SET =, =, WHERE Änderung in Abhängigkeit von alten Werten: UPDATE Verkaeufer SET Gehalt = Gehalt * 1.05

8 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Löschen von Daten: DELETE FROM Kunde WHERE Knr = 3 Allgemeine Syntax: DELETE FROM WHERE Der Verkäufer mit der Vnr 1001 soll gelöscht werden. DELET FROTM Verkaeufer WHERE Vnr = 1001 Fehlermeldung: Verstoß gegen Contraint (FK_KUNDE). Untergeordneter Datensatz gefunden. Lösung: UPDATE Kunde SET Betreuer = NULL, WHERE Betreuer = 1001; DELETE FROM Verkaeufer WHERE Vnr = 1001

9 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Definition von Fremdschlüsseln zur Löschung von Daten: CREATE TABLE Kunde( Knr INTEGER, Name VARCHAR (7), Betreuer INTEGER, PRIMARY KEY (Knr), CONSTRAINT FK_KUNDE FOREIGN KEY (Betreuer) REVERENCES Verkaeufer (Vnr) ON DELETE CASCADE ) Reaktionsmöglichkeiten beim Löschen von Daten: NO ACTION: entspricht der Ursprungseinstellung, das Löschen wird abgelehnt, wenn ein abhängiger Datensatz existiert. CASCADE : siehe oben SET NULL : für abhängige Datensätze wird die Referenz auf den gelöschten Datensatz automatisch auf NULL gesetzt. SET DEFAULT : wenn es eine Default – Wert gibt, wird dieser im abhängigen Datensatz eingetragen; existiert ein solcher Wert nicht, wird der Löschvorgang nicht durchgeführt.

10 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Löschen von Tabellen: DROP TABLE RESTRICT Alternative zum Löschen von Tabellen: DROP TABLE CASCADE

11 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 3. Datentypen in SQL IV-LK Definition ganzer Zahlen: SMALLINT, INTEGER, BIGINT Definition von Kommazahlen: DECIMAL, NUMERIC, FLOAT, REAL, DOUBLE PRECISION NUMERIC (5,2) bedeutet insgesamt 5 Stellen und zwei Nachkommastellen. Definition von Texten: CHAR (q) und VARCHAR (q) Definition von Tagen DATE, TIME

12 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 4. NULL-Werte und drei-wertige Logik IV-LK Formulierung von WHERE Bedingungen: Vnr > 1003 AND Gehalt >= 2000 Syntax von WHRER Bedingungen: := := NOT := ( ) op:= ; >=; =; <> Wahrheitstafel der zwei-wertigen Logik XYNOT XX AND YX OR Y wwfww wfffw fwwfw ffwff

13 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 4. NULL-Werte und drei-wertige Logik IV-LK Wahrheitstafel der drei-wertigen Logik Überprüfung auf NULL-Werte XYNOT XX AND YX OR Y wwfww wfffw wufuw fwwfw ffwff fuwfu uwuuw ufufu uuuuu XX>42X = NULLX IS NULLX IS NOT NULL wfufw fwufw wuuwf

14 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 5. Constraints IV-LK Vermeidung von NULL- Einträgen: CREATE TABLE Verkaeufer( Vnr INTEGER, Name VARCHAR(6) NOT NULL, Status VARCHAR (7) DEFAULT 'Junior' CONSTRAINT StatushatWert CHECK (Status IS NOT NULL), Gehalt INTEGER, PRIMARY KEY (Vnr), CONSTRAINT GehaltImmerAngeben) CHECK (Gehalt IS NOT NULL) ) Syntax: CONSTRAINT CHECK ( )

15 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 5. Constraints IV-LK Prüfung von Constraints: Die gesamte Aktion wird abgebochen, wenn ein Constraint nach "false" ausgewertet wird. Übersetzung von Wenn – Dann Bedingungen: Beispiel: Jemand mit dem Status 'Junior' darf maximal 2000 verdienen. Analyse einer Wenn- Dann Bedingung: Constraints in der Form, wenn A gilt, dann muss auch B gelten werden immer in der Form NOT (A) OR B geschrieben Status = 'Junior'Gehalt <= 2000Wenn Status Junior, dann maximales Gehalt 2000 NOT (Status = 'Junior') OR Gehalt <= 2000 wwww wfff wuuu fwww ffww fuww uwww ufuu uuuu

16 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 6. Aufgaben IV-LK Wiederholungsfragen: 1.Wie werden Tabellen in SQL definiert, wie sehen Schlüssel und Fremdschlüssel aus, wozu gibt es Constraints? 2.Was ist bei Fremdschlüsseln im Zusammenhang mit NULL – Werten zu beachten? 3.Wie werden Daten in Tabellen eingefügt, geändert und gelöscht? 4.Welche Reaktionen können beim Einfügen, Ändern und Löschen auftreten, damit die referentielle Integrität der Datenbank gewährleistet wird? 5.Welche Möglichkeiten gibt es, Fremdschlüssel zu definieren, welchen Einfluss hat dies auf das Löschen von Daten? 6.Welche Standardtypen in SQL kennst du, warum gibt es unterschiedliche Typen für Zahlen und Texte? 7.Warum hat SQL eine dreiwertige Logik, was ist das überhaupt? 8.Wie werden Constraints ausgewertet? 9.Wie verhalten sich NULL Werte in mathematischen Operationen? 10.Wie kann man NULL Werte in Spalten ändern? 11.Wie werden Wenn- Dann Constraints übersetzt?

17 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 6. Aufgaben IV-LK Übungsaufgaben: Gegeben seien folgende Tabellen zur Projektverwaltung: PrNrPakNrPakNamePakLeiter 11AnalyseWichtig 12ModellWuchtig 13ImplementierungMittel 24ModellDurch 25ImplementierungMittel 36ModellSchnitt 37ImplementierungHall PakNrMiNameAnteil 1Wichtig50 1Klein30 2Winzig100 3Hall70 4Maler40 4Schreiber30 6Maler30 6Schreiber40 7Hall50 PrNrPrNamePrLeiter 1NotendatenbankWichtig 2AdressdatenbankWichtig 3FehlzeitendatenbankWichtig Projekt Arbeitspaket Arbeit

18 Nicole Rottmann 2011/12 6. Formalisierung von Tabellen in SQL 6. Aufgaben IV-LK 1.Gib für die drei Tabellen SQL Befehle zur Erzeugung der Tabellen und des Inhalts an. Beachte auch die Fremdschlüssel, diese sollen zur Löschweitergabe genutzt werden. Für die Tabelle Arbeitspaket sollen folgende Bedinungen aufgenommen werden: - Kein Eintrag darf leer sein. - Die Person Winzig darf nie Arbeitspaketleiter sein. - Alle Arbeitspakete mit dem Namen Analyse dürfen nie von der Person Hall geleitet werden. - Alle Arbeitspakete mit dem Namen Implementierung müssen von der Person Mittel oder der Person Hall geleitet werden. 2.Wie löscht man das Projekt Notendatenbank, was passiert dabei sonst noch in der Datenbank? 3.Wie kann das Projekt Fehlzeitendatenbank in Anwesenheitsdatenbank umbenannt werden, wobei die Projektnummer gleichzeitig auf 11 geändert wird?


Herunterladen ppt "Nicole Rottmann 2011/12 Datenbankentwicklung IV-LK 1.Warum Datenbanken? 2.Anforderungsanalyse für Datenbanken 3.Ableitung von Tabellenstrukturen 4.Normalisierung."

Ähnliche Präsentationen


Google-Anzeigen