De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Vakgroep Telecommunicatie en Informatieverwerking DATABANKEN Database, Document and Content Management MAPPING EER-SCHEMA NAAR RELATIONEEL DATABANKSCHEMA.

Verwante presentaties


Presentatie over: "Vakgroep Telecommunicatie en Informatieverwerking DATABANKEN Database, Document and Content Management MAPPING EER-SCHEMA NAAR RELATIONEEL DATABANKSCHEMA."— Transcript van de presentatie:

1 Vakgroep Telecommunicatie en Informatieverwerking DATABANKEN Database, Document and Content Management MAPPING EER-SCHEMA NAAR RELATIONEEL DATABANKSCHEMA

2 Vakgroep Telecommunicatie en Informatieverwerking Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagramLogisch relationeel databankontwerp met behulp van een EER-diagram Case studieCase studie OefeningenOefeningen

3 Vakgroep Telecommunicatie en Informatieverwerking Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagramLogisch relationeel databankontwerp met behulp van een EER-diagram Case studieCase studie OefeningenOefeningen

4 Vakgroep Telecommunicatie en Informatieverwerking Omzettingsalgoritme voor relationele databanken:Omzettingsalgoritme voor relationele databanken: –stap 3 (omzetting van specialisaties en generalisaties) alle entiteitstypes uit een specialisatie met m subtypes {S 1,S 2, …,S m } en supertype C zijn reeds in stap 1 of 2 omgezet naar basisrelaties R i, 1  i  m, en R (stel dat de attributen van R, de relatie die C voorstelt, {k,a 1,a 2,…,a n } zijn, met k de (primaire) sleutel): optie 3a (meerdere relaties – supertype en subtypes) –behoud alle bestaande basisrelaties –breidt de relaties R i, voor elk van de subtypes S i 1  i  m, uit met een vreemde sleutel {k}, verwijzend naar de primaire sleutel van de relatie R; {k} is tevens primaire sleutel van de relaties R i deze optie werkt voor elke specialisatie (totaal of partieel; disjunct of overlappend) Relationeel databankontwerp

5 Vakgroep Telecommunicatie en Informatieverwerking optie 3b (meerdere relaties – enkel subtypes) –breidt de relaties R i, voor elk van de subtypes S i 1  i  m, uit met de attributen {k,a 1,a 2,…,a n } van de basisrelatie R; in alle relaties R i wordt k de primaire sleutel –verwijder R, de basisrelatie van het supertype C deze optie werkt enkel voor totale specialisaties met disjuncte subtypes Relationeel databankontwerp

6 Vakgroep Telecommunicatie en Informatieverwerking optie 3c (één relatie met extra type-attribuut) –breidt de basisrelatie R uit met de attributen van alle subtypes S i 1  i  m, plus een extra attribuut {t}; k blijft de primaire sleutel k –verwijder alle basisrelaties R i 1  i  m –het attribuut t wordt het type-attribuut of discriminerend attribuut genoemd en geeft de subklasse aan waartoe een tuple behoort deze optie werkt voor enkel voor specialisaties met disjuncte subtypes (mogelijks veel NULL waarden !) Relationeel databankontwerp

7 Vakgroep Telecommunicatie en Informatieverwerking optie 3d (één relatie met meerdere type-attributen) –breidt de basisrelatie R uit met de attributen van alle subtypes S i 1  i  m, plus extra attributen {t 1,t 2,…,t m }; k blijft de primaire sleutel k –verwijder alle basisrelaties R i 1  i  m –elk attribuut t i, 1  i  m, is een Boolean type-attribuut dat aangeeft of een tuple behoort tot subtype S i deze optie werkt voor elke specialisatie (mogelijks veel NULL waarden !) Relationeel databankontwerp

8 Vakgroep Telecommunicatie en Informatieverwerking –stap 3’ (omzetting van meervoudige overervingen) beschouw een subtype S met meerdere supertypes C i, 1  i  m; in stap 1 of 2 werden deze omgezet naar basisrelaties R en R i, 1  i  m, met k i de (primaire) sleutels van de supertypes: optie 3a’ (meerdere relaties – supertypes en subtype) –behoud alle bestaande basisrelaties –breidt de relatie R, voor het subtype S, uit met vreemde sleutels {k i }, verwijzend naar de primaire sleutels van de relatie R i ; indien de relatie R nog geen primaire sleutel heeft, kan deze worden gevormd door de combinatie van alle vreemde sleutels {k i }, ofwel door het toevoegen van een nieuw sleutelattribuut als surrogaatsleutel Relationeel databankontwerp

9 Vakgroep Telecommunicatie en Informatieverwerking optie 3b’ (één relatie) –breidt de relatie R, voor het subtype S, uit met de attributen van alle supertypes C i –indien de relatie R nog geen primaire sleutel heeft, kan deze worden gevormd door de combinatie van alle sleutelattributen {k i } van de supertypes C i, ofwel door het toevoegen van een nieuw sleutelattribuut als surrogaatsleutel –verwijder alle basisrelaties R i 1  i  m Relationeel databankontwerp

10 Vakgroep Telecommunicatie en Informatieverwerking –stap 4 (omzetting van categorieën) gewoonlijk hebben de definiërende supertypes van een categorie verschillende primaire sleutels; hierom dient er een nieuw sleutelattribuut k’, de surrogaatsleutel, gecreëerd te worden voor relatie R, de relatie die correspondeert met de categorie; k’ is de primaire sleutel van R voeg k’ als vreemde sleutel toe aan de relaties die corresponderen met de definiërende supertypes van de categorie opmerking: voor entiteiten van de definiërende superklassen die zelf geen element zijn van de categorie is de waarde van de vreemde sleutel NULL opmerking: een gedragspecificatie is nodig om af te dwingen dat een instantie van een categorie overeenkomt met een instantie van slechts één van de supertypes Relationeel databankontwerp

11 Vakgroep Telecommunicatie en Informatieverwerking Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagramLogisch relationeel databankontwerp met behulp van een EER-diagram Case studieCase studie OefeningenOefeningen

12 Vakgroep Telecommunicatie en Informatieverwerking Case studie: softwarefirma werknemernr Product van 1 N datum Versie voor M Ext_Gebr.  U Int_Gebr.Rapport   d Gebruiker door Int_RapportExt_Rapport telefoonadres rapportnromschr.statusprioriteit gebruikerID naambedrijf Registratie 1 N productnrbeschr.versienrdatumregistratienrdatum 1 N bezit over 1 N 1 N N

13 Vakgroep Telecommunicatie en Informatieverwerking stap 1stap 2stap 3stap 4stap 6stap 7 Case studie: softwarefirma INT_RAPPORT GEBRUIKER telefoon, adres, PRODUCT productnr, beschrijving REGISTRATIE regnr, datum EXT_GEBR gebruikersnaam, bedrijf INT_GEBR werknemernr RAPPORT rapportnr, omschr, status, prioriteit, datum EXT_RAPPORT VERSIE productnr (FK: PRODUCT), versienr, datum rapportnr, omschr, status, prioriteit, datum, gebrID, gebrID (FK: GEGRUIKER), productnr, versienr, gebrID FK (productnr, versienr): VERSIE; FK (gebrID): GEBRUIKER, productnr, versienr, gebrID FK (productnr, versienr): VERSIE; FK (gebrID): GEBRUIKER, productnr, versienr FK (productnr, versienr): VERSIE, productnr, versienr FK (productnr, versienr): VERSIE REG_SOFTW gebruikersnaam, bedrijf, regnr (FK: REGISTRATIE) FK (gebruikersnaam, bedrijf): EXT_GEBR, regnr, gebrID FK (regnr): REGISTRATIE; FK (gebrID): GEBRUIKER, regnr, gebrID FK (regnr): REGISTRATIE; FK (gebrID): GEBRUIKER

14 Vakgroep Telecommunicatie en Informatieverwerking Case studie: softwarefirma Gedragspecificatie (pseudo-code): Integriteitsrestricties: CHECK (FORALL GEBRUIKER.gebrID: (SELECT count(*) FROM INT_GEBR WHERE INT_GEBR.gebrID = GEBRUIKER.gebrID) + (SELECT count(*) FROM EXT_GEBR WHERE EXT_GEBR.gebrID = GEBRUIKER.gebrID) = 1) CHECK (VERSIE.datum >= VERSIE2.datum WHERE VERSIE.productnr = VERSIE2.productnr AND VERSIE.versienr > VERSIE2.versienr) CHECK (REGISTRATIE.datum >= VERSIE.datum) CHECK (INT_RAPPORT.datum >= VERSIE.datum) CHECK (EXT_RAPPORT.datum >= REGISTRATIE.datum) CHECK (INT_RAPPORT door INT_GEBR); CHECK (EXT_RAPPORT door EXT_GEBR)

