Inleiding | Introductie connecties | Praktijkvoorbeeld |
|
|
Inleiding |
|
---|---|
Welkom bij het hoofdstuk database-modelleren. Voor je in een database management
een database aanmaakt is het van het grootste belang dat de datastructuur zo
optimaal mogelijk wordt gemaakt. Zo mag er geen herhaling van gegevens
plaatsvinden en moet data eenduidig ontsloten kunnen worden.
Database-modelleren is vakgebied dat plaats moet vinden in
het basisontwerp van software ontwikkeling.
Je analyseert welke gegevens (zoals naam, adres enz.) belangrijk zijn in het informatiesysteem
en welke relaties er zijn tussen verschillend ogende gegevens.
Aan het einde van dit hoofdstuk weet je :
|
|
|
|
Introductie modelleren |
|
Lees de onderstaande situatie:
Garagebedrijf Nieuwenhuis is een toonaangevend eenmansbedrijfje in het Brabantse Maasdonk.
Iedereen kent elkaar. Een familiebedrijf dat vele overnamen kent van vader op zoon.
Cees is momenteel eigenaar maar over enkele weken zal zijn zoon Dirk-Jan als vierde generatie haar intreden in het bedrijf zetten samen met zijn vrouw Ingrid. Dirk-Jan is best bereid om de zaak over te nemen, maar dan moeten er wel een aantal zaken veranderen. Klanten krijgen regelmatig de verkeerde artikelen meegeleverd. Sommige medewerkers hebben namelijk een minder leesbaar handschrift. Ook ziet Dirk-Jan bij het schrijven van een verkoopbon interpretatieverschillen. Schrijft de ene verkoper onder naam alleen de achternaam op en de andere verkoper voegt ook de voornaam toe. Dit levert verwarring op voor zowel andere verkoopmedewerkers als de administratie. Daarnaast laten medewerkers regelmatig de orders slingeren waardoor de administratie een avond loopt te zwoegen. Dirk-Jan is voorstander voor een informatiesysteem want dan moeten de gegevens verplicht worden ingevoerd. Heb je geen last van onleesbare handschriften en zullen de orders ook minder snel verdwijnen. (hoopt hij!) Dirk-Jan heeft een expert gevraagd om te helpen bij de inventarisatie van de gegevens. Deze expert heeft een stagiair in dienst die meeloopt gedurende dit hele project. Jij hebt de rol van stagiair om er telkens achter te komen hoe de inventarisatie van de gegevens voor het informatiesysteem verloopt en verzamelt, analyseert, documenteert en ontwerpt onder het toeziend oog van de expert. Volgens de expert bestaat de eerste stap uit het te weten komen welke gegevens noodzakelijk zijn om het ontwerp te maken. Het model moet zo opgezet zijn dat de programmeur, de databaseadministrator en de opdrachtgever dit model kan lezen en begrijpen. De volgende opdrachten gaan over de bovenstaande situatiebeschrijving. | |
Opdrachten |
|
De expert heeft de problemen genoteerd en zal hieruit gaan bepalen welke entiteiten
hieruit gegenereerd kunnen worden. Entiteiten zijn
een manier om gegevens netjes te ordenen. De manier van ordenen kan je vergelijken
met een kast waarin zich allemaal laden bevinden.
Elke lade heeft een label, zo kan makkelijk worden teruggevonden waar welke gegevens zijn opgeslagen.
Wel kan er niet zomaar een
naam voor een entiteit worden bedacht. De naam moet aan bepaalde voorwaarden voldoen:
|
Opdrachten |
|
Uiteindelijk kiezen ze samen voor de volgende entiteiten: klant, product en order.
De expert bekijkt vervolgens de tabelnamen of er relatie onderling mogelijk is.
In ieder geval zal er een relatie moeten bestaan
tussen de orders en artikelen. Een order bestaat uit verschillende artikelen.
Want er moet per offerte bekeken kunnen worden welke
artikel en levertijden hieraan gekoppeld zijn.
Dit is echter nog een lastig karwei, maar hij vindt dit een mooie klus voor de
stagiair. Hij/Zij krijgt wel een paar tips mee:
|
Opdrachten |
|
De stagiair vindt de relaties er wel leuk uitzien, maar wat betekenen deze relaties nu eigenlijk?
Kunnen we hier uitspraken over doen? De expert geeft een voorbeeld:
De letters n in de bovenstaande figuur zijn symbolen voor de cardinaliteit van een relatie. De cardinaliteit heeft slechts twee symbolen: 1 en n. Staat er een 1 tussen de entiteit en de relatie dan betekent dat dat er vanuit één record in de bijbehorende tabel slechts één relatie kan zijn met een record in de andere tabel. Staat er een n tussen de entiteit en de relatie dan betekent dat dat er vanuit één record in de bijbehorende tabel meerdere relaties kunnen zijn met een record in de andere tabel. In bovenstaand voorbeeld geldt: |
Opdrachten |
|
Het laatste onderdeel wat de expert nog wil invoegen is de optionaliteit.
De optionaliteit wil zeggen: als een record in een tabel wordt aangemaakt moet
dan ook een record in de ander tabel worden aangemaakt, ofwel
de relatie tussen de entiteiten moet direct worden gelegd (optionaliteit=1)
of hoeft die relatie niet direct worden gemaakt (optionaliteit=0)
De notatie die hier wordt gebruikt volgt het boek. Naast het entiteit blok
wordt een paar "optionaliteit,cardinaliteit" geplaatst.
In de figuur zijn er dus de volgende eisen gesteld: |
Opdrachten |
|
|