Datatypes & NULL
Datatypes & NULL
Hieronder vind je een aantal oefeningen. Deze oefeningen worden volgende les verder uitgebreid. Voorlopig geef je voor elke opgave:
- De entiteiten
- De attributen voor elke entiteit
- Een primaire sleutel
- De foreign keys
- De multipliciteit (aard en connectiviteit)
- De relatiebeschrijvingen
- Eventuele alternate keys
- De datatypes
- De foreign key specificaties
Opgave 1: CD's
Je hebt een collectie CD’s teruggevonden op zolder. Je zou ze graag opslaan in een databank. Een CD bevat verschillende nummers. Verder moet je weten welke nummers op welke CD staan en van welke artiest de CD is.
Elke CD heeft een titel, een publicatiejaar en een genre. Van elk nummer slaan we de titel en het tracknummer op. Van elke artiest willen we de naam, voornaam en geboortejaar opslaan.
Opgave 2: Restaurant
In een restaurant wordt aan elke klant een ober (m/v) toegewezen tijdens hun bezoek. Een ober kan verschillende tafels bedienen op hetzelfde moment. Van een ober willen we hun naam en geslacht bijhouden.
We willen bijhouden welke klant welke gerechten besteld heeft op een bepaalde dag. Dit datamodel beschouwd dranken als gerecht, alle attributen zijn dan ook dezelfde. We moeten echter wel weten of een verkocht "gerecht" eten, drank of een alcoholische drank is. We vragen de klanten om hun naam. Verder willen we ook weten wie deze klanten bediend heeft. Tenslotte willen we ook een rekening kunnen genereren uit dit systeem. Daarvoor houden we van de gerechten de naam en de prijs bij.
Opgave 3: Tandartsenpraktijk
Een tandartsenpraktijk wil zich moderniseren en de patiënten en dokters bewaren in een database. Sommige patiënten willen steeds door dezelfde arts behandeld worden, anderen willen zo snel mogelijk geholpen worden (de arts speelt geen rol). Niemand bezoekt de tandarts zonder reden, er zijn dus steeds één of meer behandelingen gekoppeld aan bezoek. We willen ook weten in welk specialisatiegebied (endodontologie, orthodontie, kindertandheelkunde, parodontologie, restauratieve tandheelkunde) de behandeling gesitueerd is. Het kan perfect dat een dokter niet gespecialiseerd is een bepaald gebied en toch een behandeling kan uitvoeren, er zijn dus behandeling waarvoor je niet gespecialiseerd moet zijn. Anderzijds kunnen er ook dokters zijn die zich in verschillende gebieden gespecialiseerd hebben.
Opgave 4: Projecten
Een automatiseringsfirma heeft verschillende projecten. Voor elk project is een budget voorzien. De medewerkers voeren werken uit voor één of meerdere projecten. Zij noteren de uren die zij aan een project werken. Een medewerker behoort tot één afdeling. Een afdeling heeft één chef.
| Project | Budget | Medewerker | Afdeling | Chef | Uren |
|---|---|---|---|---|---|
| 001 - VDU | 1000 | 003 - Tony | Analyse | Johan | 60 |
| 005 - Fred | Programmering | Ron | 100 | ||
| 002 - CRT | 800 | 004 - Peter | Analyse | Johan | 200 |
| 005 - Fred | Programmering | Ron | 50 | ||
| 003 - TTV | ... | ... |
Opgave 5: Personeel
Je bouwt in opdracht van HR een systeem om het personeel beter te beheren. Onderstaande informatie moet zeker in de database geplaatst worden.
| Personeelsnummer | Personeelsnaam | Afdelingsnummer | Afdelingsnaam | Afdelingslocatie | Kwalificatie |
|---|---|---|---|---|---|
| 1302 | De Coninck | 13 | Distributie | BR | Kandidaat Pedagogie (1970) Licentie Pedagogie (1973) Doctoraat Pedagogie (1977) |
| 1308 | Maes | 13 | Distributie | BR | Kandidaat Informatica (1980) Licentie Informatica (1982) |
| 1304 | Peeters | 15 | Personeelsdienst | PR | Bachelor (2007) |
| 1312 | Vissers | 23 | Aankoop | BR | Kandidaat Pedagogie (1975) Licentie Pedagogie (1978) Doctoraat Pedagogie (1982) |
| 1328 | Vangenechten | 03 | Klantendienst | PR | Kandidaat Informatica (1980) Licentie Informatica (1982) |
| 1334 | Peeters | 23 | Aankoop | BR | Bachelor (2007) |
Het bedrijf wil uitbreiden, afdelingen bestaan momenteel enkel in België, maar moeten in de toekomst ook wereldwijd opgericht kunnen worden. Voor elke afdeling willen het adres kennen.
Opgave 6: Onderhoud auto
Bij automobielbedrijf 'Mandarijntje' wordt per auto bijgehouden welke onderdelen gebruikt zijn bij een onderhoudsbeurt op een bepaalde datum.
Iedere onderhoudsbeurt krijgt een nummer toegewezen. Een onderhoudsbeurt is van één welbepaalde auto.
Van de auto wordt de nummerplaat, merk, type en kilometerstand per beurt bijgehouden en van welke klant de auto is.
De klant wordt gekenmerkt door een klantnummer en zijn naam en voornaam.
Van elk gebruikt onderdeel wordt het nummer, de omschrijving, eenheidsprijs en aantal gebruikte onderdelen bijgehouden.
Een klant kan verschillende auto’s hebben. Een auto kan verschillende onderhoudsbeurten krijgen.
De eenheidsprijs van een onderdeel kan verschillen per auto.
Onderhoudsnummer: 2017/123
Nummerplaat: 1-ABC-123
Merk: Citroën Type: C6
Klantnr: 123 Peeters Karel
Km. Stand: 47320
Datum onderhoud: 2017-12-15
Gebruikte onderdelen:
| Aantal | Nummer | Omschrijving | Eenheidsprijs | Bedrag |
|---|---|---|---|---|
| 1 | 9979918LOS | Koelvloeistof | 3.81 | 3.81 |
| 1 | 621632 | Steeklamp 5 Watt | 1.25 | 1.25 |
| 4 | BNL51240198 | Bollamp Amber | 2.95 | 11.80 |
| 1 | 1109N3 | Oliefilter | 12.98 | 12.98 |
| Totaal: | 29.84 |
Opgave 7: Consultbureau 't Volle vat
Internationaal consultbureau ’t Volle vat stuurt zijn werknemers uit naar bedrijven. Het consultbureau houdt de gegevens van haar werknemers bij zoals in hetvolgende overzicht.
Inschrijvingsnummer: 74493
Naam: P. Maes
Adres: Korte kerkweg 3
2440 Geel
Telefoonnummer: 014/596323
Chef: 744 P. Peeters
Uitgezonden naar:
| Bedrijf id | Bedrijf | Van | Tot | Job id | Jobomschrijving |
|---|---|---|---|---|---|
| 102 | Hays (1930 Zaventem) | 2017-01-01 | 2017-12-03 | ANA | Analyst |
| 202 | Shell (2600 Berchem) | 2017-04-01 | 2017-07-31 | ANA | Analyst |
| 150 | CM (2440 Geel) | 2017-08-14 | 2017-09-17 | ANPR | Analyst-programmeur |
Inschrijvingsnummer: 74494
Naam: J. Mertens
Adres: Turnhoutsebaan 38
2440 Geel
Telefoonnummer: 014/592362
Chef: 892 M. Daems
Uitgezonden naar:
| Bedrijf id | Bedrijf | Van | Tot | Job id | Jobomschrijving |
|---|---|---|---|---|---|
| 102 | Hays (8500 Kortrijk) | 2017-03-01 | 2017-08-01 | ANPR | Analyst-programmeur |
| 151 | Ladage (3011 GA Rotterdam) | 2017-08-24 | 2017-09-24 | ANA | Analyst |
| 92 | Pol Makelaardij | 2017-10-01 | 2018-01-15 | PROG | Programmeur |
Inschrijvingsnummer: 89295
Naam: P. Maes
Adres: Tulpenlaan 45
2440 Geel
Telefoonnummer: 014-584678
Chef: 892 M. Daems
Uitgezonden naar:
| Bedrijf id | Bedrijf | Van | Tot | Job id | Jobomschrijving |
|---|---|---|---|---|---|
| 202 | Shell (2100 Deurne) | 2017-01-02 | 2017-04-01 | ANPR | Analyst-programmeur |
| 151 | Ladage (3011 GA Rotterdam) | 2017-05-24 | 2017-09-24 | PROG | Programmeur |
| 45 | Jef Klabas | 2017-09-25 | 2018-01-24 | PROG | Programmeur |
Opgave 8: Bestellingen
Een tuincentrum bestelt regelmatig artikelen bij meerdere Belgische groothandels. Het tuincentrum maakt hiervoor een bon op. Dit proces willen we automatiseren.
Bonnummer: 0121
Leverancier: KL014 Flora nv
De Voslei 124
3680 Erps-Kwerpts
Besteldatum: 01/04/2017
Leverdatum: 22/04/2017
| Bestelcode | Omschrijven | Aantal | Prijs | Subtotaal |
|---|---|---|---|---|
| A154 | Beuk (boom rood) | 100 | 250 | 25000 |
| B007 | Fabaceae Brimerus | 200 | 90 | 18000 |
| A092 | Berk (moeras) | 50 | 150 | 7500 |
| Totaal | 50500 | |||
| 5% korting | -2525 | |||
| Netto | 47975 |
Bonnummer: 0122
Leverancier: KL022 Het Meibloempje
Groenstraat 1
2300 Turnhout
Besteldatum: 11/04/2017
Leverdatum: 02/05/2017
| Bestelcode | Omschrijven | Aantal | Prijs | Subtotaal |
|---|---|---|---|---|
| A154 | Beuk (boom rood) | 10 | 250 | 2500 |
| C019 | Appelboom | 20 | 50 | 1000 |
| A092 | Berk (moeras) | 10 | 150 | 1500 |
| Totaal | 5000 | |||
| 5% korting | -100 | |||
| Netto | 4900 |
Sommige leveranciers geven een vaste korting, omdat het tuincentrum er goede klant is. Bij andere leveranciers krijgt het tuincentrum pas een korting als ze minimum een bepaalde hoeveelheid bestellen. Bijvoorbeeld 2% korting als men minstens 20 stuks koopt, dit mogen verschillende planten zijn.