Lezing databases en sql



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

1.2.3 Indexen


Indexen worden gebruikt om gegevens logisch te sorteren, zodat zoek- en sorteeropdrachten sneller kunnen verlopen. U kunt een index het beste vergelijken met een index of trefwoordenlijst in een boek, een alfabetische lijst woorden met referenties naar locaties in het boek.
Een index in een database werkt op bijna dezelfde wijze. De gegevens van de primaire sleutel (zie 1.2.5) zijn altijd gesorteerd, dat doet het DBMS voor u.
U kunt een index definiëren op één of meer kolommen, zodat het DBMS voor zichzelf een gesorteerde lijst bewaart van de inhoud van de tabel. Het DBMS gebruikt deze index op dezelfde manier als u een register in een boek gebruikt. Het zoekt in de gesorteerde index naar de locaties van bepaalde woorden en haalt dan de gevraagde rijen op.
U moet bij het aanmaken van indexen het volgende in gedachten houden:

  • Met indexen kunt u weliswaar sneller gegevens opzoeken, maar het invoeren, veranderen en verwijderen van gegevens wordt langzamer. Bij het uitvoeren van deze operaties moet het DBMS namelijk ook de indexen bijwerken.

  • Indexen kunnen veel opslagruimte in beslag nemen.

  • Indexen worden gebruikt voor filteren en sorteren van gegevens. Als u gegevens vaak in een bepaalde volgorde sorteert, kunt u hier beter een index voor definiëren.



1.2.4 Rijen


Gegevens in een tabel worden bewaard in rijen. Elk opgeslagen record wordt bewaard in zijn eigen rij. Als u een tabel weer vergelijkt met een raster zoals een spreadsheet, zijn de verticale kolommen van het raster de kolommen van de tabel en de horizontale rijen zijn de rijen van de tabel (zie figuur 1).
In een tabel met klantgegevens worden de gegevens van één klant in een rij geplaatst. Het aantal rijen in de tabel is het aantal records van de tabel. Een rij is dus een record in een tabel. Een onderdeel van zo’n record (bijvoorbeeld klantnummer) wordt ook wel veld genoemd.

1.2.5 Sleutels


Elke rij in een tabel moet een kolom (of meerdere kolommen) bevatten die een unieke waarde heeft. Een tabel met klantgegevens bevat bijvoorbeeld een kolom met klantnummers, terwijl in een tabel met bestelgegevens een kolom met bestelnummers voorkomt. In een tabel met de gegevens van alle werknemers kan een kolom met werknemersnummers of Sofi-nummers worden gebruikt.
De kolom (of reeks kolommen) waarmee elke rij in een tabel wordt geïdentificeerd, wordt de primaire sleutel (primary key) genoemd. De primaire sleutel verwijst naar een enkele rij. Het is heel moeilijk specifieke rijen uit een tabel bij te werken of te verwijderen als er geen primaire sleutel gedefinieerd is. Definieer daarom altijd een primaire sleutel.

Elke kolom in een tabel kan worden aangewezen als primaire sleutel, zolang het aan de volgende voorwaarden voldoet:



  • Er mogen geen rijen zijn waarvan de primaire sleutels dezelfde waarden hebben;

  • De primaire sleutel in een rij moet altijd een waarde hebben, m.a.w. de kolom mag geen NULL-waarde bevatten;

  • De kolom die de waarden van de primaire sleutel bevat, kan niet worden veranderd of bijgewerkt;

  • De waarden van de primaire sleutel kunnen niet opnieuw worden gebruikt. Als een rij uit de tabel wordt verwijderd, kan de primaire sleutel niet aan een nieuwe rij worden toegekend.

Primaire sleutels worden meestal gedefinieerd bij een enkele kolom binnen een tabel. Zo ligt het voor de hand dat de kolom klantnummer uit de tabel in figuur 1 de primaire sleutel is. Het is echter ook mogelijk een combinatie van meerdere kolommen te gebruiken als primaire sleutel. Als er meerdere kolommen worden gebruikt, gelden de hierboven gegeven regels voor alle kolommen. De waarden van alle kolommen moeten samen uniek zijn. De individuele kolommen hoeven dan dus geen unieke waarden te hebben.


Er bestaat nog een heel belangrijk soort sleutel, de refererende of vreemde sleutel (foreign key). Deze sleutel is een kolom in een tabel waarvan de waarden in de primaire sleutel van een andere tabel moeten voorkomen.

1.3 Relaties tussen tabellen


Een database bestaat nagenoeg altijd uit meerdere tabellen. Tussen deze tabellen kunnen relaties worden gelegd. Zo’n database heet een relationele database.
Voordelen

De voordelen van relaties blijken uit het volgende voorbeeld. Stel dat een schoolbibliotheek gegevens van boeken en uitgevers wil bijhouden. In een niet relationele database zou u één grote tabel kunnen maken voor alle informatie, maar dan zou u veel gegevens meer malen moeten opslaan. Voor elk boek zou u dan bijvoorbeeld ook het adres van de uitgever willen opnemen. Als een schoolbibliotheek tien boeken van dezelfde uitgever in haar collectie heeft, dan moet dat adres tienmaal opgeslagen worden. Wanneer een uitgever verhuist, moeten er tien adreswijzigingen in de tabel worden aangebracht. In een relationele kunt u twee aparte tabellen maken, één met de boekgegevens en één met de gegevens van de uitgever, en deze tabellen vervolgens koppelen. Daardoor hoeft een adreswijziging maar één keer te worden aangebracht. Dat werkt niet alleen sneller. U voorkomt zo ook invoerfouten.


De volgende relaties bestaan:
Eén-op-veel

In een één-op-veel (1-N) relatie kan de waarde met een primair sleutelveld in de ene tabel meer malen voorkomen in het gekoppelde veld in de andere tabel. Deze relatie komt het meest voor.


Eén-op-één

In een één-op-één (1-1) relatie heeft de waarde in een primair sleutelveld in de ene tabel nooit meer dan één overeenkomende waarde in het gekoppelde veld in een andere tabel. Deze relatie komt niet zo vaak voor. Meestal kunnen tabellen met een één-op-één relatie namelijk eenvoudig worden gecombineerd tot één tabel.


Veel-op-veel

In veel DBMS’en, waaronder MS Access kunt u geen veel-op-veel (N-N) relaties definiëren. Het mag dus niet nooit zo zijn dat de waarde in een veld in de ene tabel vaker in dat veld kan voorkomen dan in het gekoppelde veld in een andere tabel. Door altijd uit te gaan van een primair sleutelveld zult u nooit op zo’n veel-op-veel relatie stuiten.






1   2   3   4   5   6   7   8


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

    Hoofdpagina