Conceptueel Databaseontwerp PDF
Document Details
Uploaded by FaultlessDidgeridoo
Tags
Summary
This document provides an overview of the database design process, covering four phases: information gathering, conceptual design, logical design, and physical design. It includes examples and considerations for a database design, focusing on the concepts of data modeling, relations between entities, and design choices.
Full Transcript
CONCEPTUEEL DATABASEONTWERP HET DATABASEONTWERPPROCES Het databaseontwerpproces: bij het ontwikkelen van een database worden er 4 fases vastgesteld 1. informatie vergaring: domeinbeschrijving, behoeftebeschrijving en functionele beschrijving. 2. conceptueel ontwerp: abstraheren van de...
CONCEPTUEEL DATABASEONTWERP HET DATABASEONTWERPPROCES Het databaseontwerpproces: bij het ontwikkelen van een database worden er 4 fases vastgesteld 1. informatie vergaring: domeinbeschrijving, behoeftebeschrijving en functionele beschrijving. 2. conceptueel ontwerp: abstraheren van de info uit fase 1 en presenteren in een abstracte voorstelling van de database = conceptueel model. 3. logisch ontwerp: kiezen van het databasemodel en maken van databaseschema. Gedragsspecificaties in apart bestand. Hier ga je de concepten omzetten in de logische regels en structuren van de database. 4. fysiek ontwerp: kiezen van een DBMS, implementatie van het logisch ontwerp en omzetting naar datadefinitiecode (DDL) Het eigenlijk schrijven van de code voor de database. In de praktijk moeten deze fases vaak herzien worden Voorbeeld ontwerp schilderkunstdatabase 1) informatie vergaren: achterhalen welke verwachtingen er zijn over de database, welke data erin moeten zitten. Dit doet men door interviews af te nemen. a) domeinanalyse: info over schilderijen, schilders en eigenaars met bijhorende relevante data b) functionele analyse: frequent toegevoegd, verkoopwaarde verandert en eigenaar verandert. c) behoefteanalyse: overzicht nodig van de voorhanden zijnde schilderijen. 2) conceptueel ontwerp: plan van de te ontwerpen database worden opgesteld. Technische kenmerken vastleggen, details en implementatie worden achterwege gelaten. Conceptueel ontwerp resulteert in een conceptueel diagram en functionele beschrijving van de operaties die nodig zijn om de database consistent en actueel te houden. Vb. bij toevoegen nieuwe artiest moet men controleren of sterfdatum niet voor geboortedatum valt. 3) logisch ontwerp: kiezen van DBMS en omzetten van databasemodel naar databaseschema en voegen technische details toe. Omzetting naar tabellen van Schilderij, Artiest en Eigenaar en details over datatypen en kolomwaarden toegevoegd. 4) fysieke ontwerp: feitelijke implementatie. 21 INFORMATIEVERGARING Domeinanalyse: juiste betekenis en context van alle data, symbolen en gebruikte coderingen verzamelen a.d.h.v. traditionele communicatietechnieken (interview, e-mail,…) en secundaire bronnen (bestaande software, databestanden, handleidingen,…) Functionele analyse: herkomst van de info, hoe wordt de info verwerkt en welke nieuwe info wordt hierbij aangemaakt? Behoefteanalyse: welke applicaties zullen gebruik maken van de database? Welke toekomstige applicaties zijn er gepland? Met welke potentieel nieuwe infobronnen moet er rekening worde gehouden? ABSTRAHERING, MODELLERING EN IMPLEMENTATIE Abstrahering: doel om een duidelijk beeld te schetsen van wat belangrijk is. Daarbij wordt er gezocht naar gemeenschappelijke karakteristieken in de domeindata en naar een gepast detailniveau. Belangrijk is het weergeven van de verwantschappen tussen data. Modellering: representatietechnieken: taal, symbolennotaties en diagrammen. Hier kiezen we voor het Enhanced Entity-Relationship-Diagram (EER) dat word omgebouwd volgend de voorschriften van het Enhanced Entity-Relationship-model. Daarna beschrijving van verwachte functionaliteiten d.m.v. operaties. Deze functionele beschrijving moet apart van het EER-model worden bijgehouden. Vb operatiespecificaties: Controle_periode (IN Periode, IN Artiest.Geboren, IN Artiest.Gestorven, OUT Status) EXCEPTIE (OngeldigheidsPeriode) à controle of de periode van het schilderij binnen leven van schilder valt. Alternatief EER-daigrammen zijn UML-klassediagrammen. Deze beschrijven zowel de datastructuren als de interactie ertussen (gedrag). De functionele beschrijving is dus geïntegreerd. Nadeel: model leunt te dicht aan bij databasemodel en is dus niet voldoende onafhankelijk. Opm: dit is bedoelt voor objectgeörienteerde softwareontwikkelingen. Voor het omzetten naar een databaseschema bestaan er algoritmen pet categorie databasemodel. De functionaliteiten moeten wel nog handmatig worden omgezet naar gedragsspecificaties. Implementatie: datamodel kiezen en databaseschema vertalen naar DDL-instructies. HET GEBRUIK VAN CASE-TOOLS CASE-tools (Computer Aided System Engineering): automatiseren van databaseontwerpproces. De meesten ondersteunen het grafisch opbouwen van een conceptueel model en omzetten naar een databaseschema. De DDL instructie zijn wel niet altijd geoptimaliseerd. HET (UITGEBREID) ENTITY-RELATIONSHIP-MODEL EER-model: concepten uit de reële wereld gemodelleerd a.d.h.v. entiteittypes en verwantschappen tussen die entiteittypes (relatietypes). Uitgebreid met subklassen, superklassen, specialisaties, generalisaties en categorieën. 22 ENTITEITTYPES EN RELATIETYPES Een entiteit is een ‘ding’ dat een zelfstandig bestaan leidt in de reële wereld. Kan zowel een fysiek object als een abstract concept zijn. Een entiteittype karakteriseert een collectie van entiteiten en wordt gekenmerkt door een naam en een verzameling van attributen. (rechthoek) Attributen: gemeenschappelijke karakteristieken van de entiteiten. (ovaal) visualisatie: een entiteitstype (schilderij) met hieraan verbonden vier attributen van dit entiteitstype, een entiteit is dus een schilderij in de echte wereld die voor ieder aspect 1 waarde heeft. Weinig zinvol om een entiteitstype te hebben zonder attributen Verwantschap: relaties tussen entiteitstypes Een entiteit kan in relatie staan tot een entiteit van een ander entiteitstype maar ook van hetzelfde entiteitstype. Vb. relaties tussen personen een relatietype: is een verwantschap (relatie) tussen twee of meer al dan niet verschillende entiteittypes. Men spreekt respectievelijk van een binair, ternair of n-air (n>3) relatietype (afhankelijk van hoeveel relaties er zijn). Verder wordt elk relatietype gekenmerkt door een naam. (ruit) Een relatietype kan ook attributen hebben. Deze attributen zeggen iets over de aard van de relatie. (ovaal) Vb: hoeveel procent van de tijd een werknemer voltijds betrokken is bij een bedrijf. % hoort bij ‘werkt voor’. (opm: een case tool laat niet toe een relatietype attributen te geven) § binaire relatie: 1 entiteitstype is gerelateerd aan 1 ander (vb 1) of hetzelfde entiteitstype (vb 2), § Teriaire relatie: er zijn 3 entiteitstypes betrokken bij de relatie (vb 3) § n-air relatie: er zijn meer dan 3 entiteitstypes betrokken In het eerste voorbeeld zien we dat het entiteitstype werknemer (dat x aantal attributen heeft) een relatietype heeft met het entiteitstype bedrijf dat ook x aantal attributen kent, het attribuut procent zegt hoeveel de werknemer werkt voor het bedrijf. De werknemer Frederick zou bijvoorbeeld voor 70% kunnen werken voor het bedrijf addidas. 23 In het tweede voorbeeld zien we dat 1 persoon een partner is van een andere persoon, er is slechts 1 entiteitstype maar het gaat hier om twee verschillende entiteiten. In het derde voorbeeld zijn de entiteitstypes schilderij en plaats in relatie met de tentoonstelling door de planning Karakteristieken en restricties Het (E)ER-model kent een aantal mogelijkheden om attributen verder te karakteriseren § meerwaardige versus enkelwaardige attributen (standaard enkelwaardig) enkelwaardige karakteristiek: kan slechts 1 waarde hebben. Vb geboren, gestorven (normale ovaal) meerwaardige karakteristiek: kan meer dan 1 waarde hebben op bepaald tijdstip. Vb hobby’s (dubbele ovaal) è waarden uit de collectie kunnen worden aangepast, verwijderd of toegevoegd § samengestelde versus enkelvoudige attributen Samengestelde karakteristiek: samengesteld uit meerdere andere attributen die ook allemaal een speciale vorm mogen hebben. Vb: plaats is samengesteld uit straat, nummer en postcode (ovaal waar ovalen aan zijn verbonden) è als blijkt dat men frequent nodig is de componenten apart te behandelen kan men beter modelleren als samengesteld, anders enkelvoudig. è niet verwarren met entiteitstype!! § afgeleide attributen: kan je afleiden of berekenen uit de waarde van andere attributen. Vb: leeftijd è worden niet opgeslagen om inconsistentie te vermijden. (ovaal in stippellijn) § sleutelattributen: een entiteit wordt door 1 of ≠ attributen op unieke, irreducibele manier gekenmerkt. (onderstreept) § Surrogaatsleutel: artificiële sleutel è uniciteit: er bestaan geen 2 entiteiten met dezelfde waarden voor deze attributen è irreducibiliteit: geen uniciteit indien men een attribuut weglaat Vb naam + voornaam Orthogonaliteit: alle hiervoor vermelde karakteristieken en restricties zijn orthogonaal, ze kunnen willekeurig gecombineerd voorkomen zwakke entiteittypes: voor entiteitstypes wordt slechts 1 speciale vorm van karakterisering beschouwd. § Zwak entiteitstype: karakteriseert zwakke entiteiten. Dit zijn entiteiten die niet op zichzelf kunnen bestaan, maar voor hun bestaan afhankelijk zijn van het bestaan van andere, identificerende entiteiten. 24 Een zwak entiteitstype zal ook een identificerende relatietype hebben met zijn identificerende entiteitstype (dubbele ruit). Doorgaans is er slechts 1 identificerend relatietype die binair is, waardoor er slechts 1 identificerend entiteittype is. Zwakke entiteitstypes kan je niet identificeren zonder de sleutel van de identificerende entiteiten. Ze hebben wel sleutelattributen (partiële sleutel) die samen met de sleutel van de identificerende zorgen voor identificatie. Deze partiele sleutel wordt enkel gegeven als hij nodig is. Als geen partiële sleutel is gegeven zal het zwakke , entiteitstype de sleutel val zijn identificerende entiteitstype gebruiken (vb 2) Zwakke entiteit (dubbele rechthoek) Partiële sleutel (stippellijn) Vb1 schilderij wordt geïdentificeerd door naam van schilderij en naam van de artiest Er bestaat geen schilderij zonder artiest Relatietypes: voor elk entiteitstype wordt een kardinaliteit en participatie vastgelegd: § kardinaliteitsrestrictie: beperkt het aantal entiteiten dat kan voorkomen in een relatie. 1 of N 1:1 1:N M:N (meerdere op meerdere) M en N kunnen verschillende waarden aannemen § Participatierestrictie: bepaald of elke entiteit moet voortkomen in een relatie. totale participatie: iedere entiteit in relatie moet zijn met ten minste 1 andere entiteit. Vb iedere werknemer voor ten minste 1 bedrijf moet werken (dubbele lijn) partiële participatie: niet iedere entiteit verplicht is een relatie te hebben met ten minste 1 andere entiteit (enkel lijn) Een bedrijf kan M aantal werknemers hebben terwijl een werknemer kan werken voor N aantal bedrijven Er kan een bedrijf bestaan zonder werknemers In het tweede voorbeeld kan iedere persoon maar 1 andere persoon als partner hebben Opm: een boek kan door meerdere personen gelezen worden maar niet tegelijk! SUBTYPES, SUPERTYPES EN OVERERVING Structurele aspecten Subtype: is een entiteittype dat een subcollectie van entiteiten karakteriseert. Supertype: het entiteittype van de collectie waarbinnen deze subcollectie wordt beschouwd Het subtype erft alle attributen en verwante relatietypes van het supertype. Het kan daarnaast nog eigen attributen en relatietypes hebben die niet gelden voor het supertype, specifieker attributen en relatietypes. 25 boog van het symbool is gericht naar het subtype als ≠ subtypes getekend worden, wordt een bolletje gebruikt om subtypes met elkaar te verbinden manager staat apart omdat het andere attributen heeft Om supertype/subtype terug te vinden worden 2 deelprocessen onderscheiden in het abstraheringsproces: § specialisatie: het creëren van specifiekere subtypes voor een gegeven entiteittype. § generalisatie: het creëren van een algemeen supertype dat de gemeenschappelijke attributen en relatietypes van een aantal gegeven entiteittypes verenigt. Een entiteit kan een supertype zijn van meerdere subtypes en omgekeerd. Hierdoor ontstaan supertype/subtype-netwerken. Al er in het netwerk geen entiteitstypes met verschillende supertypes voorkomen, wordt dit een supertype/subtype-hiërarchie. Juweel heeft een dubbele overerving: het zal attributen van zowel outfit als kunstwerk overnemen als beide een attribuut prijs hebben, wordt er maar 1 van deze attributen overgeërfd. Karakteristieken en restricties Voor supertype/subtype-verwantschappen onderscheiden we 3 soorten verdere karakterisatie. § Overlappende versus disjuncte subtypes: Disjunct subtype: het supertype kan slechts 1 van de gegeven subtypes zijn Overlappend: een entiteit van het supertype kan voorkomen in meerdere subtypes. een kunstwerk kan een schilderij zijn of een juweel of … een artiest kan zowel schilder als tekenaar en beeldhouwer zijn 26 § Geconditioneerde subtypes: bij een disjunct type kan het zijn dat er een conditie geld. Als de attribuutwaarde van de entiteit voldoet aan de voorwaarde, is deze ook entiteit van het subtype. Als hetzelfde attribuut gebruikt wordt om de entiteiten van alle subtypes te bepalen, spreekt men bovendien van een attribuutgedefinieerd supertype/subtype-verwantschap. Het attribuut wordt dan het definiërende attribuut genoemd. naam van geselecteerde attribuut (type) tussen supertype en cirkel conditie tussen subtype en cirkel In dit voorbeeld zullen de karakteristieken van “kunstwerk” bepalen of dit kunstwerk een schilderij, wandtapijt, juweel of beeldhouwwerk is § Participatierestrictie voor supertype/subtype-verwantschappen: totale versus partiele participatie van het subtype Totale participatie: elke entiteit van het supertype moet een entiteit zijn van minstens 1 subtype Partiële participatie: moet niet er kunnen geen knstwerken voorkomen die niet verder onderverdeeld is in subtypes (dubbele lijn) er zijn werknemers die niet tot een subtype behoren (enkele lijn) CATEGORIEËN Structurele aspecten categorie of unietype: een ‘speciaal’ subtype met verschillende supertypes, dat wordt ingevoerd om de entiteiten van deze supertypes te groeperen. Elke entiteit van de categorie is slechts entiteit van juist één van de supertypes. Een eigenaar van een schilderij kan een persoon een bedrijf of een museum zijn Hier gaat eigenaar overerven van 1 van de 3 ook hier kunnen er condities gelden zoals bij het geconditioneerd subtype en zijn er participatieregels (totale en partiele participatie) karakteristieken en restricties § Geconditioneerde supertypes een entiteit van de categorie behoort tot het supertype als zijn attribuutwaarde voldoet aan de conditie 27 § Participatierestrictie totale participatie: alle entiteiten van alle supertypes moeten en entiteit zijn van de categorie Partiële participatie: er bestaan entiteiten die geen entiteit zijn van de categorie Oef 3.17 + CASE STUDIES! Adres is een samengesteld attribuut Stemmen is een meerwaardig attribuut (dubbele ovaal) De relatie met lid is totaal Subtypen hebben geen aparte sleutel want ze erven hem over van het supertype 28