Techische Uiversität Müche WS 2003/04, Fakultät für Iformatik Datebaksysteme I Prof. R. Bayer, Ph.D. Lösugsblatt 4 Dipl.-Iform. Michael Bauer Dr. Gabi Höflig 17.11. 2003 Abbildug E/R ach relatioal - Beispiel: Kotoführug Kategorie Bezeichug Klassifikatioskriterium 1 hat Kude Vorame Name Gebdat besitzt m 1 Koto Gebühr Kotor Betrag 1 1 hat erstellt Datum Betrag Bewegugsart listet m Kotobewegug Kotoauszug Erstelldat Startdat Gesamt Aufgabe 1: Umsetze eies E/R-Diagramms i ei relatioales Schema Setze Sie das obe agegebee E/R-Schema i ei relatioales Modell um. Beachte Sie dabei, dass zu jeder relatioale Tabelle ei Schlüssel ud zu jedem Attribut ei Typ gehört. Gehe Sie dabei i folgede Teilschritte vor: 1. Setze Sie alle starke Etitäte um. 2. Setze sie alle schwache Etities um. Welcher Uterschied ergibt sich zu 1.? 3. Setze sie alle Beziehuge um. 4. Köe i dem so etstadee Relatioeschema Tabelle zusammegefaßt werde? 5. Bestimme Sie für alle Tabelle die Fremdschlüssel. Auf welche Tabelle verweise sie? 1.1. Starke Etitäte: Kategorie: (Bezeichug:strig, Klassifikatioskriterium:strig) Kude: (Vorame:strig, Name:strig, Gebdat:date) Koto: (Kotor: iteger, Betrag:umeric, Gebühr:umeric) 1.2. Schwache Etitäte: Kotobewegug: (Datum:date, Vorame:strig, Name:strig, Gebdat:date, Kotor:iteger, Betrag: umeric, Bewegugsart: strig) Kotoauszug: (Erstelldat:date, Kotor:iteger, Startdat:date, Gesamt:umeric) -1-
1.3. Beziehuge: hatkateg: (Vorame:strig, Name:strig, Gebdat:date, Bezeichug:strig) besitzt: (Vorame:strig, Name:strig, Gebdat:date, Kotor:iteger) listet: (Erstelldat:date, Kotor:iteger, Datum:date, Vorame:strig, Name:strig, Gebdat:date) Für hatkotobewegug ud erstellt werde keie Tabelle agelegt, da sie die jeweils starke mit de zugehörige schwache Etitäte verbide. 1.4. Zusammefasse Zusammefasse ka ma Tabelle i der Regel da, es sich um eie 1: bzw. 1:1 Beziehug hadelt ud die Tabelle gleiche Schlüssel aufweise. I userem Beispiel ist dies bei de Tabelle Kude ud hatkateg der Fall: Kude: (Vorame:strig, Name:strig, Gebdat:date) hatkateg: (Vorame:strig, Name:strig, Gebdat:date, Bezeichug:strig) wird zu Kude: (Vorame:strig, Name:strig, Gebdat:date, Bezeichug:strig) 1.5. Fremdschlüssel Kude:Bezeichug verweist auf Kategorie:Bezeichug Kotobewegug:Vorame, Name, Gebdat verweist auf Kude:Vorame, Name, Gebdat Kotobewegug:Kotor verweist auf Koto:Kotor besitzt:vorame, Name, Gebdat verweist auf Kude:Vorame, Name, Gebdat besitzt:kotor verweist auf Koto:Kotor listet:erstelldat, Kotor verweist auf Kotoauszug:Erstelldat, Kotor listet:datum, Kotor verweist auf Kotobewegug:Datum, Kotor listet:vorame, Name, Gebdat verweist auf Kude:Vorame, Name, Gebdat -2-
Aufgabe 2: Alterative Schlüsselumsetzug Nebe der klassische Darstellug vo Primärschlüssel als Werte aus der Attributmege gibt es och die Möglichkeit, de Elemete küstlich erzeugte eideutige Idetifikatore zuzuweise, z.b. eie fortlaufede Nummer. Wa dies i eiem relatioale Schema sivoll sei ka, zeigt diese Aufgabe: 1. Betrachte Sie dazu die Etität Kude ud seie Beziehuge. Erstelle Sie eie Umsetzug, die eie küstlich erzeugte eideutige Kudeummer verwedet. 2. Schätze Sie u ab, wie viel Speicherplatz sowohl i der Modellierug aus Aufgabe 1 als auch i der eue Modellierug beötigt wird. Es gelte folgede Abschätzuge: Azahl der Kude: 1.000.000 Azahl der Kote: 5.000.000 Azahl der Kotobeweguge: 100.000.000 (im Jahr) Kotobeweguge pro Kotoauszug: 5 Für de Kudeame etc. köe sie eie durchschittliche Speicherbedarf vo 15 Byte aehme. Zur Darstellug vo Zahletype sollte immer der ächstgrößere Stadardtyp verwedet werde, also 16, 32, 64, 128 bit (Datum als 16bit-Zahl, Betrag als 48bit Zahl (Datetyp Numeric)). 2.1. Umsetzug mit eier küstlich erzeugte eideutige Kudeummer: Kude: (Kuder:iteger, Vorame:strig, Name:strig, Gebdat:date, Bezeichug:strig) Kotobewegug: (Datum:date, Kuder:iteger, Kotor:iteger, Betrag: umeric, Bewegugsart: strig) besitzt: (Kuder:iteger, Kotor:iteger) listet: (Erstelldat:date, Kotor:iteger, Datum:date, Kuder:iteger) 2.2. Speicherbedarf pro Tupel i Bytes (i gleicher Attributreihefolge wie i 2.1.). Kude klassisch: 15+15+2+15 = 47 Kude ID: 4+15+15+2+15 = 51 Kotobewegug klassisch: 2+15+15+2+4+6+15 = 59 Kotobewegug ID: 2+4+4+6+15 = 31 besitzt klassisch: 15+15+2+4 = 36 besitzt ID: 4+4 = 8 listet klassisch: 2+4+2+15+15+2 = 40 listet ID: 2+4+2+4 = 12 Tabelle /Platz Pro Eitrag Pro Eitrag ID Gesamt Gesamt ID klassisch klassisch Kude 47 51 0.47*10 8 0.51*10 8 Kotobewegug 59 31 59*10 8 30*10 8 besitzt 36 8 3.6*10 8 0.8*10 8 listet 40 12 8*10 8 2.4*10 8 Gesamt 7.1 GB 3.3 GB -3-
Aufgabe 3: Modellierugsalterative für Geeralisieruge Girokoto Dispolimit Telebakig Festgeldkoto F ä llig ke it Zissatz Is-a Is-a Koto Gebühr Kotor. Guthabe Es verschiedee Alterative zur Darstellug der Geeralisierug: Tabelle pro Etitiy, bei der für jede Etity des Diagramms auch eie eigee Tabelle erstellt wird. Pushdow, bei der alle Geeralisierugsattribute i der Spezialisierugstabelle platziert werde. Pullup, bei der alle Spezialisierugsattribute i eie eizige Geeralisierugstabelle heraufgezoge werde. Die Vor- ud Nachteile der eizele Strategie solle am Beispiel deutlich werde. 1. Bilde Sie für jede dieser Asätze das obige E/R-Schema auf ei relatioales Schema ab. Welche Date werde i de Tabelle abgelegt? Tabelle pro Etity: Koto: (Kotor, Guthabe, Gebühr) Festgeldkoto: (Kotor, Fälligkeit, Zissatz) Girokoto: (Kotor, Dispolimit, Telebakig) Pushdow: Festgeldkoto: (Kotor, Guthabe, Gebühr, Fälligkeit, Zissatz) Girokoto: (Kotor, Guthabe, Gebühr, Dispolimit, Telebakig) Zusatzüberlegug: Gibt es Elemete i der Geeralisierug, die icht Elemete eier Spezialisierug etspreche, z.b. Kote, die weder Girokote och Festgeldkote sid? We ja, da muss auch eie Tabelle Koto agelegt werde, die diese (ud ur diese) aufimmt. Koto: (Kotor, Guthabe, Gebühr) Pullup: Koto: (Kotor, Typ, Guthabe, Gebühr, Fälligkeit, Zissatz, Dispolimit, Telebakig) Alle für eie bestimmte Ausprägug icht otwedige Attribute werde leer gelasse, bzw. mit NULL belegt (Vorgriff auf SQL). Nebe de Attribute aller Klasse muss och ei Typidetifikator hizugefügt werde, der es ermöglicht, de Etitytyp für eie Eitrag zu erkee. Eie Überprüfug a Had vo leere ud belegte Felder ka diese ur da ersetze, we sichergestellt ist, dass die idetifizierede Felder immer belegt sid, z.b. Dispolimit bei Girokoto. Eie solche Überprüfug ist jedoch relativ schwierig. -4-
2. Überlege Sie (mit Hilfe relatioaler Algebra), welche Schritte otwedig sid, um auf die vollstädige Date aller Girokote zuzugreife. Tabelle pro Etity: Koto Girokoto Pushdow: Girokoto Pullup: π Kotor, Guthabe, Gebühr, Dispolimit, Telebakig (σ Typ= Girokoto (Koto)) 3. Überlege Sie, welche Schritte otwedig sid, um Kotoummer, Guthabe ud Gebühre für alle Kote zu ermittel. Tabelle pro Etity: Koto Pushdow: π Kotor,Guthabe,Gebühr (Girokoto) π Kotor,Guthabe,Gebühr (Festgeldkoto) bzw. falls es Kote gibt, die weder Giro- och Festgeldkote sid: π Kotor,Guthabe,Gebühr (Girokoto) π Kotor,Guthabe,Gebühr (Festgeldkoto) π Kotor,Guthabe,Gebühr (Koto) Pullup: π Kotor,Guthabe,Gebühr (Koto) 4. Welche Strategie ist empfehleswert? (Grüde) Die Etscheidug für eies der Verfahre fällt aufgrud des Afragemusters. Falls sich viele Afrage auf Spezialisieruge beziehe (z.b. Girokote), so ist das Pushdow-Verfahre vorteilhaft, da hier lediglich diese Tabelle gelese werde muss. Im Tabelle-pro-Etity -Verfahre muss ei Joi zwische Koto ud Girokoto durchgeführt werde, um alle Attribute zu erhalte. Falls sich die Afrage hauptsächlich auf die Geeralisierug beziehe (z.b. Guthabe), ist das Verfahre Tabelle-pro- Etity besser, da hier ur eie eizige Tabelle betrachtet werde muss. Beim Pushdow -Verfahre müsse dagege alle Spezialisierugstabelle betrachtet werde, ud die Ergebisse da kombiiert werde. Das Pullup-Verfahre hat zwar de Vorteil, dass alle Afrage mit Zugriffe auf eie eizige Tabelle erfüllt werde köe. Diese ethält jedoch eie sehr große Mege a leere Felder, wodurch sehr viel Platz verschwedet wird. -5-
Aufgabe 4: Aggregatio Uter Aggregatio versteht ma die Zusammefassug vo mehrere Eizelteile zu eiem komplexere Gaze. Zur Modellierug wird die sogeate -Beziehug (1: bzw. 1:1) verwedet. Das Beispiel beschreibt also, aus welche Teile ei Fahrrad besteht. Da das Kozept der Aggregatio weder voll mit dem E/R- och mit dem relatioale Modell verträglich ist, muß die Umsetzug E/R ach relatioal direkt aus der jeweilige Aufgabestellug abgeleitet werde. Erarbeite Sie ei relatioales Schema für folgedes Beispiel ud überlege Sie, ob es Optimierugsmöglichkeite gibt. Fahrrad F-ID Marke Besitzer Rad Größe Breite Rahme Rahm er Material Speiche Stärke Läge Felge Typ Fahrrad: (F-ID, Marke, Besitzer) Rad: (Größe, Breite) Rahme: (Rahmer, Material) Speiche: (Stärke, Läge) Felge: (Typ) PartofRad: (Größe, Breite, F-ID) PartofRahme: (Rahmer, F-ID) PartofSpeiche: (Stärke, Läge, Größe, Breite) PartofFelge: (Typ, Größe, Breite) Zusammegefasst: Fahrrad: (F-ID, Marke, Besitzer) Rad: (Größe, Breite, F-ID) Rahme: (Rahmer, Material, F-ID) Speiche: (Stärke, Läge, Größe, Breite) Felge: (Typ, Größe, Breite) Eie begrezte Verbesserug dieser Modellierug hisichtlich der Tupelazahl würde die Agabe der Azahl i de Relatioe Rad ud Speiche mit sich brige. Vergibt ma für alle Bauteile eie Idetifikator, köe alle -Beziehuge i eier eizige (rekursive) Relatio gespeichert werde: Fahrrad: (F-ID, Marke, Besitzer) Rad: (R-ID, Größe, Breite) Rahme: (Rahmer, Material) Speiche: (S-ID, Stärke, Läge) Felge: (F-ID, Typ) Partof: (Teil-ID, Eibauteil-ID) -6-