Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: gerelateerde tabellen : aan te raden?  (gelezen 2172 keer)

0 leden en 1 gast bekijken dit topic.

Offline tarzanneke

  • Volledig lid
  • **
  • Berichten: 209
  • Geslacht: Man
  • Oplossing.be
gerelateerde tabellen : aan te raden?
« Gepost op: 20 februari 2004, 17:07:01 »
Hallo,
Ik heb een vraagje.
Reeds vele jaren heb ik verschillende databanken opgebouwd met dbase4, een dos-programmaatje.  Maar ik zou nu eindelijk toch wel willen overschakelen op Access.
Hier en daar, in boeken en zo, heb ik daarover wat informatie ingewonnen, en daar werd mij
Duidelijk gemaakt dat je je databank beter opsplitst in verschillende tabellen, die dan via sleutels met elkaar gelinkt worden.  En dat begrijp ik eigenlijk niet goed, wat daar het voordeel van zou kunnen zijn.  Ik zal even schetsen hoe het er uit ziet.
Een van mijn grote databanken betreft mijn muziekcollectie.  De veldstructuur daarvan in Dbase ziet er zo uit :

SONG  (= titel van het lied)
UITVOERDER  (= naam groep of zanger)
GENRE (= rock, house, …)
VERSIE (= live, remix, megamix, ….)
TRACK (= de hoeveelste track op de cd of casette)
DUUR (= de tijdsduur van het nummer)
AARD (= compact disc, dvd, muziekcasette, elpee, …)
NUMMER (= de nummer van de gegevensdrager)
DATUM (= datum van aankoop of opname)
ALBUM (= titel van het album waar het nummer opstaat)
JAAR_N (= het jaartal van het nummer)
JAAR_A (= het jaartal van het album)
ALBUMTYPE (g = gewoon album; b = verzamelalbum van 1 uitvoerder; v = verzamelalbum van meerdere uitvoerders)
BRON (= bij opname het type van bron)

Volgens wat ik dus las of hoorde werd mij gezegd dat ik beter de albums (met gegevens in een tabel zet) en dan voor de bijbehorende tracks een andere tabel gebruik.
Kan iemand mij zeggen of dit aan te raden is, of gebruik is misschien beter één grote tabel of is er misschien iemand die nog een methode kent die nog beter is.
Alvast bedankt.
Groetjes
Windows 10
AMD Ryzen 7 2700x Processor 8Core 3.70GHz
Asus Prime X470-PRO, Moederbord
32Gb DDR3
HD 7950 3GB with Boost (11196-19-20G), Grafische kaart
High Definition Audio-apparaat
Nen hoop harde schijven (ik ga ze niet tellen)

Offline StriKe

  • Ambassadeur
  • *****
  • Berichten: 4.647
  • Geslacht: Man
Re:gerelateerde tabellen : aan te raden?
« Reactie #1 Gepost op: 20 februari 2004, 19:02:33 »
Hallo,

Wat ze precies bedoelen is het gebruik van "relaties" binnen access, verbindingen leggen tussen één of meerdere tabellen binnen een access-database dus.

In jouw geval zie ik ook niet meteen 'het nut' ervan in, buiten dan het feit dat je wat 'ruimte' en 'snelheid' zou winnen.

Een andere concreet voorbeeld zou volgende kunnen zijn:

Stel je een ledenbestand van een sportvereniging voor. De leden komen hoofdzakelijk uit gemeente a. Deze gemeente a draagt postcode 9999.
Dan zou je in een andere tabel volgende velden kunnen opnemen:

Postcode | Gemeente
9999 | a

In je eigenlijke ledentabel zou je dan juist ofwel de postcode of juist de gemeente kunnen opnemen.
Daarna via een query of rapport dan terug beide gegevens samen brengen.
Ook hier is het nut 'niet meteen zichtbaar', maar je moet je eens een grote database voorstellen, waar verschillende relaties inzitten ...

(Ik wil je, als je dat wenst wel eens een heel groot, zeer concreet voorbeeld doormailen, een database van ongeveer 1 tot 2 mb groot ... We werken daar op school ook mee, en vorig jaar hebben wij daar eigenhandig de relaties in gelegd ...)

Groeten,
StriKe
0T5326 Dell Computer Corporation, GeForce FX Go5200, Windows XP, Prof, SP2, NL, Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz, 512 MB RAM, HDD:97 GB, NTFS, AVG Anti-Virus, Kerio Personal Firewall, Firefox 2.0, The Bat!

guido1

  • Gast
Re:gerelateerde tabellen : aan te raden?
« Reactie #2 Gepost op: 21 februari 2004, 01:19:26 »
Hoi tarzanneke,

Het probleem dat je aanhaalt wordt bij gegevens verwerking "Het normaliseren van gegevens genoemd. Als je ergens een boekje vind over databases moet je het maar eens opzoeken.

Een voorbeeldje uit uw eigen database.
Jij koopt een cd, die aankoop is op een bepaalde datum gebeurd.
Op deze cd staan meerdere songs, elk van deze songs zijn van dezelfde aankoopdatum.
 
Als je nu alles samen in een tabel stopt staat die datum van aankoop bij elke song vermeld. Als op je cd nu 20 songs staan moet je die datum ook 20 keer invullen, als voor de een of andere reden die datum moet veranderen moet dat terug 20 keer gewijzigd worden.

Bijgevolg moet je uw database splitsen in een tabel met cd's en een tabel met songs. In de tabel met cd's mag je alleen gegevens zetten die te maken hebben met die cd. En in de tabel met songs alleen zaken die over die sing gaan maar ook een verwijzing naar de tabel met de cd's, dus geen verwijzing naar de aankoopdatum van de cd want dat vind je in de tabel van de cd's.

In het kort komt het er op neer dat je je gegevens gaat groeperen, aan elke groep een sleutel toekent en uitsluitend velden gaat toekennen die eenduidig en alleen maar te maken hebben of bepaald worden door de sleutel. Elke groep komt dan in een tabel.

Denk er aan dat deze normalisatiestappen het belangrijkste zijn aan heel uw database. Slecht genormaliseerd geeft een slechte database.

Guido

 


www.combell.com