Datenbanken Christof Rumpf 22.10.2008.

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Datenbankdesign mit ACCESS.
Datenbanken Beispiel: Musikverwaltungsdatenbank Daten: Musikstück
Mehrwertige Abhängigkeiten (1)
Datenbanken Einführung.
Relationaler Datenbankentwurf (II)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Datenmodellierung Externe Phase Informationsstruktur
Bauinformatik II Softwareanwendungen 1
MS Office-Paket: Access
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
Heinrich-Heine-Universität, FFF-Kolloquium Christof Rumpf
SQL als Abfragesprache
SQL als Abfragesprache
Daten bank St. Wiedemann.
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Datenbanken Christof Rumpf
Das Relationenmodell 1.
Access 2000 Datenbanken.
Normalformen Normalisieren Schlüssel
Datenintegrität Referentielle Integrität create table
6 Normalformen Normalisieren Schlüssel
Einführung Dateisystem <-> Datenbanksystem
Datenmodellierung - Aufbau einer Datenbank -
Relationale Datenbankmodelle
... und alles was dazugehört
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Datenbanken IFB 2002 Klaus Becker.
Die Grundterminologie
Datenbanken?.
Einführung Access Einführung und Datenbankgrundbegriffe
Normalisierung Referat zur Veranstaltung: Datenbanktechnologie, mit praktischen Übungen in eXist und XQuery Datum: 18. April 2011 (3.Sitzung) Dozent: Daniel.
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2011 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #5 Relationale Entwurfstheorie.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #4 Das relationale Modell.
Vorlesung #4 SQL (Teil 1).
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #2 Das relationale Modell (Teil 1)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #2 Das relationale Modell (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Allgemeines zu Datenbanken
(D.h. „Hallo MausFans!“ auf Japanisch).
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Relationales Datenmodell und DDL
Das relationale Modell
verstehen planen bearbeiten
Normalisierungsprozess
Structured Query Language
Vorlesung #2 Das relationale Modell (Teil 1)
Einführung Dateisystem <-> Datenbanksystem
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbank System (DBS) - Warum?
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #5 Relationale Entwurfstheorie.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Datenbanken abfragen mit SQL
BHAK/BHAS 1 Salzburg KIDM 2ASBS Schuljahr 2004/05
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
SQL Basics Schulung –
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 Relationale Entwurfstheorie
(Structured Query Language)
 Präsentation transkript:

Datenbanken Christof Rumpf 22.10.2008

Was ist eine Datenbank? Datenbank, Datenbanksystem, englisch Data-Base-System, zentral verwaltetes System zur widerspruchsfreien und permanenten Speicherung großer Datenmengen eines Informationsgebietes (z. B. naturwissenschaftliche Daten, Wirtschaftsstatistiken), auf die nach unterschiedlichen Anwendungskriterien zugegriffen werden kann. Ein Datenbanksystem besteht aus den auf der Grundlage eines Datenbankmodells organisierten Datenbeständen (Datenbasis) und dem Datenbank-Managementsystem (Abkürzung DBMS), einem Softwarepaket, das die Datenbestände und Zugriffsrechte verwaltet sowie eine Anwenderschnittstelle für die Datendefinition, -eingabe und -manipulation enthält. Meyers Lexikon

Datenbankmodelle Relational - verbreitetster Standard Deduktiv - relational + Prolog Objektorientiert - entspr. OO-Programmierung Objektrelational - relational + objektorientiert Hierarchisch - Baumstruktur, veraltet Netzwerk - Graphen

Datenbankmanagementsystem Ein DBMS ist ein Softwarepaket zur Speicherung und Organisation von Daten aufgrund eines Datenbankmodells zur Verwaltung von Zugriffsrechten enthält Entwicklerschnittstelle zur Definition von Datenmodellen Eingabe und Pflege von Daten Erstellung von ‚Sichten‘ auf Daten (Abfragen) Erstellung von Berichten (Reportgenerator) Erstellung von Benutzerschnittstellen für ‚Normalbenutzer‘ (Formulargenerator)

Relationale DBMS Desktop-DBMS Server-DBMS MS Access, dBase, OpenOffice Base, … Müssen in einer Client-Server-Umgebung ganze Datenbestände auf den Client laden, um eine Abfrage auszuwerten. Server-DBMS Oracle, MySQL, Microsoft SQL Server, … Abfragen werden auf dem Server ausgewertet und nur die Ergebnisse zum Client übertragen.

Aufbau relationaler DBs Relationale Datenbanken bestehen aus Tabellen, die in Felder (Attribute) und Datensätze (Relationen, Tupel) organisiert sind. In jedem Feld stehen Daten eines bestimmten Typs (Text, Zahlen, Datum/Zeit-Ausdrücke, Ja/Nein-Werte, BLOBs, …). Alle Datensätze einer Tabelle haben einen gleichartigen Aufbau, sind gleich lang. Eine Tabelle kann beliebig viele Datensätze enthalten. Felder z.B. Tabelle Personen Id Vorname Name 1 Han Solo 2 Harry Potter 3 Madonna 4 Peter Meier 5 Daten-sätze

Tabellenverknüpfung 1:n Über Schlüsselfelder kann man Tabellen bequem miteinander verknüpfen. Bei einer 1:n-Verknüpfung kann jeder Datensatz der 1-Seite beliebig vielen Datensätzen der n-Seite zugeordnet werden. Umgekehrt kann jeder Datensatz der n-Seite nur mit einem Datensatz der 1-Seite verknüpft sein. Szenario: Jeder Studierende studiert genau einen Studiengang. n 1 Detailtabelle StgId = Fremdschlüssel Mastertabelle StgId = Primärschlüssel PId Vorname Name StgId 1 Han Solo 3 2 Harry Potter Madonna 4 Peter Meier 5 StgId Studiengang 1 Informationswissenschaft 2 Linguistik 3 Informatik Studiengänge Studierende

Tabellenverknüpfung n:m Bei n:m-Verknüpfungen können jedem Datensatz der einen beliebig viele Datensätze der anderen Tabelle zugeordnet werden. Die Vermittlung zwischen n- und m-Seite erfolgt über eine dritte Tabelle und zwei 1:n-Verknüpfungen. Szenario: Jeder Student besucht beliebig viele Seminare. m 1 1 n PId Vorname Name 1 Han Solo 2 Harry Potter 3 Madonna 4 Peter Meier 5 TId PId SemId Abschluss 1 BN 2 3 AP 4 5 SemId Seminar 1 Wissensrepräsentation 2 Datenbanken 3 Semantik Personen Teilnehmer Seminare

Datenmodell Ein Datenmodell ist eine Abbildung von Objekten (z.B. aus der ‚wirklichen‘ Welt) mit ihren (relevanten) Eigenschaften und Beziehungen in einem Datenbankmodell. Beispiel: Universität mit Fakultäten, Instituten, Angestellten, Studenten, Studiengängen, Lehrveranstaltungen, Abschlüssen, Semestern, Gebäuden, Räumen, …

Redundanz und Konsistenz Eine Datenbank soll redundanzfrei sein Jedes (komplexe) Objekt soll nur einmal repräsentiert werden und in allen Beziehungskontexten referenziert werden. Das leistet ein gutes Datenmodell (Normalformen). Eine Datenbank soll konsistent sein Keine Mutationsanomalien Alle Referenzen sollen auflösbar sein. Das leistet ein gutes DBMS (referentielle Integrität).

Mutationsanomalien Treten bei der Repräsentation verschiedener Entitäten in derselben Tabelle auf: Updateanomalien Redundante Einträge müssen mehrfach geändert werden: Fehlerquelle Einfügeanomalien Zuordnungsprobleme bei unvollständigen Datensätzen Löschanomalien Drohender Datenverlust: Beim Löschen einer Entität gehen die Daten zu einer anderen evt. verloren

Normalformen Normalformen garantieren Redundanzfreiheit und verhindern Mutationsanomalien 1. Normalform Alle Attribute haben atomare Werte 2. Normalform Jedes Nichtschlüssel-Attribut ist voll funktional abhängig von jedem Kandidatenschlüssel 3. Normalform xxx

1. Normalform 1. NF Alle Attribute haben atomare Werte PId Vorname Seminare 1 Han Solo Wissensrepräsentation, Semantik 2 Harry Potter Semantik 3 Madonna 4 Peter Meier Datenbanken 5 PId Vorname Name Seminare 1 Han Solo Wissensrepräsentation Semantik 2 Harry Potter 3 Madonna 4 Peter Meier Datenbanken 5 1. NF

Relationen, Schemata, Tupel Seien D1, …, Dn n Domänen (Wertebereiche). Jede Domäne Di enthält atomare Werte aus ausschliesslich einer der Superdomänen String, Integer, Real, Boolean, oder Datum/Zeit. Di = string | int | real | bool | datime Ein Relationenschema  ist definiert als kartesisches Produkt der n Domänen  = D1  …  Dn Eine Relation R ist definiert als eine Teilmenge des kartesischen Produkts der n Domänen R  D1  …  Dn Ein Element t  R wird Tupel genannt. Vgl. Kemper, Alfons & André Eickler (2006) Datenbanksysteme. Oldenbourg.

Attribute Seien die Attribute A1, …, An eindeutige Namen für die Domänen D1, …, Dn einer Relation R mit dom(Ai) = Di, dann notieren wir R  dom(A1)  …  dom(An ) und  = {A1, …, An} oder  = {A1: dom(A1), …, An :dom(An) } Beispiele: Student = {Name, Nachname, MatrNr} Student = {Name:string, Nachname:string, MatrNr:int} Das heisst: Ein Relationenschema ist eine Menge von Attributen und eine Relation ist eine Menge von Tupeln als Teilmenge des kartesischen Produkts der Domänen von Attributen.

