Datenbanksysteme Datenbanken und Datenbankmanagementsystem Iváncsy Tamás 2011 Outline 1 2 3 4 5 Grundbegriffe Datenbanksystem Benutzer einen Datenbank Abstraktionsebenen Datenmodellierung Datenbankschema Entität und Attribut Beziehungen Datenmodelle Netzwerkdatenbankmodell Relationales Datenbankmodell Relationale Datenbank Tabellen Relationale Algebra Planung von relationalen Datenbanken Anomalien Schlüssel Normalformen SQL Datentypen SQL Befehle Transaktionen Einige SQL Server Iváncsy T. () Datenbanksysteme 2011 2 / 51 Outline 1 2 3 4 5 Grundbegriffe Datenbanksystem Benutzer einen Datenbank Abstraktionsebenen Datenmodellierung Datenbankschema Entität und Attribut Beziehungen Datenmodelle Netzwerkdatenbankmodell Relationales Datenbankmodell Relationale Datenbank Tabellen Relationale Algebra Planung von relationalen Datenbanken Anomalien Schlüssel Normalformen SQL Datentypen SQL Befehle Transaktionen Einige SQL Server Iváncsy T. () Datenbanksysteme 2011 2 / 51 Outline 1 2 3 4 5 Grundbegriffe Datenbanksystem Benutzer einen Datenbank Abstraktionsebenen Datenmodellierung Datenbankschema Entität und Attribut Beziehungen Datenmodelle Netzwerkdatenbankmodell Relationales Datenbankmodell Relationale Datenbank Tabellen Relationale Algebra Planung von relationalen Datenbanken Anomalien Schlüssel Normalformen SQL Datentypen SQL Befehle Transaktionen Einige SQL Server Iváncsy T. () Datenbanksysteme 2011 2 / 51 Outline 1 2 3 4 5 Grundbegriffe Datenbanksystem Benutzer einen Datenbank Abstraktionsebenen Datenmodellierung Datenbankschema Entität und Attribut Beziehungen Datenmodelle Netzwerkdatenbankmodell Relationales Datenbankmodell Relationale Datenbank Tabellen Relationale Algebra Planung von relationalen Datenbanken Anomalien Schlüssel Normalformen SQL Datentypen SQL Befehle Transaktionen Einige SQL Server Iváncsy T. () Datenbanksysteme 2011 2 / 51 Outline 1 2 3 4 5 Grundbegriffe Datenbanksystem Benutzer einen Datenbank Abstraktionsebenen Datenmodellierung Datenbankschema Entität und Attribut Beziehungen Datenmodelle Netzwerkdatenbankmodell Relationales Datenbankmodell Relationale Datenbank Tabellen Relationale Algebra Planung von relationalen Datenbanken Anomalien Schlüssel Normalformen SQL Datentypen SQL Befehle Transaktionen Einige SQL Server Iváncsy T. () Datenbanksysteme 2011 2 / 51 Grundbegriffe Datenbanksystem Datenbanksystem Datenbank Ein Datenbank ist die zusammenhängende, geordnete, gespeicherte Menge der Daten, die eine Teil der reellen Welt beschreiben. (database, DB) Die Daten in einem Kartei sind nicht als Datenbank zu betrachten, weil die später beschriebenen Operationen nicht durchführbar sind oder nur mit großen Schwierigkeiten. Darum sind nur Computerdatenbanken richtige Datenbanken. Datenbankmanagementsystem Das Datenbankmanagementsystem ist ein Softwaresystem, das den Zugriff zu den Daten in einen Datenbank ermöglicht. (database management system, DBMS) Zugriffsmöglichkeiten auf den Daten sind: erzeugen, modifizieren, löschen oder lesen . Das Datenbankmanagementsystem ermöglicht die Handlung von gespeicherten Daten für den Benutzer, ohne vom Prinzip der gespeicherten Daten oder von Algorithmen des Managementystems Kentnisse haben müssen. Iváncsy T. () Datenbanksysteme 2011 3 / 51 Grundbegriffe Datenbanksystem Die Teile eines Datenbanksystems Iváncsy T. () Datenbanksysteme 2011 4 / 51 Grundbegriffe Datenbanksystem Einteilung der Aufgaben Die Aufgabe des Datenbankmanagementsystems sind die Speicherung gewisser zusammenhängender Daten die Wartung des aktuellen Standes der Daten die schnelle und zuverlässige Abfragung der nötigen Daten Die Aufgabe der Datenbankplanung sind die Definition von Logik der Datenstruktur die Definition der physikalischen Speicherung der Daten die Planung der durchführbaren Operationen auf der Daten Iváncsy T. () Datenbanksysteme 2011 5 / 51 Grundbegriffe Datenbanksystem Erwartungen von einen DBS Datensicherheit Zuverlässige Speicherung der Daten Die gespeicherte Daten sollen nicht beschädigt werden bzw. verloren gehen. redundante Speicherung zeitliche Sicherheitskopien (Datensicherung) Schutz gegen unbefugten Zugriff Die Benutzer können nur auf die für sie erlaubten Daten zugreifen. Hardwareschutz (Hardwareschlüssel) Chipkarte und Pin (z. B. Geldautomaten) Softwareschutz (Benutzername und Passwort) Bei einen 10 Zeichen lange Kennwort ist die Nummer der verschiedene Möglichkeiten 6210 ≈ 8 ∗ 1017 . Wenn ein Rechner in jede Sekunde 106 Passwort versuchen kann, dann dauert eine sichere Einbruch mit Bruteforce ≈ 8 ∗ 1011 s≈ 2.5 ∗ 104 Jahren. Iváncsy T. () Datenbanksysteme 2011 6 / 51 Grundbegriffe Datenbanksystem Erwartungen von einen DBS Integrität formelle Integrität (oder Integrität des Inhalts) Die Daten sollen in einen gewissen Bereich liegen (z. B. Schugröße oder Alter soll größer als Null sein). Die Überprüfung ist einfach. referenz Integrität Zwei verschiedene Daten sollten im Zusammenhang sein (z. B. Wohnort und PLZ oder in einem Lagerhaus die minimale und maximale Vorrat von Ware). Dies ist auch einfach zu überprüfen. strukturelle Integrität Bei der Planung der Struktur der Datenbank angegebene Vorraussetzungen sollen nicht beschädigt werden (z. B. Vorassuetzungen: eine Schule hat nur ein Direktor, eine Frau hat nur ein Mann) Die Überprüfung der strukturelle Integrität ist nicht einfach (2 Direktoren für eine Schule in der Datenbank verletzt diese Integrität). Iváncsy T. () Datenbanksysteme 2011 7 / 51 Grundbegriffe Datenbanksystem Erwartungen von einen DBS Konsistenz Im Allgemeinen die Datenbanksysteme haben die Möglichkeit für Mehrbenutzerbetrieb. Wenn mehrere Benutzer zum gleichen Zietpunk auf die gleichen Daten Operationen durchführen, dann sollten diese Operationen keine Nebeneffekte haben. z. B. Es gibt 100 Staubsauger auf Lager. Von zwei Verkäufern der eine verkauft 10 der andere 12 Geräte an einem Tag. Am Ende des Tages modifizieren beide die Datenbank. Wenn sie es zu verschiedenen Zeitpunkten machen, wird der Vorrat auf 78 sinken. Wenn aber der eine die Vorratsgröße vor der Modifizierung abfragte bzw. der andere den Vorrat schon vorher überprüfte, sehen beide die Ausgangszahl 100. Die endgültige Vorratszahl ist abhängig von der Reihenfolge der Modifizierung; in diesem Fall 90 oder 88. Beide Ergebnisse sind FALSCH! Der Datenbankmanagementsystem soll sicherstellen, daß alle Modifizierungen korrekt durchgefürt werden! Iváncsy T. () Datenbanksysteme 2011 8 / 51 Grundbegriffe Benutzer einen Datenbank Die möglichen Benutzer einen Datenbank nicht gebildete Benutzer (allgemeine Benutzer) wenige Kentnisse über den Datenbank wenige erlaubte Operationen Operationen nur über eine Anwendung Anwendungsprogrammierer kennt die Sprache der Abfrage (z. B. SQL) kennt die Struktur der Datenbanken kennt nicht den Inhalt der Datenbank Datenbank Administrator generieren von Datenbanken Modifizerung der Struktur der Datenbank Einstellung der Berechtigungen Datensicherung und Datenwiederherstellung Iváncsy T. () Datenbanksysteme 2011 9 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 10 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 11 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 12 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 13 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 14 / 51 Grundbegriffe Iváncsy T. () Benutzer einen Datenbank Datenbanksysteme 2011 15 / 51 Grundbegriffe Abstraktionsebenen Abstraktionsebenen physikalische Datenbank Die physikalische Anordnung der Daten im Speichersystem. prinzipielle Aufbau der Datenbank Es ist das Modell, wie die Datenbank der reellen Welt abbildet. Ansicht (View) Die Gruppe der Daten, die ein Benutzer zugreifen kann. Wenn eine Datenbank mehrere Anwendungen hat, gibt es für jede eine eigene Ansicht. (z.B. Datenbank einer Fluggesellschaft: Pilotengehälter bzw. Fluggästeliste) Iváncsy T. () Datenbanksysteme 2011 16 / 51 Datenmodellierung Datenbankschema Das Datenbankschema Bei der Planung einer Datenbank wird ein Modell aufgestellt. In diesem Modell wird festgelegt welche Daten im Datenbank gespeichert werden welchen Zweck die gespeicherte Daten haben welchen Zusammenhang zwischen den Daten existieren Die Datenbankschemas beschreiben die Stuktur und Zusammenhang der gespeicherten Daten. Iváncsy T. () Datenbanksysteme 2011 17 / 51 Datenmodellierung Datenbankschema Die Unabhängigkeit der Daten Die Unabhängigkeit der Daten kann erreicht werden, wenn bei der Änderung des Datenbankschemas die Daten nicht verändert werden. physikalische Datenunabhängigkeit Die Änderungen im physikalischen Betrieb lassen den prinzipiellen Aufbau der Datenbank unberührt. logische Datenunabhängigkeit Die Änderungen im logischen Datenschema lassen die Ansichten der Anwendungen unverändert. Iváncsy T. () Datenbanksysteme 2011 18 / 51 Datenmodellierung Entität und Attribut Entität und Attribut Die Entität Als Entität wird alles bezeichnet, worüber Daten in der Datenbank gespeichert werden können. Die Entitäten können materiell oder immateriell, konkret oder abstrakt sein. z. B. In einem System, wo Städte verwaltet werden, ist eine Stadt eine Entität. In einem System, wo persönliche Daten verwaltet werden ist eine Stadt nur ein Eigenschaft. Das Attribut (Eigenschaft) Jede Entität hat Eigenschaften (Attribute). Die Attribute sind in der Datenbank gespeichert. Die Attribute können nicht selbständig existieren, da sie nur Entitäten oder Beziehungen beschreiben. Die Attribute haben einen Bedeutung (z. B. Augenfarbe) und einen Wert (z. B. blau). Iváncsy T. () Datenbanksysteme 2011 19 / 51 Datenmodellierung Entität und Attribut Die Typen der Attribute Komplexität einfaches Attribut ist eine elementare Information. z. B. Nachname, Augenfarbe . . . komplexes Attribut besteht aus mehreren Teilattributen. z. B. Wohnort, Name der Mutter . . . Wert Attribute mit einem Wert kann zu ener Entität nur einen Wert haben. z. B. Name, Name der Mutter . . . Attribute mit mehreren Werte kann zu einer Entität mehrere Werte haben. z. B. Telefonnumer, Sprachkentnisse . . . Schlüssel Als Schlüssel wird das Attribut oder die Gruppe der Attributen genannt, das oder die ein Exemplar der Entitäten eindeutig identifizieren. Iváncsy T. () Datenbanksysteme 2011 20 / 51 Datenmodellierung Beziehungen Beziehungen Zwischen den Exemplaren der Entitäten können Beziehungen existieren. Die Beziehung zwischen den Exemplaren können eins zu einem viel zu einem viel zu vielem sein. Iváncsy T. () Datenbanksysteme 2011 21 / 51 Datenmodellierung Beziehungen eins zu einem Beziehung Es ist eine Beziehung zwischen Exemplaren zweier Entitätsmengen, in der die einzelne Exemplare der einen Entitätsmenge nur mit einem einzigem Exemplar aus der anderen Entitätsmenge in Beziehung stehen können. Beispiele: HEIRAT (Mensch, Mensch) LEITER (Firma, Mensch) Iváncsy T. () Datenbanksysteme 2011 22 / 51 Datenmodellierung Beziehungen viele zu einer Beziehung In diesem Fall steht genau ein Exemplar der einen Entitätsmenge zu mehreren Exemplaren der anderen Entitätsmenge in Beziehung. Die Angehörigkeit ist in jedem Fall leicht zu bestimmen. Beispiel: ARBEITET (Lehrer, Lehrstuhl) Ein Lehrer arbeitet an einem Lehrstuhl, aber an einem Lehrstuhl arbeten mehrere Lehrer. Iváncsy T. () Datenbanksysteme 2011 23 / 51 Datenmodellierung Beziehungen viel zu vielem Beziehung In diesem Fall stehen mehr Exemplare der einen Entitätsmenge zu mehr Exemplare der anderen Entitätsmenge in Beziehung. Beispiel: LERNT (Lehrer, Student) Ein Lehrer kann mehrere Studenten lehren, und ein Student kann bei mehreren Lehrern lernen. Iváncsy T. () Datenbanksysteme 2011 24 / 51 Datenmodelle Die Datenmodelle Hierarchisch: Die Datenobjekte können ausschließlich in einer Eltern-Kind-Beziehung zueinander stehen. Es ist das älteste Datenmodell von allen. Netzwerkartig: Die Datenobjekte werden miteinander in Netzen verbunden. Relational: Die Daten werden zeilenweise in Tabellen verwaltet. Es kann beliebige Beziehungen zwischen Daten geben. Sie werden durch Werte bestimmter Tabellenspalten festgelegt. Objektorientiert: Die Beziehungen zwischen Datenobjekten werden vom Datenbanksystem selbst verwaltet. Objekte können Eigenschaften und Daten von anderen Objekten erben. Iváncsy T. () Datenbanksysteme 2011 25 / 51 Datenmodelle Netzwerkdatenbankmodell Netzwerkdatenbankmodell Das Netzwerkdatenbankmodell wurde von der Data Base Task Group (DBTG) des Programming Language Committee (später COBOL Committee) der Conference on Data Systems Language (CODASYL) vorgeschlagen, der Organisation die auch für die Definition der Programmiersprache COBOL verantwortlich war. Es ist auch unter den Namen CODASYL Datenbankmodell oder DBTG Datenbankmodell bekannt und entsprechend stark von Cobol beeinflusst. Der fertige DBTG-Bericht wurde 1971, etwa zur gleichen Zeit wie die ersten Veröffentlichungen über das relationale Datenbankmodell, vorgestellt. Er enthielt Vorschläge für drei verschiedene Datenbanksprachen: 1 Eine Schema Data Description Language (Schema-Datenbeschreibungssprache), 2 eine Subschema Data Description Language (Subschema-Datenbeschreibungssprache) 3 und eine Data Manipulation Language (Datenmanipulationssprache). Das Netzwerk-Modell fordert keine strenge Hierarchie sondern kann auch m:n-Beziehungen abbilden, d. h. ein Datensatz kann mehrere Vorgänger haben. Auch können mehrere Datensätze an oberster Stelle stehen. Es existieren meist unterschiedliche Suchwege, um zu einem bestimmten Datensatz zu kommen. Man kann es als eine Verallgemeinerung des hierarchischen Datenbankmodells sehen. Iváncsy T. () Datenbanksysteme 2011 26 / 51 Datenmodelle Relationales Datenbankmodell Relationales Datenbankmodell Grundlage des Konzeptes relationaler Datenbanken ist die Relation. Formale Grundlage der Relation im Sinne einer Datenbankrelation ist die mathematische Definition. Die Relation ist die Basis der relationalen Algebra, die von Edgar F. Codd entwickelt wurde. Eine Relation besteht aus Attributen und Tupeln. Ein Attribut beschreibt den Typ eines möglichen Attributwertes und bezeichnet ihn mit einem Attributnamen. Ein Tupel stellt eine konkrete Kombination von Attributwerten dar und wird im Datenbankbereich auch als Datensatz bezeichnet. Trotz der mathematischen, abstrakten Definition des Datenbankmodells sind relationale Datenbanken vergleichsweise einfach und flexibel zu handhaben. Dies hatte großen Einfluss auf den Erfolg dieser Datenbanktechnik. Iváncsy T. () Datenbanksysteme 2011 27 / 51 Relationale Datenbank Tabellen Relationale Datenbank Tabellen einer relationale Datenbank Im Zusammenhang mit relationalen Datenbanken ist es üblich, eine Relation durch eine Tabelle zu beschreiben. In Tabellenform entsprechen die Attribute den Spaltenköpfen, die Attributwerte den in den Spalten vorhandenen Einträgen. Ein Tupel (record) entspricht einer Zeile einer Tabelle. Attribut 1 Wert ... ... Iváncsy T. () Attribut 2 ... ... ... Datenbanksysteme Attribut n ... 2011 28 / 51 Relationale Datenbank Tabellen Relationale Datenbank Tabellen einer relationale Datenbank Sowohl der Zusammenhang von Attributen bzw. Attributwerten innerhalb einer Tabelle, als auch eine Verknüpfung von Tabellen durch Fremdschlüssel, stellen eine Relation dar. Eine Beziehung zwischen zwei Tabellen stellt mit dem Zusammenführen von zwei Relationen letztlich eine Vergrößerung der Anzahl an Elementen dar. Betrachtet man eine Beziehung als Relation, so stellen sich ihre Elemente als die Vereinigung der Elemente der beiden verknüpften Relationen dar. Oft werden Attributwerte fälschlich als Attribut bezeichnet! Gäbe es in der Datenbanktabelle für jede mögliche Kombination von Attributwerten eine eigene Zeile, dann würde diese Tabelle das kartesische Produkt der Wertemengen für die Spalten darstellen. Normalerweise enthält eine Datenbanktabelle nur eine sehr kleine Teilmenge der möglichen Tupel, sie stellt also eine Untermenge dieses kartesischen Produkts dar. Iváncsy T. () Datenbanksysteme 2011 29 / 51 Relationale Datenbank Relationale Algebra Grundlegendes zur relationalen Algebra Die wesentlichen Operationen Vereinigung (union) Differenz (set difference) Durchschnitt (intersection) Projektion (projection) Selektion (selection) Division (division) Kreuzprodukt oder Kartesisches Produkt (cross product, cross join, cartesian product) Verbund (join) θ-Verbund (θ-join) Iváncsy T. () Datenbanksysteme 2011 30 / 51 Relationale Datenbank Planung von relationalen Datenbanken Planung von relationalen Datenbanken Zwei Verfahren für den Planung von relationalen Datenbanken Planung mit ER-Modell Auf Grund der Entitäten und Verbindungen werden die Tabellen der relationellen Datenbank generiert. Die Entitäten und Verbindungen erscheinen in relationalen Datenbank als Tabellen (Relationen). Planung mit Schemadekomposition Theoretisch alle Eigenschaften können in eine Relation angegeben werden. In diesem Fall ist die Datenbank eine einzige Tabelle. Dies ist die universelle Relation. Die universelle Relation beinhaltet viele Informationen redundant (multipiliziert). Die Nutzung einer solchen Datenbank führt zu Anomalien. Die Teilung der Relation auf mehrere Relationen verringert die Redundanz und die Wahrscheinlichkeit der Anomalien wird auch geringer. Iváncsy T. () Datenbanksysteme 2011 31 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Speicherung Der Lehrstuhlleiter wird mehrmals gespeichert und benutzt so unnötige Seicherkapazität. Iváncsy T. () Datenbanksysteme 2011 32 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Speicherung Der Lehrstuhlleiter wird mehrmals gespeichert und benutzt so unnötige Seicherkapazität. Iváncsy T. () Datenbanksysteme 2011 32 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Änderung Wenn die Telefonnummer eines Lehrstuhles geändert wird, sollte es in mehreren Stellen geändert werden. Iváncsy T. () Datenbanksysteme 2011 33 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Änderung Wenn die Telefonnummer eines Lehrstuhles geändert wird, sollte es in mehreren Stellen geändert werden. Iváncsy T. () Datenbanksysteme 2011 33 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Einfügung Wenn die Telefonnummerangabe erforderlich ist, ist es unmöglich, einen neuen Mitarbeiter ohne Telefonnummer zu einem neuen Lehrstuhl hinzuzufügen. Iváncsy T. () Datenbanksysteme 2011 34 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Schumacher Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Plasmaphysik Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft ??? 32-12345 32-12345 32-25252 32-98765 32-98765 Julian Schulze Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Einfügung Wenn die Telefonnummerangabe erforderlich ist, ist es unmöglich, einen neuen Mitarbeiter ohne Telefonnummer zu einem neuen Lehrstuhl hinzuzufügen. Iváncsy T. () Datenbanksysteme 2011 34 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25252 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Löschung Da ganze Zeilen nur gelöscht werden können, wenn der letzte Mitarbeiter kündigt, wird auch der Lehrstuhl aus der Datenbank verschwinden. Iváncsy T. () Datenbanksysteme 2011 35 / 51 Relationale Datenbank Anomalien Anomalien Ein Beispiel für ein universelle Relation, in der Anomalien gezeigt werden. Name Lehrstuhl Telefon Lehrstuhlleiter Michael Seifert Merlin Blüm Gunther Hohmann Sandra Eggeler Klaus Schlösser Werkstofftechnik Werkstofftechnik Verkehrswesen Werkstoffwissenschaft Werkstoffwissenschaft 32-12345 32-12345 32-25936 32-98765 32-98765 Justin Theisen Justin Theisen Werner Geistefeldt Michael Neuking Michael Neuking Anomalie der Löschung Da ganze Zeilen nur gelöscht werden können, wenn der letzte Mitarbeiter kündigt, wird auch der Lehrstuhl aus der Datenbank verschwinden. Iváncsy T. () Datenbanksysteme 2011 35 / 51 Relationale Datenbank Schlüssel Der Schlüssel Der Schlüssel ist eine solche Gruppe der Attributen, die alle Attribute des Tupels eindeutig bestimmen. es gibt kein Teil der Gruppe, die alle Attributen des Tupels eindeutig bestimmen. Mit anderen Wörtern: es ist ein minimaler Schlüssel. Der Superschlüssel ist ein Schlüssel, der die zweiten Bedingung nicht erfüllt. Dadurch können Attribute weggelassen werden, so daß es immer noch ein Schlüssel bleibt. Ein trivialer Superschlüssel wäre zum Beispiel die Menge aller Attribute einer Relation gemeinsam (trivial deswegen, weil eine Relation eine Menge von Tupeln ist. Die Elemente von Mengen müssen eindeutig sein; also darf es in einer Relation keine zwei gleichen Tupel geben) Iváncsy T. () Datenbanksysteme 2011 36 / 51 Relationale Datenbank Schlüssel Der Schlüssel Eigenschaften des Schlüssels: der Schlüssel bestimmt ein einziges Tupel der Relation es gibt kein Teil der Attributen im Schlüssel, die auch Schlüssel sind die Werte in der Attributen im Schlüssel sollen nicht NULL sein jede Relation hat ein Schlüssel eine Relation kann mehrere Schlüssel haben Wenn eine Relation mehrere Schlüssel hat, dann sollte eines davon als Primärschlüssel gewählt werden. Die anderen möglichen Schlüsselen sind die Schlüsselkandidaten. (auch Kandidatenschlüsseln oder Alternativschlüsseln genannt) Iváncsy T. () Datenbanksysteme 2011 37 / 51 Relationale Datenbank Normalformen Normalformen 1. Normalform (1NF) 2. Normalform (2NF) 3. Normalform (3NF) Boyce-Codd-Normalform (BCNF) Ziel der Normalisierung Das Ziel der Normalisierung ist die Vermeidung von den oben genannten Anomalien. Anders formuliert: Verringerung von Redundanz und Erhöhung von Konsistenz. Iváncsy T. () Datenbanksysteme 2011 38 / 51 Relationale Datenbank Normalformen 1. Normalform (1NF) Jedes Attribut der Relation muss einen atomaren Wertebereich haben. Das heißt, zusammengesetzte, mengenwertige oder geschachtelte Wertebereiche (relationenwertige Attributwertebereiche) sind nicht erlaubt. Damit sind auch Wiederholungsgruppen nicht zugelassen. Kurz: Kein Attributwertebereich kann in weitere (sinnvolle) Teilbereiche aufgespalten werden . Dass die Relation frei von Wiederholungsgruppen sein muss, bedeutet, dass Attribute, die gleiche oder gleichartige Information enthalten, in eine andere Relation ausgelagert werden müssen. Ein Beispiel für eine Wiederholungsgruppe wäre eine Spalte Kind, die mehrere Kindern enthält, oder mehrere Spalten benötigt Kind1, Kind2, Kind3. Iváncsy T. () Datenbanksysteme 2011 39 / 51 Relationale Datenbank Normalformen 2. Normalform (2NF) Eine Relation ist in der zweiten Normalform, wenn die erste Normalform vorliegt und kein Nichtschlüsselattribut voll funktional abhängig von einer echten Teilmenge eines Schlüsselkandidaten ist. Anders ausgedrückt: Jedes nicht-primäre Attribut (nicht Teil eines Schlüssels) ist jeweils von allen ganzen Schlüsseln abhängig, nicht nur von einem Teil eines Schlüssels. Wichtig ist hierbei, dass die Nichtschlüsselattribute wirklich von allen Schlüsseln vollständig abhängen. Iváncsy T. () Datenbanksysteme 2011 40 / 51 Relationale Datenbank Normalformen 3. Normalform (3NF) Die dritte Normalform ist erreicht, wenn sich das Relationenschema in 2NF befindet, und jedes Nichtschlüsselattribut von keinem Schlüsselkandidaten transitiv abhängt. Ein Nichtschlüsselattribut darf nicht von einer Menge aus Nichtschlüsselattributen abhängig sein. Ein Nichtschlüsselattribut darf also nur direkt von einem Schlüssel abhängen. Iváncsy T. () Datenbanksysteme 2011 41 / 51 Relationale Datenbank Normalformen Boyce-Codd-Normalform (BCNF) Eine Relation ist in BCNF, wenn sie die Voraussetzungen der 3NF erfüllt, und jede Determinante (Attributmenge, von der andere Attribute funktional abhängen) ein Schlüsselkandidat ist (oder die Abhängigkeit ist trivial). Ein Schlüsselkandidat ist eine Menge von Attributen, von der alle Attribute der Relation voll funktional abhängig sind. Die BCNF (nach Raymond F. Boyce und Edgar F. Codd) verhindert, dass Teile zweier aus mehreren Feldern zusammengesetzten Schlüsselkandidaten voneinander abhängig sind. Die Überführung in die BCNF ist zwar immer verlustfrei möglich, aber nicht immer abhängigkeitserhaltend. Die Boyce-Codd-Normalform war ursprünglich als Vereinfachung der dritten Normalform gedacht, führte aber zu einer neuen Normalform, die die 3NF verschärft. Iváncsy T. () Datenbanksysteme 2011 42 / 51 SQL Die SQL Sprache SQL: Structured Query Language (Strukturierte Abfrage Sprache) im Jahr 1974-75 wurde der Entwicklung bei IBM angefangen (als SEQUEL) im 1979 Teil der Produkt von IBM und ORACLE seit 1987 ANSI Norm Iváncsy T. () Datenbanksysteme 2011 43 / 51 SQL Die SQL Sprache Bedeutung von SQL Normalisierte Sprache, die von fast allen relationalen Datenbank benutzt wird (mit kleinen Modifizierungen) bündige, benutzernahe Sprache, geeignet für Kommunikation auf Netzwerke zwischen Datenbankserver und Klient nichtprocedurellen Sprache Definition von SQL Datenbeschreibungssprache (DDL Data Description Language) Datenmanipulationssprache (DML Data Manipulation Language) Abfragen (Queries) Datenkontrolliersprache (DCL Data Control Language) Iváncsy T. () Datenbanksysteme 2011 44 / 51 SQL Datentypen Elementare Datentypen Numerische Datentypen smallint, integer, bigint 2 byte, 4 byte, 8 byte ganze Zahlen decimal, numeric natürliche Zahlen, Benutzer definierte Präzision real, double 4 bytes 6 digit Präzision, 8 bytes 15 digit Präzision serial, bigserial 4 bytes, 8 bytes automatisch steigernde ganze Zahl Character Datentypen char(n) Ziffern mit fixen Länge, mit Leerzeichen gefüllt varchar(n) Ziffern mit Benutzer Definierten Länge text Ziffern mit veränderbare unbegrenzte Länge Date/Time Types date Datum ohne Zeitangabe time Zeit (mit Mikrosekunde Präzision) timestamp Datum mit Zeitangabe Boolean (wahr/falsch) Spezielle Wert: NULL (leer, Attributwert nicht angegeben) Iváncsy T. () Datenbanksysteme 2011 45 / 51 SQL SQL Befehle Einige SQL Befehle CREATE TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name ( { <column_definition> | <computed_column_definition> } [ <table_constraint> ] [ ,...n ] ) [ ON { partition_scheme_name ( partition_column_name ) | filegroup | "default" } ] [ { TEXTIMAGE_ON { filegroup | "default" } ] [ ; ] Iváncsy T. () Datenbanksysteme 2011 46 / 51 SQL SQL Befehle Einige SQL Befehle CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] [ WITH <view_attribute> [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] [ ; ] Iváncsy T. () Datenbanksysteme 2011 47 / 51 SQL SQL Befehle Einige SQL Befehle SELECT select_list [ INTO new_table ] [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] Iváncsy T. () Datenbanksysteme 2011 48 / 51 SQL SQL Befehle SQL Select (Beispiel) SELECT p.Name AS ProductName, NonDiscountSales = (OrderQty * UnitPrice), Discounts = ((OrderQty * UnitPrice) * UnitPriceDiscount) FROM Production.Product p INNER JOIN Sales.SalesOrderDetail sod ON p.ProductID = sod.ProductID ORDER BY ProductName DESC ; Iváncsy T. () Datenbanksysteme 2011 49 / 51 SQL Transaktionen Transaktionen Ein weiterer wichtiger Teil der Datensicherheit ist das Transaktionskonzept, das Daten gegen Wettlaufsituationen durch den parallelen Zugriff mehrerer Benutzer schützt. Andernfalls könnten Daten von verschiedenen Benutzern gleichzeitig geändert werden. Das Ergebnis der Änderungen würde dann vom Zufall abhängen. Vereinfacht dargestellt, sperren Transaktionen Daten vorübergehend für den Zugriff durch andere Benutzer, bis eine Transaktion durch einen Commit oder Rollback beendet wird. Danach werden die Daten wieder freigegeben. BEGIN { TRAN | TRANSACTION } [ { transaction_name | @tran_name_variable } [ WITH MARK [ ’description’ ] ] ] [ ; ] COMMIT { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable ] ] [ ; ] ROLLBACK { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable | savepoint_name | @savepoint_variable ] [ ; ] Iváncsy T. () Datenbanksysteme 2011 50 / 51 SQL Einige SQL Server Einige bekante SQL Server ORACLE MS-SQL MySQL SQLite PostgreSQL Iváncsy T. () Datenbanksysteme 2011 51 / 51 Good bye!