Hva er dekomponering? Dekomponering av mål. Betydningen av ordet "nedbrytning". Dekomponering - Databaser: Grunnleggende konsepter

Dekomponering av relasjonsskjemaet R = (А 1, А 2, ..., А n) kalles å erstatte den med en samling av delmengder R, slik at kombinasjonen deres gir R. I dette tilfellet er det tillatt at delmengdene krysser hverandre.

Dekomponeringsalgoritmen er basert på følgende teorem.

Dekomponeringsteorem. La være R (A, B, C) - holdning, A, B, C - egenskaper.

Hvis R tilfredsstiller avhengigheter A-> B, deretter R er lik forbindelsen til dens projeksjoner A, B og A, C

R (A, B, C) = R (A, B), R (A, C)

Under normalisering er det nødvendig å velge slike dekomponeringer som har egenskapen til en tapsfri sammenføyning. I dette tilfellet må dekomponeringen sikre at spørringer (henter data etter tilstand) til den opprinnelige relasjonen og relasjonene oppnådd som et resultat av dekomponering vil gi samme resultat. Den tilsvarende betingelsen vil være oppfylt hvis hver forhold tuppel R kan representeres som naturlig forbindelse dens projeksjoner på hver av undergruppene. For å sjekke om dekomponering har denne egenskapen, brukes spesielle algoritmer som er beskrevet i litteraturen (de er ikke vurdert i denne boken).

Den nest viktigste ønskelige egenskapen til dekomponering er egenskapen til å bevare funksjonelle avhengigheter. Ønsket om nedbrytning for å bevare avhengigheter er naturlig. Funksjonelle avhengigheter er noen databegrensninger. Hvis dekomponeringen ikke har denne egenskapen, så for å sjekke om integritetsforholdene ( funksjonelle avhengigheter), må vi koble sammen alle anslagene.

En godt bygget databasedesign krever derfor at dekomponeringer har egenskapen tapsfri sammenføyning og ønskelig at de har egenskapen til å beholde funksjonelle avhengigheter.

8.4 Velge et rasjonelt sett med relasjonsskjemaer ved normalisering

Andre normalform (2NF)

Et forhold er i 2NF hvis det er i 1NF og hvert ikke-nøkkelattributt avhenger av hele primærnøkkelen (avhenger ikke av en del av nøkkelen).

For å oversette relasjonen til 2NF, er det nødvendig å bruke projeksjonsoperasjon, utvide den til flere relasjoner som følger:

  1. bygge en projeksjon uten attributter plassert i delvis funksjonell avhengighet fra primærnøkkelen;
  2. bygge projeksjoner inn i deler sammensatt nøkkel og attributter avhengig av disse delene.

Tredje normalform (3NF)

Et forhold er i 3NF hvis det er i 2NF og hvert nøkkelattributt er ikke-transitivt avhengig av en primærnøkkel.

En relasjon er i 3NF hvis og bare hvis alle ikke-nøkkelattributter til relasjonen er gjensidig uavhengige og fullstendig avhengige av primærnøkkelen.

Det viser seg at ethvert relasjonsskjema kan reduseres til en 3NF-dekomponering, som har egenskapene til en tapsfri forbindelse og bevarer avhengighetene.

Motivasjon av den tredje normalformen

Den tredje normal form eliminerer redundans og anomalier ved inkludering og fjerning.

Dessverre forhindrer ikke 3NF alle mulige anomalier.

Boyes-Codd normal form (NBF)

Hvis i R for hver avhengighet X-> A, hvor EN tilhører ikke X, X inkluderer noen nøkkel, så sier de at denne relasjonen er i normal form Boyes-Codd.

Determinanten for funksjonell avhengighet er minimumsgruppen av attributter som en annen attributt eller gruppe av attributter er avhengig av, og denne avhengigheten er ikke-triviell.

Et forhold er i NBFK hvis og bare hvis hver av dens determinanter er en potensiell nøkkel.

NFBK er en strengere versjon av 3NF. Med andre ord, ethvert forhold som er i NFBK er i 3NF. Det motsatte er ikke sant.

Boyes-Codd normal form motivasjon

V normal form Boyes-Codd er det ingen redundans og anomalier ved inkludering, fjerning og modifikasjon... Det viser seg at et hvilket som helst relasjonsdiagram kan gis inn normal form Boyes-Codd slik at dekomponeringen har egenskapen til en tapsfri sammenføyning. Imidlertid kan relasjonsskjemaet være irreduserbart i NFBC med bevaring av avhengigheter. I dette tilfellet må du være fornøyd med den tredje normal form.

8.5. Eksempel på normalisering til 3NF

For å forbedre strukturen til relasjonsdatabasen (eliminere mulige anomalier), er det nødvendig å bringe alle databasetabeller til den tredje normal form eller i en høyere form (hvis mulig). Dermed reduseres oppgaven til å kontrollere normaliseringen av alle entiteter som vises i databasetabellene. Hvis tabellen som kommer fra en enhet ikke er en tabell i den tredje normal form, så bør den erstattes med flere bord plassert i den tredje normal form.

La oss fortsette med eksemplet med relasjonen

I begynnelsen av dette foredraget ga vi holdningen til den første normal form.

Studentkode Etternavn Eksamenskode Punkt Dato Karakter
1 Sergeev 1 Matte 5.08.03 4
2 Ivanov 1 Matte 5.08.03 5
1 Sergeev 2 Fysikk 9.08.03 5
2 Ivanov 2 Fysikk 9.08.03 5

Nøkkelen til dette forholdet vil være et sett med attributter – student-ID og eksamens-ID.

For en mer kortfattet oversikt over normaliseringsprosessen introduserer vi følgende notasjon:

KS - elevkode, KE - eksamenskode, F - etternavn, P - emne, D - dato, O - karakter.

La oss skrive ut funksjonelle avhengigheter

KS, CE -> F, P, D, O KS, CE -> F KS, CE -> P KS, CE -> D KS, CE -> O CE -> P CE -> D KS -> F

I følge definisjonen er relasjonen i den andre normal form(2NF), hvis det er i 1NF og hvert ikke-nøkkelattributt avhenger av primærnøkkelen og ikke avhengig av delen av nøkkelen. Her avhenger attributtene P, D, F av delen av nøkkelen. For å bli kvitt disse avhengighetene, er det nødvendig å bryte ned forholdet. Til dette bruker vi dekomponeringsteoremet.

Vi har en relasjon R (KS, F, KE, P, D, O). La oss ta avhengigheten КС -> Ф i samsvar med formuleringen av teoremet, det innledende forholdet er lik forbindelsen av dens anslag R1 (КС, Ф) og R2 (КС, КЭ, П, Д, О).

I forhold til R1 (KS, F), er det funksjonell avhengighetКС -> Ф, nøkkelen КС er et sammensatt, ikke-nøkkelattributt Ф er ikke avhengig av delen av nøkkelen. Dette forholdet er i 2NF. Siden det ikke er noen transitive avhengigheter i denne forbindelse, er forholdet R (KS, F) i 3NF, som er det som var nødvendig.

Tenk på forholdet R2 (KS, FE, P, D, O) med den sammensatte nøkkelen KS, FE. Det er en avhengighet her CE -> P, CE -> D, CE -> P, D... Attributtene P, D avhenger derfor av delen av nøkkelen

Aksiomet for refleksjonsevne... Hvis Y er inkludert i X, og X er inkludert i U, (Y X U), så følger X Y logisk fra F. Denne regelen gir trivielle avhengigheter, siden i disse avhengighetene er høyre side inneholdt i venstre side.

Påfyllingsaksiomet... Hvis X Y og Z er en delmengde av U, så XZ YZ. I dette tilfellet var den funksjonelle avhengigheten X Y enten inneholdt i det opprinnelige settet F, eller kan avledes fra F ved å bruke de beskrevne aksiomene.

Aksiom for transitivitet. Hvis X Y og Y Z, så X Z.

Følgende teorem er sant. Armstrongs aksiomer er komplette og pålitelige.

Dette betyr at ved bruk av dem vil vi utlede alle mulige funksjonelle avhengigheter som logisk følger av F, og vil ikke utlede noen unødvendige avhengigheter.

Det er flere andre slutningsregler som følger av

av Armstrongs aksiomer.

Selvbestemmelsesregel. X

Foreningsregel. Hvis X

Y og X

Z så X

Y Z.

Regelen for pseudotransitivitet. Hvis X

Y og

Z da

X W Z.

Sammensetningsregel. Hvis X

Y og Z

W deretter X W

Y W.

Nedbrytningsregel. Hvis X

Y og Z er inkludert i Y, deretter X

