Full virka tilhneiging í gagnagrunni Normalization

A fullur hagnýtur ósjálfstæði er ástand af stöðluðum gagnagrunni sem jafngildir eðlilegum staðli Second Normal Form (2NF) . Í stuttu máli þýðir þetta að það uppfylli kröfur fyrsta eðlisforms (1NF), og allir eiginleikar sem ekki eru lykilatriði eru að fullu virkir háð aðalatriðum.

Þetta er ekki eins flókið og það hljómar. Við skulum skoða þetta ítarlega.

Yfirlit yfir fyrsta eðlilegu eyðublað

Áður en gagnagrunnur getur verið fullkomlega virkni háð verður hann fyrst að uppfylla fyrstu eðlilegu eyðublaðið .

Allt þetta þýðir að hver eiginleiki verður að halda einum, atómagildi.

Til dæmis er eftirfarandi tafla ekki í samræmi við 1NF, vegna þess að starfsmaðurinn Tina er tengdur við tvær staðsetningar, bæði í einum reit:

Fyrsta Venjulegt Form Non-Compliance
Starfsmaður Staðsetning
John Los Angeles
Tina Los Angeles, Chicago

Leyfa þessari hönnun gæti haft neikvæð áhrif á gagnasendingar eða færslur. Til að tryggja samræmi við 1NF, endurstilltu töfluna þannig að allir eiginleikar (eða dálkurfrumur) halda einu gildi:

Fyrstu Venjuleg Form Fylgni
Starfsmaður Staðsetning
John Los Angeles
Tina Los Angeles
Tina Chicago

En 1NF er ennþá ekki nóg til að koma í veg fyrir vandamál með gögnin.

Hvernig 2NF vinnur að því að tryggja fullan tilhneigingu

Til að vera fullkomlega háð skal öll lykilatriði sem ekki eru frambjóðandi vera háð aðal takkanum. (Mundu að eiginleiki frambjóðandi lykill er hvaða lykill (til dæmis aðal eða erlend lykill) sem notaður er til að bera kennsl á gagnasöfn.

Gagnasafnshönnuðir nota merkingu til að lýsa háð samböndum milli eiginleika:

Ef eigindi A ákvarðar gildi B skrifum við þetta A -> B - sem þýðir að B er virkni háð A. Í þessu sambandi ákvarðar A gildi B, en B fer eftir A.

Til dæmis, í eftirfarandi töflu starfsmanna deildar eru starfsmenn og DeptID bæði frambjóðandi lyklar: StarfsmaðurID er aðal lykill borðsins en DeptID er erlent lykill.

Allir aðrir eiginleiki - í þessu tilviki, Starfsmaður og DeptName - verður að vera háð aðal takkanum til að fá gildi þess.

Starfsmenn
Starfsmaður Nafn starfsmanns DeptID DeptName
Emp1 John Dept001 Fjármál
Emp2 Tina Dept003 Sala
Emp3 Carlos Dept001 Fjármál

Í þessu tilviki er borðið ekki að fullu háð því að starfsmaðurinn veltur á aðal lykilatriðum Starfsmaður, fer DeptName í staðinn á DeptID. Þetta er kallað að hluta til háðs .

Til að gera þetta borð í samræmi við 2NF, þurfum við að skilja gögnin í tvær töflur:

Starfsmenn
Starfsmaður Nafn starfsmanns DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

Við fjarlægjum DeptName eiginleiki úr starfsmannatöflunni og búið til nýtt borð Deildir :

Deildir
DeptID DeptName
Dept001 Fjármál
Dept002 Mannauður
Dept003 Sala

Nú eru samböndin milli borðanna að fullu háð eða í 2NF.

Af hverju er full ástæða mikilvægt

Full áreiðanleiki milli eiginleika gagnagrunns hjálpar til við að tryggja gagnkvæmni og forðast galla frávikum.

Tökum dæmi um borð í töflunni hér fyrir ofan sem fylgir aðeins 1NF. Hér er það, aftur:

Fyrstu Venjuleg Form Fylgni
Starfsmaður Staðsetning
John Los Angeles
Tina Los Angeles
Tina Chicago

Tina hefur tvær færslur. Ef við uppfærum einn án þess að átta sig á að það séu tveir, myndi niðurstaðan vera ósamræmi gögn.

Eða, hvað ef við viljum bæta starfsmanni við þessa töflu, en við þekkjum ekki staðsetninguna ennþá? Við gætum verið útilokað að jafnvel bæta við nýjum starfsmanni ef staðsetningaraðgangurinn leyfir ekki NULL gildi.

Fullur tilhneiging er þó ekki allur myndin, þegar kemur að eðlilegu. Þú verður að ganga úr skugga um að gagnagrunnurinn þinn sé í þriðja eðlilegu formi (3NF).