32
3. Relationales Modell & Algebra

3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

3. Relationales Modell & Algebra

Page 2: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

2

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 einesEntity-Relationship-Diagramms in Relationen übersetzen?

§ 3.3 Relationale Algebra

§ Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren?

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 3: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

3

3.1 Relationales Modell§ Relationales Modell (auch: Relationenmodell)

§ als das Datenmodell hinter den heute vorherrschendenrelationalen 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

Datenbanken / Kapitel 3: Relationales Modell & Algebra

StudentenMatrNr Vorname Name Semester

13765 Moritz Muller 118877 Peter Parker 718879 Marty McFly 3

Page 4: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

4

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)

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 5: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

5

Relationen§ Relation R ist Untermenge des kartesischen Produkts

(Kreuzprodukts) von n Wertebereichen D1, …, Dn

§ Beispiel: Relation Studenten mit vier Komponenten (Matrikelnummer, Vorname, Name und Semester)

§ Ein Element der Relation R heißt (n-stelliges) Tupel

§ Beispiel: (13765, Moritz, Müller, 1) als Tupel in Studenten

R ™ D1 ◊ . . . ◊ Dn

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Studenten ™ integer ◊ string ◊ string ◊ integer

Page 6: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

6

Attribute und Schlüssel§ Komponenten werden zur besseren Identifikation benannt

§ Attribute einer Relationen setzen sich zusammen aus je

§ einem Attributnamen Ai (z.B. MatrNr)

§ einem Wertebereich dom(Ai) (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

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 7: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

7

Relationen§ Relationen werden nach folgendem Muster spezifiziert

dabei werden alle Schlüsselattribute unterstrichen

§ Beispiel: Relation Studenten

mit eindeutig identifizierendem Schlüsselattribut MatrNr

R : {[ A1 : D1, . . . , An : Dn ]}

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Studenten :Ó

[ MatrNr : integer, Vorname : string, Name : string, Semester : integer ]Ô

Page 8: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

8

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

mit vier Attributen und drei Tupeln

Datenbanken / Kapitel 3: Relationales Modell & Algebra

StudentenMatrNr Vorname Name Semester

13765 Moritz Muller 118877 Peter Parker 718879 Marty McFly 3

Page 9: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

9

Ausprägung vs. Schema§ Unterscheidung zwischen Ausprägung (konkreten Daten)

und Schema (Attributnamen Ai mit Domänen Di)

§ Schema der Relation sch(R) ist die Menge aller Attribute

§ dom(Ai) bezeichnet die Domäne des Attributs Ai

Datenbanken / Kapitel 3: Relationales Modell & Algebra

sch(R) = {A1, . . . , An}

dom(Ai) = Di

Page 10: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

10

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 Normalformenzur Vermeidung von Redundanzen und Anomalien

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 11: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

11

ER-Diagramm für Hochschule

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Professoren

prüfen

Studenten Vorlesungen

PersNr

Note

lesen

hören

Vorname

Vorname

MatrNr

SWS

Titel

VorlNr

Semester

Name

Assistenten arbeiten für

Name

PersNr

Vorname

Name

Tätigkeit Fach

Page 12: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

12

ER-Diagramm für Musik-Streaming-Dienst

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Records

ArtistId, Name, YearBegin, YearEnd

Artists publish

RecordId, Name, TrackCount, Year

include

Songs

SongId, Name, Length

perform

Description

Page 13: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

13

Entitytypen als Relationen§ Jeder Entitytyp wird zu eigener Relation

§ mit entsprechenden Attributen und Schlüssel

§ Beispiel: Für unser ER-Diagramm Hochschule erhalten wir

Datenbanken / Kapitel 3: Relationales Modell & Algebra

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, Tatigkeit : string ]Ô

Page 14: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

14

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

§ Schlüssel der Relation ist von der Kardinalität des Beziehungstyps abhängig

Datenbanken / Kapitel 3: Relationales Modell & Algebra

prufen :Ó

[ MatrNr : integer, VorlNr : integer, PersNr : integer, Note : integer ]Ô

Page 15: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

15

N:M-Beziehungstypen als Relationen§ Schlüssel der Relation zu einem N:M-Beziehungstyp

beinhaltet übernommene Attributeaus allen Fremdschlüsseln

§ Beispiel: Studenten hören Vorlesungen

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)

Datenbanken / Kapitel 3: Relationales Modell & Algebra

horen :Ó

[ MatrNr : integer, VorlNr : integer ]Ô

Page 16: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

16

1:N-Beziehungstypen als Relation§ Schlüssel der Relation zu einem 1:N-Beziehungstyp

beinhaltet übernommene Attributeaus dem Fremdschlüssel des rechten Entitytyps E2

§ Beispiel: Professoren lesen Vorlesungen

Wären nämlich beide der übernommenen Attribute(PersNr und VorlNr) im Schlüssel, könnte eine Vorlesung von mehreren Professoren gelesen werden

Datenbanken / Kapitel 3: Relationales Modell & Algebra

lesen :Ó

[ PersNr : integer, VorlNr : integer ]Ô

Page 17: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

17

N:1-Beziehungstypen als Relationen§ Schlüssel der Relation zu einem N:1 Beziehungstyp

beinhaltet übernommene Attributeaus dem Fremdschlüssel des linken Entitytyps E1

§ Beispiel: Assistenten arbeiten für Professor

In diesem Fall ist eine Umbenennung der übernommenen Attribute notwendig, da beide ursprünglich gleich heißen

Datenbanken / Kapitel 3: Relationales Modell & Algebra

arbeitenFur :Ó

[ AssPersNr : integer, ProfPersNr : integer ]Ô

Page 18: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

18

1:1-Beziehungstypen als Relationen§ Schlüssel der Relation zu einem 1:1-Beziehungstyp

beinhaltet übernommene Attributeaus dem Fremdschlüssel nur eines Entitytyps (E1 oder E2)

§ Beispiel: Kennzeichen gehören zu Fahrzeug

oder

Dies garantiert jedoch nicht die Integrität unserer Daten;mehr zum Thema Datenintegrität später (Kapitel 6)

Datenbanken / Kapitel 3: Relationales Modell & Algebra

gehortZu :Ó

[ Kennzeichen : integer, FahrzeugNr : integer ]Ô

gehortZu :Ó

[ Kennzeichen : integer, FahrzeugNr : integer ]Ô

Page 19: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

19

Umsetzung schwacher Entitytypen

Datenbanken / Kapitel 3: Relationales Modell & Algebra

GebNr, Höhe

GebäudeRäume liegen in

RaumNr, Kapazität

N 1

Page 20: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

20

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

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Raume :Ó

[ GebNr : integer, RaumNr : integer, Kapazitat : integer ]Ô

Gebaude :

Ó[ GebNr : integer, Hohe : integer ]

Ô

Page 21: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

21

Umsetzungsübung Musik-Streaming-Dienst

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Records

ArtistId, Name, YearBegin, YearEnd

Artists publish

RecordId, Name, TrackCount, Year

include

Songs

SongId, Name, Length

perform

Description

N1

M

N N

M

Page 22: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

22

Umsetzungsübung Musik-Streaming-Dienst

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 23: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

23

Umsetzung der Generalisierung

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Assistenten Professoren

Mitarbeiter

ist-ein

PersNr, Vorname, Name

Tätigkeit Fach

ist-ein

Page 24: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

24

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

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Professoren :Ó

[ PersNr : integer, Fach : string ]Ô

Mitarbeiter :Ó

[ PersNr : integer, Vorname : string, Name : string ]Ô

Assistenten :Ó

[ PersNr : integer, Tatigkeit : string ]Ô

Page 25: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

25

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!

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 26: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

26

Eliminierung von Relationen (1:N)

§ Bei 1:N-Beziehungstypen werdender Schlüssel des linken Entitytypssowie eventuelle Attribute des Beziehungstypsin Relation des rechten Entitytyps aufgenommen

§ Beispiel: Professoren lesen Vorlesungen

wird zu

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Vorlesungen :Ó

[ VorlNr : integer, SWS : integer, Titel : string ]Ô

lesen :Ó

[ PersNr : integer, VorlNr : integer ]Ô

Vorlesungen :Ó

[ VorlNr : integer, SWS : integer, Titel : string, PersNr : integer ]Ô

Page 27: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

27

Eliminierung von Relationen (N:1)

§ Bei N:1-Beziehungstypen werdender Schlüssel des rechten Entitytypssowie eventuelle Attribute des Beziehungstypsin Relation des linken Entitytyps aufgenommen

§ Beispiel: Assistenten arbeiten für Professoren

wird zu

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Assistenten :Ó

[ PersNr : integer, Vorname : string, Name : string, Tatigkeit : string ]Ô

arbeitenFur :Ó

[ AssPersNr : integer, ProfPersNr : integer ]Ô

Assistenten :Ó

[ PersNr : integer, . . . , ProfPersNr : integer, ]Ô

Page 28: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

28

Eliminierung von Relationen (1:1)

§ Bei 1:1-Beziehungstypen werdender Schlüssel des linken (rechten) Entitytypssowie eventuelle Attribute des Beziehungstypsin Relation des rechten (linken) Entitytyps aufgenommen

§ Beispiel: Kennzeichen gehören zu Fahrzeugen

wird zu

Datenbanken / Kapitel 3: Relationales Modell & Algebra

gehortZu :Ó

[ Kennzeichen : integer, FahrzeugNr : integer ]Ô

Kennzeichen :Ó

[ Kennzeichen : integer, . . . ]Ô

Kennzeichen :Ó

[ Kennzeichen : integer, . . . , FahrzeugNr : integer, ]Ô

Page 29: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

29

Eliminierung von Relationen (1:1)§ Beispiel: Kennzeichen gehören zu Fahrzeugen

wird zu

Datenbanken / Kapitel 3: Relationales Modell & Algebra

gehortZu :Ó

[ Kennzeichen : integer, FahrzeugNr : integer ]Ô

Fahrzeuge :Ó

[ FahrzeugNr : integer, . . . ]Ô

Fahrzeuge :Ó

[ FahrzeugNr : integer, . . . , Kennzeichen : integer, ]Ô

Page 30: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

30

Eliminierungsübung Musik-Streaming-Dienst

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Artists : {[Artistid : integer, Name : string, YearBegin : integer, YearEnd : integer]}<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>

Records : {[RecordId : integer, Name : string, TrackCount : integer, Year : integer]}<latexit sha1_base64="4BQmU5xdV3l1Wr1LE2F7ugXO6bU=">AAACznichVHLbtNAFB2bVwmv8NixsciGBYrtqhJVV5G6gQUooKYpiq1wPblxR5mHNXNdNbIstvwbX8A/8BFMXBCkEeJqpDk658zVvWeKSgpHSfI9CG/cvHX7zt7d3r37Dx4+6j9+cupMbTlOuJHGnhXgUAqNExIk8ayyCKqQOC1Wxxt9eoHWCaNPaF1hrqDUYik4kKfm/W8Z4SVpYxXI5iNyYxeujY6iTOKSsmaW1XqBdtO92XW+XbTtUUcTNUITlmjbV9Hfxveg8I/HkRW6vGY5scD9pLWm/zX7hGB3PXlmRXlOWTvvD5LhfrKpaBekw+5OBqNnrKvxvP8jWxheK9TEJTg3S5OK8gYsCS6x7WW1w8oPByXOIKmgQps3JRqFZNfbsofar+rypvuTLbEB5dxaFTukAjrfJgtjVgSFu9acloe537eqCTX3WgebeOL8z8arAq0/In63jueVJ/xOLpbgY4oVcGvc0MO25+P5nUH0b3C6P0w9/nAwGB1e5cT22HP2gr1kKXvNRuwNG7MJ40EaTIPPAYTj8CJswy9X1jD49eYp26rw609uoOtX</latexit><latexit sha1_base64="4BQmU5xdV3l1Wr1LE2F7ugXO6bU=">AAACznichVHLbtNAFB2bVwmv8NixsciGBYrtqhJVV5G6gQUooKYpiq1wPblxR5mHNXNdNbIstvwbX8A/8BFMXBCkEeJqpDk658zVvWeKSgpHSfI9CG/cvHX7zt7d3r37Dx4+6j9+cupMbTlOuJHGnhXgUAqNExIk8ayyCKqQOC1Wxxt9eoHWCaNPaF1hrqDUYik4kKfm/W8Z4SVpYxXI5iNyYxeujY6iTOKSsmaW1XqBdtO92XW+XbTtUUcTNUITlmjbV9Hfxveg8I/HkRW6vGY5scD9pLWm/zX7hGB3PXlmRXlOWTvvD5LhfrKpaBekw+5OBqNnrKvxvP8jWxheK9TEJTg3S5OK8gYsCS6x7WW1w8oPByXOIKmgQps3JRqFZNfbsofar+rypvuTLbEB5dxaFTukAjrfJgtjVgSFu9acloe537eqCTX3WgebeOL8z8arAq0/In63jueVJ/xOLpbgY4oVcGvc0MO25+P5nUH0b3C6P0w9/nAwGB1e5cT22HP2gr1kKXvNRuwNG7MJ40EaTIPPAYTj8CJswy9X1jD49eYp26rw609uoOtX</latexit><latexit sha1_base64="4BQmU5xdV3l1Wr1LE2F7ugXO6bU=">AAACznichVHLbtNAFB2bVwmv8NixsciGBYrtqhJVV5G6gQUooKYpiq1wPblxR5mHNXNdNbIstvwbX8A/8BFMXBCkEeJqpDk658zVvWeKSgpHSfI9CG/cvHX7zt7d3r37Dx4+6j9+cupMbTlOuJHGnhXgUAqNExIk8ayyCKqQOC1Wxxt9eoHWCaNPaF1hrqDUYik4kKfm/W8Z4SVpYxXI5iNyYxeujY6iTOKSsmaW1XqBdtO92XW+XbTtUUcTNUITlmjbV9Hfxveg8I/HkRW6vGY5scD9pLWm/zX7hGB3PXlmRXlOWTvvD5LhfrKpaBekw+5OBqNnrKvxvP8jWxheK9TEJTg3S5OK8gYsCS6x7WW1w8oPByXOIKmgQps3JRqFZNfbsofar+rypvuTLbEB5dxaFTukAjrfJgtjVgSFu9acloe537eqCTX3WgebeOL8z8arAq0/In63jueVJ/xOLpbgY4oVcGvc0MO25+P5nUH0b3C6P0w9/nAwGB1e5cT22HP2gr1kKXvNRuwNG7MJ40EaTIPPAYTj8CJswy9X1jD49eYp26rw609uoOtX</latexit><latexit sha1_base64="BdXULtAExx+aIaS2lbVVxW1oVWU=">AAACznichVHLihNBFK1uX2N8RV26aczGhaS7B8FhVgNudKFEmUxG0k28XbnpKVIvqm4PhqZx67/5Bf6DH2ElRjQTxEtBHc45dbn3VGWl8JRl36P42vUbN28d3O7duXvv/oP+w0dn3jSO45gbadx5BR6l0DgmQRLPrUNQlcRJtXy11ieX6Lww+pRWFksFtRYLwYECNet/Kwg/kzZOgWw/IDdu7rvkOCkkLqhop0Wj5+jW3dt955t51x1vaKJWaMIaXfc8+dv4DhT+8XhyQtdXLKcOeJi00fS/Zh8R3L6nLJyoL6joZv1BNjzM1pXsg3y4ubMB29Zo1v9RzA1vFGriEryf5pmlsgVHgkvsekXj0YbhoMYpZBYsurKt0Sgkt9qVA9RhVV+2mz/ZEVtQ3q9UtUcqoItdsjJmSVD5K81pcVSGfW1DqHnQNrBNxz78bLqs0IUj0rerdGYDEXbyqYQQU6qAO+OHAXa9EM/vDJJ/g7PDYR7w+xeDk6NtUAfsCXvKnrGcvWQn7DUbsTHjUR5Nok8RxKP4Mu7iL7+scbR985jtVPz1J/Pt6wM=</latexit>

Songs :)

[SongId : integer, Name : string, Length : integer]*

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

publish : {[ArtistId : integer, RecordId : integer]}<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>

include :Ó

[RecordId : integer, SongId : integer]Ô

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

perform :Ó

[ArtistId : integer, SongId : integer]Ô

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

Page 31: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

31

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-Beziehungstypenkönnen (müssen aber nicht) eliminiert werden

Datenbanken / Kapitel 3: Relationales Modell & Algebra

Page 32: 3. Relationales Modell & Algebra · § 3.3 Relationale Algebra § Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Datenbanken / Kapitel 3:

32

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)

Datenbanken / Kapitel 3: Relationales Modell & Algebra