Det skal bemerkes at å beregne lukkingen av et sett med funksjonelle avhengigheter er en møysommelig oppgave med et tilstrekkelig stort antall attributter (på grunn av å skrive ut et stort antall trivielle avhengigheter).

4.4.3. Dekomponering av relasjonsskjemaet

En sekvensiell overgang fra en normal form til en annen under normalisering av relasjonsskjemaer utføres ved bruk av dekomponering. Hovedoperasjonen som brukes for dekomponering er projeksjon.

Dekomponering av skjemaet for relasjonen R = (A 1, A 2, ... A n) er erstatningen av det med en samling av delmengder av R slik at deres forening gir R. I dette tilfellet er det tillatt at delmengdene krysser hverandre.

Dekomponering skal sikre at spørringer (datavalg etter tilstand) til den opprinnelige relasjonen og relasjoner oppnådd som et resultat av dekomponering vil gi samme resultat. Tilsvarende

Den tilsvarende betingelsen vil være oppfylt hvis hver tuppel av relasjonen R kan representeres som en naturlig forening av dens projeksjoner på hver av undermengdene. I dette tilfellet sies dekomponeringen å ha egenskapen til en tapsfri sammenføyning.

Dekomponeringsalgoritmen er basert på følgende teorem. Fagins teorem. La R (A, B, C) være en relasjon, A, B, C være et attributt

Hvis R tilfredsstiller avhengigheten A B, så er R lik forbindelsen til projeksjonene A, B og A, C

R (A, B, C)

R (A, B)

R (A, C)

Under normalisering er det nødvendig å velge slike dekomponeringer som har egenskapen til en tapsfri sammenføyning. For å sjekke om dekomponeringen har denne egenskapen, brukes en spesiell kontrollalgoritme. Algoritmen er som følger.

La det være et diagram over forholdet R = A 1 ... A n, et sett med funksjonelle avhengigheter F og noen dekomponering (R 1, ... R k) av den opprinnelige kretsen, bestående av k underkretser.

Det er nødvendig å bygge en tabell med n kolonner og k rader. Kolonne j tilsvarer attributtet A j, rad k til skjemaet for relasjonen R k. I skjæringspunktet mellom rad i og kolonne j, plasser symbolet a j hvis A j tilhører R i. Ellers setter du symbolet b ij der.

Vi vurderer hver avhengighet fra settet F til det er umulig å gjøre noen endringer i tabellen. Når vi ser på avhengighet X Y, ser vi etter rader som samsvarer på tvers av alle kolonner som tilsvarer attributter fra X. Når slike strenger blir funnet, identifiserer vi tegnene i kolonnene som tilsvarer attributtene fra Y. Hvis i dette tilfellet et av de identifiserte symbolene er lik a j, likestiller vi det andre a j. I tilfellet når de er lik b ij og b lj, gjør vi begge lik b ij eller b lj etter eget skjønn.

Etter å ha modifisert tabellradene på måten ovenfor, kan du finne ut at en rad har blitt lik a 1 ... a k. Da har dekomponeringen egenskapen til en tapsfri sammenføyning. Hvis en slik streng mislykkes, har ikke dekomponeringen denne egenskapen.

Dekomponering av ABCD-skjema til AB og ACD.

A B, AC D (AC - forkortet notasjon A C).

Siden en linje består av alle a, så har vår dekomponering egenskapen til en tapsfri sammenføyning.

Den nest viktigste ønskelige egenskapen til dekomponering er egenskapen til å bevare funksjonelle avhengigheter.

Ønsket om nedbrytning for å bevare avhengigheter er naturlig. Funksjonelle avhengigheter er noen databegrensninger. Hvis dekomponeringen ikke har denne egenskapen, må vi koble alle projeksjonene for å sjekke om de introduserte dataene bryter med integritetsbetingelsene (funksjonelle avhengigheter).

For et godt bygget databasedesign er det derfor nødvendig at dekomponeringer har egenskapen tapsfri forbindelse, og det er ønskelig at de har egenskapen til å bevare funksjonelle avhengigheter.

4.4.4. Velge et rasjonelt sett med forholdsordninger ved normalisering

Andre normalform (2NF)

Et forhold er i 2NF hvis det er i 1NF og hvert ikke-nøkkelattributt avhenger av primærnøkkelen (avhenger ikke av delen av nøkkelen).

For å oversette en relasjon til 2NF, er det nødvendig, ved å bruke projeksjonsoperasjonen, å dekomponere den i flere relasjoner som følger:

1) bygge en projeksjon uten attributter som er delvis funksjonell avhengig av primærnøkkelen;

2) bygge projeksjoner på deler av en sammensatt nøkkel og attributter avhengig av disse delene.

Tredje normalform (3NF)

Et forhold er i 3NF hvis det er i 2NF og hvert nøkkelattributt er ikke-transitivt avhengig av en primærnøkkel.

En relasjon er i 3NF hvis og bare hvis alle ikke-nøkkelattributter til relasjonen er gjensidig uavhengige og fullstendig avhengige av primærnøkkelen.

Det viser seg at ethvert relasjonsskjema kan reduseres til en 3NF-dekomponering, som har egenskapene til en tapsfri forbindelse og bevarer avhengigheter.

Motivasjon av den tredje normalformen

Den tredje normale formen eliminerer redundans og anomalier ved inkludering og fjerning. Dessverre forhindrer ikke 3NF alle mulige anomalier.

Boyes-Codd normal form (NBF)

Hvis i R for hver avhengighet X A, hvor A ikke tilhører X, inkluderer X en nøkkel, så sies denne relasjonen å være i Boyes-Codd normalform.

Determinanten for funksjonell avhengighet er minimumsgruppen av attributter som en annen attributt eller gruppe av attributter avhenger av, og denne avhengigheten er ikke-triviell.

Et forhold er i NBFK hvis og bare hvis hver av dens determinanter er en potensiell nøkkel.

NFBK er en strengere versjon av 3NF. Med andre ord, ethvert forhold som er i NFBK er i 3NF. Det motsatte er ikke sant.

Eksempel. Tidsplan for konsultasjoner. Hver gruppe kan komme på konsultasjon en gang om dagen. Et publikum er gitt for en konsultasjon eller konsultasjon til en lærer for en bestemt dag. På dagtid kan dette klasserommet brukes av forskjellige lærere.

TIDSPLAN FOR KONSULTASJONER (gruppe, dato, klokkeslett, lærer, auditorium)

Vi valgte "Gruppe, dato" som primærnøkkel. Potensielle nøkler:

"Gruppe, dato". "Lærer, dato, klokkeslett". "Publikum, dato, klokkeslett".

Lærer

Publikum

Vizgunov

Vizgunov

Trifonov

Vizgunov

Normalisering og dekomponering av relasjoner

Datamodifikasjonsavvik

Etter å ha utarbeidet et konseptuelt (logisk) databaseskjema, er det ekstremt viktig å sjekke det for datamodifikasjonsavvik. Faktum er at med et feildesignet databaseskjema kan det oppstå uregelmessigheter i utførelsen av datamodifikasjonsoperasjoner. Disse anomaliene skyldes den begrensede strukturen til RMD (fravær av aggregater, etc.).

La oss vurdere disse uregelmessighetene ved å bruke eksemplet på et forhold med følgende attributter (attributter inkludert i nøkkelen er understreket):

LEVERING ( Leveringsnummer, produktnavn, produktpris, mengde, leveringsdato, leverandørnavn, leverandøradresse)

Det er tre typer avvik: oppdater, slett og legg til avvik. En oppdateringsavvik kan oppstå når informasjon dupliseres. Andre anomalier oppstår når to eller flere enheter kombineres til ett forhold. For eksempel:

  1. Oppdater anomali: i et forhold LEVERANSE det kan oppstå dersom en leverandørs adresse er endret. Endringer må gjøres på alle tuples i samsvar med leverandørens forsyninger; ellers vil dataene være inkonsekvente.
  2. Anomali ved fjerning: Hvis du sletter poster for alle leveranser til en bestemt leverandør, vil alle data om denne leverandøren gå tapt.
  3. Tilleggsavvik: i vårt eksempel vil det oppstå dersom det er inngått avtale med leverandøren, men det ennå ikke har vært leveranser fra denne. Informasjon om en slik leverandør kan ikke legges inn i tabellen LEVERANSE siden nøkkelen (leveringsnummer og produktnavn) og andre nødvendige attributter er ikke definert for den.

For å løse problemet med datamodifikasjonsavvik i utformingen av en relasjonsdatabase, normaliseres relasjoner.

Innenfor rammen av relasjonsdatamodellen har E.F. Codd utviklet et apparat for normalisering av relasjoner og foreslo en mekanisme som gjør at enhver relasjon kan konverteres til tredje normalform. Relasjonsskjemanormalisering utføres ved skjemadekomponering.

Det er vanlig å kalle en dekomponering av et relasjonsskjema R og erstatte det med et sett med relasjonsskjemaer A i slik at

og forholdet Ai er ikke pålagt å være usammenhengende. Dekomponering av et forhold bør ikke føre til tap av avhengigheter mellom enhetsattributter. For dekomponeringen må det være en relasjonsalgebraoperasjon, hvis bruk vil gjenopprette den opprinnelige relasjonen.

La oss vise normaliseringen med eksemplet på relasjonen BØKER (tabell 8.1):

Id - identifikator (primærnøkkel),
Kode - overskriftskode (i henhold til LBC - bibliotek og bibliografisk klassifisering),
Tema - navnet på overskriften (i henhold til LBC),
Tittel - boktittel,
Forfatter - forfattere),
Redaktør - redaktør(er),
Type - type publikasjon (lærebok, studieveiledning, samling, etc.),
År - utgivelsesåret
s - Antall sider

Tabell 8.1. Innledende holdning BØKER

Normalisering og dekomponering av relasjoner - konsept og typer. Klassifisering og funksjoner i kategorien "Normalisering og dekomponering av relasjoner" 2017, 2018.

Tenk på et eksempel på et forhold som inneholder data om en universitetsstudent Ivanov (tabell 7.1).

Tabell 7.1. Studentdata

Nummer

Etternavn

Kursprosjekter

Varer

Karakter

Rom

Tlf.

1000

Ivanov

Matte

417

51-11

Kompilatorer

Systemprogrammering

5/4

Fysikk

Svoveloksidasjon

Kjemi

5/5

Eksempel. Universell holdning.

Det kan sees at dataene inneholder flere felt, dvs. attributter er ikke-atomære. Duplisering av data i attributter lar deg presentere data om en elev i form av en relasjon (tabell 7.2).

Tabell 7.2. STUDENT HOLDNING

Nummer

Etternavn

Kursprosjekter

Varer

Karakter

Rom

Tlf.

1000

Ivanov

Nei

Matte

417

51-11

1000

Ivanov

Kompilatorer

Systemprogrammering

5/4

417

51-11

1000

Ivanov

Nei

Fysikk

417

51-11

1000

Ivanov

Svoveloksidasjon

Kjemi

5/5

417

51-11

Hvis relasjonen inkluderer alle attributter fra emneområdet til databasen, kalles den universell holdning... Det universelle forholdet er i 1NF. Som du vet, genererer forholdet i 1NF mange anomalier i databehandling (oppdatering, sletting, tillegg, redundans). For å sette en universell relasjon i databasen, må den normaliseres - brytes ned i et sett med mindre relasjoner. Dette reiser følgende tre spørsmål:

1.gjenkjenner forholdet som skal brytes?

2. Hvordan deler dere?

3. Når skal delingsprosessen avsluttes?

Analyse av anomalier i databehandling viser at løsningen av de to første spørsmålene er nært knyttet til definisjonen av primærnøkkelen, gjenkjennelse av fenomenene duplisering og redundans, duplisering og ikke-redundans av data. Alle disse fenomenene er basert på konseptet FZ. Fra et praktisk synspunkt er betydningen av FZ som følger: hvis den finner sted, har hver av tuplene samme verdi EN, må ha samme verdi B. Endrende verdier A og B i tid bør ikke bryte den føderale loven.

Hvordan anerkjenne den føderale loven i praksis? FZ bestemmes i hver spesifikk situasjon gjennom en detaljert analyse av egenskapene til alle attributter til forholdet og dannelsen av en konklusjon om typene deres forhold til hverandre. FD-er kan ikke identifiseres ved å se på en separat forekomst av et forhold og finne to attributter som har samme verdier i forskjellige tupler. FZ bør hentes fra egenskapene til attributtene til emneområdet til databasen. En relasjonsskanning er en formell definisjon av mulige, men ikke gyldige funksjonelle relasjoner.

Etter å ha bestemt alle FZ-ene som er iboende i emneområdet til databasen, kan man fortsette til prosessen med å bryte opp relasjoner, kalt dekomponering av relasjonsordninger... Dekomponering av relasjonsskjemaer er en av hovedmetodene for å bygge logiske modeller av relasjonsdatabaser. Bruk universelt forhold lar deg ha et utgangspunkt for å dekomponere databaserelasjoner. Dekomponeringen resulterer i en normalisert datamodell.

Dekomponering av relasjonsordninger, koblingsegenskaper uten tap og bevaring av FZ

Et av designmålene til en relasjonsdatabase er å bygge en dekomponering (partisjon) universelt forhold på et sett med relasjoner som tilfredsstiller kravene til normale former.

La oss introdusere definisjonen relasjonsskjemadekomponering.

Definisjon 1. Dekomponering av et relasjonsskjema er dets erstatning av en samling av en delmengde R .

Før vi går videre til studiet av metoden for dekomponering av relasjonsskjemaer, la oss vurdere problemet med å knytte relasjoner når vi splitter et universelt forhold. Når vi erstatter den opprinnelige relasjonen med to andre sammenhengende relasjoner, er det rimelig å anta at disse relasjonene vil være en projeksjon av den opprinnelige relasjonen på de tilsvarende attributtene. Den eneste måten å finne ut om de oppnådde projeksjonene inneholder samme informasjon som den opprinnelige relasjonen er å gjenopprette den ved å utføre en naturlig kombinasjon av de oppnådde projeksjonene. Hvis relasjonen oppnådd som et resultat av forbindelsen ikke sammenfaller med den opprinnelige relasjonen, er det umulig å si hvilken som er den opprinnelige relasjonen for et gitt skjema. Dermed er problemet at når du blir med, kan du miste eksisterende eller få eksisterende falske tupler. La oss vurdere et eksempel på dekomponering med tap av informasjon.

Vurder en algoritme for å sjekke egenskapene til en tapsfri forbindelse.

Algoritme. Dekomponeringssjekk på tapsfri sammenføyningseiendom

input: relasjonsskjema R (A 1, A 2, ..., A k), sett av FZ F,

dekomponering d = (Rl, R2, ..., Rk).

utdata: boolsk sann eller usann.

Algoritme

1. La oss bygge et bord medn kolonner og ketter rader, hvor kolonnejsamsvarer med attributtetA j og linjen Jeg- forholdsdiagramR i... I skjæringspunktet mellom linjenJeg og kolonne jsette inn symboletaj hvis attributt A j tilhører R i... Ellers sett inn symboletb ij.

2. Vi gjennomgår gjentatte ganger hver FZ fraFtil det blir umulig å gjøre endringer i tabellen. Ser vi gjennom avhengigheten, ser vi etter rader som samsvarer i alle kolonner som samsvarer med attributtene fraNS... Når slike strenger blir funnet, identifiserer vi symbolene deres i kolonnene som tilsvarer attributtene fraY, i henhold til regelen a j i a j, b ij i b ij.

3. Hvis det, etter å ha endret radene i tabellen, viser seg at en rad er lika 1, a 2, ..., a k, da har dekomponeringen d egenskapen tapsfri forbindelse. Ellers har ikke dekomponeringen d denne egenskapen.

Algoritmen ovenfor lar oss bestemme om dekomponeringen har egenskapen til en tapsfri sammenføyning.

La oss vurdere et eksempel på bruk av algoritmen ved å bruke DELIVERY-relasjonen (leverandør, adresse, produkt, kostnad). La oss angi attributtene som: EN- forsørger, V- adresse, C- produkt, D- kostnad, mens det er føderale lover.

Når du dekomponerer ett relasjonsskjema til to andre relasjonsskjemaer, brukes en enklere test: dekomponeringen har egenskapen til en tapsfri forbindelse, hvis bare. En slik føderal lov må høre til F +.

Den tapsfrie sammenføyningsegenskapen sikrer at enhver relasjon kan rekonstrueres fra dens projeksjoner. Det er klart at under dekomponeringen av FZ av den opprinnelige ordningen, blir relasjoner fordelt over nye relasjoner. Derfor er det viktig at settet med FD-er under dekomponering F for relasjonsdiagrammet r kunne utledes fra anslagene på diagrammene R i.

La oss introdusere følgende definisjon.

Definisjon 2. Ved projeksjonen av FZ-settet F på et sett med attributter NS , betegnet med, kalles settet med FZ-er i F + slik at.

De sier at dekomponering har egenskapen til å bevare FD hvis fra foreningen av alle FDer som tilhører, alle avhengigheter fra F.

Vurder forholdet (by, adresse, postnummer). La oss angi attributtene som: A - by, B - adresse, C - postnummer, mens det er føderale lover. Dekomponering av skjemaet for dette forholdet ABCAC og f.Kr har egenskapen tapsfri forbindelse, siden FZ er korrekt. Imidlertid projeksjonen på f.Kr gir bare trivielle avhengigheter, projeksjonen på SOM gir ФЗ og trivielt ФЗ. Avhengigheten følger ikke av den føderale loven. Derfor bevarer ikke denne dekomponeringen FD, selv om den har egenskapen til en tapsfri forbindelse.

Vurder et eksempel på brudd på FZ under dekomponering.

Eksempel. FZ-brudd under dekomponering

R 1 (B, C) R 2 (A, C)

Lesnaya, 6 132432 Chernogolovka, MO 132432

Lesnaya, 6 132431 Chernogolovka, MO 132431

R (A, B, C)

Chernogolovka, MO 132432 Lesnaya, 6

Chernogolovka, MO 132431 Lesnaya, 6

R = R1>< R 2 , для R 2 справедлива С \to А, для R не справедлива АВ \ to С.

Fra relasjonsdatabaseteoriens synspunkt bør et godt relasjonsskjema for relasjonsdatabaser oppfylle følgende krav når det er mulig:

· Utelukke overflødig duplisering;

· Eliminer potensiell datainkonsekvens;

· Har eiendommen til tapsfri forbindelse;

· Har egenskapen til å bevare FZ.

I prosessen med å normalisere det innledende skjemaet av relasjoner definert av informasjonsdatamodellen, bør skjemaer av relasjoner som oppfyller kravene ovenfor, oppnås.

Relasjonsdekomponeringsdesignteknikker

Konseptet med relasjonsnedbrytningsmetoder

Anta at databaseskjemaet inneholder F-avhengigheter. Fra bestemmelsene i teorien om F-avhengigheter følger det at hvis databaserelasjonene er i Boyes-Codd normalform (NFBK), så kan utformingen av den logiske databasemodellen betraktes som komplett i denne klassen av avhengigheter. Som du kan se, gir teorien et nyttig (!) kriterium for å stoppe designet.

La oss formulere et visuelt kriterium for å bestemme om en relasjon er i NFBK. For dette introduserer vi følgende hjelpekonsept.

Definisjon 3. La FZ: være gitt, og B funksjonelt sett ikke er avhengig av noen delmengde A, da kalles A determinanten til B.

Determinantene i forholdet er attributtene til venstre side av FZ. Mulige nøkler (se opplæringselementet "Relasjonell datamodell") identifiseres ved å finne minimumsettet med attributtverdier som definerer verdiene til alle andre attributter i et forhold. La oss minne om konseptet med en mulig nøkkel til en relasjon som en egenskap eller attributter til en gitt relasjon, som kan velges som primær i denne relasjonen.

Da kan Codd-kriteriet for å bestemme om en relasjon er i NFBC formuleres som følger:

Et forhold er i NFBC hvis og bare hvis hver determinant av forholdet er en mulig nøkkel.

Når relasjoner dekomponeres, er det derfor nødvendig å bygge lister over mulige nøkler og determinanter og sammenligne dem for tilfeldigheter. Ved å eliminere de fleste potensielle anomaliene på denne måten, kan designet fullføres.

Nå vet vi hvor vi skal starte normaliseringen – med universelt forhold; hva du skal sjekke - finne det første forholdet i NFBC; hva du skal gjøre - dekomponering av det opprinnelige forholdet til to andre forhold; og når du skal stoppe - alle databaserelasjoner i NFBC. Dermed kan vi formulere en generell algoritme for å designe en logisk modell av en relasjonsdatabase ved bruk av dekomponeringsmetoden:

Algoritme for metoden for dekomponering av relasjoner

Algoritme

1. Utvikling av en generisk relasjon for databasen.

2. Definisjon av alle FZ-er mellom attributtene til forholdet.

3. Avgjøre om forholdet er i NBFK. Hvis ja, fullfør designet; ellers må forholdet deles i to andre forhold.

4. Gjentakelse av punkt 2 og 3 for hver nye relasjon oppnådd som et resultat av dekomponering.

La oss avklare noen aspekter ved nedbrytningsmetoden.

Først, hvordan dekomponerer et forhold i to forhold. La holdningen R (A, B, C, D, ...) inneholder FZ og er derfor ikke i NFBK. Egenskap MED er en avgjørende faktor men ikke en mulig nøkkel. For å utføre relasjonsdekomponering R to relasjoner skapes R 1 (A, B, C, ...) og R 2 (C, D), hvorav FZ er tildelt. Denne nedbrytningen er tapsfri nedbrytning med naturlig sammenheng... Videre, fra de samme posisjonene, vurderes relasjoner R 1 og R 2.

For det andre, hva er kriteriet for å velge en FZ for å utføre en projeksjon (nedenfor skal vi se hvor viktig dette kan være). Det er klart at FZ med determinanter på venstre side bør velges ut som kandidater for gjennomføring av projeksjonen. Imidlertid kan avhengigheter med determinanter være av transitiv karakter, og her er det nyttig å bruke den første tommelfingerregelen for å velge en FZ for å utføre en projeksjon - "kjederegelen". Kjederegelen er som følger:

Hvis, blir avhengigheten lengst til høyre eller "enden av kjeden" brukt som en FZ for implementering av projeksjonen.

Designmetoder basert på syntese av relasjoner

Noen problemer med dekomponeringsmetoden

Algoritme for metoden for dekomponering av relasjoner er ikke perfekt. FZ-verdenen er veldig mangfoldig. Det er et godt arbeidsverktøy, og gitt typer føderale lover kan det forbedres. La oss ta hensyn til to problematiske situasjoner knyttet til anvendelsen av nedbrytningsmetoden. La det være en relasjon R (A, B, C, D, ...) fra eksempelet ovenfor.

Den første situasjonen: i prosessen med nedbrytning, er FZ tapt, og hvis forholdet R 1 og R 2 vil bli brukt til å lage en database, kan det ikke garanteres at koblingene mellom disse attributtene blir lagt inn i databasen riktig. Dette innebærer den andre empiriske regelen for å velge en FZ for å utføre en projeksjon: man bør ikke bruke en FZ som en FZ for en projeksjon hvis venstre side er en determinant for en annen FZ. Dette problemet løses ved å bruke en kjederegel.

Andre situasjon: ett attributt avhenger av to determinanter - en mulig nøkkel (A, C) og to avgjørende faktor EN og MED... Denne situasjonen er mer kritisk. Forholdet er ikke i NBFK; det er ingen FZ-kjeder i relasjonen, og kjederegelen gjelder ikke for den. Dette problemet er ikke løst med standard dekomponeringsmetoden. Løsningen er å dekomponere den opprinnelige relasjonen i to relasjoner, som er basert på påstanden om at alle FD-er med samme determinanter må separeres i separate grupper og hver slik gruppe bør ha sin egen relasjon. De resulterende forholdene bør kontrolleres mot NBFK. Denne tilnærmingen til å designe en logisk modell av en relasjonsdatabase kalles syntesemetoden. Syntesemetoden kan brukes både uavhengig og i kombinasjon med. Disse eksemplene hjelper oss å forstå en rekke potensielle ulemper ved dekomponering som en metode for å designe logiske modeller av relasjonsdatabaser.

Før du går videre til studiet av syntesemetoden, vurder bruken av synteseelementer i dekomponering. Som du kan se, er dekomponering komplisert i nærvær av transitive FD-er. Et trekk ved den transitive FZ er dens redundans. FZ anses å være overflødig dersom den inneholder informasjon som kan hentes fra andre FZ i databasen. Eliminering av redundant transitiv FZ fra databasen kan utføres uten å påvirke resultatene negativt. Redundans er ikke bare iboende i transitive FD-er, og derfor er det tilrådelig å ekskludere overflødige FD-er før du bruker dekomponeringsalgoritmen.

Konseptet med metoder for syntese av relasjoner

Det er mulig å eliminere redundans i det innledende settet med FD-er ved å bruke reglene for FD-slutning (se opplæringselementet "Funksjonelle avhengigheter"). Som du vet, for en klasse med F-avhengigheter er det nok å bruke seks slike regler. I dette tilfellet kan kriteriet for å stoppe elimineringsprosedyren være å oppnå minimumsdekningen av det første settet med FD-er.

Det ikke unike med minimumsdekningene indikerer at prosedyren for å eliminere overflødige FD-er kan påvirke de oppnådde resultatene. Herfra følger en tommelfingerregel:

Overflødige FD-er bør fjernes én om gangen, hver gang analyserer det resulterende settet med FD-er for redundans.

Som konklusjon av studiet av algoritmer basert på dekomponering av relasjoner, bør to forhold understrekes, hvorav den første indikerer fordelen med metoder basert på syntese av relasjoner og den andre er en ulempe ved begge tilnærmingene.

Først. Hvis en universell relasjon inneholder et stort antall attributter, for eksempel mer enn tre dusin, blir manuell design arbeidskrevende og kan på den ene siden føre til store tidskostnader, og på den andre siden generere et uakseptabelt antall relasjoner i databasen for praksis. Derfor bør du i dette tilfellet tenke på å automatisere designprosessen, dvs. lage et program for å designe databaseskjemaer.

Sekund. Designprosessen for relasjonsdatabaser er preget av en kompleks matematisk karakter. Det er vist at designproblemet er NP-hardt, dvs. det er umulig å bygge en universell dekomponeringsalgoritme - en algoritme for "alle anledninger", hvis utførelse vil ta tid mindre enn eksponentiell tid med antall trinn proporsjonalt med e N, hvor N- antall attributter.

I tillegg kan oppgaven med å konvertere det opprinnelige forholdet til NFBC ikke være gjennomførbart. Dette faktum fant sted i praksisen med design. Siden NFBK kanskje ikke eksisterer på et gitt sett med FZ-er, vil det være logisk å forlate kravet om å bringe databaserelasjoner til dette skjemaet. Denne situasjonen støttes også teoretisk: for et gitt sett med F-avhengigheter over kretsen r DB kan du bygge et DB-skjema i 3NF.

Derfor vil vi begrense oss til søket etter 3NF i løpet av bruken av syntesemetoden, mens det fortsatt er problemer knyttet til å utføre operasjoner på data.

Algoritme for metoden for syntese av relasjoner

Denne delen gir bare en viss oversikt over algoritmen syntese av relasjoner.

Vi har allerede vurdert eksempler på dekomponering med tap av FZ. Årsaken til tapet av FD er noen FD, som ikke kan ekskluderes fra settet med F-avhengigheter knyttet til de resulterende relasjonene R 1 eller R 2... Dermed er essensen av problemet redusert til å bryte lukketheten til relasjonsoperasjoner over FZ på det resulterende databaseskjemaet. For å løse det, er det nødvendig å fylle på minimumsdekningen til den føderale loven, eller, som de sier, å styrke minimumsdekningen.

På veien til å løse dette problemet, ville det være fint å styrke alle FZ-er ved å assosiere dem med unike nøkler, for eksempel ved å beskrive unike indekser for dem. Da kan integriteten til databasen overvåkes. For å gjøre dette må du styrke minimumsdekningen. Grovt sett betyr styrkingen av minimumsdekningen at et sett med primærnøkler har blitt tildelt og alle FD-er fra minimumsdekningen er revidert i prismen til dette settet med tanke på utdragbarheten til FD-ene til databasen som vurderes. .

La oss introdusere en definisjon.

Definisjon 4. En relasjonsdatabase sies å være komplett hvis:

· alle FZ-er er forsterket med nøkler;

· alle relasjoner er i 3NF;

· det er ingen databasealternativ med færre skjemaer som tilfredsstiller egenskapene ovenfor.

Nesten alltid, i emneområdet til databasen, kan man skille et sett med relasjoner som har egenskapen til fullstendighet. Teoremet [Meyer] er bevist at det er en algoritme som utleder en komplett database fra et sett med gitte FZ-er.

Siden en slik algoritme bygger et databaseskjema direkte fra et gitt sett med FD-er, kalles det algoritme for databasesyntese... I dette tilfellet kommer problemet med korrekt representasjon av et forhold til et gitt opplegg ved dets anslag på forgrunnen, dvs. tilkoblinger på det resulterende databaseskjemaet kan være falske. Men hvis minimumsdekningen av det første settet med FD-er styrkes, kan dette fenomenet unngås.

Eksempel. Generisk nøkkel og falske forbindelser

La holdningen R har tupler:

1 1 1 1

4 1 2 2

Tilfelle 1. Ingen falske koblinger

Oppdeling i forhold

R1 = ABC og R2 = BCD

1 1 1

1 1 1

4 1 2

1 2 2

gir ikke falske sammenhenger.

Tilfelle 2. Tilstedeværelse av falske forbindelser

Oppdeling i forhold

R1 = AB og R2 = BCD

1 1

1 1 1

4 1

1 2 2

gir falske sammenhenger

ABCD

1 1 1 1

1 1 2 2

4 1 1 1

4 1 2 2

Siden kan du løse problemet ved å skrive inn den universelle nøkkelen(A, C)... Deretter kan du legge til relasjonen til det opprinnelige oppsettet

AC

1 1

1 2

og utføre et sammenføyningsforhold AB, BCD og AC som vil gjenopprette den opprinnelige relasjonen ABCD .

Merk at attributtet EN fungerer som en nøkkel i nesten alle føderale lover. Et uthevet eller lagt til attributt som har denne egenskapen kalles en generisk nøkkel. Dermed er løsningen på problemet med falske tilkoblinger å legge til en underkrets som inneholder hovednøkkelen og opprette en tilkobling ved å bruke den.

Du kan nå gå videre til en oversikt over algoritmen for relasjonsdatabasesyntese.

Det er vist teoretisk at for å syntetisere en komplett database, er det nødvendig å konstruere en ringformet minimumsdekning for det første settet med FD-er.

La oss introdusere litt notasjon. En sammensatt FZ kalles FZ:, hvor Y kan være tom. Et sett med FD-er kan assosieres med hver sammensatt FZ:. La C være et sett av sammensatt FZ, fd (C)- settet med alle føderale lover knyttet til føderale lover fra S.

I den aksepterte notasjonen, de viktigste stadiene av algoritmen syntese av relasjoner er gitt nedenfor.

Algoritme for trinnvis syntese av relasjoner

Inngang: F- et sett med FZ i emneområdet til databasen

Utdata: fullstendig databaseskjema

Trinn 1. Finne ikke-overflødig dekning F 1 for F

For hver FZ fra F det kontrolleres om denne FZ kan utledes fra den gjenværende FZ. I så fall slettes FZ. Etappen avsluttes etter oppregning av alle FD-er fra F... Som et resultat av utførelsen av scenen oppnås et sett med FD-er F 1.

Trinn 2. Krympeelementer fra venstre F 1

Attributter fjernes sekvensielt én etter én fra venstre side av FZ F 1; det kontrolleres om den resulterende FZ kan utledes fra den originale FZ F 1 F 1 F 2.

Trinn 3. Krympe elementene fra høyre F 2

FZ-attributter fjernes sekvensielt én etter én fra høyre side av FZ F 2; det kontrolleres om den originale FZ kan utledes fra den mottatte FZ og den tilgjengelige FZ F 2... Hvis ja, erstattes den originale FZ med en ny FZ. Etappen avsluttes etter oppregningen av alle FZ-er. F 2... Resultatet er et sett med FD-er F 3.

Dette fullfører reduksjonen av FZ. Det er ingen redundans. Det er nødvendig å begynne å bygge minimumsdekningen.

Trinn 4. Separasjon F 3 inn i ekvivalensklasser på høyre side

Partisjonen er bygget F 3 i grupper: to FZ-er tilhører samme gruppe hvis og bare hvis høyresiden deres er likeverdige. Resultatet er et sett med ekvivalensklasser for FZ.

Trinn 5. Fjerning av overflødige FD-er i ekvivalensklasser

For alle par av FZ fd i og fd j fra samme gruppe, sjekkes det om FZ på venstre side fdj fra høyre side fd j trekkes fra denne gruppen av FZ. Hvis ja, så fra fd jФЗ fjernes og legges til høyre side av denne ФЗ til høyre fd i... Den nye FZ vil være i samme gruppe som den opprinnelige FZ. Resultatet er minimum antall FD-er F 5 dekker F 3.

Trinn 6. Innhenting av ekvivalensklasser på venstre side F 5 og kompositt FZ C 1

For hvert sett med FZ-er med tilsvarende venstre side fra F 5 en sammensatt FZ opprettes. Hvis noen attributt fra Y er i X i da fjernes dette attributtet. Resultatet er et sett med sammensatte FD-er C 1.

Trinn 7. Fjerne overflødige avhengigheter fra C 1

For hver forbindelse FZ fra C 1 og for hver egenskap X i fra venstre side av C flyttes attributter til høyre side. Resultatet er et sett med sammensatte FD-er MED"... Hvis fd (C ") tilsvarende fd (C 1), deretter C 1 erstattes av MED"... Resultatet er et sett med FD-er C 2.

