Archief - [ALG] Normaliseren van database

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Z!rtox

Legacy Member
Hallo

Ik moet voor mijn GIP op mijn stageplaats een inventarisatie maken van al de pc's die daar aanwezig zijn. Dit moet in ene access database komen. Ze hadden gevraagt om de database eerst deftig te normaliseren alvoor ik hier aan begon. Normaliseren was echter nooit mijn sterkste kant en daarom zoek ik iemand die mij wat zou kunnen helpen met normaliseren. Als iemand een deftig genormaliseerde database heeft liggen dat gebruikt kan worden vor het inventariseren van een computrpark is dat natuurlijk ook altijd welkom als voorbeeld database.
Als iemand mij echt goed zou willen helpen en mij helpt heel de databse op te stellen (en normaliseren) kan deze persoon een kleine vergoeding krijgen voor zijn werk. (nu ook wel geen 100€ fzo he :) )

Alvast merci om te helpe he manne

Yamakazi

Legacy Member
Probeer eens zelf een structuur op te stellen en post die hier. Wij zullen je dan helpen normaliseren. Zo leer je dan ook een beetje bij, en kan je eventueel zelf je keuzes motiveren als je jouw gip moet verdedigen voor een jury.

En access?? *Shiver*

killgore

Legacy Member
huiswerkthreads zijn verboden op tng. Begin zelf op te stellen en vraag hulp waar je klem zit;

AsinuS

Legacy Member
zonder jouw begin structuur is er voor ons niet veel te normaliseren he. Als je dan toch had gehoopt dat iemand hier ene kant en klare db zou posten, dan had je beter nog wat meer achtergrondinfo gegeven ..

grtz

Z!rtox

Legacy Member
nja, heeft geen nut da ik heel de oefening ga uitlegge as er niemand gaat/kan helpe e...

Het gaat dus om een database die moet dienen voor het inventariseren van al de pc's binnen een school. Wat moet er allemaal inziiten:

*Een nieuw uniek identifactie nummer (de primairie key neem ik aan)
*Hardware:
-moederbord (type, socket)
-netwerkkaart (MAC adres, indien onboard moet dit aangegeven worden)
-geheugen (hoeveelheid, type)
-cpu (fabrikant, type)
-videokaart (chipset fabrikant, type, indien onboard moet dit aangegeven zijn)
-uitbreidingskaarten (pci kaarten e.d. dit mag gewoon in een tekstvak komen)
-BIOS (versie)
-HD (fabrikant, type, capaciteit, cache)
-Drives (CD/DVD, ROM/RW)
-Floppy (aanwezig ja/neen)
*herstellingshistoriek
-datum
-vericht door...
-onderdeel dat hersteld/vervangen/aangevuld is
-aard van de herstelling (software/hardware/netwerk/...)


Dat is het dat er allemaal in zopu moeten komen. Kheb wat opgezocht nzo, en nu zou ik moeten beginnen aan de eerste normaalvorm, verwijderen van repeating groupes. Kzou begot nie wete welke da zijn in mijn geval.

De database zelf ontwerpen met de nodige qery's, formulieren, raporten, etc. zal wel lukken, ma da normaliseren... euh, nope.

Thx 4 your reply's and for your help :bow:

Yamakazi

Legacy Member
Een voorbeeld van repeating groeps is de herstellinghistoriek. Dit neem je namelijk niet op in je master tabel maar zal een detail tabel worden. De cardinaliteit zal 1 -> N zijn. Eén pc kan namelijk 0 of meer reparaties kennen.

Wat dan je cpu, geheugen, videokaart, netwerkkaart, ... betreft.

Als dit dikwijls verschilt zou dit vrije tekst zijn. Maar ik neem aan dat dikwijls dezelfde types terugkomen. Daarom is het nuttig om look up tables te maken.
De info die dikwijls terug komt staat in deze look up table.

VB:

CPU

CPU_ID
FREQUENCY
CORES
CACHE

In je master table zal je enkel CPU_ID moeten opslaan.
De cardinaliteit tussen de master table en de look up zal N --> 1 zijn. Elke processor kan namelijk in meerdere pc's zitten.

Ik heb je opweg geholpen. Probeer nu met visio of een ander tooltje eens een schema op te stellen. Veel hangt af van je situatie. Als je bijvoorbeeld wel allemaal verschillende cpu's zou hebben vergaat het nut van een look up table en zal je dit ook moeilijk verdedigd krijgen waarom je het zo gedaan hebt.

Maak dus zelf eens een schema en post de jpg, visio file or whatever en motiveer je beslissingen, wij zullen je leraar spelen :)

AsinuS

Legacy Member
Z!rtox, de echte normaliseer regels ken ik ook niet hoor, ik maak gewoon een database, op basis van ervaring, maar met Yamakazi zijn uitleg ben je al een heel eind.

