Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbankentwicklung IV-LK

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbankentwicklung IV-LK"—  Präsentation transkript:

1 Datenbankentwicklung IV-LK
Warum Datenbanken? Anforderungsanalyse für Datenbanken Ableitung von Tabellenstrukturen Normalisierung Relationenalgebra Formalisierung von Tabellen in SQL SQL- Anfragen Nicole Rottmann /12

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

3 6. Formalisierung von Tabellen in SQL 1
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) Verkaeufer Kunde Vnr Name Status Gehalt 1001 Udo Junior 1500 1002 Ute Senior 1900 1003 Uwe 2000 Knr Name Betreuer 1 Egon 1001 2 Erwin 3 Erna 1002 In diesem Kapitel wird gezeigt, wie man mit Hilfe von SQL Tabellen in Datenbanken definieren kann , so dass eine Bearbeitung mit der Datenbank-Software möglich wird. Wichtig ist bei der Definition von Tabellen, dass nicht nur die Struktur der Tabellen in die Datenbank übertragen wird, sondern spezielle Randbedingungen, so genannte Constraints. Mit diesen Constraints können Primär- und Fremdschlüsseleigenschaften definiert werden, deren Einhaltung bei jeder Änderung der Tabelle vom DBMS überprüft werden. Aufteilung von SQL in drei Sprachanteile: Definitionssprache: SQL zur Definition von Tabellen Bearbeitungssprache: Anfragen formulieren, Tabelleninhalte ändern Steuerungssprache: Eigenschaften der Datenbank definieren , wie Rechte der Nutzer festlegen und den parallelen Zugriff koordinieren SQL Schlüsselworte werden in Großbuchstaben geschrieben. Neben den markierten Primärschlüsseln gibt es eine Fremdschlüsselbeziehung, die festlegt, dass jeder Kunde einen Verkäufer als Betreuer haben muss. Tabellen werden durch den Befehl CREATE TABLE <Tabellenname> erzeugt. Danach folgt in runden Klammern die Definition der Tabelle, wobei die einzelnen Eigenschaften durch Kommas getrennt sind. Die einzelnen Tabellenspalten (Attribute) werden durch die Angabe des Namens gefolgt von der Angabe des Datentyps festgelegt. Integer steht für ganzzahlige Zahlenwerte und VARCHAR (x) für Text mit maximal x Zeichen. Nicole Rottmann /12

4 6. Formalisierung von Tabellen in SQL 1
6. Formalisierung von Tabellen in SQL 1. Tabellendefinition mit SQL IV-LK Definition von Primärschlüsseln: PRIMARY-KEY (<Spaltenname1>,…,<SpaltennameN>) Definition von Fremdschlüsseln: CONSTRAINT <constraintname> FOREIGN KEY(<meinSpaltenname1>,…,<meinSpaltennameN> REFERENCES <übergeornete Tabelle> <dortigerSpaltenname1>,…,<dortigerSpaltennameN>) 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. Das DBMS garantiert, dass für den Primärschlüssel eingetragene Wert eindeutig ist und keine NULL-Werte enthält. Constraint definiert eine Randbedingung, die vom DBMS geprüft wird und wird in einem späteren Kapitel genauer erläutert. Zunächst gibt man an, wie die Spalten in der zu definierenden Tabelle heißen und danach auf welche Tabelle und welche Spalten dort sich die vorher genannten Spalten beziehren. Dabei bezieht sich <meinSpaltennamex> immer auf <dortigerSpaltennamex>. Eine Tabelle kann Fremdschlüsselbeziehungen zu verschiedenen Tabellen haben. Diese Beziehungen werden jeweils als eigenständige Constraints angegeben. Das DBMS überprüft, ob ein Verkäufer mit dem für Betreuer übergebenen Wert existiert. Eine Besonderheit ist, dass für den Betreuer auch ein NULL-Wert eingegeben werden kann. Bei der Nutzung der Fremdschlüssel stellt sich die Frage, was passiert, wenn der übergeordnete Datensatz, hier z.B. der Verkäufer mit der Vnr 1001 gelöscht wird. Nicole Rottmann /12

