1 / 34

Relationale Datenbanken I

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.

Télécharger la présentation

Relationale Datenbanken I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell

  2. 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

  3. BeispielWelche Fächer besucht eine bestimmte Schülerin? Mit unverknüpfbaren Tabellen (z.B. Excel) liesse sich das nicht (oder nur von Hand) herausfinden.

  4. 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

  5. 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)

  6. 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

  7. 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

  8. 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

  9. 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

  10. Entity/Relationship-Modellierung • Entity (Gegenstandstyp) • Relationship (Beziehungstyp) • Attribut (Eigenschaft) • Schlüssel (Identifikation) • Rolle

  11. Entity/Relationship-Modellierung • Entity (Gegenstandstyp) • Relationship (Beziehungstyp) • Attribut (Eigenschaft) • Schlüssel (Identifikation) • Rolle Studenten hören Name MatrNr Hörer

  12. 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

  13. 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

  14. 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.

  15. 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

  16. 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]}

  17. Relationale Darstellung von Beziehungen A11 E1 ... AR1 R ... A21 E2 En ... An1 ... ... R:{[ ]}

  18. 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]}

  19. 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]}

  20. Ausprägung der Beziehung hören VorlNr MatrNr N M Studenten Vorlesungen hören

  21. 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

  22. 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!

  23. Ausprägung von Professoren und Vorlesung lesen Vorlesungen Professoren N 1

  24. Vorsicht: So geht es NICHT lesen Vorlesungen Professoren N 1

  25. Vorsicht: So geht es NICHT:FolgenAnomalien • 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

  26. ... ... R E2 E1 N:M N:1 Relationstypen R  E1x E2 E1 E2 1:N 1:1

  27. Mehrfach-Relationen: Beispiel: betreuen 1 Professoren N betreuen Studenten 1 Seminarthemen Note

  28. 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

  29. 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.

  30. 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

  31. Die relationale Uni-DB

  32. Relationale Modellierung der Generalisierung Fachgebiet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}

  33. 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

More Related