Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme Relationale Datenbanken Grundlagen ©Christian Gürtler 13. Dezember 2010 neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Inhaltsverzeichnis Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Einleitung Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ zentrale Speicherung neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Einleitung Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ zentrale Speicherung ◮ Entkoppelung Daten – Programm neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Einleitung Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ zentrale Speicherung ◮ Entkoppelung Daten – Programm ◮ Vermeidung Inkonsistenzen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Einleitung Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ zentrale Speicherung ◮ Entkoppelung Daten – Programm ◮ Vermeidung Inkonsistenzen ◮ Vermeidung Redundanzen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Datenbasis Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ eigentliche Daten neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Datenbasis Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ eigentliche Daten ◮ incl. Data Dictionary (Metadaten) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Datenbasis Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ eigentliche Daten ◮ incl. Data Dictionary (Metadaten) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen DBMS Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DBMS: Verwaltung neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen DBMS Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DBMS: Verwaltung ◮ zum Beispiel Rechte neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen DBMS Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DBMS: Verwaltung ◮ zum Beispiel Rechte neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Beispiele Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Mediendatenbanken (Bild, Film, Ton,. . . ) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Beispiele Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Mediendatenbanken (Bild, Film, Ton,. . . ) ◮ Geoinformationsysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Beispiele Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Mediendatenbanken (Bild, Film, Ton,. . . ) ◮ Geoinformationsysteme ◮ Datawarehouses neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Beispiele Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Mediendatenbanken (Bild, Film, Ton,. . . ) ◮ Geoinformationsysteme ◮ Datawarehouses ◮ Datamining neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Hierarchische Relationale Datenbanken ©Christian Gürtler ◮ baumartig strukturiert Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken Hierarchische ©Christian Gürtler ◮ baumartig strukturiert Einleitung Datenbanksysteme Autor Titel 1 Regal 1 neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Titel 2 Regal 2 Netzwerk-Datenbanken Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ nicht mehr hierarchisch neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Netzwerk-Datenbanken Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ nicht mehr hierarchisch ◮ Verknüpfungen untereinander neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Netzwerk-Datenbanken Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ nicht mehr hierarchisch ◮ Verknüpfungen untereinander neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ in den 1970er jahren neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ in den 1970er jahren ◮ Codd, Chen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ in den 1970er jahren ◮ Codd, Chen ◮ Abfragen über Wertevergleiche neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ in den 1970er jahren ◮ Codd, Chen ◮ Abfragen über Wertevergleiche ◮ Tabellen mit Zeilen und Spalten neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ in den 1970er jahren ◮ Codd, Chen ◮ Abfragen über Wertevergleiche ◮ Tabellen mit Zeilen und Spalten ◮ Beziehungen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Objektorientierte DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ◮ eng an objektorientierte Programmiersprachen geknüpft Objektorientierte DB Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ◮ eng an objektorientierte Programmiersprachen geknüpft Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard ◮ 1987 ANSI-SQL Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard ◮ 1987 ANSI-SQL ◮ 1989 SQL2 (referentielle Integrität) Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard ◮ 1987 ANSI-SQL ◮ 1989 SQL2 (referentielle Integrität) ◮ 1993 Objektorientiertes Modell Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard ◮ 1987 ANSI-SQL ◮ 1989 SQL2 (referentielle Integrität) ◮ 1993 Objektorientiertes Modell ◮ 1999 SQL3 Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Geschichtliche Daten Relationale Datenbanken ©Christian Gürtler Einleitung ◮ 1975 Sequel als Abfragesprache ◮ 1980 Oracle, Informix relationale DB mit SQL ◮ 1982 1. Standard ◮ 1987 ANSI-SQL ◮ 1989 SQL2 (referentielle Integrität) ◮ 1993 Objektorientiertes Modell ◮ 1999 SQL3 ◮ 2003 SQL3 (objekt-relationale Erweiterungen) Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen 3 Ebenen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ interne Ebene: Datenstruktur (Speicherung, Zugriff) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen 3 Ebenen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ interne Ebene: Datenstruktur (Speicherung, Zugriff) ◮ konzeptuelle Ebene: logische Verwaltung (ER-Modell) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen 3 Ebenen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ interne Ebene: Datenstruktur (Speicherung, Zugriff) ◮ konzeptuelle Ebene: logische Verwaltung (ER-Modell) ◮ externe Ebene: Benutzersicht, Programme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Sprachen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DML: Data Manipulating (Ändern, Löschen von Daten) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Sprachen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DML: Data Manipulating (Ändern, Löschen von Daten) ◮ DDL: Data Definition (Erzeugen, Löschen, Ändern von Strukturen) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Sprachen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DML: Data Manipulating (Ändern, Löschen von Daten) ◮ DDL: Data Definition (Erzeugen, Löschen, Ändern von Strukturen) ◮ DQL: Data Query (Werte ermitteln) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Sprachen Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ DML: Data Manipulating (Ändern, Löschen von Daten) ◮ DDL: Data Definition (Erzeugen, Löschen, Ändern von Strukturen) ◮ DQL: Data Query (Werte ermitteln) ◮ DCL: Data Control (Rechte, Sicherungen, . . . ) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ER-Modell Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ grafische Skizze neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ER-Modell Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ grafische Skizze ◮ Beschreibung neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ER-Modell Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ grafische Skizze ◮ Beschreibung ◮ Objekte als Entity-Mengen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ER-Modell Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ grafische Skizze ◮ Beschreibung ◮ Objekte als Entity-Mengen ◮ Entity haben Eigenschaften (Attribute) ◮ – optionale (auch NULL möglich) ◮ – obligate (verpflichtend) neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen ER-Modell Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ grafische Skizze ◮ Beschreibung ◮ Objekte als Entity-Mengen ◮ Entity haben Eigenschaften (Attribute) ◮ – optionale (auch NULL möglich) ◮ – obligate (verpflichtend) ◮ Beziehungen neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen 2 Arten eines ER Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Krähenfuß neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen 2 Arten eines ER Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Krähenfuß ◮ Chen-Notation neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken ER-Modell ©Christian Gürtler Einleitung [0, ∗] [1, 1] Datenbanksysteme schreibt Autor Buch (a) [min, max]-Notation bei 1 : N Autor 1 schreibt N Buch (b) Chen-Notation Autor schreibt (c) Krähenfuß-Notation Buch neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Begriffe Relationale Datenbanken ©Christian Gürtler Einleitung Datenbanksysteme ◮ Kardinalität: 1 : 1, 1 : N, M : N ◮ Konnektivität: tatsächliche Beziehungsmenge ◮ Stelligkeit: wie viele Entities pro Beziehung ◮ Primärschlüssel: zeichnet ein Tupel eindeutig aus ◮ Schlüsselkandidat: einer davon wird der Primärschlüssel ◮ Fremdschlüssel: verweist auf eine andere Tabelle neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken 1. Normalform ©Christian Gürtler Einleitung Datenbanksysteme 1. Normalform: alle Werte atomar KLASSE SCHUELER 1A Mueller, Huber, Dorfer 2A Berger, Maier, Wallner Tabelle: nicht atomar neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken 1. Normalform ©Christian Gürtler Einleitung Datenbanksysteme KLASSE SCHUELER 1A Mueller 1A Huber 1A Dorfer Tabelle: atomar neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken 3. Normalform ©Christian Gürtler alle Werte dürfen NUR vom Primärschlüssel abhängen ID PERSON WOHNORT EW-Zahl 1 Mueller Wien 1 Mio 2 Huber Wien 1 Mio 3 Dorfer Graz 300000 Tabelle: nicht in 3. NF EW-Zahl hängt vom Wohnort ab Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken 2. Normalform ©Christian Gürtler alle Werte müssen vom GESAMTEN Primärschlüssel abhängen SCHUELER FACH Mueller Deutsch 1 Mueller Englisch 2 Dorfer Deutsch 1 Tabelle: in 2. NF NOTE Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen Relationale Datenbanken 2. Normalform ©Christian Gürtler alle Werte müssen vom GESAMTEN Primärschlüssel abhängen SCHUELER FACH WOHNORT NOTE Mueller Deutsch Linz 1 Mueller Englisch Linz 2 Dorfer Deutsch Graz 1 Tabelle: nicht in 2. NF Wohnort gehört zum Schüler und nicht zur Kombination aus Schüler – Fach Einleitung Datenbanksysteme neuartige DB Geschichte ANSI-Modell Sprachen ER-Modell Normalformen