Inleiding Is dit boek het juiste boek voor jou?



Dovnload 281.91 Kb.
Pagina7/8
Datum20.08.2016
Grootte281.91 Kb.
1   2   3   4   5   6   7   8

Hoofdstuk 3 Databases en SQL

Dit hoofdstuk gaat over databases en SQL. Je gaat eerst even kijken wat een database is en hoe zo’n database in elkaar zit. Daarna krijg je uitleg over SQL, een taal waarmee je de gegevens in een database kunt selecteren en bewerken. En je gaat al direct praktisch aan de slag met het programma SQLOefenaar, een programma dat je laat oefenen met SQL.


Databases

Tabellen, records en velden


Een database is een verzameling gegevens die op een bepaalde manier is geordend. Een voorbeeld van een database is de verzameling gegevens die een school van haar leerlingen heeft. Omdat een database veel verschillende gegevens bevat, zijn die gegevens meestal verdeeld over meerdere tabellen. Zo’n tabel kun je vergelijken met een kaartenbak. Bij een school zouden dit bijvoorbeeld de tabellen leerlinggegevens en profielgegevens kunnen zijn. Tabellen hebben records. Zeg maar kaarten. Zo is er voor elke leerling in de tabel leerlinggegevens een record. En elk record is ten slotte weer opgebouwd uit een aantal velden, zoals naam, adres enzovoort.
Een voorbeeld van een papieren database met één tabel:


naam: Harry





Een tabel
Een tabel bevat allemaal records met de zelfde soort gegevens.
Bijvoorbeeld een bak met kaarten met de leerlinggegevens.

Een record
Een record heeft velden voor de verschillende gegevens.
Bijvoorbeeld een kaart met de gegevens van 1 leerling.

Een veld
Een veld is een onderdeel van een record waar je 1 gegeven invult. Bijvoorbeeld naam.

De meeste databases hebben meer dan 1 tabel en zitten zo in elkaar dat de gegevens in de verschillende tabellen aan elkaar gekoppeld kunnen worden. Kijk maar eens naar de volgende eenvoudige praktijksituatie.


Een administratie van een school heeft besloten om gegevens van leerlingen in een digitale database te stoppen. In die database komen de naw-gegevens (naam, adres en woonplaats) van de leerlingen te staan en ook de profielen die de leerlingen volgen met de vakken die bij deze profielen horen. Het moderne voortgezet onderwijs havo/vwo kent in de zogenaamde tweede fase 4 profielen, te weten de profielen Cultuur en Maatschappij, afgekort als CM, Economie en Maatschappij, afgekort als EM, Natuur en Gezondheid, afgekort als NG en Natuur en Techniek, afgekort als NT.
CM heeft de vakken wiskunde, geschiedenis en tekenen.

EM heeft de vakken wiskunde, economie en aardrijkskunde.

NG heeft de vakken wiskunde, scheikunde en biologie.

NT heeft de vakken wiskunde, scheikunde en natuurkunde.


Stel je voor dat de school slechts 6 leerlingen heeft. De administratie zou kunnen besluiten om voor de leerlinggegevens een database met daarin een tabel met de volgende records te gaan maken:


naam: Jan

profiel:CM

vak1: wiskunde

vak2: geschiedenis

vak3: tekenen


naam: Piet

profiel:EM

vak1: wiskunde

vak2: economie

vak3: aardrijkskunde


naam: Klaas

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde


naam: Nelleke

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde


naam: Harry

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde


naam: Harry.

profiel:EM

vak1: wiskunde

vak2: economie

vak3: aardrijkskunde

De tabel heeft 5 velden: naam, profiel, vak1, vak2 en vak3.


Sleutelveld


Er blijken op deze school 2 Harry’s te zijn, gelukkig wel met verschillende profielen. Maar het zou kunnen voorkomen dat er meerdere leerlingen met dezelfde naam hetzelfde profiel hebben. Het wordt dan onmogelijk om ze te onderscheiden. Om alle mogelijke misverstanden te vermijden besluit de administratie aan elke leerling een uniek nummer te koppelen, het zogenaamde id-nummer, een soort Sofi- of burgerservicenummer. Zo’n veld waar elke waarde uniek moet zijn heet een sleutelveld. Id is een sleutelveld, want er kunnen niet twee leerlingen zijn met hetzelfde id. De records in de tabel komen er dan als volgt uit te zien:


id: 1

naam: Jan

profiel:CM

vak1: wiskunde

vak2: geschiedenis

vak3: tekenen




id: 2

naam: Piet

profiel:EM

vak1: wiskunde

vak2: economie

vak3: aardrijkskunde




id:3

naam: Klaas

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde




id:4

naam: Nelleke

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde




id: 5

naam: Harry

profiel:NT

vak1: wiskunde

vak2: scheikunde

vak3: natuurkunde




id: 6

naam: Harry.

profiel:EM

vak1: wiskunde

vak2: economie

vak3: aardrijkskunde



Bij 20 leerlingen zouden er nu 20 x 6 = 120 gegevens moeten worden ingevoerd.




id

naam

profiel

vak1

vak2

vak3

1

Jan

CM

wiskunde

geschiedenis

tekenen

2

Piet

EM

wiskunde

economie

aardrijkskunde

3

Klaas

NT

wiskunde

scheikunde

natuurkunde

4

Nelleke

NT

wiskunde

scheikunde

natuurkunde

5

Harry

NT

wiskunde

scheikunde

natuurkunde

6

Harry

NG

wiskunde

scheikunde

biologie

7

Iwan

NT

wiskunde

scheikunde

natuurkunde

8

Nelleke

CM

wiskunde

geschiedenis

tekenen

9

Nelleke

NT

wiskunde

scheikunde

natuurkunde

10

Natasja

CM

wiskunde

geschiedenis

tekenen

11

Alie

NT

wiskunde

scheikunde

natuurkunde

12

Jaap

CM

wiskunde

geschiedenis

tekenen

13

Erik

NG

wiskunde

scheikunde

biologie

14

Erica

NG

wiskunde

scheikunde

biologie

15

Ali

EM

wiskunde

economie

aardrijkskunde

16

Kees

EM

wiskunde

economie

aardrijkskunde

17

Jens

CM

wiskunde

geschiedenis

tekenen

18

Karel

CM

wiskunde

geschiedenis

tekenen

19

Alexia

EM

wiskunde

economie

aardrijkskunde

20

Asma

CM

wiskunde

geschiedenis

tekenen

Gegevens verdelen over meerdere tabellen


Als je even kritisch kijkt zie je dat aan een profiel telkens dezelfde vakken gekoppeld zijn. Dat is telkens dezelfde informatie en die is dus overbodig. Het ontwerp wordt beter wanneer je de gegevens verdeelt over twee tabellen. Deze tabellen worden door één gemeenschappelijk veld gekoppeld. Het veld waarmee je de tabellen gaan koppelen is profiel. Er ontstaan nu twee tabellen, de ene tabel noemen je leerlingen en de andere tabel noemen je profielen. Ze zien er als volgt uit.

De tabel leerlingen




id

naam

profiel

1

Jan

CM

2

Piet

EM

3

Klaas

NT

4

Nelleke

NT

5

Harry

NT

6

Harry

NG

7

Iwan

NT

8

Nelleke

CM

9

Nelleke

NT

10

Natasja

CM

11

Alie

NT

12

Jaap

CM

13

Erik

NG

14

Erica

NG

15

Ali

EM

16

Kees

EM

17

Jens

CM

18

Karel

CM

19

Alexia

EM

20

Asma

CM

En de tabel profielen.




profiel

vak1

vak2

vak3

CM

wiskunde

geschiedenis

tekenen

EM

wiskunde

economie

aardrijkskunde

NG

wiskunde

scheikunde

biologie

NT

wiskunde

scheikunde

natuurkunde

Door de oorspronkelijke tabel te splitsen hoef je nog maar 3x20 + 4x4 = 76 gegevens in te voeren. Bij duizenden leerlingen wordt de winst nog veel groter. En als je later een wijziging in de samenstelling van een profiel wilt doorvoeren, wil je die niet in honderden records doen, maar in slechts 1.


Tabellen koppelen


Als je wilt weten welke vakken leerling Kees heeft, moet je in de tabel leerlingen opzoeken welk profiel Kees heeft en vervolgens in de tabel profielen de vakken aflezen die bij dat profiel horen.


id

naam

profiel




1

Jan

CM




2

Piet

EM




3

Klaas

NT




4

Nelleke

NT




5

Harry

NT




6

Harry

NG




7

Iwan

NT




8

Nelleke

CM




9

Nelleke

NT




10

Natasja

CM




11

Alie

NT




12

Jaap

CM




13

Erik

NG




14

Erica

NG




15

Ali

EM




16

Kees

EM




17

Jens

CM




18

Karel

CM




19

Alexia

EM




20

Asma

CM
































































profiel

vak1

vak2

vak3

CM

wiskunde

geschiedenis

tekenen

EM

wiskunde

economie

aardrijkskunde

NG

wiskunde

scheikunde

biologie

NT

wiskunde

scheikunde

natuurkunde
Relaties en relationele database


Er is dus een relatie tussen het veld profiel in de tabel leerlingen en het veld profiel in de tabel profielen.
De tabellen en de relaties tussen de velden kun je tonen in een zogenaamd strokendiagram:

id

naam

profiel
leerlingen







profiel

vak1

vak2

vak3
profielen

In het bovenstaande strokendiagram staat links de naam van de tabel. Van elke tabel wordt het sleutelveld aangegeven door middel van een horizontale pijl met dubbele kop. De relatie tussen de velden in de twee tabellen wordt aangeduid door de andere pijl.


Zo’n database waarin er relaties bestaan tussen tabellen heet een relationele database.
Tot zover de uitleg over hoe de gegevens in een database zijn georganiseerd.

Een nieuwe database maken met Microsoft Access 2007


Je kunt heel gemakkelijk een tabel aanmaken in Access 2007.


  1. Start Microsoft Access 2007 en klik op Lege database.

Rechts in beeld verschijn een tekstveld waarin je de naam van de nieuwe database kunt opgeven. Je kunt zien dat in versie 2007 van Access de extensie accdb (accessdatabase) is, en niet zoals in versie 2003 mdb (microsoft database).




  1. Geef de database de naam test.accdb.

Dan kies je waar je de nieuwe database neerzet. In dit voorbeeld maakt het niet uit waar dit is. Als je niets beters kunt bedenken gebruik dan de map c:\vb2008metdatabases.




  1. Klik op het gele mapje naast het tekstvak met de naam en kies een map.

  2. Klik op OK.

  3. Klik op Maken.

Er wordt een nieuwe, lege database aangemaakt. Deze bevat 1 lege tabel die tabel1 heet. Je kunt de tabel bewerken in de ontwerpweergave.




  1. Klik links boven in het beeld op Weergave - ontwerpweergave.





  1. Geef de tabel de naam personen.

  2. Klik op OK.

Velden toevoegen aan een tabel


Het eerste veld is al gemaakt. Het heet Id, heeft het gegevenstype autonummering en is voorzien van een primaire sleutel. Dat wil zeggen dat het een sleutelveld is.
Zoals eerder gezegd, elk gegeven in een sleutelveld moet uniek zijn. Ook moet er per se iets worden ingevuld. Een sleutelveld mag dus niet leeg zijn. Wil je bij een veld de sleutel verwijderen, dan selecteer je het veld en klik je op het sleutelicoontje klikken. Maar dat is nu niet nodig.
Je kunt een nieuw veld aan de tabel toevoegen door in de kolom Veldnaam in het tekstvak onder Id de naam van dat nieuwe veld te typen.


  1. Maak een nieuw veld genaamd Naam.

Rechts naast de veldnaam kies je in de tabel Gegevenstype het gegevenstype van het nieuwe veld.




  1. Kies in de kolom Gegevenstype het gegevenstype Tekst.

  2. Voeg nog een nieuw veld toe genaamd Profiel, van het gegevenstype Tekst.

Het geheel ziet er als volgt uit:



Je hebt een nieuwe database gemaakt en een aantal velden toegevoegd aan een tabel. Dat is voor nu wel even genoeg.


  1. Sluit Access.


1   2   3   4   5   6   7   8


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

    Hoofdpagina