5 6. Formalisierung von Tabellen in SQL 2
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 <Tabellenname> VALUES (<WertFürSpalte1>,…,<WertFürLetzteSpalte>) 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` Zur Trennung von SQL Befehlen wird in diesem Buch ein Semikolon genutzt. Es muss für jede Spalte ein Wert angegeben werden. Nachdem man Werte in eine Tabelle eingetragen hat, möchte man sich diese gerne ansehen. Dazu muss eine Anfrage an die Datenbank formuliert werden. Nicole Rottmann /12

6 6. Formalisierung von Tabellen in SQL 2
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 Versucht man einen Tabelleneintrag zu machen, der gegen eine der Constraints, verstößt, so wird die Aktion mit einer Fehlermeldung abgebrochen. Nicole Rottmann /12

7 6. Formalisierung von Tabellen in SQL 2
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 <Tabellenname> SET <SpaltennameI> = <Wert>, <SpaltennameJ> = <Wert>, WHERE <Bedingung> Änderung in Abhängigkeit von alten Werten: UPDATE Verkaeufer SET Gehalt = Gehalt * 1.05 In der Tabelle Kunde soll der Name der Kundin mit der Knr 4 auf Edwina geändert werden und ihr als Betreuer der Verkäufer mit der Vnr 1002 zugeordnet werden. Bei der Ausführung wird für jede Zeile der betroffenen Tabelle untersucht, ob die Bedingung erfüllt ist. Ist dies der Fall, wird die im SET Block beschriebene Änderung durchgeführt. Dies geschieht nur, wenn kein Constraint verletzt wird, sonst gibt es eine Fehlermeldung und keine Änderung wird ausgeführt. Die Bedingung ist nicht optimal, falls es mehrere Kunden mit dem Namen Edna gäbe. Eine bessere Bedingung wäre Knr=4 gewesen. Lässt man die WHERE Bedinung weg, wird sie als wahr interpretiert, d.h. die Änderungen beziehen sich auf alle Zeilen. Das Gehalt aller Verkäufer wurde um 5% erhöht. Nicole Rottmann /12

8 6. Formalisierung von Tabellen in SQL 2
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 <Tabellenname> WHERE <Bedingung> 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 Für die ausgewählte Tabelle wird für jede Zeile geprüft, ob die Bedingung wahr ist. Ist dies der Fall, so wird versucht, die Zeile zu löschen. Sollte für eine Zeile die Bedinung erfüllt sein und kann diese wegen Randbedingunen nicht gelöscht werden, gibt es eine Fehlermeldung und es findet kein Löschvorgang statt. Das DBMS erkennt, dass in der Tabelle Kunde mindestens einen davon abhängigen Datensatz gibt und verweigert die Ausführung des Löschbefehls. Mit dem bisherigen Wissen ist es aber trotzdem möglich, den Verkäufer mit der Vnr 1001 zu löschen. Dazu müssen zunächst die Betreuerinformationen in der Tabelle Kunde, die sich auf 1001 beziehen auf einen anderen Wert, also die Vnr von einem anderen Verkäufer oder NULL gesetzt werden. Danach kann der Verkäufter mit der Vnr 1001 ohne Probleme gelöscht werden. Das hier vorgestellte Verfahren ist grundsätzlich immer anwendbar, man muss allerdings beachten, dass in realen Projekten die Datenabhängigkeit wesentlich komplexer sein kann. Die Änderungen in der Tabelle Kunde könnten sich z.B. auf weitere Tabellen fortpflanzen, ähnlich dem Domino Prinzip. Da diese Datenanalyse von Hand eventuell sehr aufwändig ist, gibt es eine Alternative bei der Definition von Fremdschlüsseln. Nicole Rottmann /12

9 6. Formalisierung von Tabellen in SQL 2
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. Durch den Zusatz on delete cascade wird der Fremdschlüssel in der Form erweitert , dass wenn der übergeordnete Datensatz gelöscht wird, damit auch alle davon abhänigigen Datensätze in dieser Tabelle gelöscht werden. Mit dem SQL Skript werden nun alle Kunden mit dem Betreuer 1001 gelöscht. Dabei gilt weiterhin, dass die gesamte Aktion nicht durchgeführt wird, falls es an nur einer Stelle Widerstand gegen das Löschen geben sollte, da ein Constraint verletzt wird. Bei diesem Beispiel fällt kritisch auf, dass es häufig nicht gewünscht ist, dass Kundeninformationen verloren gehen. Man muss sich bei der Implementierung der Tabellenstrukturen möglichst für eine einheitliche Art der Fremdschlüsseldefinition mit oder ohne on delete cascade entscheiden. Wenn man weiß, dass später auch unerfahrene Personen Zugang zu kritischen Daten haben, sollte man besser auf diese praktische Möglichkeit verzichten, da sie sehr schnell zu schwerwiegenden Fehlern führen kann. Was für das Löschen beschrieben wurde gilt ebenso auch für das Update Nicole Rottmann /12

10 6. Formalisierung von Tabellen in SQL 2
6. Formalisierung von Tabellen in SQL 2. Einfügen, Löschen und Ändern von Daten IV-LK Löschen von Tabellen: DROP TABLE <Tabellenname> RESTRICT Alternative zum Löschen von Tabellen: DROP TABLE <Tabellenname> CASCADE Die Tabelle wird nur gelöscht, wenn es keine anderen Tabellen gibt, die von dieser Tabelle abhängig sind. D.h. es gibt keine andere Tabelle, in der ein Fremdschlüssel auf die zu löschende Tabelle referenziert. Gibt es eine solche Tabelle wird der Löschbefehl nicht durchgeführt. RESTRICt macht das Löschen sehr sicher, da man so nicht zufällig eine zentrale Tabelle mir vielen Abhängigkeiten löschen kann. Allerdings bedeutet dies auch für Löschvorgänge, bei denen mehrere Tabellen gelöscht werden sollen, dass man zunächst die Tabelle herausfinden muss, auf die es keine Verweise gibt und dann die weitere Tabellen schrittweise löscht. Mit Cascade wird ausgedürckt, dass Tabellen, die Referenzen auf die zu löschende Tabelle haben, so verändert werden, dass diese Referenzen eglöscht werden. Dies bedeutet, dass Constraints mit Fremdschlüsseln, die sich auf die zu löschende Tabelle beziehen, mit gelöscht werden. Dabei bleiben aber alle anderen Daten in der vorher abhängigen Tabelle erhalten, man kann sicher sein, dass die zu löschende Tabelle mit allen Spuren im System gelöscht wird Nicole Rottmann /12

11 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 Festlegung des Speicherplatzes. Für die Praxis heißt das, dass man sich bei der Erstellung einer Tabelle fragen muss, was der größte Wert ist, der in dieser Spalte eingetragen werden soll. Der Unterschied bei den Kommazahlen ist wieder der benutzte Speicherplatz und die Genauigkeit. Wichtig ist dabei, dass beliebige reele Zahlen im Computer nur angenähert dargestellt werden können und es so zu Ungenauigkeiten kommen kann. Unter den Kommazahlen gibt es als Besonderheit die Festkommazahlen, wobei DECIMAL (p,q) oder mit gleicher Bedeutung bei NUMERIC (p,q) durch p die Genauigkeit und durch q die Anzahl der Nachkommastellen festgelegt werden. Bei Char(q) wird die genaue Anzahl von q Zeichen erwartet und abgespeichert. Bei Varchar(q) wird mit q die maximale Anzahl von Zeichen angegeben. Abgespeichert werden nur die tatsächlich eingetragenen Zeichen. Nicole Rottmann /12

12 6. Formalisierung von Tabellen in SQL 4
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: <bedingung> := <Spaltenname> <op> <wert> <bedingung> := <bedingung> <AND> <bedingung> <bedingung> := <bedingung> <OR> <bedingung> <bedingung> := NOT <bedingung> <bedingung> := (<bedingung>) op:= < ; <=; >; >=; =; <> Wahrheitstafel der zwei-wertigen Logik Die Bedingung besagt, dass die Verkäufer Nr höher als 1003 ist und das Gehalt mindestens 2000 sein muss. Gilt z.B. Vnr=1004 und Gehalt = 2500 ist die Bedingung erfüllt. Gilt Vnr = 1003 und Gehalt = 2000 ist die Bedingung nicht erfüllt, da das erste Teilprädikat falsch ist. Um bei komplexeren Bedingungen zu relgeln in welcher Reihenfolge die Auswertung stattfindet, kann man Bedingungen in Klammern setzten. Dabei wird die innerste Bedingung, die keine Klammern enthält zuerst ausgewertet. Zur Erklärung der so genannten Booleschen Verknüpfungen werden typischerweise Wahrheitstafeln verwendet. Dabei steht w für wahr und f für falsch. Was passiert aber, wenn ein Attribut den Wert NULL hat, wie soll Gehalt >=2000 ausgewertet werden, wenn Gehalt den Wert NULL hat? Zur Lösung des Problems wird die zwei-wertige Logik durch eine drei-wertige Logik ersetzt. Die Logik wird um einen dritten Wahrheitswert unbekannt ergänzt. X Y NOT X X AND Y X OR Y w f Nicole Rottmann /12

13 6. Formalisierung von Tabellen in SQL 4
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 X Y NOT X X AND Y X OR Y w f u Es gilt, dass ein AND nur nach wahr ausgewertet wird, wenn beide Teilbedingungen wahr sind, ist eine falsch kommt falsch heraus in den restlichen Fällen kommt unbekannt heraus. Für die SQL Befehle hat die drei-wertige Logik die Auswirkung, dass man klar formulieren muss, ob man den Fall der Auswertung nach "wahr" oder nach "nicht falsch" meint , da letzteres auch unbekannt mit einschließt. Für die bisher vorgestellten Befehle UPDATE und DELETE gilt, dass sie nur ausgeführt werden, wenn die WHERE Bedingungen wahr ausgewertet werden. Bei Änderungen oder auch Überprüfungen möchte man häufiger gewisse Aktionen davon abhängig machen, ob ein Attributwert NULL ist. Der direkte Ansatz mit Status = NULL führt nicht zum Ergebnis, da NULL – Werte in SQL wegen ihrer Besonderheit anders geprüft werden müssen.. X X>42 X = NULL X IS NULL X IS NOT NULL w f u Nicole Rottmann /12

14 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 <Constraintname> CHECK (<Bedingung>) Randbedingungen. Möglichkeiten, dass nur gewünschte Daten eingetragen werden können. Beispielsweise ist es sinnvoll anzugeben, dass eine Spalte keine NULL-Werte enthalten darf. Dies soll natürlich nur geschegen, wenn auch in der Realtität für diese Spalte keine NULL Werte zu erwarten sind. Für Constraints, die sich nur auf ein Attribut beziehen, gibt es zwei verschiedenen Möglichkeiten, dies in der Tabellendefiniiton festzuhalten. Die einfachste Möglichkeit besteht darin, direkt nach der Attributdefinition NOT NULL zu ergänzen. Alternativ kann nach der Attributdefinition mit Attributnamen, Typ und der optionalen Angabe eines Standardwertes mit Constraint definiert werden. Constraintnamen müssen über alle Tabellen unterschiedlich sein. Um dies zu gewährleisten, fangen in größeren Projekten Constraintnamen häufig mit dem Namen der Tabelle an. Es gibt auch die Möglichkeit Constraints für gesamte Tabellen zu definieren. Im Beispiel sieht man, dass das Constraint für Gehalt getrennt von der Definition des Attributes angegeben wird. Typisch ist komplexere Spaltenconstraints nach der Definition der Attribute aufzuführen. Für Vnr muss keine Angabe NOT NULL erfolgen, weil dies bereits durch die Schlüsseleigenschaft garantiert wird. Möchte man garantieren, dass die Verkäufernummer Vnr immer größer gleich 1000 ist,, kann man dies entweder direkt beim Attribut definieren. Vnr INTEGER CONSTRAINT vierstellig CHECK (Vnr >= 1000) Oder als zusätzliches Constraint getrennt von der Attributdefinition: CONNSTRAINT Vierstellig CHECK (Vnr >= 1000) Nicole Rottmann /12

15 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 <= 2000 Wenn Status Junior, dann maximales Gehalt 2000 NOT (Status = 'Junior') OR Gehalt <= 2000 w f u Schlechte Formalisierung wäre CONSTRAINT SchlechteFormalisierung CHECK (Status = 'Junior') AND Gehalt <= 2000) Aus dieser Bedingung folgt, dass nur noch Einträge möglich sind, bei denen der Status ='Junior' erfüllt ist. Ist das nicht der Fall wird das Constraint nach false ausgewertet, was zum Abbruch der Eintragungs- oder Änderungsaktion führt. Constraints beziehen sich immer genau auf eine Zeile der Tabelle. Weitergehende Forderungen werden mit so genannten Assertions (Zusicherungen) definiert. Nicole Rottmann /12

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

17 6. Formalisierung von Tabellen in SQL 6. Aufgaben IV-LK
Übungsaufgaben: Gegeben seien folgende Tabellen zur Projektverwaltung: Projekt Arbeitspaket PrNr PrName PrLeiter 1 Notendatenbank Wichtig 2 Adressdatenbank 3 Fehlzeitendatenbank PrNr PakNr PakName PakLeiter 1 Analyse Wichtig 2 Modell Wuchtig 3 Implementierung Mittel 4 Durch 5 6 Schnitt 7 Hall Arbeit PakNr MiName Anteil 1 Wichtig 50 Klein 30 2 Winzig 100 3 Hall 70 4 Maler 40 Schreiber 6 7 Nicole Rottmann /12

18 6. Formalisierung von Tabellen in SQL 6. Aufgaben IV-LK
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. Wie löscht man das Projekt Notendatenbank, was passiert dabei sonst noch in der Datenbank? Wie kann das Projekt Fehlzeitendatenbank in Anwesenheitsdatenbank umbenannt werden, wobei die Projektnummer gleichzeitig auf 11 geändert wird? Nicole Rottmann /12


Herunterladen ppt "Datenbankentwicklung IV-LK"

Ähnliche Präsentationen


Google-Anzeigen