I skal lave en database til en nystartet virksomheds webshop. Virksomheden sælger computere og udstyr til computere, som fx printere, routere og lignende. Virksomheden tilbyder også hjælp til installation og opsætning af computere.
Virksomheden har nogle leverandører, den har kunder, den har nogle ansatte/sælgere og den sælger selvfølgelig også varer. Og når man har varer, skal de jo også opbevares et sted, det plejer man at kalde et lager. Disse varer skal selvfølgelig også sendes til kunderne, så det kræver et overblik over, hvilke ordrer kunderne foretager. En sådan ordre burde nok inkludere kunder, varer, osv. Virksomheden vil af indlysende grunde også gerne kunne holde styr på betalingerne, både for de varer de har købt hos leverandørerne og fra kunderne, som køber produkterne.
Alle disse interessenter (+måske nogle flere?) kan I arbejde med, når I laver jeres database.
Man kan simpelthen ikke drive en salgsvirksomhed uden en database.
I kan fx lave en kundetabel.
I kundetabellen skal det blandt andet være muligt, at forespørge på følgende: Kundens navn og adresse, om kunden abonnerer på nyhedsbrev og meget andet!
Det skal også være muligt at forespørge i databasen på: leverandørernes navne, betalingsbetingelser, leveringsform, produkter etc. - resten er op til jeres fantasi.
Start med at få et overblik over opgaven i gruppen. Genlæs indledningen og beskrivelsen af virksomheden og dens interessenter samt behov.
Diskuter virksomheden og dens interessenter. Med udgangspunkt i beskrivelsen af virksomheden, skal I nu lave en model over alle entiteterne i databasen samt deres attributter. Gå tilbage til Lektion 3 og genopfrisk, hvordan I laver den første fase af et E/R-diagram med tabeller og entiteter. Der skal som minimum være 6-7 entiteter, men tænk jer grundigt om!
Afleveringen skal desuden indeholde en kravsspecifikation til databasen. Altså en analyse af virksomhedens behov, fx søge på kunderne, se hvem som har bestilt specifikke varer, hvilke ordrer, der er aktive (endnu ikke er leveret eller er i restordre), osv.
I kan se et eksempel på første del af E/R-modellen nedenfor. I kan med fordel tegne den i online-programmet draw.io.
I skal arbejde videre på jeres tabeloversigt og gøre den til et E/R-diagram vha. nedenstående 3 tilføjelser til modellen.
1. Start med at definere relationerne ved "tegne" en simpel streg mellem de entiteter, som skal have en forbindelse med hinanden. Tænk nøje over om det giver mening og om det er nødvendigt, at der er en relation mellem entiteterne.
2. Når vi har lavet vores relationer, skal relationsgraden bestemmes. En relationsgrad defineres som antalsforholdet mellem entiteterne, altså om en relationer kan have mange af den anden relation. Fx i en webshop, kan en kunde have mange ordrer, men en ordre kan kun haves af en kunde (ellers kommer man jo til at sælge den samme vare til flere forskellige kunder). Relationsgraden beskriver antalsforholdet mellem til relationer. Der er fire typer relationsgrader og de illustreres på følgende måde...
Når man skal skabe tabellerne i databasen skal kan relationsgraden netop bruges til at oprette relationelle tabeller ud fra følgende regler:
For det meste når der er tale om en-til-en relationer (hvilket er meget sjældent) kan de blot oprettes som kolonner i samme tabel.
Når der er tale om en-til-mange relationer kan de oftest laves ved at skabe en tabel for de "mange" og en tabel for "en". Tabellen for "mange" skal indeholde en kolonne, som indeholder primærnøglen fra "en"-tabellen.
Oftest når der er tale om mange-til-mange relationer, skal der skabes en helt tredje tabel, som indeholder primærnøgler fra de to andre tabeller
3. Nu mangler vi at bestemme medlemstypen - så er E/R-diagrammet færdigt. Medlemstype definerer om en relation kan eller skal være tilstede. Det har en betydning for hvordan databasen oprettes. Fx kan en kunde have en relation til ordrer (relationsgraden er kan), men ordrer skal have en relation (relationsgraden er skal), fordi en kunde kan jo godt være en del af databasen uden at købe noget fra webshoppen lige nu, men en ordre må ikke oprettes uden en kunde (fordi så er der jo ingen til at hverken betale eller modtage ordren).
Opgave 1 og 2 skal afleveres på Lectio senest 10.30.