15 Vakgroep Telecommunicatie en Informatieverwerking Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagramLogisch relationeel databankontwerp met behulp van een EER-diagram Case studieCase studie OefeningenOefeningen

16 Lid Partituur Instrument OrkestlidKoorlidBestuurslid OrkestpartituurKoorpartituur o o FamNaam NaamAdres TelefoonnummerGeslacht Stem Functie Titel Componist N speelt M N voor M BlaasStrijkSlag d Soort “blaas” “strijk” “ slag” Naam Voornaam partID

17 Vakgroep Telecommunicatie en Informatieverwerking Relationeel schema: Oefeningen: databank voor koor en orkest LID (FamNaam, VNaam, Adres, Geslacht, Tel.) ORKESTLID (FamNaam, VNaam) FK(FamNaam, VNaam): LID KOORLID (FamNaam, VNaam) FK(FamNaam, VNaam): LID BESTUURSLID (FamNaam, VNaam, Functie) FK(FamNaam, VNaam): LID INSTRUMENT (INaam, Soort) PARTITUUR (Titel, Componist, Orkest, Koor) SPEELT (FamNaam, VNaam, INaam) FK(FamNaam, VNaam): ORKESTLID, FK(INaam) : INSTRUMENT STEM (FamNaam, VNaam, Stem) FK(FamNaam, VNaam): KOORLID VOOR (INaam, Titel, Componist) FK(INaam): INSTRUMENT, FK(Titel, Componist): PARTITUUR

18 Vakgroep Telecommunicatie en Informatieverwerking Gedragspecificatie: Integriteitsrestricties: CHECK (Orkest = TRUE OR Koor = TRUE) CHECK (PARTITUUR.Orkest = TRUE WHERE PARTITUUR.(Titel, Componist) = VOOR.(Titel, Componist)) Oefeningen: databank voor koor en orkest

19 Zender naam afkorting ZendEenheid Uitzending Aflevering Serie titel duur genre id ISAN ISANbasis tijdstip ISANvolgnr 1N M 1 N N subtitel genre code Programma titel ID Zelfst. Programma U d commentaar omschrijving ISAN Medewerker naamid M N rol

20 Vakgroep Telecommunicatie en Informatieverwerking Relationeel schema: Oefeningen: televisiemaatschappij ZENDER (Code, Naam, Afkorting) UNIQUE (Naam), UNIQUE (Afkorting) MEDEWERKER (ID, Naam) PROGRAMMA (ProgrammaID, genre, titel, ISAN(basis), eenheidID) UNIQUE (ISAN(basis)) AFLEVERING (ISANbasis, ISANvolgnr, subtitel, eenheidID (FK: ZENDEENHEID)) FK (ISANbasis): PROGRAMMA.ISAN(basis) ZENDEENHEID (eenheidID, type, omschrijving, duur) UITZENDING (ID, commentaar, tijdstip, eenheidID (FK: ZENDEENHEID)) UITZENDING_ZENDER (UitzendingID, ZenderCode) FK (UitzendingID): UITZENDING; FK (ZenderCode): ZENDER PROGRAMMAMEDEWERKER (ProgrammaID, MedewerkerID, rol) FK (ProgrammaID): PROGRAMMA; FK (MedewerkerID): MEDEWERKER

21 Vakgroep Telecommunicatie en Informatieverwerking Gedragspecificatie: Oefeningen: televisiemaatschappij Afgeleide attributen (bv. ISAN code): CREATE PROCEDURE ZendEenheid_ISAN (ID IN integer, ISAN OUT integer) AS BEGIN IF ID IN (SELECT eenheidID FROM Aflevering) THEN ISAN = (SELECT ISANbasis+ISANvolgnr FROM Aflevering WHERE eenheidID = ID) ELSEIF ID IN (SELECT eenheidID FROM Programma) THEN ISAN = (SELECT ISAN(basis) FROM Programma WHERE eenheidID = ID) ELSE raise ZendEenheidOnbekend ENDIF END;

