Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMaria Jacobs Laatst gewijzigd meer dan 7 jaar geleden
1
Entiteiten bedrijfsvoering (Extra)
Entiteiten Webshop Klant Wie doet de bestelling? Product Wat kan hij bestellen? Bestelling Wat bestelt hij werkelijk? Factuur Wat betaalt hij ervoor? Historie Wat heeft hij ooit besteld? Entiteiten bedrijfsvoering (Extra) ProductB Waar vind ik het (magazijn)? Waar kan ik het bestellen? Wie is het interne contactpersoon? Hoe loopt het product? FiscusB Wat is er verkocht? Welke tarieven zijn doorberekend? Welke lasten zijn afgedragen? Nationaliteit van de klanten? De tweede lijst heeft talloze valkuilen m.b.t.. anomalieën
2
Entiteiten Webshop Klant Wie doet de bestelling? Product Wat kan hij bestellen? Bestelling Wat bestelt hij werkelijk? Factuur Wat betaalt hij ervoor? Historie Wat heeft hij ooit besteld?
3
Klant KlantID Naam Straat Nummer PC Plaats Email Krediet UserID
Plaats en straat kunnen beide afgeleid worden uit de postcode. het is echter onwaarschijnlijk dat de eigenaar van de webshop zicht heeft op wijzigende straatnamen. Deze informatie kan hij hoogstens krijgen van de klant in dat geval kan hij alleen de straatnaam wijzigen van de klant in kwestie. Het zou niet juist zijn om de straatnamen van andere klanten te wijzigen op het gezag van één klant. Voor een plaatsnaam ligt dat anders. Als een plaatsnaam wijzigt, is dat makkelijker via een algemene verordening te achterhalen. We kiezen er daarom voor om de plaatsnaam centraal bij te houden en de straatnaam bij de klant.
4
Klant, als plaats apart wordt opgeslagen
KlantID Naam Straat Nummer PC Krediet UserID Begincode Eindcode Plaats 3430 3439 Nieuwegein 3500 3585 Utrecht 6160 6167 Geleen 6174 Sweikhuizen Bovenstaand voorbeeld gaat ervan uit dat we een tabel hebben met plaatsnamen.
5
Klant, als plaats apart wordt opgeslagen
KlantID Naam Straat Nummer PC Krediet UserID Postcode Plaats 3434 CN Nieuwegein 3513 EX Utrecht 6161 JK Geleen 6174 DG Sweikhuizen Bovenstaand voorbeeld gaat ervan uit dat we geen tabel met plaatsnamen hebben. We kunnen dan lastig het interval bepalen waartussen de postcodes liggen en moeten alle postcodes afzonderlijk opnemen.
6
Klant, als plaats en straat apart worden opgeslagen
KlantID Naam Nummer PC Krediet UserID Postcode Straat Plaats 3434 CK Hondsdraf Nieuwegein 3513 EX Oudenoord Utrecht 6161 CT Spaubeeklaan Geleen 6174 JJ Bergstraat Sweikhuizen Het is lastig om aan een tabel te komen (en deze te onderhouden) van straat en plaats. We moeten deze tabel daarom zelf opbouwen.
7
Product ProdID Naam Prijs Voorraad
In deze tabel staat de minimale hoeveelheid informatie die we nodig hebben om bij een klant een bestelling te kunnen plaatsen. Voorraad staat hier in plaats van bij de ProductB-tabel, maar Voorraad is hier nodig om te kunnen bepalen of er voor de klant nog een exemplaar is zonder de ProductB-tabel te hoeven raadplegen. Om redundantie te voorkomen, moet Voorraad daarom niet in de ProductB-tabel opgenomen worden. Een vergelijkbaar argument geldt voor prijs. Een alternatieve oplossing is om Product en ProductB samen te voegen tot één tabel met alle informatie
8
Bestelling/Historie KlantID ProdID Besteldatum Aantal Korting
We missen hier een prijs. Deze kan bepaald worden uit de tabel van product, maar dat is niet mogelijk als voor de prijs, de prijs voor de datum van bestelling geldt. Zo lang de bestelling open staat, zal in bovenstaand voorbeeld de prijs van de bestelling veranderen als de productprijs verandert. Het hangt dus van de algemene verkoopvoorwaarden af of de prijs in de bovenstaande relatie thuis hoort of niet. Korting kan afhankelijk zijn van vele factoren. Waarschijnlijk is deze afhankelijk van de andere kolommen in de tabel, maar er kan ook een actiekorting zijn die onafhankelijk is van deze attributen. Historie kan voor het grootste gedeelte gelijk zijn aan Bestelling
9
Factuurregel KlantID ProdID Prijs Aantal Korting
Factuurregel is een enkele regel die op een factuur voorkomt. Een aantal van deze regels wordt samengevoegd tot een lijst, die aangevuld worden met een totaal. Deze tabel is voor een groot deel hetzelfde als de besteltabel en deze tabel kan ook probleemloos afgeleid worden uit die tabel. De factuurregel-tabel is daarom ook volledig redundant.
10
Entiteiten bedrijfsvoering (Extra)
ProductB Waar vind ik het (magazijn)? Waar kan ik het bestellen? Wie is het interne contactpersoon? Hoe loopt het product? FiscusB Wat is er verkocht? Welke tarieven zijn doorberekend? Welke lasten zijn afgedragen? Nationaliteit van de klanten?
11
ProductB ProdID LevID ConID Besteld Min voorraad BestGrootte BestDatum
In deze tabel staan drie kolommen die direct te maken hebben met de voorraad. Min Voorraad is de minimaal vereiste voorraad voordat tot bestelling wordt overgegaan. Besteld geeft aan hoe veel er in bestelling zijn en Bestgrootte geeft het aantal aan dat we in één keer bestellen. Door de aanwezigheid van Besteld en Besteldatum is deze tabel gevoelig voor anomalieën. Als er namelijk een bestelling is geplaatst, kan er geen nieuwe bestelling worden geplaatst zonder een extra rij in te voegen. Deze tabel staat niet in de vierde normaalvorm. Deze tabel houdt twee entiteiten bij: informatie over een product en informatie over de bestelling van een product.
12
ProductB BesteldProductB ProdID LevID ConID Min voorraad BestGrootte
BestelDatum Besteld Iedere tabel houdt nu één entiteit bij: de eerste informatie over een product en de tweede informatie over de bestelling van een product. Min Voorraad en Bestgrootte liggen vast voor het product en kunnen daarom in de ProductB-tabel blijven staan.
13
FiscusB KlantID Nation ProdID Besteldatum Prijs Afdracht
Nationaliteit is een eigenschap van een klant en hoort in deze tabel niet thuis. Onderbrengen bij klant is beter. Besteldatum is gelijk aan besteldatum bij Bestelling, maar is hier nodig om het afdrachtjaar te bepalen. De prijs is de berekende prijs. Deze is niet gelijk aan de prijs bij Product, maar is te berekenen via de prijs bij de bestelling en de toegekende korting. Afdracht is het bedrag dat aan belasting moet worden afgedragen voor deze transactie. Deze is afhankelijk van de totaalprijs, het belastingtarief en de nationaliteit van de klant. Hiervoor moet in elk geval bij Product (wat de klant ziet) het BTW-tarief toegevoegd worden en bij Klant de nationaliteit.
14
Opdracht Ontwerp een database ten behoeve van je project en maak de
tabellen optimaal voor het geplande gebruik. (Als je nog geen projectplan hebt) Ontwerp een database voor het maken van een speelfilm. Daarbij moet je rekening houden met de volgende entiteiten: Cast Crew Props Scenes Continuïteit Cast- en Crew-members nemen elkaars rol niet over. In een scene kunnen verschillende castmembers spelen. Een scene wordt geschreven door een crew-member. Voor een prop zijn altijd twee crew-members verantwoordelijk, waarbij één de eerstverantwoordelijke is. Een crewmember heeft een onbepaald aantal props onder beheer.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.