Išẹ ti o dara ni kikun ni aaye data Normalization

Igbẹkẹle ti iṣẹ-ṣiṣe ni kikun jẹ ipo ti aifọwọọ data ti o ni ibamu si boṣewa deedee ti Iwọn deede deede (2NF) . Ni ṣoki, eyi tumọ si pe o pade awọn ibeere ti Akọkọ Deede Normal (1NF), ati pe gbogbo awọn eroja ti kii ṣe pataki jẹ iṣẹ ti o gbẹkẹle lori bọtini akọkọ.

Eyi kii ṣe idiju bi o ṣe le dun. Jẹ ki a wo ni eyi diẹ sii.

Ajọpọ ti Fọọmu Ọjọ Akọkọ

Ṣaaju ki o to database le jẹ igbẹkẹle ti iṣelọpọ ni kikun, o gbọdọ kọkọ ni ibamu pẹlu Àkọjọ Ọjọ Akọkọ .

Gbogbo eyi tumọ si pe iyatọ kọọkan gbọdọ ṣetọju ọkan kan, atomiki iye.

Fun apẹrẹ, tabili yii ko ni ibamu pẹlu 1NF, nitori pe Tina abáni ti sopọ mọ awọn ipo meji, mejeeji ninu foonu kan:

Akọkọ Ilana deede Aṣeyọri
Abáni Ipo
Johannu Los Angeles
Tina Los Angeles, Chicago

Gbigba ẹda yi le ṣe ikolu awọn imudara data tabi awọn titẹ sii. Lati rii daju ofin 1NF, tun satunṣe tabili ki gbogbo awọn eroja (tabi awọn ẹwọn ẹwọn) di idaduro kan:

Atilẹyin Ilana deede akọkọ
Abáni Ipo
Johannu Los Angeles
Tina Los Angeles
Tina Chicago

Ṣugbọn 1NF ko tun to lati yago fun awọn iṣoro pẹlu data naa.

Bawo ni 2NF Ṣiṣẹ lati rii daju pe o ni kikun iduro

Lati le ni igbẹkẹle gbogbo, gbogbo awọn eroja awọn ẹtọ ti kii-tani awọn ẹtọ gbọdọ dale lori bọtini akọkọ. (Ranti, iyasọtọ bọtini tani jẹ eyikeyi bọtini (fun apeere, bọtini akọkọ tabi ajeji) lo lati ṣe idanimọ idanimọ igbasilẹ.

Awọn apẹẹrẹ awọn ipilẹṣẹ data nlo akọsilẹ lati ṣe apejuwe awọn ibasepo ti o gbẹkẹle laarin awọn eroja:

Ti o ba jẹ pe A ṣe ipinnu iye ti B, a kọ A -> B - itumo pe B jẹ iṣẹ ti o gbẹkẹle A. Ninu ibasepọ yii, A pinnu iye ti B, nigba ti B da lori A.

Fun apẹẹrẹ, ninu awọn tabili Awọn iṣẹ Abáni ti o wa, EmployeeID ati DeptID jẹ awọn bọtini ifọwọkan: EmployeeID jẹ bọtini akọkọ ti tabili nigbati DeptID jẹ bọtini ajeji.

Eyikeyi iyato - ni idi eyi, Abáni ati Nomba - gbọdọ dale lori bọtini akọkọ lati gba iye rẹ.

Awọn Oṣiṣẹ Abáni
Abáni-iṣẹ AbániName DeptID DeptName
Emp1 Johannu Dept001 Isuna
Emp2 Tina Dept003 Tita
Emp3 Carlos Dept001 Isuna

Ni idi eyi, tabili ko ni igbẹkẹle ni kikun nitoripe, lakoko ti Abáni Nomba naa da lori bọtini akọbẹrẹ EmployeeID, DeptName da lori dipo DeptID naa. Eyi ni a npe ni igbẹkẹle ti ara kan .

Lati ṣe tabili yii ni ibamu si 2NF, a nilo lati pin awọn data sinu tabili meji:

Awọn alaṣẹ
Abáni-iṣẹ AbániName DeptID
Emp1 Johannu Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

A yọ ẹda DeptName kuro lati inu Awọn iṣẹ Abáni ati ṣẹda tabili titun Awọn ẹka :

Awọn apa
DeptID DeptName
Dept001 Isuna
Dept002 Nọmba awọn oṣiṣẹl'apapọ ni ile-iṣẹ
Dept003 Tita

Nisisiyi awọn ibaraẹnisọrọ laarin awọn tabili wa ni kikun, tabi ni 2NF.

Idi ti Nipasẹ Iwa-ni-Nilẹ Ṣe Pataki

Igbẹkẹle kikun laarin awọn aaye data ipamọ ṣe iranlọwọ lati rii daju pe ododo ni otitọ ati ki o yago fun awọn idaniloju data.

Fun apẹẹrẹ, wo tabili ni apakan loke ti o tẹle nikan si 1NF. Nibi o jẹ, lẹẹkansi:

Atilẹyin Ilana deede akọkọ
Abáni Ipo
Johannu Los Angeles
Tina Los Angeles
Tina Chicago

Tina ni awọn akọsilẹ meji. Ti a ba mu ọkan mu lai mọ pe awọn meji wa, abajade yoo jẹ data ti ko ni ibamu.

Tabi, kini ti a ba fẹ fikun-iṣẹ kan si tabili yii, ṣugbọn a ko mọ Ipo naa? A le ṣe ipalara fun ani lati fi iṣẹ-ṣiṣe titun kan kun ti Ẹya Ipo ko ba gbaye iye NULL.

Igbẹkẹle kikun kii ṣe aworan gbogbo, tilẹ, nigbati o ba jẹ deede. O gbọdọ rii daju pe igbasilẹ rẹ jẹ ni Iwe- atọwọ Aṣode Mẹta (3NF).