Varësia e plotë funksionale në normalizimin e bazës së të dhënave

Një varësi e plotë funksionale është një gjendje e normalizimit të bazës së të dhënave që përputhet me standardin e normalizimit të FormësDytë Normal (2NF) . Shkurtimisht, kjo do të thotë se i plotëson kërkesat e Formës së Parë Normal (1NF), dhe të gjitha atributet jo-kyçe varen plotësisht funksionalisht nga çelësi kryesor.

Kjo nuk është aq e komplikuar sa mund të tingëllojë. Le të shohim këtë në më shumë detaje.

Përmbledhje e formës së parë normale

Përpara se baza e të dhënave të mund të varet plotësisht funksionalisht, duhet së pari të përputhet me Formën e Parë të Përgjithshme .

E gjithë kjo do të thotë se çdo atribut duhet të mbajë një vlerë të vetme atomike.

Për shembull, tabela në vijim nuk përputhet me 1NF, sepse punonjësi Tina është i lidhur me dy lokacione, të dy në një qelizë të vetme:

Formati i Parë Normal Mospërputhshmëria
punonjës vend
nevojtore Los Angjelos
tina Los Anxheles, Çikago

Leja e këtij modeli mund të ndikojë negativisht në përditësimet e të dhënave ose hyrjet. Për të siguruar pajtueshmërinë me 1NF, riorganizoni tabelën në mënyrë që të gjitha atributet (ose qelizat e kolonës) të mbajnë një vlerë të vetme:

Pajtueshmëria e parë e formës normale
punonjës vend
nevojtore Los Angjelos
tina Los Angjelos
tina Çikago

Por 1NF ende nuk mjafton për të shmangur problemet me të dhënat.

Si punon 2NF për të siguruar një varësi të plotë

Për të qenë plotësisht i varur, të gjitha atributet kryesore jo kandidatësh duhet të varen nga çelësi kryesor. (Mos harroni, një atribut kyç i kandidatit është çdo çelës (për shembull një çelës primar ose i huaj) që përdoret për të identifikuar një regjistër të bazës së të dhënave në mënyrë unike.

Dizajnerët e bazës së të dhënave përdorin një notim për të përshkruar marrëdhëniet e varur midis atributeve:

Nëse atributi A përcakton vlerën e B, ne shkruajmë këtë A -> B - do të thotë se B varet funksionalisht nga A. Në këtë marrëdhënie, A përcakton vlerën e B, ndërsa B varet nga A.

Për shembull, në tabelën e Departamenteve të Punonjësve në vijim, EmployeeID dhe DeptID janë të dy çelësat e kandidatëve: EmployeeID është çelësi kryesor i tabelës ndërsa DeptID është një çelës i jashtëm.

Çdo atribut tjetër - në këtë rast, EmployeeName dhe DeptName - duhet të varet nga çelësi primar për të marrë vlerën e tij.

Departamentet e Punonjësve
EmployeeID Emri i punonjësit DeptID DeptName
Emp1 nevojtore Dept001 financë
Emp2 tina Dept003 Sales
Emp3 Carlos Dept001 financë

Në këtë rast, tabela nuk është plotësisht e varur sepse, ndërkohë që emri i punonjësit varet nga EmployeeID kryesore kyçe, DeptName varet nga DeptID. Kjo quhet varësia e pjesshme .

Për ta bërë këtë tabelë në përputhje me 2NF, ne duhet t'i ndajmë të dhënat në dy tabela:

punonjësit
EmployeeID Emri i punonjësit DeptID
Emp1 nevojtore Dept001
Emp2 tina Dept003
Emp3 Carlos Dept001

Ne heqim atributin DeptName nga tabela e Punonjësve dhe krijojmë një tabelë të re. Departamentet :

departamentet
DeptID DeptName
Dept001 financë
Dept002 Burimet njerëzore
Dept003 Sales

Tani marrëdhëniet midis tabelave janë plotësisht të varura, ose në 2NF.

Pse Varësia e plotë është e rëndësishme

Varësia e plotë midis atributeve të bazës së të dhënave ndihmon në sigurimin e integritetit të të dhënave dhe shmangies së anomalive të të dhënave.

Për shembull, konsideroni tabelën në seksionin e mësipërm që përputhet vetëm me 1NF. Këtu është përsëri:

Pajtueshmëria e parë e formës normale
punonjës vend
nevojtore Los Angjelos
tina Los Angjelos
tina Çikago

Tina ka dy rekorde. Nëse e përditësojmë një, pa e kuptuar se ka dy, rezultati do të ishte të dhëna të paqëndrueshme.

Ose, çka nëse duam të shtojmë një punonjës në këtë tryezë, por ende nuk e njohim Vendndodhjen? Mund të mos lejojmë që të shtojmë edhe një punonjës të ri nëse Atributi i Vendit nuk lejon vlerat NULL.

Varësia e plotë nuk është e gjithë fotografia, edhe pse, kur është fjala për normalizimin. Duhet të siguroheni që baza juaj e të dhënave të jetë në formën e tretë normale (3NF).