Aduprà una basa in Tuttu Formatu Normale (3NF)

Tercera forma normale (3NF) hè un principiu di basa di dati chì sustene l'integrità di i dati basendu annantu à i principii di nurmalizazione di basa di basa tutale da a Prima Forma Normale (1NF) è a Prima Forma Normale (2NF).

Tercera Reforma di Forma Normale

Ci hè dui duminii fundamentali per una basa di dati à esse in terza forma normale:

Doppu a Custituzione Chjave Primariu

Scopre più ciò chì si dì di u fattu chì tutti i culleghji deve devenu da a chjave primaria.

Se u valore di a cullezione pò esse derivati ​​da a chjave principale è una altra culonna in u tavulinu, viola 3NF. Cunsiderate a Table di l'Impiccia cù e colonnes:

Do both LastName and FirstName dependenu solu di u valore di EmployeeID? Pudete, Pudete Ultimate Depende di FirstName? No, perchè nunda nuddiale in LastName suggeria u valore di FirstName. Could FirstName depende LastName? Ùn tocca à novu, postu chì u listessu hè veru: quantu un LastName puderia esse, ùn puderia micca furnisce una pista di u valore di FirstName. Dunque, sta tavulu hè 3NF cumpletu.

Ma cunsiderate stu Vehicles table:

U Fabricante è u Modellu puderanu derive da u VehicleID - ma u Modellu puderà ancu derivà da u Fabricante perché un mudellu di veiculu hè fattu solu da un fabricatore particular. Stu tavulu di tavola hè non-3NF cumpletu, è puderia riesce anomalii di dati. Per esempiu, pudete aghjurnà u pruduttu senza mudificà u mudellu, introduce imprecisioni.

Per fà cumpagnia, avemu bisognu di moviri a colonna dipendente supplementariu à una altra tavola è riferite cù una chjave straniera. Questu resultarà in dui tàvuli:

Vehicles Table

In u tavulu quì sottu, u ModelID hè una chjave straniera à a Table di Models :

Models Table

Questa nova tabella mudeli mudelli à i fabricatori. Se vulete aghjurnà qualchì veiculu di l'infurmazione nantu à un mudellu, avete da fà in questa mesa, in quantu in a tavula di i Vehicles.

I Campi Derivati ​​in u Model 3NF

A tavula puderia cuntene un terrenu derivatu - una chì si computa basatu annantu à altri culonni in a tavula. Per esempiu, cunzidi stu tavulu di ordini di widget:

U cumpletu tutali di 3NF scansa perchè pò esse derivati ​​multiplatu di u prezzu unitaru da a quantità, invece di esse di modu dipendenu à a chjave primaria. Avemu da scurdà da u tavulu per cumpensà a terza forma normale.

In fatti, siccomu esse derivatu, hè megliu micca di accade micca in a basa di dati.

Pudemu simplificà à calcule "nantu à a mosca" quandu si cumpendenu quistioni di basa di dati. Per esempiu, pudemu avè usatu prima di sta quistione per ricercà numuli di ordine è e totalità:

SELECT OrderNumber, Total FROM WidgetOrders

Avemu aduprà a seguente questa:

SELECT OrderNumber, UnitPrice * Quantità AS Total FROM WidgetOrders

per ottene i stessi risultati senza viulenza di e normi normalizazione.