Trinn 8. Dannelse av ringformet minimumsdekning

For hver forbindelse FD c fra C 2 og hver egenskap EN attributtet fjernes fra høyre side av c EN... Resultatet er MED" bestående av med"... Hvis fd (C ") tilsvarende fd (C 2), deretter C 2 erstattes av MED"... Resultatet er et sett med FD-er C 3.

Trinn 9. Dannelse av skjemaet for den komplette databasen

For hver forbindelse FZ med fra C 3 det dannes en tabell over attributter som vises i med... Nøklene til dette bordet er X i fra venstre side med... Tabellen vil tjene til å styrke den føderale loven i F.

Trinn-for-trinn algoritme syntese av relasjoner har god konvergens, er det tilrådelig å bruke det i en programmert form. For å gjøre dette kan du bruke et ferdig program, eller skrive ditt eget program under hensyntagen til spesifikke oppgavene dine, med henvisning til D. Meyers monografi.

Lage en logisk modell av en relasjonsdatabase ved bruk av dekomponering: transformasjon ER-diagrammer til databaserelasjoner

Praksisen med å designe relasjonsdatabaser med metoden for dekomponering av relasjoner har vist en rekke av dens ulemper knyttet til tap av data under tilkoblinger og med tap av FZ. Imidlertid er dekomponeringsmetoden enkel nok til å forstå, intuitiv og lett implementert i instrumentell SAK- designverktøy og er for tiden det mest brukte innen databasedesign.

For å konstruere logiske modeller av relasjonsdatabaser ved dekomponeringsmetoden er det formulert en rekke regler, som kalles regler for konvertering av ER-diagrammer til databaserelasjoner... Reglene eliminerer potensielle ulemper ved dekomponeringsmetoden og er rettet mot å bringe databaserelasjonsskjemaet til normale former.

La oss vurdere transformasjonsreglene ved å bruke eksemplet med en database med lærere som foreleser ved instituttet. Lærerens essens er relatert til essensen av emnet ved hjelp av Reads-forbindelsen. I dette tilfellet er følgende alternativer for oppførselen til dette fagområdet mulig:

1.Hver lærer leser kun ett kurs, og hvert kurs undervises av kun én lærer, dvs. medlemskapsklassene til begge enhetene er påkrevd;

2. hver lærer leser kun ett kurs, og hvert kurs undervises av ikke mer enn én lærer, dvs. klassen av tilhørighet til den første enheten er påkrevd, og den til den andre enheten er valgfri;

3. hver lærer leser ikke mer enn ett emne, og hvert emne undervises av ikke mer enn en lærer, dvs. medlemskapsklassene til begge enhetene er valgfrie;

4. Hver lærer leser ikke mer enn ett kurs, og hvert kurs undervises av kun én lærer.

Varianter med ulik grad av kommunikasjon er mulig, for eksempel når hver lærer kan lese flere kurs.

Hvert av disse alternativene kan representeres av et ER-diagram. Imidlertid bør det huskes at hvert ER-diagram representerer sitt eget sett med regler for oppførselen til domenet, og bare én av dem kan være sann til enhver tid.

Hvis graden av den binære relasjonen bestemmes, kan den foreløpige relasjonen oppnås ved å se på flere alternativer og velge det alternativet som er best egnet med tanke på domenereglene og personlige preferanser til designeren. De definerende tegnene på valget av et av de alternative alternativene for å representere forholdet er graden av tilknytning og tilhørighetsklassen til enheten.

La oss formulere den første regelen.

Regel 1. Hvis graden av en binær relasjon er 1: 1 og tilhørighetsklassen til begge enhetene kreves, kreves det bare ett forhold. I dette tilfellet kan primærnøkkelen til relasjonen være nøkkelen til en hvilken som helst enhet.

Det opprinnelige forholdet er samtidig det endelige forholdet.

Regel 2. Hvis graden av en binær relasjon er 1:1 og tilhørighetsklassen til en enhet er obligatorisk, og den andre enheten er valgfri, er det nødvendig å bygge to relasjoner - en for hver enhet. I dette tilfellet er primærnøkkelen til hver relasjon nøkkelen til dens enhet, og nøkkelen til enheten med en valgfri tilhørighetsklasse legges til relasjonen for en enhet med den nødvendige tilhørighetsklassen som attributt (nøkkelmigrering) .

Denne regelen kan brukes i den andre varianten, når den opprinnelige relasjonen allerede krever dekomponering. Innledende holdning LÆRER_1 inneholder et nullverdiproblem: data om elementer som ikke leses for øyeblikket kan ikke legges inn i databasen.

Resulterende relasjon LÆRER_2 har ingen nullverdiproblem. Den resulterende relasjonen SUBJECTS eliminerer dette problemet: en spesiell ikke-tom standard er definert for et objekt som for øyeblikket er uleselig. Nøkkelmigrering er nødvendig for å gjenopprette den opprinnelige relasjonen. Dermed er nøkkelmigrering i dekomponeringsmetoden overføring av primærnøkkelen til en relasjon til en annen relasjon for å forhindre tap av data under tilkoblingen.

La oss formulere den tredje regelen.

Regel 3. Hvis graden av den binære relasjonen er 1:1 og eierskapsklassen til begge enhetene er valgfri, kreves det tre relasjoner - en for hver enhet og en for koblingsrelasjonen. I dette tilfellet er nøkkelen til hver enhet primærnøkkelen til den korresponderende relasjonen og en relasjon for relasjonen, med primærnøkkelen som består av nøklene til enhetene. Denne regelen kan brukes i den tredje varianten av domeneatferden, når den opprinnelige relasjonen må deles i tre relasjoner. Å dele opp i to relasjoner vil ikke eliminere nullverdiproblemet. Ved tre relasjoner er et slikt problem eliminert: i relasjonen SUBJECTS er en ikke-tom standardverdi definert for et objekt som for øyeblikket er uleselig.

La oss formulere den fjerde regelen.

Regel 4. Hvis graden av binær kommunikasjon 1: N , og medlemsklassen til en n-tilkoblet enhet er obligatorisk, så er det nok å bygge to relasjoner - en for hver enhet. I dette tilfellet er nøkkelen til hver enhet primærnøkkelen til den korresponderende relasjonen, og nøkkelen til den 1-tilkoblede enheten legges til relasjonen for n -koblet enhet som et attributt.

La oss formulere den femte regelen.

Regel 5. Hvis graden av en binær relasjon er 1:N og medlemsklassen til en n-tilknyttet enhet er valgfri, må tre relasjoner bygges - en for hver enhet. I dette tilfellet er nøkkelen til hver enhet primærnøkkelen til den tilsvarende relasjonen og en relasjon for relasjonen. Enhetsnøkler må være attributter for den siste relasjonen.

Merk at hvis graden av den binære forbindelsen 1: N, da er faktoren som bestemmer valget av en av reglene (reglene 4, 5) medlemsklassen til den n-tilknyttede enheten. Medlemskapsklassen til en 1-tilkoblet enhet påvirker ikke det endelige resultatet av dekomponeringen. I situasjonen med regel 4 er det et problem med nullverdier for Subject-attributtet, i situasjonen med regel 5 er det et problem med nullverdier for attributtene Subject og Teacher. Derfor, for å unngå duplisering og nullverdier i situasjonen med regel 4 og 5, er det nødvendig å bygge henholdsvis to og tre resulterende relasjoner. Nøkkelmigrering av en 1-koblet enhet utføres for å gjenopprette den opprinnelige relasjonen på en sammenføyning.

Hvis graden av den binære forbindelsen N: M, så for å unngå duplisering og nullverdier, er det alltid nødvendig å bygge tre relasjoner. La oss formulere den sjette regelen.

Regel 6. Hvis graden av binær kommunikasjon M: N , da er det nødvendig å bygge tre relasjoner - en for hver enhet og en relasjon for relasjonen. I dette tilfellet er nøkkelen til hver enhet primærnøkkelen til den korresponderende relasjonen, og er inkludert i den sammensatte primærnøkkelen til relasjonen for relasjonen.

For et forhold med tre eller flere sideforhold, må minst fire relasjoner bygges for å unngå redundans og nullverdier. La oss formulere den syvende regelen.

Regel 7. Hvis relasjonen er treveis, må du bygge fire relasjoner - en for hver enhet. I dette tilfellet er nøkkelen til hver enhet primærnøkkelen til den tilsvarende relasjonen og en relasjon for relasjonen. Enhetsnøkler må være attributter for den siste relasjonen.

På samme måte krever et n-veis forhold konstruksjonen n + 1 forhold.

Merk at alle de ovenfor formulerte reglene er bygget i henhold til ett generelt prinsipp: hvert ikke-nøkkelattributt har sin egen relasjon, dvs. migrering av ikke-nøkkelattributter er forbudt.

Det bør huskes at etter foreløpig partisjonering av den innledende relasjonen, er det nødvendig å vise, ved å bruke FZ og nøklene til relasjonene, at det resulterende relasjonsdatabaseskjemaet er i Boyes-Codd NF (NFBC) (eller 3NF). Først da kan det resulterende relasjonsdiagrammet betraktes som endelig. Vanligvis utfører ikke databasedesignere ved bruk av dekomponeringsmetoden slike handlinger, siden i de fleste tilfeller (men ikke alltid!) Bruk av transformasjonsregler gir NFBC.

I noen tilfeller kan det vise seg at de eksisterende enhetene og relasjonene ikke er nok til å lage en logisk modell av databasedomenet. En av dem er situasjonen når forekomster av samme enhet spiller forskjellige roller (supertype / subtype) i databasedomenet. Dette skyldes tilstedeværelsen av et hierarki- eller inkluderingsaggregeringsforhold mellom enhetsforekomster. I dette tilfellet er en enhet et sett med en ordensrelasjon på instanser, noe som fører til tilstedeværelsen av ekvivalensklasser som har ulik semantisk tolkning i fagområdet.

Så for eksempel inneholder databasen til instituttets avdeling to kategorier ansatte - lærere og avdelingsleder. Instituttleder kan også forelese om emner, men mottar vanligvis fast lønn; lærere har timelønn. La oss prøve å presentere informasjon om de ansatte i avdelingen på en mer hensiktsmessig måte. La oss skille ut en egen enhet for hver kategori av ansatte ved avdelingen og vurdere ER-diagramlederen. Avdelingen er veiledet av lærerne.

I dette tilfellet vil nøkkelen til hver enhet være den ansattes personellnummer. Siden forbindelsen Leads har en grad 1: N, og tilhørighetsklassen til begge enhetene er obligatorisk, så i henhold til regel 4 er det tilstrekkelig å konstruere to foreløpige relasjoner. Siden ikke-nøkkelattributtene Lastname og Employee_Address er plassert i begge provisoriske relasjoner, er det et generelt prinsipp for oversettelsesregler at de må omdefineres for en av relasjonene. Å gi nytt navn til attributtene i en av relasjonene reiser problemet med å svare på spørsmålet: for å finne hjemmetelefonnummeret til en bestemt ansatt, er det nødvendig å revidere begge relasjonene og bygge en forening av visningsresultatene. Derfor er det å gi nytt navn til attributter, som designere noen ganger raskt bruker, ingen god løsning.

Vurder et annet alternativ for å presentere data om de ansatte i avdelingen. La oss betrakte instituttleder og lærere som ansatte, og se for oss deres funksjoner som rollene denne ansatte kan spille. Da er ANSATTE Relasjonen et foreldreforhold - en supertype for to underordnede forhold - undertyper av SAV. STOLEN og LÆREREN, som er forbundet med en lenke.

En overordnet relasjon - en supertype - inneholder attributter som er felles for underordnede undertyperelasjoner. Underordnede relasjoner - Undertyper inneholder informasjon som er spesifikk for rollene deres. Hver relasjon som en rolle genererer, er knyttet til en generell relasjon gjennom et generisk domeneattributt, i dette tilfellet personellnummer. Det endelige settet med relasjoner vil ha tre relasjoner.

Resulterende relasjoner:

ANSAT (# ansatt, felles attributter for alle ansatte)

MANAGER (# leder, ....)

LÆRER (# lærer, ..., # leder)

Merk at et forhold som kobler to roller til samme opprinnelige enhet kalles rekursivt (ansatte leder ansatte). Et forhold som forbinder rollene til to forskjellige enheter er ikke rekursivt.

For å unngå å søke etter en ansatts jobbtype, kan du legge til et ekstra attributt til den generiske relasjonen som identifiserer hvem den ansatte er. Til tross for det faktum at fra synspunktet til teorien om relasjonsdatabaser, fører denne teknikken til dataredundans, brukes den for å øke systemytelsen.

La oss formulere den åttende regelen.

Regel 8. Den opprinnelige enheten tjener som en kilde for generering av ett forhold. Nøkkelen til enheten er nøkkelen til forholdet. Underordnede enheter (rolleelementer) og relasjonene som forbinder dem genererer et slikt antall relasjoner, som bestemmes av et sett med regler 1-7, hvor hvert rolleelement behandles som en ordinær enhet.

Eksempel på konvertering av ER-diagrammer til databaserelasjoner

La oss demonstrere bruken av metoden dekomponering (tapfri med naturlig sammenføyning)å lage en logisk modell og database for å støtte aktivitetene til et lite konsulentfirma. Firmaet tilbyr rådgivning og opplæring til sine faste kunder; kundedataene som er lagret i databasen vil bli brukt av firmaets konsulenter til seminarer, workshops og konsultasjoner.

Det første trinnet i databasedesign er å identifisere alle domeneenheter, deres attributter og relasjoner mellom enhetsattributter. Ved å analysere domeneinformasjonen i dette eksemplet, kan følgende attributter bestemmes universelt forhold og foreta en konklusjon om tilstedeværelsen av funksjonelle avhengigheter (FZ) mellom dem:

1. Hver klient har sitt eget registreringsnummer (heretter kalt nummeret). Alle kundenummer er unike og forskjellige. Nummeret identifiserer etternavnet unikt, men ikke omvendt. ...

2. Hver klient befinner seg på en bestemt adresse, hvor flere klienter kan lokaliseres. ...

3. Anta at bare én telefon er knyttet til en gitt adresse. ...

4. Hver klient kan tildeles et telefonnummer. ...

5. For hver klient fastsettes en rating (aktivitet, anropsfrekvens osv.) for en periode om et spesifikt tema. En kundes vurdering bestemmes unikt av nummeret hans.

6. Høringene er av tematisk karakter. Hvert emne har sin egen identifikator.

7. Perioden er hvor lang tid den tematiske høringen ble holdt. For ordens skyld, la oss kalle denne perioden et semester.La oss liste opp FZ for databasens emneområde:

Ta i betraktning determinanter og mulige nøkler til KONSULT-forholdet.

Mulige nøkler

Determinanter

(Nummer, emne, semester)

(Nummer, emne, semester)

(Nummer)

(Telefon)

(Adresse)

I følge Codds kriterium, siden ikke hver determinant i en relasjon er en mulig nøkkel, er relasjonen ikke i NFBC. La oss dekomponere CONSULTANT R0-relasjonen (nummer, emne, semester, etternavn, adresse, telefon, vurdering). Følgende FZ-er er kandidater for implementering av projeksjonen:

Merk følgende! I praksis er det en ikke-unikhet i representasjonen av databaserelasjoner, på grunn av valg av FZ ved splitting av relasjoner. Å velge en FZ for å utføre en relasjonsprojeksjon er et veldig viktig skritt i utformingen av en logisk modell for en relasjonsdatabase. Valget av alternative FZ-er for å utføre projeksjonen kan føre til forskjellige databaser!

La oss sjekke om forholdet R2 er i NFBC.

R2-forholdet er i NFBK.

La oss sjekke om forholdet R1 er i NFBK.

Mulige nøkler

Determinanter

(Nummer, emne, semester)

(Nummer, emne, semester)

(Nummer)

(Adresse)

Relasjonen R1 er ikke i NFBD, det er nødvendig å fortsette nedbrytningen. La oss velge en FZ og dele R1 inn i R3 (nummer, emne, semester, vurdering) og R4 (nummer, etternavn, adresse).

La oss sjekke om forholdet R3 er i NFBC.

Mulige nøkler

Determinanter

(Nummer, emne, semester)

(Nummer, emne, semester)

R3-forholdet er i NFBK.

La oss sjekke om forholdet R4 er i NFBC.

Mulige nøkler

Determinanter

(Nummer)

(Nummer)

R4-forholdet er i NFBK. Dekomponeringen er fullført.

Merk at hvis FZ i utgangspunktet i vårt eksempel ble valgt som FZ for å utføre projeksjonen, ville vi som et resultat ha et helt annet (!) sett med relasjoner.

I dag, i en digital verden i rask endring, er det vanskelig å holde seg i takt med hendelsene. For å gjøre alt, må du riktig sette oppgaver, mål, distribuere og delegere myndighet. Logikk og analyse er de beste hjelperne for å løse komplekse problemer. Dekomponering er et av de logiske konstruksjonsverktøyene. La oss vurdere det i detalj.

Definisjon

I en generell forstand er dekomponering oppdelingen av helheten i dens komponenter. Dette er en ganske enkel og grei teknikk som hjelper deg med å løse komplekse problemer på daglig basis, og presentere dem som summen av deler. I et system av logiske konstruksjoner er dekomponering en vitenskapelig teknikk som løser et stort problem ved å erstatte det med flere små og enklere problemer.

Som regel utføres dekomponeringen ved å bruke et "problemtre", "måltre", "beslutningstre", "arbeidstre", under konstruksjonen av hvilke en klar hierarkisk struktur dannes, inkludert vertikal og horisontal underordning og tilbakemelding .

Egenskaper

Grunnlaget for enhver dekomponering er strukturell overholdelse av alle metodens regler. Av de grunnleggende reglene som styrer hele systemet, kan følgende skilles:

1) Nivelleringssystemet må alltid overholdes.

Nedbrytningsmetoden er basert på underordning av et lavere nivå til et høyere. Dette oppnås ved å bygge en hierarkisk struktur ved bruk av såkalte "trær".

Det er vanlig å bygge et problemtre og et måltre først for å tydelig og visuelt representere alle oppgavene som er tilgjengelige for øyeblikket. Samtidig skal underordningen se slik ut at oppgavene på et lavere nivå avslører essensen av oppgavene på et høyere nivå, og alle deloppgavene representerer hele prosjektet. Å forstå det nøyaktige og fullstendige bildet av prosentvis fullføring av et nedbrytningsprosjekt kommer først når måltreet er 100 % fullt.

Ved å bruke enkel formell algebra og logikk kan du også bygge "AND-trær" og "ELLER-trær".

2) Oppdelingen av helheten i deler bør kun skje på ett grunnlag.

Dette prinsippet innebærer at alle deloppgaver vil være underordnet en enkelt idé og mål. Et eksempel på en dekomponering kan være et byggeprosjekt. Som hovedtrekk ved divisjonen tas en funksjonell funksjon, deretter deles prosjektet inn i seksjoner. Dette kan for eksempel være følgende hovedseksjoner: armerte betongkonstruksjoner (KZh), arkitektoniske løsninger (AR), metallkonstruksjoner (CM), varme og ventilasjon (OV), etc. På sin side bør disse seksjonene også brytes ned i henhold til et funksjonelt kriterium, det vil si at essensen av hovedmålene skal presenteres i delmålene til neste nivå. Eksempelvis er seksjonen varme og ventilasjon (HV) delt inn i forklarende notat, tegninger, prosjektering, bestått normkontroll og teknisk kontroll, utstedelse av dokumentasjon, felttilsyn, justeringer etter merknader mv.

Tidsrammer (termer), fagkarakteristikker, strukturelle egenskaper, teknologiske egenskaper og annet kan også brukes som trekk.

3) Alle nedbrytningsdelsystemer må avsløre essensen av systemet.

Hvis vi presenterer hovedoppgaven som 100 %, bør alle deloppgavene summere seg til de samme 100 % totalt. Dessuten inneholder hver deloppgave på det første nivået sin egen prosentandel, som representerer summen av deloppgavene på det andre nivået.

Det er viktig å forstå at alle atskilte deloppgaver på samme nivå bør være uavhengige av hverandre, mens hierarkiet av oppgaver i en gren bør være basert på prinsippet om avhengighet og tilbakemelding: en oppgave på høyere nivå avhenger av dens underoppgave, og omvendt.

4) Dybden av dekomponeringsstudien bør bestemmes på det innledende stadiet.