22 Vakgroep Telecommunicatie en Informatieverwerking Oefeningen: spoorwegmaatschappij Het spoorwegnetwerk bestaat uit een verzameling knooppunten die met elkaar verbonden zijn via spoorlijnen. Elk knooppunt heeft een uniek nummer maar kan ook geïndentificeerd worden via de geografische ligging (geografische lengte- en breedtegraad). Een typisch knooppunt is een station, maar ook onderhoudsplaatsen worden als knooppunten beschouwd. Van elk station wordt de (unieke) naam, en het aantal perrons bijgehouden. Voor elke onderhoudsplaats moet men bijhouden welke soorten onderhoudswerken men er kan uitvoeren (vb. tanken, reinigen, herstellingen,...). Een knooppunt kan zowel station als onderhoudsplaats zijn. In een enkel geval is een knooppunt geen van beide (i.e. een splitsing). Een verbinding wordt geïdentificeerd aan de hand van een begin- en een eindknooppunt. Verder wordt ook de afstand en de maximale snelheid op de verbinding bijgehouden. Merk op dat een verbinding gericht is, een verbinding van A naar B is niet gelijk aan een verbinding van B naar A. De diensten van de spoorwegmaatschappij bestaan erin om op elk vastgesteld tijdstip (datum en uur van vertrek) een rit volgens het bijhorend vastgelegde traject uit te voeren. Een traject, dat wordt aangeduid met een uniek nummer, legt vast welke verbindingen hierbij achtereenvolgens worden gevolgd. Voor elk van de op dit traject gelegen verbinding wordt relatieve vertrek en aankomsttijd (t.o.v. van de aanvang van de rit) bijgehouden. Om deze diensten te verzorgen beschikt de maatschappij over een hoeveelheid rollend materieel dat wordt ingedeeld in drie categorieën: locomotieven, goederenwagons en passagiersrijtuigen. Elk voertuig krijgt binnen zijn categorie een uniek nummer. Naast de algemene kenmerken zoals lengte en gewicht, worden voor elke categorie een aantal specifieke kenmerken bijgehouden. Voor locomotieven: motortype (diesel of elektrisch) en het vermogen. Voor goederenwagons: vrachttype en tonnage. Voor passagiersrijtuigen: de klasse en het aantal passagiers. Er wordt bijgehouden welke voertuigen (zullen) worden ingezet voor een bepaalde rit.

23 Rijtuig Rit Traject Verbinding Knooppunt StationOnderhoudspl o van naar LocomotiefPassagiers d Goederen tnr van cat “L” “G” “P” PK brandstof vrachttonn. klassezitjes lengte id gewicht cat nr vertrek datumuur kmkm/h voor naamperrons soort onderhoud. via rel. vertrek rel. aankomst M N N N NNM1 1 1 knr ligging lengtegr breedtegr

24 Vakgroep Telecommunicatie en Informatieverwerking Relationeel schema: Oefeningen: spoorwegmaatschappij RIJTUIG (cat, nr, lengte, gewicht) LOCOMOTIEF (cat, nr, PK, brandstof) FK (cat, nr): RIJTUIG GOEDERENWAGON(cat, nr, vracht, tonnage) FK (cat, nr): RIJTUIG PASSAGIERSWAGON (cat, nr, klasse, zitjes) FK (cat, nr): RIJTUIG TRAJECT (Tnr) RIT (Tnr (FK: TRAJECT), datum, uur) KNOOPPUNT (Knr, lengtegr, breedtegr) UNIQUE (lengtegr, breedtegr) STATION (Knr (FK: KNOOPPUNT), naam, perrons) UNIQUE (naam) ONDERHOUDSPLAATS (Knr (FK: KNOOPPUNT)) VERBINDING (van (FK: KNOOPPUNT), naar (FK: KNOOPPUNT), km, km/h) VIA (traject (FK: TRAJECT), van, naar, rel_vertrek, rel_aankomst) FK (van, naar): VERBINDING VOOR (Tnr, datum, uur, cat, nr) FK (Tnr, datum, uur): RIT; FK (cat, nr): RIJTUIG ONDERHOUD (Knr (FK: ONDERHOUDSPLAATS), TypeOnderhoud)


Download ppt "Vakgroep Telecommunicatie en Informatieverwerking DATABANKEN Database, Document and Content Management MAPPING EER-SCHEMA NAAR RELATIONEEL DATABANKSCHEMA."

Verwante presentaties


Ads door Google