Lezing databases en sql



Dovnload 146.79 Kb.
Pagina3/8
Datum20.08.2016
Grootte146.79 Kb.
1   2   3   4   5   6   7   8

1.4 Ontwerpen database


Een belangrijke stap bij het ontwikkelen en bouwen van een database is het ontwerp. Een goed ontworpen database maakt het onderhoud een stuk eenvoudiger.

Het is van het grootste belang dat de gegevens op de juiste manier in kolommen worden verdeeld. Zo is het bijvoorbeeld aan te bevelen om de woonplaats en de provincie in aparte kolommen op te nemen. Op die manier is het mogelijk gegevens op grond van een bepaalde kolom te sorteren of te filteren (bijvoorbeeld om alle klanten uit een bepaalde plaats of een bepaalde provincie te kunnen opzoeken). Als de woonplaats en de provincie in één kolom staan, zou het heel moeilijk zijn om de tabel te sorteren of te filteren op provincie.


Bij het ontwerpen van een database moet u eerst bepalen wat het doel ervan is. Welke vragen moet de database kunnen beantwoorden? In welke vorm wordt de informatie momenteel opgeslagen? Wat voor rapporten verwacht u van een database?
Als voorbeeld gaan we een database ontwerpen voor een boekenwinkel.
De database moet informatie bevatten over:

  • alle klanten,

  • alle boeken,

  • alle bestellingen.

We moeten dus drie tabellen aanmaken, een tabel Klant, een tabel Boek en een tabel Bestelling.


De tabel Klant bevat de volgende gegevens per klant:

De tabel Boek bevat de volgende gegevens per boek:

BoekID


  • Titel

  • Schrijver

  • Prijs

  • ISBN-nummer

  • Uitgavedatum

  • Uitgever

  • Paperback/Hardcover

  • Aantal bladzijden

  • Voorraad

De tabel Bestelling bevat de volgende gegevens per bestelling:



  • BestellingID

  • KlantID

  • BoekID

  • Datum

  • Geleverd

  • Betaald

Een klant kan meerdere bestellingen doen en een boek kan in meerdere bestellingen voorkomen. Dat levert de volgende relaties op:



1 N N 1

klant


Boek

Bestelling

Al eerder zagen wij dat kolommen verschillende gegevenstypen kunnen hebben (zie blz. 4).
Voor de tabel Klant geldt het volgende:


Veldnaam

Gegevenstype

Sleutel

Verplicht

- KlantID

Numeriek (Integer)

pk

ja

- Naam

Text (30)




ja

- Adres

Text (30)




ja

- Postcode

Text (7)




ja

- Plaats

Text (30)




ja

- Telefoon

Text (11)







- E-mail

Text (30)




ja

- Betaling

Text (‘Visa’,’Rembours’, ‘Acceptgiro’)







- Creditcardnr

Text (12)







- Loginnaam

Text (8)




ja

- Wachtwoord

Text (8)




ja

Voor de tabel Boek geldt het volgende:




Veldnaam

Gegevenstype

Sleutel

Verplicht

BoekID

Numeriek (Integer)

pk

ja

Titel

Text (30)




ja

Schrijver

Text (30)




ja

Prijs

Numeriek (Decimaal)




ja

ISBN-nummer

Text (15)







Uitgavedatum

Datum/Tijd







Uitgever

Text (30)







Soort_kaft

Text (‘hardcover’, paperback’)







Aantal_bladzijden

Numeriek (Integer)







Voorraad

Numeriek (Integer)






Voor de tabel Bestelling geldt het volgende:




Veldnaam

Gegevenstype

Sleutel

Verplicht

BestellingID

Numeriek (Integer)

pk

ja

KlantID

Numeriek (Integer)

fk

ja

BoekID

Numeriek (Integer)

fk

ja

Datum

Datum/Tijd




ja

Geleverd

Datum/Tijd







Betaald

Ja/Nee







Pk = primary key, Fk = foreign key
De getallen tussen () wil zeggen het aantal karakters van het veld (veldlengte).
Zoals we al eerder zagen, zijn er twee relaties bedacht.

Er is een één-op-veel relatie tussen de tabellen Boek en Bestelling. De verbinding wordt gevormd door BoekID (primary key) in tabel Boek en BoekID (foreign key) in tabel Bestelling.

Er is een één-op-veel relatie tussen de tabellen Klant en Bestelling. De verbinding wordt gevormd door KlantID (primary key) in tabel Klant en KlantID (foreign key) in tabel Bestelling.

In deel 2 van deze lezing zullen we zien hoe wij de gegevens uit deze tabellen aan elkaar kunnen koppelen.





1   2   3   4   5   6   7   8


De database wordt beschermd door het auteursrecht ©opleid.info 2017
stuur bericht

    Hoofdpagina