480 likes | 1.14k Views
Relationale Datenbanken I. Datenbankdesign mit dem Entity-Relashionship-Modell. Was sind relationale Datenbanken?. Relationale Datenbanken sind der am weitesten verbreitete Typ von Datenbanken. Relationale Datenbanken speichern Daten in Tabellen.
E N D
Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell
Was sind relationale Datenbanken? • Relationale Datenbanken sind der am weitesten verbreitete Typ von Datenbanken. • Relationale Datenbanken speichern Daten in Tabellen. • Bei der Suche nach bestimmten Informationen können die Inhalte verschiedener Tabellen miteinander verknüpft werden. • Tabellen, die nicht verknüpft werden können, bilden keine Datenbank
BeispielWelche Fächer besucht eine bestimmte Schülerin? Mit unverknüpfbaren Tabellen (z.B. Excel) liesse sich das nicht (oder nur von Hand) herausfinden.
Wo benutzt man Datenbanken? • Behörden (Steuer, Einwohner, Verkehr, Polizei, Schulen, Sozialämter, Spitäler, Justiz usw.) • Unternehmen (Kundenverwaltung, Lagerverwaltung, Rechnungswesen, Lieferantenverwaltung, Angestelltenverwaltung usw.) • Detailhandel (Kaufverhalten) • Vereine (Mitglieder, Anlässe, Rechnungen) • Archive, Bibliotheken, Museen • Wissenschaft (Geographie, Biologie (insb. Genetik), Medizin, Geschichte, Literatur usw.) • Internet (Suchmaschinen, soziale Netzwerke usw. • an vielen weiteren Orten
Aufbau einer Tabelle • Einzelne Einträge werden Tupel genannt Bsp.: („Mickey Mouse“, „Main Street“, 4711) • Schema: legt die Struktur der gespeicherten Daten fest Bsp.: Telefonbuch: {[Name:String, Adresse:String, Telefonnummer:Integer]} (String = Zeichenkette, Integer = Ganzzahl)
Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren • Primärschlüssel: wird unterstrichen • Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt • Wird für die Referenzierung von Tupeln (also Verweise auf Tabellenzeilen) verwendet • Ausprägung: der aktuelle Inhalt einer Tabelle
Objektbeschreibung: Beispiel Universität • Uni-Angestellte • Anzahl: 1000 • Attribute • PersonalNummer • Typ: Integer • Länge: 8 • Wertebereich: 0...99'999'999 • Anzahl Wiederholungen: 0 • Identifizierend: ja • Gehalt • Typ: Dezimalzahl • Länge: (8,2) • Anzahl Wiederholung: 0 • Identifizierend: nein • Rang • Typ: String • Länge: 4 • Anzahl Wiederholung: 0 • Identifizierend: nein
Beziehungsbeschreibung: prüfen • Beteiligte Objekte: • Professor als Prüfer • Student als Prüfling • Vorlesung als Prüfungsstoff • Attribute (Eigenschaften) der Beziehung: • Datum • Uhrzeit • Note • Anzahl: 100 000 pro Jahr
Prozessbeschreibungen • Prozessbeschreibung: Zeugnisausstellung • Häufigkeit: halbjährlich • benötigte Daten • Prüfungsnoten • Fächer • Studenten • ... • Priorität: hoch • Zu verarbeitende Datenmenge • 500 Studenten • 3000 Prüfungen • 10 Studienordnungen
Entity/Relationship-Modellierung • Entity (Gegenstandstyp) • Relationship (Beziehungstyp) • Attribut (Eigenschaft) • Schlüssel (Identifikation) • Rolle
Entity/Relationship-Modellierung • Entity (Gegenstandstyp) • Relationship (Beziehungstyp) • Attribut (Eigenschaft) • Schlüssel (Identifikation) • Rolle Studenten hören Name MatrNr Hörer
Entity/Relationship-Modellierung MatrNr Name Semester • Entity (Gegenstandstyp) • Relationship (Beziehungstyp) • Attribut (Eigenschaft) • Schlüssel (Identifikation) • Rolle Studenten Hörer hören Lehrveranstaltung Vorlesungen VorlNr Titel SWS
voraussetzen Uni-Schema Nach- folger VorlNr MatrNr Vorgänger hören SWS Vorlesungen Name Studenten Titel Semester lesen prüfen Note PersNr Rang arbeitenFür Name Assistenten Professoren Raum Fachgebiet PersNr Name
Universitätsschema in „deutsch“ • Studenten haben eine MatrNr, Name und Semester. Die MatrNr identifiziert einen Studenten eindeutig. • Vorlesungen haben eine VorlNr, SWS und Titel. Die VorlNr identifiziert eine Vorlesung eindeutig. • Professoren haben eine PersNr, Name, Rang und Raum. Die PersNr identifiziert einen Professor eindeutig. • Assistenten haben eine PersNr, Name und Fachgebiet. Die PersNr identifizier einen Assistenten eindeutig. • Studenten hören Vorlesungen. • Vorlesungen setzen andere Vorlesungen voraus. • Professoren lesen Vorlesungen. • Assistenten arbeiten für Professoren. • Studenten werden von Professoren über Vorlesungen geprüft. Sie erhalten hierbei eine Note.
Eigenschaften von ER • Anforderungen • ER Diagramme sind einfach zu erstellen • ER Diagramme sind einfach zu ändern • ER Diagramme sind intuitiv verständlich (auch vom Laien!) • ER Diagramme drücken das Wesentliche aus • Technische Anforderung • Einfachheit • Unterstützung durch Tools (z.B. Visio) • Graphisch • Informationstheoretische Mächtigkeit
Relationale Darstellung von Entitytypen Studenten: {[MatrNr:integer, Name: string, Semester: integer]} Vorlesungen: {[VorlNr:integer, Titel: string, SWS: integer]} Professoren: {[PersNr:integer, Name: string, Rang: string, Raum: integer]} Assistenten: {[PersNr:integer, Name: string, Fachgebiet: string]}
Relationale Darstellung von Beziehungen A11 E1 ... AR1 R ... A21 E2 En ... An1 ... ... R:{[ ]}
Beziehungen unseres Beispiel-Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}
Schlüssel der Relationen hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}
Ausprägung der Beziehung hören VorlNr MatrNr N M Studenten Vorlesungen hören
Verfeinerung des relationalen Schemas 1:N-Beziehung • Initial-Entwurf Vorlesungen :{[VorlNr, Titel, SWS]} Professoren :{[PersNr, Name, Rang, Raum]} lesen:{[VorlNr, PersNr]} lesen Vorlesungen Professoren N 1 1
Verfeinerung des relationalen Schemas 1:N-Beziehung • Initial-Entwurf Vorlesungen :{[VorlNr, Titel, SWS]} Professoren :{[PersNr, Name, Rang, Raum]} lesen:{[VorlNr, PersNr]} • Verfeinerung durch Zusammenfassung Vorlesungen :{[VorlNr, Titel, SWS, gelesenVon]} Professoren :{[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!
Ausprägung von Professoren und Vorlesung lesen Vorlesungen Professoren N 1
Vorsicht: So geht es NICHT lesen Vorlesungen Professoren N 1
Vorsicht: So geht es NICHT:FolgenAnomalien • Update-Anomalie: Was passiert wenn Sokrates umzieht • Lösch-Anomalie: Was passiert wenn „Glaube und Wissen“ wegfällt • Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen
... ... R E2 E1 N:M N:1 Relationstypen R E1x E2 E1 E2 1:N 1:1
Mehrfach-Relationen: Beispiel: betreuen 1 Professoren N betreuen Studenten 1 Seminarthemen Note
p1 b1 p2 Studenten b2 p3 s1 p4 b3 s2 b4 s3 t1 s4 b5 t2 b6 t3 t4 Ausprägung der Beziehung betreuen Professoren Gestrichelte Linien markieren illegale Ausprägungen Seminarthemen
Dadurch erzwungene Konsistenzbedingungen • Studenten dürfen bei demselben Professor bzw. derselben Professorin nur ein Seminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird). • Studenten dürfen dasselbe Seminarthema nur einmal bearbeiten – sie dürfen also nicht bei anderen Professoren ein schon einmal erteiltes Seminarthema nochmals bearbeiten. Es sind aber folgende Datenbankzustände nach wie vor möglich: • Professoren können dasselbe Seminarthema „wiederverwenden“ – also dasselbe Thema auch mehreren Studenten erteilen. • Ein Thema kann von mehreren Professoren vergeben werden – aber an unterschiedliche Studenten.
voraussetzen Nach- folger VorlNr MatrNr Vorgänger hören SWS Vorlesungen Name Studenten Titel Semester lesen prüfen Note PersNr Rang arbeitenFür Name Assistenten Professoren Raum Fachgebiet PersNr Name N M N M N N M 1 1 N 1
Relationale Modellierung der Generalisierung Fachgebiet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}
voraussetzen M N VorlNr MatrNr Nach- folger Vorgänger hören SWS Vorlesungen Studenten Name N M Titel N N M Semester prüfen lesen Note 1 1 Fachgebiet Rang 1 N arbeitenFür Professoren Assistenten Raum is-a PersNr Angestellte Name