ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Normaalvorm (database) - Wikipedia

Normaalvorm (database)

Uit Wikipedia, de vrije encyclopedie

Een normaalvorm is een fase in het ontwerp van een relationele database, waarbij in stappen naar een verantwoorde wijze van gegevensopslag wordt toegewerkt. Belangrijke punten hierbij zijn het voorkomen van dubbele opslag van gegevens (redundantie) en dat elke regel in elke tabel met behulp van een unieke identificatie opgevraagd kan worden. Elke normaalvorm stelt bepaalde eisen aan de manier waarop de gegevens zijn opgeslagen (zoals eisen aan de geldende functionele afhankelijkheden).

Inhoud

[bewerk] Geschiedenis en overzicht

Hiërarchie van normaalvormen
Hiërarchie van normaalvormen

Er zijn verschillende normaalvormen gedefinieerd. De gegevens staan in een bepaalde normaalvorm wanneer aan een aantal voorgeschreven voorwaarden voldaan is. Gegevens staan bijvoorbeeld in de tweede normaalvorm als en slechts als ze voldoen aan de eerste normaalvorm en aan een aantal extra regels.

Ted Codd formuleerde het idee van normalisatie in A Relational Model of Data for Large Shared Data Banks[1] in 1970.

There is, in fact, a very simple elimination* procedure which we shall call normalization. Through decomposition nonsimple domains are replaced by "domains whose elements are atomic (nondecomposable) values."
* Zijn term elimineren is enigszins misleidend: er gaat geen informatie verloren tijdens normalizatie; hij doelde waarschijnlijk op de wiskundige betekenis van het elimineren van complexiteit of redundantie

De eerste drie normaalvorm (1NF, 2NF en 3NF) werden gedefinieerd door Ted Codd in Further normalization of the Data Base Relational Model [2]

Alle genormaliseerde gegevens staan minstens in 1NF. Sommige gegevens staan ook in 2NF, sommige zelfs in 3NF. Codd gaf aan dat gegevens in 2NF wenselijker waren dan deze in 1NF, 3NF was nog wenselijker. De ontwerper van de database zou dus moeten streven naar gegevens in 3NF.

Codds oorspronkelijke definitie van 3NF bleek later niet volmaakt. De definitie werd herbekeken en versterkt door Boyce en Codd in Recent Investigations into Relational Data Base Systems [3]. Gegevens in 3NF in deze nieuwe definitie voldeden ook aan de oude definitie, maar gegevens die aan 3NF voldeden volgens de oude definitie voldeden niet noodzakelijk aan de nieuwe. De nieuwe definitie was dus sterker dan de oude en werd later de Boyce/Codd normaalvorm genoemd als een versterking van de voorwaarden van de oude 3NF.

Later introduceerde Ron Fagin nog enkele sterke normaalvormen. In Multivalued Dependencies and a New Normal Form for Relational Databases[4] definieerde hij een nieuwe vierde normaalvorm (in die tijd werd de latere BCNF nog steeds de derde normaalvorm genoemd). In Normal Forms and Relational Database Operators[5] definieerde hij nog een nieuwe normaalvorm, de projection-join normal form (PJ/NF) of vijfde normaalvorm.

Er werden later nog speciale normaalvormen gedefinieerd.

[bewerk] Normaalvormen

[bewerk] Niet-genormaliseerde gegevens

Ieder niet gestructureerd gegevensbestand is in de nulde normaalvorm (0NF) of niet-genormaliseerd. Gegevens van verschillende soorten kunnen op elke regel voorkomen, bijgevolg kunnen deze niet in kolommen worden opgedeeld.

Een voorbeeld:
verg. BRZZ, laptop mee !
di: combi naar garage
Jos jarig ?


[bewerk] Eerste normaalvorm

Elke tabel met gegevens die voldoet aan de definitie van een relatie is in de eerste normaalvorm (1NF). Wanneer gegevens aan een relatie voldoen zijn ze dus reeds genormaliseerd.

Elk attribuut is atomair, en bevat dus één enkele waarde. Indien een attribuut meerdere waarde bevat zou deze waarde in een andere tabel moeten worden ondergebracht.

Een voorbeeld, uit het personeelsbestand van een fictief bedrijf:
Tabel: Personeel

Naam        Straat      Nr Plaats   Afdeling    Schaal Salaris
P.Jansen    Stationsweg 14 Venlo    Boekhouding      2 1503
W.de Vries  't Steegke  23 Epe      Kantine          1 1245
T.Oud       Dorpsstraat  1 Ons Dorp Boekhouding      3 1789


  • Een relatie is in 2NF als alle attributen die niet in de sleutel zijn opgenomen, afhankelijk zijn van de gehele sleutel (geen gedeeltelijke afhankelijkheid)
  • Een relatie met één attribuut als sleutel, is automatisch in 2NF
  • Een relatie is in 3NF indien ze in 2NF is en geen transitieve afhankelijkheid kent
  • Een relatie is in BCNF (Boyce-Codd Normal Form) als elke determinant een kandidaatsleutel is
  • Een relatie is in 4NF als ze in BCNF staat en geen meerwaardige afhankelijkheden kent

[bewerk] Referenties

  1. ^ Codd, E.F., A Relational Model of Data for Large Shared Data Banks, in Communications of the ACM 13 (6), pp 377-387, juni 1970
  2. ^ Codd E.F., Further normalization of the Data Base Relational Model in Rustin, Randall J. (ed.), Data Base Systems, Courant Computer Science Symposia Series 6. Englewood Cliffs, N.J., Prentice-Hall, 1972
  3. ^ Codd, E.F., Recent Investigations into Relational Data Base Systems, Proc. IFIP Congress, Stockholm, 1974
  4. ^ Fagin, R., Multivalued Dependencies and a New Normal Form for Relational Databases, ACM Transactions on Database Systems 2 (3), sept 1977
  5. ^ Fagin, R., Normal Forms and Relational Database Operators, ACM SIGMOD International Conference on Management of Data, May 31-June 1, 1979, Boston, Mass.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -