Inpoġġu Database fit-Tielet Forma Normali (3NF)

It-tielet forma normali (3NF) hija prinċipju ta 'bażi ​​tad-dejta li tappoġġja l-integrità tad-data billi tibni fuq il- prinċipji ta' normalizzazzjoni tal-bażijiet ipprovduti mill-Ewwel Formola Normali (1NF) u t-Tieni Formola Normali (2NF).

Tliet Rekwiżiti tal-Formula Normali

Hemm żewġ rekwiżiti bażiċi biex database tkun fit-tielet forma normali:

Dwar id-Dipendenza Ewlenija Ewlenija

Ejjew nesploraw aktar dak li jfissru mill-fatt li l-kolonni kollha għandhom jiddependu fuq il-kodiċi primarju.

Jekk il-valur tal-kolonna jista 'jinkiseb kemm mill-kodiċi primarju kif ukoll minn kolonna oħra fit-tabella, tikser 3NF. Ikkunsidra tabella tal-Impjegati b'dawn il-kolonni:

Jagħmlu kemm LastName u FirstName jiddependu biss fuq il-valur ta 'EmployeeID? Ukoll, jista 'LastName jiddependi fuq FirstName? Le, għax xejn inerenti fl-LastName jissuġġerixxi l-valur ta 'FirstName. Jista 'FirstName jiddependi fuq LastName? Le darb'oħra, għax l-istess jgħodd: tkun xi tkun LastName, ma tkunx tista 'tipprovdi ħjiel dwar il-valur ta' FirstName. Għalhekk, din it-tabella hija konformi ma '3NF.

Imma tqis din it-tabella tal-Vetturi:

Il-Manifattur u l-Mudell jistgħu joħorġu mill-VehicleID - iżda l-Mudell jista 'wkoll joħroġ mill-Manifattur minħabba li mudell ta' vettura huwa magħmul biss minn manifattur partikolari. Dan id-disinn tal-mejda huwa konformi ma '3NF, u jista', għalhekk, jirriżulta f'anomaliji tad-dejta. Pereżempju, tista 'taġġorna l-manifattur mingħajr ma taġġorna l-mudell, u tintroduċi ineżattezzi.

Biex tkun konformi, ikollna nimxu l-kolonna dipendenti addizzjonali għal tabella oħra u nirreferiha billi tuża ċavetta barranija. Dan jirriżulta f'żewġ tabelli:

Tabella tal-Vetturi

Fit-tabella hawn taħt, il-ModelID huwa ċavetta barranija għat-tabella tal- Mudelli :

Tabella tal-Mudelli

Din it-tabella l-ġdida timplimenta mudelli għall-manifatturi. Jekk trid taġġorna kwalunkwe informazzjoni tal-vettura speċifika għal mudell, tista 'tagħmel dan f'din it-tabella, aktar milli fit-tabella tal-Vetturi.

Oqsma derivati ​​fil-Mudell 3NF

Tabella jista 'jkun fiha qasam derivat - wieħed li huwa maħdum ibbażat fuq kolonni oħra fit-tabella. Per eżempju, tqis din it-tabella ta 'ordnijiet widget:

Il-waqfien totali jaqa 'taħt il-konformità 3NF minħabba li jista' jinkiseb billi l-prezz tal-unità jiġi mmultiplikat bil-kwantità, minflok ma jiddependi għal kollox fuq il-kodiċi primarju. Irridu neħħiha mit-tabella biex tikkonforma mat-tielet forma normali.

Fil-fatt, peress li hija derivata, huwa aħjar li ma tinħażżux fid-database.

Nistgħu sempliċiment nikkalkulawh "fuq il-fly" meta jwettqu mistoqsijiet dwar database. Per eżempju, jista 'jkollna preċedentement użajt din il-mistoqsija biex nirkupraw in-numri u t-totali tal-ordni:

SELECT OrderNumber, Total MINN WidgetOrders

Issa nistgħu nużaw il-mistoqsija li ġejja:

TAGĦŻEL OrderNumber, UnitPrice * Kwantità AS Total MILL WidgetOrders

biex tikseb l-istess riżultati mingħajr ma tikser ir-regoli ta 'normalizzazzjoni.