Normalisering van u databasis: Oorskakeling na tweede normale vorm (2NF)

'N databasis in tweede normale vorm plaas

Oor die afgelope maand het ons gekyk na verskeie aspekte van die normalisering van 'n databasis tafel. Eerstens het ons die basiese beginsels van databasis normalisering bespreek. Laaste keer het ons die basiese vereistes wat deur die eerste normale vorm (1NF) gestel is, ondersoek. Kom ons gaan voort met ons reis en bedek die beginsels van die tweede normale vorm (2NF).

Onthou die algemene vereistes van 2NF:

Hierdie reëls kan in 'n eenvoudige stelling opgesom word: 2NF poog om die hoeveelheid oortollige data in 'n tabel te verminder deur dit te onttrek, in nuwe tabel (s) te plaas en verhoudings tussen die tabelle te skep.

Kom ons kyk na 'n voorbeeld. Stel jou voor 'n aanlyn winkel wat kliënte inligting in 'n databasis behou. Hulle kan dalk 'n tafel hê met die volgende elemente:

'N Kort oorsig van hierdie tabel toon 'n klein hoeveelheid oortollige data. Ons stoor die "Sea Cliff, NY 11579" en "Miami, FL 33157" inskrywings twee keer elk. Nou lyk dit dalk nie as 'n te veel bygevoegde berging in ons eenvoudige voorbeeld nie, maar stel die verspilde ruimte voor as ons duisende rye in ons tafel gehad het. Verder, as die Poskode vir Sea Cliff sou verander, moet ons die verandering op baie plekke regdeur die databasis maak.

In 'n 2NF-voldoen databasisstruktuur word hierdie oortollige inligting onttrek en in 'n aparte tabel gestoor. Ons nuwe tabel (kom ons noem dit ZIPs) mag die volgende velde hê:

As ons super-doeltreffend wil wees, kan ons selfs hierdie tabel vooraf invul - die poskantoor bied 'n gids van alle geldige poskode en hul stad / staat verhoudings. Sekerlik, jy het 'n situasie ondervind waar hierdie tipe databasis gebruik is. Iemand wat 'n bestelling neem, het jou dalk eers vir jou poskode gevra en dan die stad geweet en weet waar jy van gebel het. Hierdie tipe reëling verminder operateur fout en verhoog die doeltreffendheid.

Noudat ons die duplikatiewe data van die kliënte-tabel verwyder het, het ons die eerste reël van tweede normale vorm nagekom. Ons moet nog 'n vreemde sleutel gebruik om die twee tafels saam te bind. Ons gebruik die Poskode (die primêre sleutel uit die Poskode ) om daardie verhouding te skep. Hier is ons nuwe kliënte tafel:

Ons het die hoeveelheid oortollige inligting wat in die databasis gestoor is, nou verminder en ons struktuur is in tweede normale vorm!

As jy wil verseker dat jou databasis genormaliseer is, verken ons ander artikels in hierdie reeks: