Նորմալացնել ձեր տվյալների շտեմարանը. Անցնել երկրորդ նորմալ ձեւը (2NF)

Ներկայացնելով տվյալների բազան երկրորդ նորմալ ձեւով

Վերջին ամսվա ընթացքում մենք նայեցինք տվյալների բազայի սեղանին կարգավորելու մի քանի առումներով: Նախ, մենք քննարկեցինք տվյալների բազայի նորմավորման հիմնական սկզբունքները: Վերջին անգամ մենք ուսումնասիրեցինք առաջին բնականոն ձեւով (1NF) սահմանված հիմնական պահանջները: Այժմ եկեք շարունակենք մեր ճամփորդությունը եւ ծածկենք երկրորդ նորմալ ձեւի (2NF) սկզբունքները:

Հիշեք 2NF- ի ընդհանուր պահանջները.

Այս կանոնները կարող են ամփոփվել պարզ հայտարարության մեջ. 2NF- ն փորձարկում է աղյուսակում ավելորդ տվյալների քանակի կրճատման միջոցով `դրա արդյունահանման, տեղադրելով այն նոր աղյուսակում (ներ) եւ այդ աղյուսակների միջեւ փոխհարաբերություններ ստեղծելով :

Եկեք նայենք օրինակին: Պատկերացրեք առցանց խանութ, որը հաճախորդի տեղեկատվությունը պահպանում է տվյալների բազայում: Նրանք կարող են ունենալ մեկ սեղան, որը կոչվում է Հաճախորդներ, հետեւյալ տարրերով.

Այս աղյուսակում հակիրճ նայում է ավելորդ տվյալների փոքր քանակի: Մենք կրկնօրինակում ենք «Sea Cliff, NY 11579» եւ «Miami, FL 33157» գրառումները: Հիմա, դա կարող է թվալ, թե որքան շատ ավելացված պահեստավորում մեր պարզ օրինակով, բայց պատկերացրեք, որ վատ տարածք է, եթե մեր սեղանին հազարավոր տողեր ունենայինք: Բացի այդ, եթե Sea Cliff- ի փոստային կոդերը փոխվեին, ապա մենք պետք է այդ փոփոխությունը կատարեինք բազում տեղերում տվյալների բազայում:

2NF- ի համապատասխան տվյալների բազայի կառուցվածքում այս լրացուցիչ տեղեկատվությունը արդյունահանվում եւ պահվում է առանձին սեղանի մեջ: Մեր նոր աղյուսակը (եկեք զանգենք այն ZIP- ի) կարող է ունենալ հետեւյալ դաշտերը.

Եթե ​​մենք ուզում ենք լինել գերազանց արդյունավետ, մենք նույնիսկ կարող ենք լրացնել այս սեղանը նախօրոք `փոստային բաժանմունքը տրամադրում է բոլոր վավեր փոստային կոդերի եւ նրանց քաղաքային / պետական ​​կապերի տեղեկատու: Անշուշտ, դուք հայտնվել եք այնպիսի իրավիճակով, երբ այդ տվյալների բազան օգտագործվել է: Որոշ մեկը, ով պատվիրում էր, կարող էր նախ խնդրել ձեր ZIP կոդը, իսկ հետո գիտեր քաղաքը եւ պետությունը, որին զանգահարում եք: Նման պայմանավորվածությունը նվազեցնում է օպերատորի սխալը եւ բարձրացնում արդյունավետությունը:

Այժմ, երբ մենք վերացրեցինք Հաճախորդների աղյուսակից կրկնվող տվյալները, մենք բավարարեցինք երկրորդ նորմալ ձեւի առաջին կանոնը: Մենք դեռ պետք է օգտագործենք օտարերկրյա բանալին `երկու սեղանները միասին կապելու համար: Մենք կօգտագործենք ZIP կոդը (ZIP- ի աղյուսակի հիմնական բանալին) `այդ հարաբերությունները ստեղծելու համար: Ահա մեր նոր հաճախորդների սեղանն է.

Մենք հիմա նվազեցնում ենք տվյալների բազայում պահվող ավելորդ տեղեկությունների քանակը եւ մեր կառուցվածքը երկրորդ նորմալ ձեւով է:

Եթե ​​ցանկանում եք ապահովել ձեր տվյալների շտեմարանը, կարգավորեք մեր մյուս հոդվածները այս շարքում.