Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

(Vom ER-Modell zum) relationalen Datenmodell

Patrick Boekhoven8:42 57.469 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 50 Zeilen
Herunterladen
  1. So, moin moin! Schön, dass ihr wieder dabei seid. In diesem Video werden wir uns mit dem relationalen Datenmodell auseinandersetzen, also das Modell, was wir brauchen, wenn es um die
  2. konkrete Implementierung unserer Datenbank geht. An der Stelle ein Hinweis: Wenn ihr im vorherigen Teil, also in dem Unfall-Linken Video, noch nicht reingeschaut habt, dann haben wir uns mit dem
  3. ER-Modell auseinandergesetzt. Und das stellt die Grundlage für dieses Video dar bzw. in dem Video ging es darum, wie wir ein Datenbankdesign können, ohne dabei wirklich auf die Details einzugehen.
  4. Und ihr könnt euch vorstellen, das ist natürlich von Vorteil, wenn man erstmal loslegen kann, ohne dass man auf jedes Detail achten muss. Aber alle Theorie und alle Abstraktionen nutzen natürlich
  5. nichts, sondern in der Praxis müssen wir konkret werden. Und genau das wollen wir in diesem Video einmal ändern. Deswegen wird aus unserem Modell aus dem ersten Teil jetzt ein relationales Modell.
  6. Denn das ermöglicht uns, unser abstraktes Modell in eine konkrete Implementierung zu überführen. Und das klingt jetzt tatsächlich echt ein bisschen kompliziert, als es eigentlich ist. Und wir tasten
  7. uns jetzt ganz langsam dran. In unserem vorherigen Teil haben wir die Entitätstypen Kunde, Bestellung und Artikel vorgefunden bzw. diese Entitätstypen haben wir in unserem Modell modelliert. Und diese
  8. Entitätstypen, inklusive der Beziehungen, die ihr dazwischen seht, also "tätigt" und "enthält", stellen jetzt die Grundlage für das relationale Datenmodell da. Und wir beginnen mit Schritt
  9. eins. Und da geht es darum, dass wir für jeden Entitätstyp eine Tabelle mit den technischen Details erstellen. Und wir starten dafür mit dem Kunden. Und ihr seht, wir haben ja schon die
  10. Tabelle "Kunde" für unser relationales Datenmodell modelliert. Und oben in der obersten Spalte findet sich der Name der Tabelle wieder. Und jede dieser Zahlen steht dann später für eine Spalte
  11. der Tabelle. Und in der zweiten Spalte findet sich dann jeweils der Name der Spalte wieder. Soweit keine neuen Informationen bzw. soweit sind wir jetzt gar nicht konkreter geworden. Das ist
  12. richtig. Aber wenn ihr jetzt aber recht schaut, dann seht ihr, dass wir hier Datentypen vorfinden. Für die Kundennummer nehmen wir also eine ganze Zahl. Für den Namen und für den Vornamen jeweils
  13. eine Zeichenkette mit 40 Zeichen. Und hier sind wir jetzt schon deutlich konkreter geworden. Denn wir haben hier die Datentypen für unsere einzelnen Spalten definiert. Und ganz rechts sind wir sogar
  14. noch weiter gegangen. Wir haben angegeben, dass es sich um einen Auto-Inkrement-Wert handelt. Also einen Wert, der automatisch hochzählt. Und natürlich gehört zu jeder Tabelle,
  15. die wir definieren, auch der Primärschlüssel. Und den kennzeichnen wir durch ein "PK" in der ganzen linken Spalte. Also alles, was die Schlüssel angeht, dafür nutzen wir die Spalte,
  16. die wir ganz links vorfinden. Und wenn wir uns jetzt mal zurück erinnern: Wir hatten in unserem Modell den Entitätstyp "Kunde" mit der Kundennummer, den Namen und dem Vornamen zur
  17. Verfügung bzw. wir wussten, dass die Kundennummer den Primärschlüssel darstellt. Und jetzt wissen wir schon, um welche Datentypen es sich hierbei handelt. Und das, was ein Auto-Inkrement-Wert
  18. bedeutet, wissen wir auch. Das heißt, wir sind in Sachen Implementierung jetzt wirklich weiter ins Detail gegangen. Und nochmal zum Verständnis: Wenn wir das jetzt genauso umsetzen würden,
  19. dann würde unsere Tabelle "Kunde" folgendermaßen aussehen: Hier die Spalten "Kundennummer", "Name" und "Vorname" zur Verfügung. Und darunter findet ihr dann, wie ihr das aus der normalen Datenbank
  20. kennt, die einzelnen Datensätze wieder. Und dann geht es weiter mit unserem zweiten Entitätstyp, also mit der Bestellung. Und hier nutzen wir bzw. als Attribute benötigen wir hier
  21. die "Bestellnummer" und das "Datum". Bei den Datentypen dürfen sich hier keine weiteren Überraschungen befinden. Also, als "Bestellnummer" nehmen wir natürlich auch eine Ganzzahl. Und für
  22. das "Datum" – ja, ihr könnt euch denken – ein Datum. Und es gab auch keine Begründung, hier bei der Bestellnummer nicht auf einen Auto-Inkrement-Wert zurückzugreifen. Dass die
  23. Bestellnummer jetzt den Primärschlüssel darstellt, ist jetzt wahrscheinlich auch keine Überraschung. Und dann müssen wir uns nochmal um den Artikel bzw. um den Entitätstyp "Artikel" kümmern. Und
  24. hier haben wir wieder die "Artikelnummer", die den Primärschlüssel darstellt. Und logischerweise vergeben wir hier wieder mit "Auto-Inkrement" einen automatisch generierten Wert. Dann folgt
  25. die "Bezeichnung" mit einem "varchar". Und hier nutzen wir auch 40 Zeichen. Und ganz rechts findet ihr jetzt "unique", also einzigartig. Also das technische Detail, dass wir diese Bezeichnung
  26. nur einmal vergeben dürfen. Und darunter findet sich dann der "Preis". Und hier nutzen wir eine Zahl mit sechs Stellen vor dem Komma und zwei Stellen nach dem Komma. Und damit haben wir den
  27. ersten Schritt hinter uns gebracht. Wir haben für jeden Entitätstyp eine Tabelle erstellt und sind technisch schon sehr stark ins Detail gegangen. Aber jetzt kommen wir zum zweiten Schritt,
  28. und zwar zum Identifizieren der Beziehung und Übertragung auf unserem Datenmodell. Und wir starten mit der Beziehung zwischen dem Kunden und der Bestellung. Und hier handelt es sich
  29. um eine 1:1-Beziehung. Und das impliziert bzw. das bedeutet, dass ein Kunde null, eine oder mehrere Bestellungen getätigt haben kann und eine Bestellung wird immer von einem Kunden getätigt.
  30. Also eine Bestellung wird immer genau einem Kunden zugeordnet. Und diese Art der Beziehung, wo ihr auf der einen Seite die Eins und auf der anderen Seite das N habt, die ist noch recht
  31. leicht aufzulösen. Denn in dem Fall müsst ihr den Primärschlüssel auf der Seite der Eins, also in dem Fall vom Kunden, als Fremdschlüssel auf der Seite, wo das Entsteht, einbauen. Nochmal kurz
  32. zur Erinnerung: Ein Primärschlüssel identifiziert einen Datensatz und ist natürlich einzigartig. Also beispielsweise unsere Kundennummer, die gibt es nur ein einziges Mal. Und ein Fremdschlüssel,
  33. der referenziert einen Primärschlüssel. So zeigt er auf einen Primärschlüssel. Und in der Tabelle "Bestellung" da nutzen wir jetzt den Fremdschlüssel und in dem Fall "Kundennummer".
  34. Und dieser referenziert jetzt die "Kundennummer" aus der Tabelle "Kunde". Was jetzt bedeutet, wenn ich in der Tabelle "Bestellung" bei "Kundennummer" die Eins eintrage, dann referenziert dieser Wert
  35. den Kunden mit der Kundennummer Eins aus der Tabelle "Kunde". Und wir haben gesagt, die ganz linke Spalte in unserem relationalen Datenmodell, die nutzen wir für die Schlüssel. Und wir haben
  36. jetzt ja auch festgestellt, die handelt es sich nicht um einen Primärschlüssel, also nicht um den Primärschlüssel, sondern um den Fremdschlüssel. Also FK für Fremdschlüssel. Und das Ganze
  37. verbinden wir jetzt noch und zwar mit Linien, damit wir wissen, dass eine Referenz besteht. Also von der "Kundennummer" aus der Tabelle "Kunde" zur "Kundennummer" in der Tabelle "Bestellung".
  38. Und dann haben wir unsere 1:1-Beziehung schon aufgelöst. Denn jetzt kann die "Kundennummer" in der Tabelle "Kunde" logischerweise nur einmal vorkommen, aber unsere "Kundennummer" in der
  39. Tabelle "Bestellung", die kann unendlich häufig vorkommen. Was bedeutet, dass unsere Kunden auch unendlich viele Bestellungen tätigen können. Und dann müssen wir uns noch um die N:M-Beziehung,
  40. also zwischen Artikel und Bestellung, kümmern. Und das ist ein klein wenig komplizierter, denn unsere relationalen Datenbanken, die können nur mit 1:N bzw. 1:1-Beziehungen direkt umgehen.
  41. Und deswegen müssen wir aus dieser N:M-Beziehung zwei 1:N-Beziehungen basteln. Und das machen wir, indem wir eine neue Tabelle anlegen und die nennen wir dann "BestellungArtikel". Und in
  42. dieser Tabelle "BestellungArtikel" finden sich die "Bestellnummer" und die "Artikelnummer" wieder, die gleichzeitig den Primärschlüssel darstellen. Das bedeutet, die Attributkombination
  43. "Bestellnummer" und "Artikelnummer" darf nur ein einziges Mal vorkommen und identifiziert diesen Datensatz dann zweifelsfrei. Und bei der "Bestellnummer" als auch bei der "Artikelnummer"
  44. handelt es sich logischerweise um eine Ganzzahl und auch um einen Fremdschlüssel. Womit wir dann das, was wir bei der 1:N bzw. 1:1-Beziehung gerade gemacht haben, hier wiederholen. Wir holen uns
  45. hier jeweils den Fremd- bzw. den Primärschlüssel aus seiner Tabelle und nutzen den hier in zweifacher Form als Fremdschlüssel in unserer Tabelle wieder. Und damit können wir jetzt das
  46. N bzw. das M abbilden. Also, das eine Bestellung mehrere Artikel haben kann und ein Artikel bzw. die Artikel in mehreren Bestellungen enthalten sein können. Und dann verbinden wir das Ganze
  47. noch, also dass wir wissen, dass eine Referenz besteht. Also von der "Bestellnummer" aus der Tabelle "BestellungArtikel" zur "Bestellnummer" in der Tabelle "Bestellung" und von der
  48. "Artikelnummer" in der Tabelle "BestellungArtikel" zur "Artikelnummer" in der Tabelle "Artikel". Und damit haben wir unsere N:M-Beziehung in zwei 1:N-Beziehungen aufgelöst.
  49. Und ich würde sagen, damit sind wir fertig. Wir haben jetzt aus unserem abstrakten Modell ein relationales Modell gemacht. Und damit könnten wir jetzt theoretisch schon unsere Datenbank anlegen.
  50. Aber wir werden noch ein Stückchen weitergehen und in dem nächsten Video schauen wir uns mal an, was wir jetzt mit dem Modell eigentlich machen können.

Zum Nachlesen