Før du oppretter en hierarkisk struktur, må du bestemme hva som skal være det siste nivået av deloppgaver. I noen tilfeller er det ikke nødvendig å lage mange nivåer, siden hensikten med dekomponeringen er for klarhet. I tilfellet når et hierarki er opprettet for nøyaktige beregninger, bør antallet nivåer være slik at emnet avsløres så detaljert som mulig.

Klassifisering

Flere typer nedbrytning er kjent i dag. Du kan også lage dine egne teknikker for et spesifikt prosjekt. Imidlertid vil de i en eller annen grad forholde seg til hovedtypene, nemlig: dekomponering av mål (den første og grunnleggende typen), systemer (prosessen med å dele systemet inn i delsystemer for å trene og oppnå et bedre resultat) , prosess, arbeider (trekke opp et hierarki av verk for å utpeke svake punkter og fremheve det viktigste og viktigste).

Som regel er alle de oppførte prosessene relatert til hverandre og representerer generelt en fullstendig nedbrytningsstruktur.

For å komme i gang tegnes et problemtre og et måltre. Problemtreet er hovedproblemet, delt inn i nivå 2- og nivå 3-utgaver. I denne formen blir det mye lettere å løse dem. Etter en detaljert analyse av problemene, kompileres et måltre, som representerer det løste problemtreet. Det vil si at det tilbys en løsning for hvert problem. Samtidig bevares den allerede forberedte strukturen og gjensidige avhengighetene til deloppgaver.

