LauwersCollege Buitenpost Informatica klas 5, Hoofdstuk 10 Strokendiagram Relationele databases Sleutel type van kolom Vervolg validatieregel actie-queries WBP index locking LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Taken van een databasesysteem Het opslaan van gegevens en het mogelijk maken van wijzigingen Het kunnen opvragen van informatie en het verwerken van informatie Het bewaken van de integriteit (dus het voorkomen van fouten) LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Strokendiagram De tabellenstructuur wordt vaak m.b.v. een strokendiagram weergegeven Dit is een overzicht van de tabellen met Hierin ook: •Primaire sleutels •Verwijzingen •Niet-leeg-regels * Kolommen * Sleutelvelden * Refererende sleutels Strokendiagram: LauwersCollege Buitenpost Een schema waarin de tabellen als stroken verschijnen met daarin de namen van de kolommen Informatica LauwersCollege Buitenpost Strokendiagram van Rundveeadministratie Bedrijven bedrijfsnr naam adres postc plaats tel Koeien koenr vader moeder gebdat bedrijfsnr Tabellen Jaarprod koenr jaar kgmelk vetgeh eiwitgeh LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost (Primaire) Sleutel van een tabel Een kolom die uniek is In elke rij moet een waarde in de sleutelkolom zijn ingevuld en deze waarden zijn allemaal verschillend In het strokendiagram wordt de sleutel aangegeven met een dubbele pijl bedrijfsnr naam adres postc plaats tel koenr jaar kgmelk vetgeh eiwitgeh LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Candidate key Er zijn vaak verschillende mogelijkheden om een sleutel te kiezen. Dat noem je dan Kandidaatsleutels (Candidate Keys) Je kiest dan één van die kandidaatsleutels uit als de primaire sleutel (primary key) Vaak wordt er een nummer als primaire sleutel genomen • Dan ben je er zeker van dat het uniek is • Er is gemakkelijk naar te verwijzen vanuit een andere tabel LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Verwijzing of referentie-sleutel Er is een kolom van een tabel waarin verwezen wordt naar een kolom van een andere tabel Zo’n verwijzing heet een Referentiesleutel of Foreign key In het strokendiagram wordt de referentiesleutel aangegeven met een pijl bedrijfsnr naam adres postc plaats tel koenr vader moeder gebdat bedrijfsnr LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Referentiële integriteit Het controleren van de verwijzingen noem je het bewaken van de referentiële integriteit Dit heeft gevolgen voor de volgorde van invullen van de database; je moet eerst de tabel bedrijven invullen, daarna de tabel koeien want als je daar het bedrijfsnr invult wordt gecontroleerd of dat voorkomt in de tabel bedrijven. bedrijfsnr naam adres postc plaats tel koenr vader moeder gebdat bedrijfsnr LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Relaties in Access sleutelveld Dit geeft een 1 op veel relatie aan. LauwersCollege Buitenpost Het relatievenster in access kun je vergelijken met een strokendiagram. Bij 1 auteur kunnen veel boeken horen en bij 1 boek kan maar één auteur horen Informatica LauwersCollege Buitenpost Het type van een kolom Een veld kan tekst, getallen, datums, enz bevatten. Dat kun je in Access aangeven Getallen: Integer, Smallint, Real, enz. Tekst: bijv. char(15) Je hebt ook het type Date en Time Tekst moet tussen aanhalingstekens, getallen niet (SQL: where name=‘Piet’ , where kgmelk= 8000) LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Het type van een kolom in Access Het type kun je in Access aangeven als je rechtsklikt op de tabel, en dan kiest voor ontwerpweergave. Bij Gegevenstype (boven) het type invoeren, bij veldlengte of notatie (onder) kun je dat verfijnen LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost De ontwerpweergave van een tabel Tekst getallen Dit heet: data een niet-3 regels voor de waarden in een kolom: enz. Er bestaan leeg-regel 1. Je kunt eisen dat er in een kolom beslist iets moet worden ingevuld 2. Je kunt eisen dat de waarde van een bepaald soort wordt ingevuld In een validatieregel 3. Je kunt eisen dat er uit een paar letters, cijfers of woorden kan worden gekozen. LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Validatieregel Je kunt in Access regels vastleggen waarmee invoer gecontroleerd kan worden: Rechtsklik op een tabel, dan op ontwerpen Maar 1 sleutelveld teken! validatieregel LauwersCollege Buitenpost niet leeg! Informatica LauwersCollege Buitenpost Database wijzigen met SQL Opvragen van informatie gaat met Select Toevoegen van regels met Insert Wijzigen van regels met Update Verwijderen van regels met Delete Tabel maken met Create Table LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost SQL-queriesRundvee-administratie Er volgen nu vier voorbeelden die betrekking hebben op een database waarin de administratie van rundveehouderijen wordt bijgehouden Bedenk na elke opgave zelf wat de sql-query zal zijn, druk dan op PgDn of klik op de muis LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Strokendiagram van Rundveeadministratie Bedrijven bedrijfsnr naam adres postc plaats tel Koeien koenr vader moeder gebdat bedrijfsnr Jaarprod koenr jaar kgmelk vetgeh eiwitgeh LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost SQL: Toevoegen met insert Er is een kalfje geboren op 05-11-2003, het koenummer wordt 1245, het nummer van de moeder is 756, van de vader 877, het nummer van het bedrijf is 2003 Insert into koeien (koenr, vader, moeder, gebdat, bedrijfsnr) Values ( 1245 , 877 , 756 , '05-11-2003' , 2003); LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost SQL: Wijzigen met update Het kalfje met nr. 1245 van de vorige dia wordt verkocht, het nummer van het nieuwe bedrijf is 1765 Update koeien set bedrijfsnr = 1765 where koenr = 1245; LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost SQL: Verwijderen met delete Het kalfje met nr. 1245 van de vorige dia is ziek geworden en helaas overleden. Het kan uit de database worden verwijderd. Delete from koeien where koenr = 1245; LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost SQL: Nieuwe tabel met create Geef de sql-query voor het maken van de tabel Bedrijven Create table bedrijven bedrijfsnr integer not null, naam varchar(30) not null, adres varchar(20), postc varchar(7), plaats varchar(20), tel varchar(10), primary key (bedrijfsnr) ( ) LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost WBP 2001: Wet Bescherming Persoonsgegevens 1 Een persoon van wie persoonsgegevens worden vastgelegd heeft recht op inzage in zijn gegevens. 2 • • • Een betrokkene kan correctie verzoeken in drie gevallen: de gegevens zijn onjuist; bepaalde gegevens zijn niet ter zake dienend; de persoonsgegevens worden anders gebruikt dan bedoeld 3 Het verstrekken van persoonsgegevens aan anderen moet verenigbaar moet zijn met het doel LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Index Als er een index op een kolom gemaakt is kan er veel sneller worden gezocht in die kolom Er kan dan binair gezocht worden, het halverings-algoritme kan gebruikt worden Als er bijvoorbeeld 1000 records zijn moeten er maximaal 10 bekeken worden als er iets gezocht moet worden, omdat 210 > 1000 is LauwersCollege Buitenpost Informatica LauwersCollege Buitenpost Locking Bij grote databases moet je er rekening mee houden dat twee personen tegelijk iets willen veranderen. Dat heet concurrency, je hebt dan concurrente processen Er wordt gebruik gemaakt van locking: de toegang tot het record, waar iets mee gebeurt, wordt geblokkeerd. Bij de SQL-opdracht commit wordt ervoor gezorgd dat een transactie werkelijk word uitgevoerd. Bij een storing kan de database hersteld worden m.b.v. de opdracht rollback; alle onvolledige transacties worden dan teruggedraaid Ook deadlocks moeten worden voorkomen LauwersCollege Buitenpost Einde Informatica