3. Relationales Modell & Algebra
Inhalt 3.1 Relationales Modell Wie können wir Daten mathematisch formal darstellen? 3.2 Übersetzung eines konzeptuellen Modells Wie können wir ein konzeptuelles Modell in Form eines Entity-Relationship-Diagramms in Relationen übersetzen? 3.3 Relationale Algebra Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? 2
3.1 Relationales Modell Relationales Modell (auch: Relationenmodell) als das Datenmodell hinter den heute vorherrschenden relationalen Datenbanksystemen (RDBMS) vorgeschlagen im Jahr 1970 durch Edgar F. Codd [2], der u.a. dafür den A. M. Turing Award gewonnen hat mengenorientierte Verarbeitung von Daten, die in sogenannten Relationen (Tabellen) gespeichert werden Quelle: http://amturing.acm.org Studenten MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18879 Marty McFly 3 3
Wertebereiche Wertebereiche (auch: Domäne) (domain) können alle Mengen sein, die nur atomare Werte enthalten, z.b. ganze Zahlen (integer) Kommazahlen (float oder real) Zeichenketten (string) Datentypen wie z.b. Datumsangaben, die eine eigene Struktur haben (Tag, Monat, Jahr) sind also nicht erlaubt (später: RDBMSs erlauben jedoch solche Datentypen) 4
Relationen Relation R ist Untermenge des kartesischen Produkts (Kreuzprodukts) von n Wertebereichen D 1,, D n R D 1... D n Beispiel: Relation Studenten mit vier Komponenten (Matrikelnummer, Vorname, Name und Semester) Studenten integer string string integer Ein Element der Relation R heißt (n-stelliges) Tupel Beispiel: (13765, Moritz, Müller, 1) als Tupel in Studenten 5
Attribute und Schlüssel Komponenten werden zur besseren Identifikation benannt Attribute einer Relationen setzen sich zusammen aus je einem Attributnamen A i (z.b. MatrNr) einem Wertebereich dom(a i ) (z.b. integer) Attributnamen einer Relationen müssen eindeutig sein Jede Relation verfügt über einen Schlüssel, d.h. eine Menge von Attributen, die Tupel eindeutig identifizieren 6
Relationen Relationen werden nach folgendem Muster spezifiziert R : {[ A 1 : D 1,...,A n : D n ]} dabei werden alle Schlüsselattribute unterstrichen Beispiel: Relation Studenten Studenten : [ MatrNr : integer, Vorname : string, Name : string, Semester : integer ] mit eindeutig identifizierendem Schlüsselattribut MatrNr 7
Relationen als Tabellen Relationen meist als Tabellen in RDBMSs bezeichnet mit Attributen als Spalten der Tabelle mit Tupeln als Zeilen der Tabelle Beispiel: Relation Studenten Studenten MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18879 Marty McFly 3 mit vier Attributen und drei Tupeln 8
Ausprägung vs. Schema Unterscheidung zwischen Ausprägung (konkreten Daten) und Schema (Attributnamen A i mit Domänen D i ) Schema der Relation sch(r) ist die Menge aller Attribute sch(r) ={A 1,...,A n } dom(a i ) bezeichnet die Domäne des Attributs A i dom(a i )=D i 9
3.2 Übersetzung eines konzeptuellen Modells Wie können wir ein konzeptuelles Modell in Form eines Entity-Relationship-Diagramms in Relationen übersetzen? Heute: Initiale Übersetzung von Entitytypen und Beziehungstypen in möglichst wenige Relationen Später (in Kapitel 4): Weitere Optimierung eines relationalen Schemas anhand von Normalformen zur Vermeidung von Redundanzen und Anomalien 10
ER-Diagramm für Hochschule MatrNr VorlNr Vorname Studenten hören Vorlesungen SWS Name Titel Semester prüfen lesen Note PersNr Vorname Assistenten arbeiten für Professoren Name Tätigkeit PersNr Fach Vorname Name 11
ER-Diagramm für Musik-Streaming-Dienst ArtistId, Name, YearBegin, YearEnd RecordId, Name, TrackCount, Year Artists publish Records include perform Songs Description SongId, Name, Length 12
Entitytypen als Relationen Jeder Entitytyp wird zu eigener Relation mit entsprechenden Attributen und Schlüssel Beispiel: Für unser ER-Diagramm Hochschule erhalten wir Studenten : [ MatrNr : integer, Vorname : string, Name : string, Semester : integer ] Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string ] Professoren : [ PersNr : integer, Vorname : string, Name : string, Fach : string ] Assistenten : [ PersNr : integer, Vorname : string, Name : string, Tätigkeit : string ] 13
Beziehungstypen als Relationen Jeder Beziehungstyp wird zu eigener Relation übernimmt Schlüsselattribute verbundener Entitytypen, diese werden dann als Fremdschlüssel bezeichnet eigene Attribute des Beziehungstyps bleiben erhalten evtl. ist eine Umbenennung von Attributen notwendig Beispiel: Beziehungstyp prüfen wird zur Relation prüfen : [ MatrNr : integer, VorlNr : integer, PersNr : integer, Note : integer ] Schlüssel der Relation ist von der Kardinalität des Beziehungstyps abhängig 14
N:M-Beziehungstypen als Relationen Schlüssel der Relation zu einem N:M-Beziehungstyp beinhaltet übernommene Attribute aus allen Fremdschlüsseln Beispiel: Studenten hören Vorlesungen hören : [ MatrNr : integer, VorlNr : integer ] Wäre nämlich nur eines der übernommenen Attribute im Schlüssel, könnte jeder Student nur eine Vorlesung hören (bei MatrNr) bzw. jede Vorlesung könnte nur von einem Studenten besucht werden (bei VorlNr) 15
1:N-Beziehungstypen als Relation Schlüssel der Relation zu einem 1:N-Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel des rechten Entitytyps E 2 Beispiel: Professoren lesen Vorlesungen lesen : [ PersNr : integer, VorlNr : integer ] Wären nämlich beide der übernommenen Attribute (PersNr und VorlNr) im Schlüssel, könnte eine Vorlesung von mehreren Professoren gelesen werden 16
N:1-Beziehungstypen als Relationen Schlüssel der Relation zu einem N:1 Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel des linken Entitytyps E 1 Beispiel: Assistenten arbeiten für Professor arbeitenfür : [ AssPersNr : integer, ProfPersNr : integer ] In diesem Fall ist eine Umbenennung der übernommenen Attribute notwendig, da beide ursprünglich gleich heißen 17
1:1-Beziehungstypen als Relationen Schlüssel der Relation zu einem 1:1-Beziehungstyp beinhaltet übernommene Attribute aus dem Fremdschlüssel nur eines Entitytyps (E 1 oder E 2 ) Beispiel: Kennzeichen gehören zu Fahrzeug gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] gehörtzu : oder [ Kennzeichen: integer, FahrzeugNr : integer ] Dies garantiert jedoch nicht die Integrität unserer Daten; mehr zum Thema Datenintegrität später (Kapitel 6) 18
Umsetzung schwacher Entitytypen RaumNr, Kapazität GebNr, Höhe Räume N 1 liegen in Gebäude 19
Umsetzung schwacher Entitytypen Schwacher Entitytyp wird zu eigener Relation übernimmt Schlüssel des übergeordneten starten Entitytyps und ergänzt ihn um die unterscheidenden Attribute eigene Attribute des schwachen Entitytyps bleiben erhalten Beispiel: Räume liegen in Gebäuden Gebäude : [ GebNr : integer, Höhe : integer ] Räume : [ GebNr : integer, RaumNr : integer, Kapazität : integer ] 20
Umsetzungsübung Musik-Streaming-Dienst ArtistId, Name, YearBegin, YearEnd RecordId, Name, TrackCount, Year Artists 1 publish N Records N N include M perform M Songs Description SongId, Name, Length 21
Umsetzungsübung Musik-Streaming-Dienst 22
Umsetzung der Generalisierung PersNr, Vorname, Name Mitarbeiter ist-ein ist-ein Tätigkeit Assistenten Professoren Fach 23
Umsetzung der Generalisierung Jeder Entitytyp wird zu eigener Relation Relation des Obertyps enthält gemeinsame Attribute Relationen der Untertypen enthalten eigene Attribute alle Relationen haben gemeinsamen Schlüssel Beispiel: Assistenten und Professoren als Mitarbeiter Mitarbeiter : [ PersNr : integer, Vorname : string, Name : string ] Professoren : [ PersNr : integer, Fach : string ] Assistenten : [ PersNr : integer, Tätigkeit : string ] 24
Eliminierung von Relationen Beschriebene Vorgehensweise führt zu vielen Relationen Relationen aus 1:N-, N:1- und 1:1-Beziehungstypen (nicht jedoch N:M) können eliminiert werden, hierbei gilt: Nur Relationen mit gleichem Schlüssel zusammenfassen! 25
Eliminierung von Relationen (1:N) Bei 1:N-Beziehungstypen werden der Schlüssel des linken Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des rechten Entitytyps aufgenommen Beispiel: Professoren lesen Vorlesungen lesen : [ PersNr : integer, VorlNr : integer ] Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string ] wird zu Vorlesungen : [ VorlNr : integer, SWS : integer, Titel : string, PersNr : integer ] 26
Eliminierung von Relationen (N:1) Bei N:1-Beziehungstypen werden der Schlüssel des rechten Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des linken Entitytyps aufgenommen Beispiel: Assistenten arbeiten für Professoren Assistenten : [ PersNr : integer, Vorname : string, Name : string, Tätigkeit : string ] arbeitenfür : [ AssPersNr : integer, ProfPersNr : integer ] wird zu Assistenten : [ PersNr : integer,..., ProfPersNr : integer, ] 27
Eliminierung von Relationen (1:1) Bei 1:1-Beziehungstypen werden der Schlüssel des linken (rechten) Entitytyps sowie eventuelle Attribute des Beziehungstyps in Relation des rechten (linken) Entitytyps aufgenommen Beispiel: Kennzeichen gehören zu Fahrzeugen Kennzeichen : [Kennzeichen:integer,...] gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] wird zu Kennzeichen : [ Kennzeichen: integer,..., FahrzeugNr : integer, ] 28
Eliminierung von Relationen (1:1) Beispiel: Kennzeichen gehören zu Fahrzeugen gehörtzu : [ Kennzeichen: integer, FahrzeugNr : integer ] Fahrzeuge : [ FahrzeugNr : integer,...] wird zu Fahrzeuge : [ FahrzeugNr : integer,..., Kennzeichen : integer, ] 29
<latexit sha1_base64="z8gbindcaoqbxcvhr2itkjampxw=">aaac0hichvhlihnbfk1ux2n8xcfotwm2litdgqwhwuvfckomyuzbuglvlzueivwi6rzmkbpx67/5af6dh2glr9fmec8fdtjn1c3uucxk4beovifppctxrl7bud67cfpw7tv9u/covwkchwk30rhjrj1iowgcaiucwwdumqlhbplqrr99auef0r9xzafstnziitjfsm3630qem9tgksrdc4fxr99m+1kpyyflmjannonbdw/btjfv2/2orgxci9tg2ifz38z3vmefj0cndh3bcgluvyra6p/1whtf6/m2rsqdqe+xbgf9qthcldavbyprslulwfgb6epg1v9rzg1vfgjkkno/hruwq0djefxc2ysbd5byja1hsgtllbgq1gauofttyhhqokyvqrevdtfq5f1kss1sutzdjjkxs6tmx2ioi70qzmsbbm2j1sgqt3zcbb5k4oir+dtvproridp5xniyu64od8ypi2x7mz7fgwt/boe7w1he758nxnvnozed8pa8io/jidwny/kghjaj4cnt5crhcu8/pgfp5/tlutvnfr25tzyq/fot7whssg==</latexit> <latexit sha1_base64="z8gbindcaoqbxcvhr2itkjampxw=">aaac0hichvhlihnbfk1ux2n8xcfotwm2litdgqwhwuvfckomyuzbuglvlzueivwi6rzmkbpx67/5af6dh2glr9fmec8fdtjn1c3uucxk4beovifppctxrl7bud67cfpw7tv9u/covwkchwk30rhjrj1iowgcaiucwwdumqlhbplqrr99auef0r9xzafstnziitjfsm3630qem9tgksrdc4fxr99m+1kpyyflmjannonbdw/btjfv2/2orgxci9tg2ifz38z3vmefj0cndh3bcgluvyra6p/1whtf6/m2rsqdqe+xbgf9qthcldavbyprslulwfgb6epg1v9rzg1vfgjkkno/hruwq0djefxc2ysbd5byja1hsgtllbgq1gauofttyhhqokyvqrevdtfq5f1kss1sutzdjjkxs6tmx2ioi70qzmsbbm2j1sgqt3zcbb5k4oir+dtvproridp5xniyu64od8ypi2x7mz7fgwt/boe7w1he758nxnvnozed8pa8io/jidwny/kghjaj4cnt5crhcu8/pgfp5/tlutvnfr25tzyq/fot7whssg==</latexit> <latexit sha1_base64="z8gbindcaoqbxcvhr2itkjampxw=">aaac0hichvhlihnbfk1ux2n8xcfotwm2litdgqwhwuvfckomyuzbuglvlzueivwi6rzmkbpx67/5af6dh2glr9fmec8fdtjn1c3uucxk4beovifppctxrl7bud67cfpw7tv9u/covwkchwk30rhjrj1iowgcaiucwwdumqlhbplqrr99auef0r9xzafstnziitjfsm3630qem9tgksrdc4fxr99m+1kpyyflmjannonbdw/btjfv2/2orgxci9tg2ifz38z3vmefj0cndh3bcgluvyra6p/1whtf6/m2rsqdqe+xbgf9qthcldavbyprslulwfgb6epg1v9rzg1vfgjkkno/hruwq0djefxc2ysbd5byja1hsgtllbgq1gauofttyhhqokyvqrevdtfq5f1kss1sutzdjjkxs6tmx2ioi70qzmsbbm2j1sgqt3zcbb5k4oir+dtvproridp5xniyu64od8ypi2x7mz7fgwt/boe7w1he758nxnvnozed8pa8io/jidwny/kghjaj4cnt5crhcu8/pgfp5/tlutvnfr25tzyq/fot7whssg==</latexit> <latexit sha1_base64="aslbvlc+n035dwoarz01mrkx/me=">aaac0hichvhlbhmxfpumrxjeazzsrmtdamumlrjvv4ukiq2oinkhmqpidm6mvvysfqc1skyvw/6nd+g/9cnwqhckeelkko/oob7wpzdzktwwxwws3rh56/adrbude/cfphzuffzkyjvgcrhyi407ydsdfbqgkfdcixvafznwzgyhc/34kzgvjp6ccwuvoruwu8eprmrc/veinkm2tlez3jimp/o228tkcvmsw6hs9atconvydipj2+4tacqgneinrn2z/w38sbx88xh0qtfxlkda3vuohf5fr4xxnz5s2qrsifomy3bc7rx97wjr2syy9jd30sorohx3r8qj4y0cjvxs70edwmivabyps2g7zepbuj6jnyxoyakfv4uajaj083u5qh2h9vvybmvndfr5p1dsg1quz9zjzswmkfpxmun0t4rz2gzb86gtycihpu42nzfw8yj8wzwf20jemxwuaywpv5q74/srtp0yz+8msn+do+3+iojpr3r7u6ugtsgz8py8iapymuyt9+sqdalpdplthcu8/zyepxfpt1/wnfm9eurwkv3+e3rd6/y=</latexit> <latexit sha1_base64="nu1kz8kfpjc2ydtncff3pcakwco=">aaaconicdvhdahnbgj1drdb401s9681ivbcu7kzuwnov8kaksktnw8guyxbyzttk/pj5vgzdpovp5tv0izxsk5oepwbmcm6zd86z0gjummt+rfg9+1sphm4/6jx+8vtztnf3+yxttwuwylpoe1vsb4irgcfhavfgapwlgmty/mgpx34h67hw33bhojc0unzggcvatbo/c4qfqlsvvphzrsrxjmdjlmcgur/ntzqcxe72676p06y5bklezxvcbbz5l/xr+0ol/pu4tfxva5bpocq83lxu5jzx15g3k24v6+9ny0k2wadf3llv+jk0czrp3urtzwojcpmgzo0hmchcu4uccwg6ee3audanfyxpzqgbw/gktas0i1u5qbuiumk3pa+inkrnfrlcicunevbiuus50tktlcfzurhymhpbsac10kcjf34rnzdgw+hpl0u6myeimvwqakgplzrz7fobnp1qz58okv+di/3+ioczg97w6lynsk32ycvyhgziirmse3jkrorfw9hb6cb6h7+op8vn8fmtny7u3rwgkxpnvwfomtfl</latexit> <latexit sha1_base64="nu1kz8kfpjc2ydtncff3pcakwco=">aaaconicdvhdahnbgj1drdb401s9681ivbcu7kzuwnov8kaksktnw8guyxbyzttk/pj5vgzdpovp5tv0izxsk5oepwbmcm6zd86z0gjummt+rfg9+1sphm4/6jx+8vtztnf3+yxttwuwylpoe1vsb4irgcfhavfgapwlgmty/mgpx34h67hw33bhojc0unzggcvatbo/c4qfqlsvvphzrsrxjmdjlmcgur/ntzqcxe72676p06y5bklezxvcbbz5l/xr+0ol/pu4tfxva5bpocq83lxu5jzx15g3k24v6+9ny0k2wadf3llv+jk0czrp3urtzwojcpmgzo0hmchcu4uccwg6ee3audanfyxpzqgbw/gktas0i1u5qbuiumk3pa+inkrnfrlcicunevbiuus50tktlcfzurhymhpbsac10kcjf34rnzdgw+hpl0u6myeimvwqakgplzrz7fobnp1qz58okv+di/3+ioczg97w6lynsk32ycvyhgziirmse3jkrorfw9hb6cb6h7+op8vn8fmtny7u3rwgkxpnvwfomtfl</latexit> <latexit sha1_base64="nu1kz8kfpjc2ydtncff3pcakwco=">aaaconicdvhdahnbgj1drdb401s9681ivbcu7kzuwnov8kaksktnw8guyxbyzttk/pj5vgzdpovp5tv0izxsk5oepwbmcm6zd86z0gjummt+rfg9+1sphm4/6jx+8vtztnf3+yxttwuwylpoe1vsb4irgcfhavfgapwlgmty/mgpx34h67hw33bhojc0unzggcvatbo/c4qfqlsvvphzrsrxjmdjlmcgur/ntzqcxe72676p06y5bklezxvcbbz5l/xr+0ol/pu4tfxva5bpocq83lxu5jzx15g3k24v6+9ny0k2wadf3llv+jk0czrp3urtzwojcpmgzo0hmchcu4uccwg6ee3audanfyxpzqgbw/gktas0i1u5qbuiumk3pa+inkrnfrlcicunevbiuus50tktlcfzurhymhpbsac10kcjf34rnzdgw+hpl0u6myeimvwqakgplzrz7fobnp1qz58okv+di/3+ioczg97w6lynsk32ycvyhgziirmse3jkrorfw9hb6cb6h7+op8vn8fmtny7u3rwgkxpnvwfomtfl</latexit> <latexit sha1_base64="s5drjbsmmoepsjbgdlrwcjncsaa=">aaaconicdvhdahnbgj1dra3xl9zlbxbjhabkn6xs0qucnyoqltvtiboe2cmx7zd5y+zbarj2wxwu38ghcbijmgq/buzwzpkpzpnksugxkh4k6z27o/d29+53hjx89phj9+n+pten4zdkrhp3xtepumgyokaj19ybu5weq2r2bqfffqpnhdffcw6hvkzwyio4w0inu98pwi1q4xst4clo2rfzsuyltjggew30bnxid9j0fzi07cmsraxci9tg2jfzv7yvtmffj0cndl1h+qs6xpvtrsv1or5b2o67vaj/ucwm2wad/viuemq1z+putzoxvfggkuvm/whqwcwdcyi4hlzdgw+w8rmrycqkyyy4mtrgfkcbr8sr6hjbl2hz85oympj+rqoturgyz42sjjkhq/zgcpwelzgvbra0j9oshnzo42/lswpcpcl/pm/hnhixk88lizxlinfnfd/cthpr+dnb9n9wedafrhx+2ds9xhw1r56tf+qvgzajckrekzmyjdzzsv4nh8nb9gx6mt1pl35b02t15hlzm5t+au1/13c=</latexit> <latexit sha1_base64="hif52bvocaf9ve5ko2ybzmjcy2g=">aaachxicdvfdixmxfm2mh7twxeshkpgy2bcftdndfl32xyov+icsyncxoknj0ttpal5i7oglziv/0n/ggz/cdfzha/esyogcnotee2al8fgup5l02vubn/f2b/vu37l7ck9//8gzn43jmofggnfbqacpnexqoiql64aqjugcrd5t9pov4lww+guulvsk1losbkcyqvn/e4nwdbvxispggxafxlbzsvzkwgazplfltw5jqx/m7unhigahewpw7yusbpqc3kalcnxygbhx82jz9vsle/usy3bwhxtdw2jt2s4ydbu9giwfka5oz/1f5dzwrofglqn301fhsqo0tscltl2y8wapx9eaprsw1ikrqg1gabr1thyhpgp8fboot8ralfdrxxzirxg5ttjjvkiz/+dyxbxxcv7biggetq6gfoljh+qrbi4ukx9c5zmbititzywnmewkcmf8mmk2f+p5m0h2f3b2obxf/olomd6+zinsk6fkgxloruq1gzp35jrmccc/k4pkcfik3utfpkfpq8ujaflh85bsvfrmn5sly94=</latexit> <latexit sha1_base64="hif52bvocaf9ve5ko2ybzmjcy2g=">aaachxicdvfdixmxfm2mh7twxeshkpgy2bcftdndfl32xyov+icsyncxoknj0ttpal5i7oglziv/0n/ggz/cdfzha/esyogcnotee2al8fgup5l02vubn/f2b/vu37l7ck9//8gzn43jmofggnfbqacpnexqoiql64aqjugcrd5t9pov4lww+guulvsk1losbkcyqvn/e4nwdbvxispggxafxlbzsvzkwgazplfltw5jqx/m7unhigahewpw7yusbpqc3kalcnxygbhx82jz9vsle/usy3bwhxtdw2jt2s4ydbu9giwfka5oz/1f5dzwrofglqn301fhsqo0tscltl2y8wapx9eaprsw1ikrqg1gabr1thyhpgp8fboot8ralfdrxxzirxg5ttjjvkiz/+dyxbxxcv7biggetq6gfoljh+qrbi4ukx9c5zmbititzywnmewkcmf8mmk2f+p5m0h2f3b2obxf/olomd6+zinsk6fkgxloruq1gzp35jrmccc/k4pkcfik3utfpkfpq8ujaflh85bsvfrmn5sly94=</latexit> <latexit sha1_base64="hif52bvocaf9ve5ko2ybzmjcy2g=">aaachxicdvfdixmxfm2mh7twxeshkpgy2bcftdndfl32xyov+icsyncxoknj0ttpal5i7oglziv/0n/ggz/cdfzha/esyogcnotee2al8fgup5l02vubn/f2b/vu37l7ck9//8gzn43jmofggnfbqacpnexqoiql64aqjugcrd5t9pov4lww+guulvsk1losbkcyqvn/e4nwdbvxispggxafxlbzsvzkwgazplfltw5jqx/m7unhigahewpw7yusbpqc3kalcnxygbhx82jz9vsle/usy3bwhxtdw2jt2s4ydbu9giwfka5oz/1f5dzwrofglqn301fhsqo0tscltl2y8wapx9eaprsw1ikrqg1gabr1thyhpgp8fboot8ralfdrxxzirxg5ttjjvkiz/+dyxbxxcv7biggetq6gfoljh+qrbi4ukx9c5zmbititzywnmewkcmf8mmk2f+p5m0h2f3b2obxf/olomd6+zinsk6fkgxloruq1gzp35jrmccc/k4pkcfik3utfpkfpq8ujaflh85bsvfrmn5sly94=</latexit> <latexit sha1_base64="c0xl9yuetfc3lspl7dacdjmpues=">aaachxicdvhlbhmxfpumj5yabwgxilezkq0lyeyqcqpukgidc6scsfspm4ps52zixs/zd1ajazb9s/6abr+be4luehflyufn+nj3hjmrhcei+jgkd+7eu7+z+6dz8nhjvf3uk4mlbxrhycinno6kuq9sabiiqalx1gfvtmilm39y6pffwxlh9ddcwkgurbwyck4xuuputylwjdo4rwwwdytpztrsncsltlemo9vye4exou+t9ntfigahewpw7ausbpqe3lklcnvyfbhxk2jz9lsle/umy3bc7rx9o2jz2tyy9fd70sproh93f5utwxsfgrmk3o8ghcuq0ngel9b2ysadpxxoaxjrwlilrgo1gaxofptyhjoq8fvyrbkhbqq8xyi2rsqks02sgtnhyvw/l+p0pirz2gzb86itymihpn5ipmfg4hl550u+tpgim/lc0hhtrih3xvcjbdsxnr8zzp8hf0f9qcrfjntnj+ugdslz8ok8japylpyrj+scdaknp5o95gnyln1jx6fh6zs/r9nk7tkkg5w++w0z58uk</latexit> <latexit sha1_base64="fv9dvl6zs67fog5yme2gmz9st0q=">aaacg3icdvfdaxnbfj1drdzynvral74s5kvqsruhyckiev/qq6ff0xays5id3gyhzbczd0vdsodp8q/0d/jkj3cskjrwlwnzoofm5d4zlrhcyzbdrpgdhxuphm8+6tzdevb8rfflqzong8tgxltq9qkidgrxmekoai6mbsoraefv/nnsp78c67hwx3fhojs0vnzggcvatbrfcorrvnpkkrwbowuotq6tqsamcz8ugjufu+zu7zo/wgyzfz62hysw0xofuint3yv3fv+0qv/lasvc8vosi3bs7wx9qbas5d7i+6s76w33v5cjierk0v1ztdvrjchkgjo3zjodpadhiiag7rsna0pznnywppmhyans16alof2syweqksgvfhxkmuipdg4hq3ukphi5tlzaz5fw7q/modsow8kmqvasacvo05el35hok7dh8pr4ku5mimjolhu05jrkyqx2/qdbtojntwbj/8hzoj8hfjr3hgfktjbjhnln3pccvcddckroyigw8ipainai3xgjfhsp4v1baxz9frnn1ir+8auyhsxy</latexit> <latexit sha1_base64="lzlrzap4pkjnrodrgfc2ar4v9cy=">aaacg3icdvfdaxnbfj1dw62xamzrf18w8yio2d1qsbseff/qg1cpaqvzjcxobrzd5ouzu2iyfnzzl/lx/am+9uc4svtorf4g5ndomcu9zyojumms+xxf9zy27z/yeth5tp34ydpus51tpxvlyms00pa8og4evzbcjglojquqkwfn1fzduj/7ctzxrb7gwkapaa34jdokgzp0vxci31bpk6nwbuwsody5saobmyz8ugjufoyyu7/tplqyzvs4bq9wlklncqeg275nbvtotkr/5wrlwvl6aot20u1l/ug2roquypuro+sn936wifixczzpxhztzrojcpmgzo3zzgdpaziicwg7repaudannyxpzmhyqvq1aalof+tygipkckvfbbkmeiqdw8jqdikpxqytldzzpjx7qzno9suwsgkqfavacvp05mj3ppmkbdg8/brijyyqysexchpysivlvrt+gg0nxhotqfj/cdro5wf/znvdfxjvw+qleuvek5y8i0nyri7jiddyo9qonkcv4s34ttyi966scxt9zpesvfz+dxauzv0=</latexit> <latexit sha1_base64="lzlrzap4pkjnrodrgfc2ar4v9cy=">aaacg3icdvfdaxnbfj1dw62xamzrf18w8yio2d1qsbseff/qg1cpaqvzjcxobrzd5ouzu2iyfnzzl/lx/am+9uc4svtorf4g5ndomcu9zyojumms+xxf9zy27z/yeth5tp34ydpus51tpxvlyms00pa8og4evzbcjglojquqkwfn1fzduj/7ctzxrb7gwkapaa34jdokgzp0vxci31bpk6nwbuwsody5saobmyz8ugjufoyyu7/tplqyzvs4bq9wlklncqeg275nbvtotkr/5wrlwvl6aot20u1l/ug2roquypuro+sn936wifixczzpxhztzrojcpmgzo3zzgdpaziicwg7repaudannyxpzmhyqvq1aalof+tygipkckvfbbkmeiqdw8jqdikpxqytldzzpjx7qzno9suwsgkqfavacvp05mj3ppmkbdg8/brijyyqysexchpysivlvrt+gg0nxhotqfj/cdro5wf/znvdfxjvw+qleuvek5y8i0nyri7jiddyo9qonkcv4s34ttyi966scxt9zpesvfz+dxauzv0=</latexit> <latexit sha1_base64="wec5ien3wowbf9tldfmmsdv2cu0=">aaacg3icdvfdaxnbfj1dw1vtqlhrl74s5qxqkt0nqkuhupffh4rktvvilmf2crmdml/m3jwgycg/6r/wyr/hjezorl0mzogcm5d7z1rgcidz9iokh21spt7aftlz2x367hn3xctlpxvlymi00pa6og4evzbejgkujquqkwfx1ezdqr/6btzxrb7i3eapaa34ldokgrp3vxcit6i0lvr4a3yaujucjiwakrz+vdrqanbr3d91vrcyzvs0au+wlklncqeg2x4md30xwtx/c7vlyxl9g0u77vay/ibbvhif5p3lnfxiqs7h3v/frlnggkimqhojpdnyehomyglatte4mjtnaa0jmhkalip9dvoc2vm6hkcielzpl0guiz5k5+ayukdkijfrzkx1dgnl/mmo0+mylgwabmwctoq+hbrwhemsahsotz/p07ejrnjjpykgnfjjmdwuh2dbcfh8zsb5gfwo+nnax/le2feqqg2yr96sfzkti3jgppjzmism/ix2o9frm3gzpogh8bs/1jhavxlf1io+/q0uvcqv</latexit> <latexit sha1_base64="9hr7ferze/+ya1b6smblvi8npgw=">aaacg3icdvfdaxnbfj3dtlpj1vrpx3xzziugzhddoaugbhyxd0jrtvvilmf29my7zl6yuvsalox+lp+kf8anf4sttixg6uxchm4598i9uxjbhsbjzybcw9948ntzwef51ouxr7rbr8+cri2dednc24ucohbcwqg5crgwfqgsbjwxs88l/fwkronafce5gvzssvepzxq9nenezajxqlsvvdrcmvgx0eahuszgilkzzmpvgl1sbx46vwhttjwq28mli+hnesqw7cfooe9uq+pfrjbplk8umwsn3v7shyslih6dtl98k95w70ceeukoj93fwalzluehe9s5czoyzbtqktmbbserhrjkzrscmu0mnwdzpgitae18vfzquqkub5zbrognlc7nzfgilbqvv8lc6xnswv21hkchut/y1aikew0jm3jk/hfeswksbx5/ncct4wl/k4sf9tnfkjkrxd/dtupjuc8g+j84g/rtj0/s3vca3nymeuvekfckjftksl6qyziijpwktokdydfccd+eg3dv1hogdznvyeqfn/4apcnmkq==</latexit> <latexit sha1_base64="y3liacxwq69xe0u+ilb9x6bqcei=">aaacg3icdvfdaxnbfj1drda0amyxl74s5qvqye6ggqugbpqid0krpi1klza7e7mdml/m3bxdsucbf6l/px/aj3+ek7sfptxlhtmcc+6fe6ywgjtmkqsgfpr47cnt9wedjc3nl152x22dol1bbiomhbbnbxuguiirchrwbixqwqg4k2zhc/3so1jhtfqgcwo5pjxiu84oemrs/zkh/eclrasi4yqjuoq2oowyavpmmnfwqxlsyntz1/kfmlblp7i9xlkifhahatu+i+76vmpv/cvv5pnl1qvm7atbs/qdzfhrq5d2l2/sg+5f5ph4txu86f7jss1qcqqzom6n08rg3lclnaloo1ntwfa2oxwmawkoazs3fwgjaoersoeksnb5swxyrwyodg4uiwekphixshzaz5aw7t5ynb7k/mbtiyjmtsvs4phz3xhpcrc+efx5hk+mj/xnlhbu5xrlyqx2fq/bjo/nnopo/+b00e89pkl7wwnyxevkdxlldklk3pmh+uioyygw8jvydf4ho+faubcowv1raxjczgytlqo//awzws0u</latexit> <latexit sha1_base64="y3liacxwq69xe0u+ilb9x6bqcei=">aaacg3icdvfdaxnbfj1drda0amyxl74s5qvqye6ggqugbpqid0krpi1klza7e7mdml/m3bxdsucbf6l/px/aj3+ek7sfptxlhtmcc+6fe6ywgjtmkqsgfpr47cnt9wedjc3nl152x22dol1bbiomhbbnbxuguiirchrwbixqwqg4k2zhc/3so1jhtfqgcwo5pjxiu84oemrs/zkh/eclrasi4yqjuoq2oowyavpmmnfwqxlsyntz1/kfmlblp7i9xlkifhahatu+i+76vmpv/cvv5pnl1qvm7atbs/qdzfhrq5d2l2/sg+5f5ph4txu86f7jss1qcqqzom6n08rg3lclnaloo1ntwfa2oxwmawkoazs3fwgjaoersoeksnb5swxyrwyodg4uiwekphixshzaz5aw7t5ynb7k/mbtiyjmtsvs4phz3xhpcrc+efx5hk+mj/xnlhbu5xrlyqx2fq/bjo/nnopo/+b00e89pkl7wwnyxevkdxlldklk3pmh+uioyygw8jvydf4ho+faubcowv1raxjczgytlqo//awzws0u</latexit> <latexit sha1_base64="/d/j2oxtoi6k6fhe10um6u3gmxs=">aaacg3icdvfnixnbeo0zxv3jqlhri5fbxaqlmxmelwvhwysehpujuwuzidt0vgab9bfdnwiybvyb/gfp/gg7mclg1akgh++9kqjxlzxcu5z9j+jr1/du3ny/nbh9cofuveh9b6feti7jlbtp3hkfhqxqocvbes+tq1cvxlnq+watn31b54xrn2llsvtqaleqhchq8+g3gvaraemuye5oltsa++qoksquqohmratrdovt3wxnr+tg1e/q/mjdeovzwgzd/yk57ptkdpmvv18wtjqxvptz4sgbt7j1jvdbpt682yht62q+/fnuhrcknxej3s/yzflzgspbjfadovvogs+hwrlkfiy6smvqkcs32pud1kdql90myb2xa+x9slvxsav0sutwxiwjkv/xcloclufg2xjqhrqn7nkpd9+rlit0oux6fpxobsdctt6vehjkfxbn/djafhdi+znb8n9wohnnax/ir8eh26d22rp2ld1joxvfjtlbdskmjlmf0uh0khoc78xp40n88rc1jryzd9loxa9/adjryoa=</latexit> Eliminierungsübung Musik-Streaming-Dienst Artists : {[Artistid : integer, Name : string, YearBegin : integer, YearEnd : integer]} Records : {[RecordId : integer, Name : string, TrackCount : integer, Year : integer]} Songs : ) [SongId : integer, Name : string, Length : integer] * publish : {[ArtistId : integer, RecordId : integer]} include : perform : [RecordId : integer, SongId : integer] [ArtistId : integer, SongId : integer] 30
Zusammenfassung Relationales Modell als vorherrschendes Datenmodell Relationen (Tabellen) besitzen Attribute (Spalten) mit Wertebereichen und beinhalten Tupel (Zeilen) Umsetzung eines konzeptuellen Modells in Relationen Entitytypen werden zu eigenen Relationen Beziehungstypen werden zu eigenen Relationen Relationen zu 1:1:-, 1:N- und N:1-Beziehungstypen können (müssen aber nicht) eliminiert werden 31
Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 3) [2] E. F. Codd: A Relational Model of Data for Large Shared Data Banks, CACM 13(6), 1970 [3] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 (Kapitel 4) 32