Analyse av handlinger

Dekomponering av arbeid er en logisk struktur som begynner når alle mål og problemer er identifisert og representerer en hierarkisk struktur av alle handlinger som må utføres for å løse et bestemt problem.

Et slikt logisk opplegg lar deg identifisere de stadier av arbeidet der problemer har oppstått. Siden deloppgaver er avhengige av oppgaver på høyt nivå, lar arbeidstreet deg se hvor det er problemer og hull. Ofte på grunn av svakheter i det første nedbrytningsnivået, lider arbeid på lavere nivåer.

For eksempel, hvis kjøperen ikke sendte inn en søknad om selvskruende skruer, holdt ikke regnskapsavdelingen fakturaer og kjøpte dem ikke. På en byggeplass er alt verdt det, fordi installatørene ikke har nok skruer til arbeidet sitt.

Klassisk mottakelse

For å utføre en mer detaljert analyse av strukturer, identifisere deres svakheter, hovedmål og retninger, oppgaver, prosjekter og arbeider, utføres dekomponering av systemer.

Systemet er delt både horisontalt og vertikalt i nivåer. De skal danne et helhetlig bilde av strukturen. Dekomponering av systemer er et vanlig eksempel på et hierarki for enhver form for dekomponering.

Forretningsapplikasjon

Prosessdekomponering brukes vanligvis til å beskrive og analysere virksomheten til selskaper. Ved hjelp av hierarkiet kan du bestemme smertepunktene til selskapet, områdene der feil oppstår.

Prosessene oppsummeres i et overordnet skjema og analyseres, hvoretter det utarbeides en detaljert rapport om virksomhetens virksomhet.

Som et eksempel, vurder et prosjekt for bygging av et kapitalkonstruksjonsanlegg. Utviklingen gjennomføres i 2 trinn: arbeidsdokumentasjon og prosjektdokumentasjon. Dette vil være deloppgaver på første nivå. Arbeidet vil bli presentert med overslag og prosjekter. Det er det samme på arbeidsstadiet. Dette er deloppgaver på andre nivå. For eksempel presenteres et prosjekt vanligvis i form av følgende deler:

  • generell forklarende notat;
  • arkitektoniske løsninger;
  • konstruktive og plassplanende løsninger.
  • strømforsyning system;
  • vannforsyningssystem;
  • dreneringssystem;
  • oppvarming, ventilasjon og klimaanlegg, varmenettverk;
  • kommunikasjonsnettverk;
  • gass ​​forsyningssystem;
  • teknologiske løsninger.

Seksjoner og underseksjoner av design og arbeidsdokumentasjon er deloppgaver på tredje nivå.

Hver seksjon består av spesifikke stadier og må inneholde informasjon i samsvar med statlige standarder. For eksempel inkluderer beslutningsdelen nødvendigvis en tekstdel med en detaljert beskrivelse av den teknologiske ordningen og utstyret som er vedtatt, en grafisk del (planer, seksjoner, diagrammer), en liste over utstyr, besøk på stedet, bestått standardkontroll og teknisk kontroll, og utstede dokumentasjon.

Ansvarlige utøvere utnevnes på hvert nivå, som deretter kreves resultatet fra. I dette eksemplet på dekomponering er utøverne på første nivå lederen av prosjektavdelingen, den andre - tredje er designingeniører.

Kort om det viktigste

Dekomponering er en metode for formell praktisk logikk som forutsetter en kvalitativ studie av hovedoppgaven i samsvar med hovedoppgaven.En slik tilnærming sikrer involvering av personell på alle nivåer for å løse flernivåoppgaver. Dette lar deg drive prosjektet mest effektivt, med minst mulig økonomiske investeringer og lønnskostnader.