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:
- Divê databases ji ber hewceyên ku du 1NF û 2NF bi hev re bigihîjin .
- Hemû pelên databases divê li ser bingeha sereke girêdayî ye , wateya ku nirxa yekîneyê dikare ji tenê ya sereke ya bingehîn 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:
- EmployeeID
- Nav
- Paşnav
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:
- VehicleID
- Çêker
- Cins
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:
- VehicleID
- Çêker
- ModelID
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.
- ModelID
- Çêker
- Cins
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:
- Hejmarê Hejmar
- Hejmarên mişterî
- Nirxê yekîn
- Jimarî
- Hemî
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 OrdersNiha em dikarin li ser vê pirsê bikar bînin:
SELECT OrderNumber, UnitPrice * Qanûna DYA Bi tevahî FROM Widgetda ku encamên heman nirxandinê bêyî binpêkirinên rêkxistina normalîzmê.