In plaats van visio, kan je ook Microsoft SQL Express downloaden en direct je database aanmaken en je sleutels goedzetten. Eens je databasestructuur er is kan je een diagram overview maken en die hier posten.

grtz en suc6!

Yamakazi

Legacy Member
Het gedeelte van de look-up tables heb je begrepen maar het gedeelte van de herstelingen nog niet. Op deze manier kan je per pc maar één herstelling hebben. Je moet de herstelling info in een detail tabel zetten. Maak een detail tabel herstellingen met een herstel_id en zet daarin ook comp_id. De truc is nu dat je niet het herstel_id gaat opslaan in de comp tabel maar dat je in de herstel tabel de comp id gaat opslaan. Op deze manier kan je meerdere herstellingen per pc doen. Cool hé.

Om je even aan te moedigen. Ik kon vroeger ook niet veel van databases. Maar als je developer wil worden ga je het altijd nodig hebben. En één keer je enkele databases hebt opgesteld en gebruikt zal je ook leren waar je in de fout bent gegaan (door de aards moeilijke query's die je moet schrijven omdat je structuur niet klopt). Ik kan je dus alleen maar aanmoedigen om databases op je gemak te leren.

Probeer ook eensde cardinaliteit bij je verbindingen te zetten.

AsinuS

Legacy Member
ok paint, niet echt ideaal, maar soit ..

heb het even snel snel geschets, maar neem dit niet aan als de enige oplossing he, ik garandeer je zelfs niets eens dat ze juist is

enige opmerkingen, als een pc meerdere cpu's of vga's kan bezitten, dan ook daar werken met een tussentabel

grtz

Image021.jpg

Yamakazi

Legacy Member
Inderdaad goed opgemerkt. Bij een pc is het inderdaad zo dat er dikwijls meerdere keren hetzelfde item in zit. Zoals, cpu, memory, netwerkkaart, harde schijf.

Wel denk ik dat er geen tussen tabel moet zijn bij herstellingen. Een tussen tabel wordt gebruikt als een computer meerdere herstellingen kan hebben EN een herstelling meerdere pc's kan hebben. Denk dus niet dat de tussentabel zal nodig zijn. Aan zirtox, begrijp je waarom asnis tussen tabellen gebruikt. Kan je het met je eigen woorden uitleggen..

AsinuS

Legacy Member
Yamakazi zei:
Wel denk ik dat er geen tussen tabel moet zijn bij herstellingen. Een tussen tabel wordt gebruikt als een computer meerdere herstellingen kan hebben EN een herstelling meerdere pc's kan hebben. Denk dus niet dat de tussentabel zal nodig zijn.

inderdaad, drop die tussentabel en zet in de tabel herstelling, computerid

bovendien kan je van de hersteller ook tabel maken, met zijn naam, adres etc in en dan herstellerid ook in de herstelling tabel.

Grtz

Yamakazi

Legacy Member
Laat hem dat nu eens vinden :-)

Seffens hebben wij het nog helemaal gemaakt :)

Z!rtox

Legacy Member
thx.. ksnap nu waarom die tussentabel er moet zijn. Zo kunde in die tabel aan 1 pc meerdere items van dezelfd soort koppele, aangezien je in je hoofd tabel dit niet kunt.

2 vraagjes echter nog...

Waarom moet ik van die tabel herstellingen nu toch geen tusentabel gebruiken?
en wat neem ik als primairy key in zo'n tabel?

vreet merci voor de hulp al.. kzal het vanachter in men GIP bij zetten als "bronnen" :)

AsinuS

Legacy Member
Z!rtox zei:
Waarom moet ik van die tabel herstellingen nu toch geen tusentabel gebruiken?
en wat neem ik als primairy key in zo'n tabel?

omdat 1 herstelling maar voor 1 pc kan gelden, dus zet ge in herstelling een herstelling_ID (om de hertelling uniek te maken) en een computer_ID om te verwijzen nr de computer die hersteld is

Z!rtox

Legacy Member
okee, dus de tabel herstellingen ziet er zo uit zonder tussetabel: ?

herst_id (pk)
computer_id
datum
persoon
info

en in die kleine tussetballen, wat neem ik daar nu als pk? :p

AsinuS

Legacy Member
Z!rtox zei:
okee, dus de tabel herstellingen ziet er zo uit zonder tussetabel: ?

herst_id (pk)
computer_id
datum
persoon
info

en in die kleine tussetballen, wat neem ik daar nu als pk? :p

tussentabel heet samengestelde sleutel ahja ..

Z!rtox

Legacy Member
samegestelde sleutel dan... :p
is die tabel herstellinge nu juist?
en wat is de PK in zo ne samegestelde sleutel?

grtz en merci :love:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan