Dabeşkirina danûstendina Forma Forma Giştî ya Duyemîn (3NF)

Forma nermalava sêyemîn (3NF) bi rêgezek databases ye ku ji bo yekseriya danezana danûstendina danûstandina daneyên daneyên danûstandinên nermîner ên ji hêla Forma Niştimanî ya Pêşîn (1NF) û Forma Giştî ya Giştî ya Duyemîn (2NF) ve têne avakirin dide.

Pêdiviyên Pêdivî ya sêyem a normal

Pêdiviyên bingehîn du bingehîn hene ku di forma sêyem normal de be:

Derheqê Pirtûka Kêşeya Primer

Let us explore what we mean by the fact that all columns must be key to primary key.

Ger hebûna nirxa yekem ji hemî kûreyek sereke û duyemîn di sifrê de bê derxistin, ev 3NF ê binpê dike. Li ser van reşanek bi karmendên karmendan bifikirin:

Dîroka LastName û FirstName tenê li ser nirxê EmployeeID girêdayî ye? Rast, Could LastName re girêdayî FirstName? Na, çimkî tiştek tiştek di Navîn de LastName dê nirxa FirstName. Could FirstName Bi LastName girêdayî ye? Nabe, ji ber ku heman rast e: Her tiştê ku LastName dibe be, ew nikaribû wekî nirxa FirstName. Ji ber vê yekê, ev sifrê rûnê 3NF ye.

Lê ev maseya erebê bifikirin:

Pêşniyar û Modela dikare ji VehicleID derkeve - lê Modela ji hêla ji hêla hilberînê ve dikir ji ber ku modela wesayît tenê bi hilberek taybetî ye. Ev pergala sêwirandinê ne-3NF e, û dibe ku, ji ber ku di encamên nerazî de encam dibe. Ji bo nimûne, hûn dikarin bêhempa nû bikin ku modela nûjen bikin, nasnameyên neheqandî.

Ji bo vê peymanê, em ê hewce ne ku bloka girêdayî bêdengî li ser maseya din. Ev dê du tilî encam bike:

Tiştên ereb

Di bin sifrê de, ModelID-ê keyek biyanî ya tabloya Modela ye:

Modela Table

Ev modela mîkroşên nû yên ji bo hilberên hilberîner. Ger tu dixwazî ​​agahdariya wesayît a taybet a modela nû bikî, hûn ê li ser vê sifrê, ne li ser maseya erebê bikin.

Modela Dervekirî di Modela 3NF de

Di şemekek de dikare mûzek derfetkirî heye - yek ku li ser sifrê li ser maseya din. Ji bo nimûne, ev sifrê li gor fermanên vîdyoyê bibînin:

Bişkojên tevahî 3NF ji ber ku ew dikare ji hêla yekîneya yekînan ve bi qasî qasî hebe, bêtir li ser bingeha sereke ya sereke girêdayî ye. Divê em ji vê tabloyê vekin, da ku forma sêyem a normal bikin.

Di rastiyê de, ji ber ku ev derxist e, ew çêtir e ku ew li ser databases hilber bikin.

Dema ku databases pirsyar dike, em bi hêsanî bi "firîn" re heval bikin. Ji bo nimûne, em ê berê berê vê pirsê bikar anîn ku ji hejmarên hejmar û tevahî bistînin:

SELECT OrderNumber, Tevahiya FROM Widget Orders

Niha em dikarin li ser vê pirsê bikar bînin:

SELECT OrderNumber, UnitPrice * Qanûna DYA Bi tevahî FROM Widget

da ku encamên heman nirxandinê bêyî binpêkirinên rêkxistina normalîzmê.