Hjem Personlig finansiering SQL Domain-Key Normal Form (DK / NF) og Unormal Form

SQL Domain-Key Normal Form (DK / NF) og Unormal Form

Innholdsfortegnelse:

Video: DBMS - Domain Key Normal Form (DKNF) and Sixth Normal Form (6NF) 2024

Video: DBMS - Domain Key Normal Form (DKNF) and Sixth Normal Form (6NF) 2024
Anonim

Etter at en SQL-database er i tredje vanlig form, har du eliminert de fleste, men ikke alle, sjansene for endringsavvik. Normale skjemaer utover det tredje er definert for å squash de få gjenstående bugs.

Domeneknapp normal form (DK / NF)

Boyce-Codd normal form (BCNF), fjerde normal form (4NF) og femte normal form (5NF) er eksempler på slike former. Hvert skjema eliminerer en mulig modifikasjonsanomali, men garanterer ikke forebygging av alle mulige modifikasjonsanomalier. Domeneknappens normale form gir imidlertid en slik garanti.

En relasjon er i domene-nøkkel normal form (DK / NF) hvis alle begrensninger på relasjonen er en logisk konsekvens av definisjonen av nøkler og domener. En begrensning i denne definisjonen er en regel som er presis nok til at du kan vurdere om det er sant. En nøkkel er en unik identifikator av en rad i et bord. Et domene er settet av tillatte verdier av et attributt.

Se på denne databasen, som er i 1NF, for å se hva du må gjøre for å sette databasen i DK / NF.

Tabell: SALG (Customer_ID, Product, Price)

Nøkkel: Customer_ID

Begrensninger:

  • Customer_ID bestemmer Produkt

  • Produktet bestemmer Pris

  • Customer_ID må være et heltall > 1000

For å håndheve Begrensning 3 (at Customer_ID må være et heltall større enn 1000), kan du enkelt definere domenet for Customer_ID for å inkorporere denne begrensningen. Det gjør begrensningen en logisk konsekvens av domenet til CustomerID-kolonnen. Produktet avhenger av Customer_ID, og ​​Customer_ID er en nøkkel, så du har ikke noe problem med begrensning 1, noe som er en logisk konsekvens av nøkkeldefinisjonen.

Begrensning 2 er et problem. Prisen avhenger av (er en logisk konsekvens av) Produkt, og Produkt er ikke en nøkkel. Løsningen er å dele SALES-tabellen i to tabeller. Ett bord bruker Customer_ID som en nøkkel, og den andre bruker Produkt som en nøkkel. Databasen, i tillegg til å være i 3NF, er også i DK / NF.

Design databasene dine slik at de er i DK / NF hvis det er mulig. Hvis du kan gjøre det, vil håndheving av nøkkel- og domenestriksjoner føre til at alle begrensninger blir oppfylt, og endringsforstyrrelser er ikke mulige. Hvis en databasestruktur er utformet for å hindre deg fra å sette den inn i DK / NF, må du bygge begrensningene i applikasjonsprogrammet som bruker databasen. Databasen selv garanterer ikke at begrensningene vil bli oppfylt.

Unormal form

Som i livet, så i databaser: Noen ganger blir unormal lønn.Du kan bli båret med normalisering og gå for langt. Du kan slå opp en database i så mange tabeller at hele greien blir uhåndterlig og ineffektiv. Ytelsen kan plummet. Ofte er den optimale strukturen for databasen noe deformalisert.

Faktisk er praktiske databaser (de egentlig store, uansett) nesten aldri normalisert helt til DK / NF. Du vil normalisere databasene du designer så mye som mulig, for å eliminere muligheten for data korrupsjon som skyldes endringsendringer.

Etter at du har normalisert databasen så langt du kan, gjør du noen retrievals som et tørr løp. Hvis ytelsen ikke er tilfredsstillende, undersøk ditt design for å se om selektiv denormalisering vil forbedre ytelsen uten å ofre integritet. Ved å nøye legge til redundans på strategiske steder og denormaliserende akkurat nok , , kan du komme til en database som er både effektiv og sikker fra anomalier.

