Workshop 14 oktober 2010
Workshop 3x • Normaliseren
Normaliseren
• Analytisch vermogen • Huiswerk • Activiteitenschema Lestijden Pauze
10:00 – 12:30 10:15 – 10:30
Normaliseren Deze les: • • • •
Hiëarchische database Relationele database Relationele database ODBMS Normaliseer stappen
Hiëarchische database • Elk record in een database verwijst naar een n‐aantal andere records • een boomstructuur, die steeds verder kan vertakken • Kenmerkend: ieder recordtype kent maar één eigenaar (owner)
Relationele database
ODBMS
• Gegevens opgeslagen in tabellen met soortgelijke groepen informatie • Verschillende tabellen worden verbonden door een kolom / sleutel toe te voegen met een verwijzing naar een record in een andere tabel • Database wordt opgeslagen, geraadpleegd en gewijzigd Database wordt opgeslagen geraadpleegd en gewijzigd middels een relational database management system, RDBMS. • Benaderd door middel van de taal SQL
• Werkt met objecten, zoals in objectgeörienteerde programmeertalen • Doel is het invoegen van objecten eenvoudig te maken • Objecten die men gebruikt direct in database opslaan • Poging voor standaard vraagtaal in OQL P i d d l i OQL • Data sneller op te vragen door geen join operaties
A. Snippe ‐ ICT Lyceum
1
Workshop 14 oktober 2010
Normaliseren
Normaliseren
• Edgar Codd
Definities: • Gegevens: gebeurtenissen die op een bepaalde manier vastgelegd zijn • Informatie: de betekenis die aan gegevens gegeven wordt • Tupel: een rij in een tabel • Attribuut: een kolom in een tabel • Sleutel: uniek attribuut in een tabel • Redundantie: het dubbel opslaan van gegevens
– – – – –
Wiskundige bij IBM (International Business Machines) Hierarchische databases gegevensverlies of overhead problemen Oplossing voor anamoliën zijn zes normaal vormen ‘A Relational Model for Data in Large Shared Data Banks’ (boek 1970) IBM had geen zin in relationele databases
• Larry Ellison – – – –
Zag wel iets in het idee van Codd en werkte het uit Maakte in 1977 relationele database Oracle Één van de rijkste mensen ter wereld Oracle produceert allerhande relationele databasesystemen
0NV – inventariseren
Alle gegevens op de afleverbon onder elkaar zetten Geef de inventarisatie een naam in hoofdletters
0NV – inventariseren ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats artnr artomschrijving aantal prijs regeltotaal eindtotaal
1NV – stappen
1NV – stap 1
1. Verwijder alle procesgegevens. 2. Geef de sleutel van de groep aan 3. Bepaal de deelverzameling die een herhaald aantal keren voorkomt t.o.v. de primaire sleutel 4 Herhaal de sleutelgegevens van de oorspronkelijke 4. H h ld l l d k lijk groep samen met de gegevens van de zich herhalende deelverzameling als een nieuwe groep 5. Verwijder de zich herhalende deelverzameling uit de oorspronkelijke groep
1. Verwijder alle procesgegevens
A. Snippe ‐ ICT Lyceum
Gegevens die uit een berekening van andere gegevens voortkomen.
regeltotaal = aantal * prijs eindtotaal = som alle regeltotalen ORDER ordernr orderdatum klantnr klantnaam adres postcode
plaats artnr artomschrijving aantal prijs regeltotaal eindtotaal
2
Workshop 14 oktober 2010
1NV – stap 2
1NV – stap 3
2. Geef de sleutel van de groep aan
3. Bepaal de deelverzameling die een herhaald aantal keren voorkomt t.o.v. de primaire sleutel
Sleutel altijd uniek Sleutel wordt onderstreept ORDER ordernr orderdatum klantnr klantnaam adres postcode
Deelverzameling = Repeterende Groep (RG) Gegevens die vaker voorkomen
plaats artnr artomschrijving aantal prijs regeltotaal eindtotaal
ORDER ordernr orderdatum klantnr klantnaam adres postcode
plaats RG : artnr RG : artomschrijving RG : aantal RG : prijs regeltotaal eindtotaal
1NV – stap 4
1NV – stap 5
4. Schrijf RG op en voeg sleutelgegevens van de oorspronkelijke groep toe
5. Verwijder de zich herhalende deelverzameling uit de oorspronkelijke groep
Geef RG een naam Kies sleutel en voeg de sleutel van oorspronkelijke groep toe ORDER ordernr orderdatum klantnr klantnaam adres postcode
plaats RG : artnr RG : artomschrijving RG : aantal RG : prijs regeltotaal eindtotaal
BESTELDE_ARTIKELEN ordernr artnr artomschrijving aantal Prijs
Oorspronkelijke groep opruimen Resultaat is de Eerste Normaalvorm ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr artnr artomschrijving aantal prijs
2NV – stappen
2NV – stap 1
1. Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel 2. Formeer een aparte groep voor ieder deel van de sleutel waarvan de attributen functioneel afhankelijk zijn 3. Neem in iedere groep de attributen met het bijbehorende sleuteldeel op en wijs de primaire sleutel aan 4. Verwijder deze attributen uit de oorspronkelijke groep
1. Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel Alleen voor groepen met meer dan 1 sleutel Geef aan welk deel bij een stuk sleutel hoort ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr >artnr >artomschrijving aantal >prijs Aantal niet, kan per order verschillen!
A. Snippe ‐ ICT Lyceum
3
Workshop 14 oktober 2010
2NV – stap 2
2NV – stap 3
2. Formeer een aparte groep voor elk deel van de sleutel waarvan de attributen functioneel afhankelijk zijn
3. Neem per groep de attributen met het bijbehorende sleuteldeel op en wijs de primaire sleutel aan
Het kan zijn dat er in meerdere delen gesplitst kan worden. Oplossing: meerdere groepen vormen. ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr >artnr >artomschrijving aantal >prijs
ARTIKEL
Nieuwe groep – nieuwe naam – nieuwe sleutel
ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr >artnr >artomschrijving aantal >prijs
ARTIKEL artnr artomschrijving prijs
2NV – stap 4
3NV – stappen
4. Verwijder deze attributen uit de oorspronkelijke groep
1. Geef de niet‐sleutel attributen aan die functioneel afhankelijk zijn van andere niet‐sleutel attributen 2. Formeer een aparte groep voor ieder attribuut of combinatie van attributen, waar andere attributen functioneel van afhankelijk zijn functioneel van afhankelijk zijn 3. Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan 4. Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke groep
Oorspronkelijke groep opruimen – laat sleutel staan! Resultaat is de Tweede Normaalvorm ORDER ordernr orderdatum klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr artnr aantal
ARTIKEL artnr artomschrijving prijs
3NV – stap 1
3NV – stap 2
1. Geef de niet‐sleutel attributen aan die functioneel afhankelijk zijn van andere niet‐sleutel attributen
2. Formeer een aparte groep voor iedere groep attributen, waar andere attributen afhankelijk zijn
Lijkt op 2NV‐1, maar dan afhankelijk van niet‐sleutel
ORDER ordernr orderdatum >klantnr >klantnaam >adres >postcode >plaats
A. Snippe ‐ ICT Lyceum
BESTELDE_ARTIKELEN ordernr artnr aantal
ARTIKEL artnr artomschrijving prijs
Lijkt op 2NV‐2
ORDER ordernr orderdatum >klantnr >klantnaam >adres >postcode >plaats
BESTELDE_ARTIKELEN ordernr artnr aantal
ARTIKEL artnr artomschrijving prijs
KLANTEN
4
Workshop 14 oktober 2010
3NV – stap 3
3NV – stap 4
3. Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan
4. Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke groep
Lijkt op 2NV‐3 Let op! klantnr in ORDERS laten staan vanwege relatie ORDER ordernr orderdatum >klantnr >klantnaam >adres >postcode >plaats
BESTELDE_ARTIKELEN ordernr artnr aantal KLANTEN klantnr klantnaam adres postcode plaats
ARTIKEL artnr artomschrijving prijs
Relatie tabellen – ERD ORDER ordernr orderdatum klantnr
ARTIKEL artnr artomschrijving prijs
KLANTEN klantnr klantnaam adres postcode plaats
BESTELDE_ARTIKELEN ordernr artnr aantal Toelichting: • 1 klant hoort bij 1 order • 1 klant kan meerdere orders hebben • op 1 order kunnen meerdere artikelen voorkomen • een besteld artikel kan maar op 1 order voorkomen • 1 artikel kan vaker besteld worden • bij 1 besteld artikel hoort maar 1 artikel beschrijving
Oorspronkelijke groep opruimen – laat sleutel attribuut staan! Resultaat is de Derde Normaalvorm ORDER ordernr orderdatum klantnr
BESTELDE_ARTIKELEN ordernr artnr aantal KLANTEN klantnr klantnaam adres postcode plaats
ARTIKEL artnr artomschrijving prijs
Normaliseren Opdracht : Maak de normalisatie af en maak het ERD
25 minuten
Huiswerk Leeswerk • Uitleg in hand‐out deze week
Analytisch vermogen
Maakwerk • Normaliseren uitgedeelde factuur
A. Snippe ‐ ICT Lyceum
5
Workshop 14 oktober 2010
Analytisch vermogen Opdracht: maak de puzzel van vorige week
Huiswerk
20 minuten
Huiswerk vorige week • Opdracht 8
Activiteiten schema
• Inleveren opdracht 10 – USE‐case diagram + tabellen – Activiteitenschema
Activiteitenschema
Activiteitenschema Swimlanes
Startsymbool
Actoren
Stopsymbool S Stroom / flow / fl symbool b l Synchronisatiebalk Activiteit
A. Snippe ‐ ICT Lyceum
6
Workshop 14 oktober 2010
Activiteitenschema
Activiteitenschema
Actoren
Opdracht: Swimlanes
activiteitenschema opdracht 9 (Hoofdstuk 3)
25 minuten
Huiswerk
Workshop 3x
Leeswerk
• Project documentatie
• Hoofdstuk 3: Informatie Analyse
• Analytisch vermogen • Programma structuur
Maakwerk • Maken opdracht 10 hoofdstuk 3 • Inleveren opdracht 9 hoofdstuk 3
VRAGEN Lestijden Pauze
A. Snippe ‐ ICT Lyceum
08:30 – 11:00 10:15 – 10:30
7