Schlüssel Seien t1, …, tm  R mit ti  dom(A1)  …  dom(An ). Sei ti.Aj der Wert von Attribut Aj des Tupels ti  R. As   wird Schlüssel oder Schlüsselattribut von R genannt, wenn gilt:  ti, tj  R: ti.As  tj.As für i  j Das heisst, die Werte eines Schlüsselattributs müssen für jedes Tupel eindeutig sein. Schlüssel können auch aus mehreren Attributen zusammengesetzt sein: Teilnehmer = {Person, Veranstaltung} Schlüsselattribute werden oft künstlich erzeugt: Person = {PId, Vorname, Nachname}

Funktionale Abhängigkeit Eine funktionale Abhängigkeit ist eine Bedingung    mit ,    von R bzw. {A1, …, Ak}  {B1, …, Bm} Eine solche funktionale Abhängigkeit ist erfüllt, wenn für alle Paare von Tupeln r, t  R gilt r. = t.  r. = t. wobei r. = t.  A  : r.A = t.A Das heisst, immer wenn zwei Tupel gleiche Werte für alle Attribute A in  haben, müssen auch die Werte aller Attribute B in  gleich sein, bzw  ist funktional abhängig von . Für eine Relation R mit Relationenschema  ist    ein Schlüssel, falls   

Hülle, Armstrong-Axiome Die Hülle F+ einer Relation R mit Relationenschema  ist die Menge aller funktionalen Abhängigkeiten    mit ,    . Die Hülle kann vollständig hergeleitet werden mit den drei Armstong-Axiomen: Reflexivität Verstärkung Transitivität

Weitere Herleitungsregeln Die Armstrong-Axiome sind vollständig, aber es gibt noch weitere Herleitungsregeln für funktionale Abhängigkeiten: Vereinigung Dekomposition Pseudotransitivität

Kanonische Überdeckung Zwei Mengen funktionaler Abhängigkeiten F und G heissen genau dann äquivalent, wenn ihre Hüllen gleich sind: F  G  F+ = G+ Zu einer Menge funktionaler Abhängigkeiten F ist Fc eine kanonische Überdeckung, wenn gilt: 1. 2. a) b) 3. Jede linke Seite einer funktionalen Abhängigkeit in Fc ist einzigartig.

Volle Funktionale Abhängigkeit Eine Attributmenge  ist von einer Attributmenge  voll funktional abhängig falls folgende Bedingungen erfüllt sind: 1. 2. ( ist minimal) Falls gilt, bezeichnet man  als Kandidatenschlüssel von . Kandidatenschlüssel sind minimal bezgl. ihrer Attributmenge, d.h. man kann kein Attribut aus  entfernen, ohne dass die volle funktionale Abhängigkeit von  verlorengeht.

2. Normalform Eine Relation R mit Relationenschema  ist in zweiter Normalform, wenn sie in erster Normalform ist und jedes Nichtschlüssel-Attribut A   voll funktional abhängig ist von jedem Kandidatenschlüssel der Relation. PId Vorname Name 1 Han Solo 2 Harry Potter 3 Madonna 4 Peter Meier 5 PId Vorname Name Seminare 1 Han Solo Wissensrepräsentation Semantik 2 Harry Potter 3 Madonna 4 Peter Meier Datenbanken 5 2NF PId Seminare 1 Wissensrepräsentation Semantik 2 3 4 Datenbanken 5 {PId}  {Vorname, Name} minimal {PId, Seminare}  {Vorname, Name} {PId, Seminare, Vorname, Name}  { } ?

SQL SQL Structured Query Language ist eine Sprache zur Abfrage, Manipulation und Definition von Daten in relationalen Datenbanken. Die Semantik von SQL basiert auf der relationalen Algebra. Sprachelemente Abfrage: SELECT Manipulation: INSERT, DELETE, UPDATE Datendefinition: CREATE, ALTER, DROP Zugriffsrechte: GRANT, REVOKE SQL wird von fast allen relationalen DBMS unterstützt und ist standardisiert nach ANSI und ISO. MS Access: Jede in der Access-Entwurfsansicht erstellte Abfrage hat eine äquivalente SQL-Darstellung, aber nicht alle SQL-Ausdrücke können in der Access-Entwurfsansicht erstellt werden (z.B. UNION-Abfragen).

SELECT Mit SELECT werden Sichten auf Daten erstellt, die unter bestimmten Bedingungen editierbar sind. SELECT [DISTINCT] S-Attribute FROM F-Relation [WHERE Where-Klausel] [GROUP BY (Gruppierungsattribute) [HAVING Having-Klausel]] [ORDER BY (Sortierungsattribut [ASC|DESC])+]; S-Attribute: Attribute aus F-Relation, Konstanten, Funktionen (auf Attributen) F-Relation: Tabelle, Sichten (Abfragen), kartesische Produkte, Joins Where-Klausel: Bedingungen für Attributwerte (Selektion) Gruppierungsattribute: Gruppierung für Aggregatfunktionen Having-Klausel: Bedingungen für Aggregatfunktionen auf Gruppierungsattributen