SQL Domain-Key Normal Form (DK / NF) og Unormal Form

Redaktørens valg

Topp 5 Fantasy Baseball Sites - Dummies

Topp 5 Fantasy Baseball Sites - Dummies

Hvis du er en stor fantasy baseball fan og ser ut til å bli med i verden av online fantasy sport, så se ikke lenger. Følgende liste inneholder de fem beste fantasybaseball-nettstedene i henhold til nettstedslayout, oppdatert statistikk, utenfor råd og hjelp og teamstyringsalternativer.

Hva skal man gjøre som en baseball coach - dummies

Hva skal man gjøre som en baseball coach - dummies

Som en baseball trener, du ikke bare må lede teamet ditt, du må ta med forsyninger for å praktisere. Du vil kanskje øke følgende liste, men den inneholder grunnleggende for å få til alle baseballpraksis: Riktig lager førstehjelpsutstyr Ekstra vann Øvelsesplan for dagen, oppdelt etter tid ...

Får utrustet til å spille baseball - dummies

Får utrustet til å spille baseball - dummies

Når du tar baseballfeltet, bør du ta med det beste utstyret som er tilgjengelig. Du trenger ikke å bruke store summer til å kjøpe toppkvalitets tilbehør så lenge du vet hva du skal se etter og hvor du skal finne den. Med mindre du er under 10 år, kjøp utstyr som oppfyller alle de store ligaspesifikasjonene. ...

Redaktørens valg

Hvordan du finner ditt nivå av oppmerksomhet - dummies

Hvordan du finner ditt nivå av oppmerksomhet - dummies

Du kan sikkert ta noen form for ikke-tradisjonell trening og dump det i en tønne merket "mind-body. "Det er greit hvis du foretrekker enkelhet og ikke vil bli innpakket med kategorisering og vurdering. Men du kan også kikke på treningsprogrammer på et dypere nivå, vurdere omfanget av oppmerksomhet i en ...

Hvordan du får mest mulig ut av din meditasjon - dummies

Hvordan du får mest mulig ut av din meditasjon - dummies

For å få mest mulig ut av meditasjonspraksis må forplikte seg til det. Når du begynner å meditere regelmessig, kan du høste utallige fordeler - fra lavere stress og kolesterol til høyere nivåer av tilfredshet og lykke. Her er noen tips for å maksimere meditasjonspraksis: Meditere jevnlig - helst hver dag. Sett bort en ...

Redaktørens valg

Slik bruker du det nye perspektivet i Adobe Illustrator CS6 - dummies

Slik bruker du det nye perspektivet i Adobe Illustrator CS6 - dummies

I Adobe Illustrator CS6 Du kan opprette og redigere kunstverk basert på perspektivgitterfunksjonen (introdusert i CS5). Gitteret er en stor hjelp i å skape vellykkede perspektivillustrasjoner. For å vise eller skjule standardperspektivruten, trykk Ctrl + Shift + I (Windows) eller Kommando + Skift + I (Mac). Du kan bruke verktøyet Perspective Grid på verktøylinjen til å ...

Hvordan å pakke inn tekst ved hjelp av AdobeCS5 Illustrator - dummies

Hvordan å pakke inn tekst ved hjelp av AdobeCS5 Illustrator - dummies

Ved hjelp av en tekstbrytestil i Adobe Creative Suite 5 (Adobe CS5) Illustrator-prosjektet er en enkel måte å legge til litt kreativitet. En tekstpakke tvinger tekst til å vikle rundt en grafikk.

Hvordan du bruker Life Paint-funksjonen i Adobe Illustrator CS6 - dummies

Hvordan du bruker Life Paint-funksjonen i Adobe Illustrator CS6 - dummies

Ikke bekymre deg om å fylle lukkede figurer eller la filler flykte fra objekter med hull i uønskede områder. Ved å bruke Live Paint-funksjonen til Adobe Illustrator CS6, kan du lage det bildet du ønsker og fylle ut regioner med farge. Live Paint-bøtta registrerer automatisk regioner som er sammensatt av uavhengige kryssende baner og fyller dem tilsvarende. Malingen ...