Functionele afhankelijkheden en relationele databases. Functionele afhankelijkheden

De relationele database bevat zowel structurele als semantische informatie. De structuur van de database wordt bepaald door het aantal en het type relaties dat erin is opgenomen, en de links zoals "één tot veel" bestaande tussen de constructies van deze relaties. Het semantische deel beschrijft veel functionele afhankelijkheden die bestaan \u200b\u200btussen attributen van deze relaties. Laten we de definitie van functionele afhankelijkheid geven.

Definitie:Als er twee attribuut X en Y of A of een verhouding zijn, zeggen ze dat Y functioneel afhankelijk is van X, indien op elk moment elke waarde x overeenkomt met precies één waarde y. De functionele afhankelijkheid is aangegeven x -\u003e y. We merken op dat x en y kan niet alleen enkele attributen vertegenwoordigen, maar ook groepen die zijn samengesteld uit verschillende attributen van één relatie. Er kan worden gezegd dat functionele afhankelijkheden verbindingen zijn zoals "één tot velen", bestaande in de relatie.

    2-axormale vorm (2 nov) relatie. Het bepalen van volledige functionele afhankelijkheid en 2nf. Feature-relatie in 2nf. Algoritme voor KO 2NF. Hit Theorem. Voorbeelden.

Conceptvolledige functionele afhankelijkheid.

Definitie: niet-puntsattribuut functioneel is volledig afhankelijk Vanaf de composietsleutel, indien het functioneel afhankelijk is van de hele sleutel als geheel, maar niet in functionele afhankelijkheid is van een van de kenmerken die erin zijn opgenomen.

Definitie: overmatige functionele afhankelijkheid - afhankelijkheid die dergelijke informatie omvat die kan worden verkregen op basis van andere afhankelijkheden in de database.

2NF is de tweede normale vorm.

Bepaling van de tweede normale vorm: de relatie is in 2nfAls het in 1 NF is en elk niologisch kenmerk functioneel volledig afhankelijk is van de sleutel.

Dit is het juiste, het databaseschema wordt als correct beschouwd, waarin er geen redundante functionele afhankelijkheden zijn. Anders is het noodzakelijk om toevlucht te nemen tot de procedure voor ontleding (ontbinding) van de bestaande reeks relaties. In dit geval bevat de meervoudige set een groter aantal relaties die projecties zijn van de verhouding van de oorspronkelijke set. (De projectiebewerking wordt beschreven in het gedeelte over relationele algebra). Het omkeerbare stapsgewijze proces van het vervangen van deze reeks relaties met een andere regeling met de eliminatie van buitensporige functionele afhankelijkheden wordt normalisatie genoemd.

De omkeerbaarheidsvoorwaarde vereist ontbinding om de gelijkwaardigheid van schema's te behouden bij het vervangen van een schema naar het andere, d.w.z. In de resulterende relatie:

1) Er mogen niet eerder afwezige cortices zijn;

2) De eerste reeks functionele afhankelijkheden moet worden uitgevoerd op de relatie van de nieuwe regeling.

Theorem Hita

Laat het worden toegeschreven.

Als een r. voldoet aan functionele afhankelijkheid, het is gelijk aan het verbinden van zijn projecties

    3e normale vorm (3 newf) relatie. Bepaling van transitieve afhankelijkheid en 3 newf. Algoritme van het brengen van naar 3 newf.normale vorm van jongens-CODD (NFBC). Bepaling en algoritme van het brengen van de NFBC. Kenmerken van de relatie in 3NF en in de NFBC. Voorbeelden.

Beperkingen op de uniekheid die wordt opgelegd door advertenties van primaire en kandidaat-sleutelrelaties is een speciaal geval van beperkingen met betrekking tot het concept functionele afhankelijkheden.

Overweeg het volgende voorbeeld om het concept van functionele afhankelijkheid uit te leggen.

Laten we aan ons worden toegeschreven die gegevens bevatten over de resultaten van een enkele bepaalde sessie. Het schema van deze relatie is als volgt:

Sessie ( Creds boeknummer , Voor-en achternaam, Ding , Score);

Attributen "Counting Book Number" en "Subject" -formulier Composiet (zoals de toets twee kenmerken heeft verklaard) de primaire sleutel van deze relatie. Inderdaad, in twee deze kenmerken, kunt u de waarden van alle andere kenmerken uniek bepalen.

Naast het beperken van de uniekheid die aan deze sleutel is verbonden, moet de aandoening noodzakelijkerwijs worden opgelegd aan de relatie die één kredietboek wordt afgegeven aan één specifieke persoon en daarom in dit verband de taverne met hetzelfde aantal van het testboek moet dezelfde waarden bevatten van de "Achternaam" kenmerken, "eerste en middelste naam".


Als we na een sessie het volgende fragment van een bepaalde database van educatieve studenten hebben, dan in de tuples met het aantal kredietboek 100, de naam "Achternaam", "Naam" en "Patroonsysteem" samenvallen, en de kenmerken "Onderwerp" en "Evaluatie" - niet samenvallen (zoals duidelijk is, omdat ze het hebben over verschillende onderwerpen en academische prestaties). Dit betekent dat de surningsattributen, de "naam" en "patronymisch" functioneel afhankelijk Uit het kenmerk "CANCING BOEK", en het kenmerken "Onderwerp" en "Evaluatie" functioneren niet functioneel.

Dus, functionele afhankelijkheid - Dit is een ondubbelzinnige afhankelijkheid, afgeplakt in databasebeheersystemen.

Laten we nu strikte definitie van functionele afhankelijkheid geven.

Definitie: Laat X, Y - de subcircuitregelingen van de S-verhouding die de regeling definiëren functionele afhankelijkheidsregeling X > Y. (lees "x pijl y"). Bepalen beperkingen van functionele afhankelijkheid Invv > Y\u003e Als een verklaring dat in relatie tot schema's, eventuele twee tuples die samenvallen in de projectie op de sublast X, moeten samenvallen in de projectie op de Subllast Y.

We schrijven dezelfde definitie in het formulier:

Inv. > Y\u003e r.(S.) = t. 1 , t. 2 ? r.(t. 1 [X.] = t. 2 [X.] ? t. 1 [Y.] = t. 2 [Y.]), X., Y. \u200b S;

Het is nieuwsgierig dat deze definitie het concept van een unary-operatie van de projectie gebruikt, waarmee we eerder werden geconfronteerd. Inderdaad, hoe anders, als u deze bewerking niet gebruikt, de gelijkheid van elkaar twee kolommen van de tabel-relatie weergeven, niet de rijen? Daarom hebben we opgenomen in termen van deze bewerking, dat het toeval van de tuples in de projectie op een bepaald kenmerk of verschillende kenmerken (Flamex X) zeker het toeval van dezelfde tuple-kolom en op de y-druppel in het geval dat y functioneel afhankelijk is op x.

Het is interessant om op te merken dat in het geval van de functionele afhankelijkheid Y van X, zij ook zeggen functioneel bepaalt Y of dat y functioneel hangt af Van X. In de regeling van de functionele afhankelijkheid van X\u003e Y wordt de subchum x het linkerdeel genoemd en heeft de Y het juiste deel.

In de praktijk wordt het ontwerpen van databases op een schema van functionele afhankelijkheid voor beknoptheid, meestal een functionele afhankelijkheid genoemd.

Einde van definitie.


In het bijzondere geval, wanneer het juiste deel van de functionele afhankelijkheid, d.w.z. de subchum Y, samenvalt met de volledige relatie, gaat de beperking van de functionele afhankelijkheid om het unieke karakter van de primaire of kandidaat-sleutel te beperken. Werkelijk:

Inv.<K. > S.> r.(S.) = ? t. 1 , t. 2 ? r.(t. 1 [K.] = t. 2 [K.] > t. 1 (S.) = t. 2 (S.)), K. ? S.;

Alleen bij het bepalen van de functionele afhankelijkheid in plaats van de subloaps X, moet u de aanwijzing van de toets K nemen, en in plaats van het rechterkant van de functionele afhankelijkheid, nemen de subflahas y het hele schema van relaties S, dwz, echt, de Beperking van de uniekheid van relatietoetsen is een speciaal geval van beperkende functionele afhankelijkheid van de gelijkheid van de rechterschema's van functionele afhankelijkheid van het gehele relatiesregeling.

We geven voorbeelden van het beeld van een functionele afhankelijkheid:

(Telboeken nr.)\u003e (Achternaam, naam, Patroonmis);

(Tellenboeknummer, item)\u003e (evaluatie);

2. De uitgangsregels van Armstrong

Als een basisrelatie voldoet aan de vector gedefinieerde functionele afhankelijkheden, dan kunt u met behulp van verschillende speciale uitgangsregels andere functionele afhankelijkheden krijgen die deze basisrelatie duidelijk is voldaan.

Een goed voorbeeld van dergelijke speciale regels zijn de regels voor de intrekking van Armstrong.

Maar alvorens verder te gaan met de analyse van de regels voor de sluiting van Armstrong, introduceren we een nieuw metallinguïstisch symbool "+", dat wordt genoemd symbool van meta-maken\u200b Dit symbool in de formulering van de regels is geschreven tussen twee syntactische uitdrukkingen en geeft aan dat de formule aan de linkerkant van het wordt weergegeven vanuit de formule.

Nu zullen we de regels voor de uitvoer van Armstrong formuleren in de vorm van de volgende stelling.

Stelling. Eerlijk de volgende regels genaamd Armstrong-regels.

Uitgangsregel 1.+ X\u003e x;

Uitgangsregel 2. X\u003e y + x? Z\u003e y;

Uitgangsregel 3. X\u003e y, y? W\u003e Z + X? W\u003e z;

Hier X, Y, Z, W - willekeurige dochterondernemingen van de regelingschema's S. Symbool van meta-maken op display-aandelen Pakketlijsten en uitlijnlijsten (Conclusies).

1. De eerste uitvoerregel wordt genoemd " reflexiviteit"En lees als volgt:" De regel wordt weergegeven: "X Functioneel brengt x". Dit is de eenvoudigste van de regels van de Armstrong. Het wordt letterlijk uit de lucht weergegeven.

Het is interessant om op te merken dat de functionele afhankelijkheid, die zowel het linker- als het rechterdeel heeft, wordt genoemd weerspiegelend\u200b Volgens de Reflexivity-regel wordt de beperking van reflexieve afhankelijkheid automatisch uitgevoerd.

2. De tweede regel van de uitvoer wordt genoemd " aanvulling"En het wordt op deze manier gelezen:" Als X functioneel y, wordt, wordt de regel weergegeven: "Associatie van de X- en Z-lid worden functioneel met zich meebrengt. Met de bijvullingsregel kunt u het linkerdeel van de limiet van functionele afhankelijkheden uitbreiden.

3. De derde uitvoerregel wordt genoemd " pseudo-transitiviteit"En leest als volgt:" Als de stap x functioneel de patch y inhoudt en de toetreding van de werf Y en w en w fungeert functioneel Z, wordt de regel weergegeven: "Vlam X en W wordt functioneel bepaald door de Subllast Z".

De pseudotransitivity-regel vat de transitiviteitsregel samen die overeenkomt met een particuliere zaak W: \u003d 0. Laten we het formele record van deze regel geven:

Opgemerkt moet worden dat de percelen en conclusies die eerder werden getoond in de verkorte vormnotatie van regelingen van functionele afhankelijkheid worden gepresenteerd. In het uitgebreide formulier komen ze overeen met de volgende beperkingen van functionele afhankelijkheden.

Uitgangsregel 1. inv. X\u003e r (s);

Uitgangsregel 2. inv. Y\u003e r (s)? inv. Y\u003e r (s);

Uitgangsregel 3. inv. Y\u003e r (s) & inv Z\u003e r (s)? inv. Z\u003e r (s);

Laten we doorbrengen bewijs Deze uitgangsregels.

1. Bewijs van regels reflexiviteit Het zou rechtstreeks moeten zijn om de beperking van functionele afhankelijkheid te bepalen bij het vervangen in plaats van de Subllast Y - Subllast X.

Inderdaad zullen we de functionele afhankelijkheid beperken:

Inv. Y\u003e r (s) en substituut x in plaats van y, we krijgen:

Inv. X\u003e R (S), en dit is een regel van reflectiviteit.

De reflectiviteitsregel wordt bewezen.

2. Bewijs van regels aanvullingen We illustreren in diagrammen van functionele afhankelijkheid.

Het eerste diagram is een pakketdiagram:

pakket: x\u003e y


Tweede diagram:

conclusie: x? Z\u003e y.


Laat de cortices gelijk zijn aan x? Z. Dan zijn ze gelijk aan X. Volgens het pakket zijn ze gelijk aan Y.

De aanvullingsregel wordt bewezen.

3. Bewijs van regels pseudo-transitiviteit We illustreren ook in diagrammen die in dit specifieke geval drie zullen zijn.

Het eerste diagram - het eerste pakket:

verzenden 1: x\u003e y


verzenden van 2: y? W\u003e Z.


En ten slotte is de derde grafiek het conclusieschema:

conclusie: x? W\u003e Z.


Laat de cortices gelijk zijn aan x? W. Dan zijn ze gelijk aan x, en op W. Volgens het pakket 1 zijn ze gelijk aan Y. Vanaf hier, volgens het verzenden van 2, zijn ze gelijk aan Z.

De pseudo-transitiviteitsregel wordt bewezen.

Alle regels worden bewezen.

3. Derivaten van uitvoerregels

Een ander voorbeeld van de regels waarmee u, indien nodig, nieuwe regels van functionele afhankelijkheid intrekken, zijn de zogenaamde derivaten van uitvoerregels.

Wat is deze regel, hoe krijgen ze?

Het is bekend dat als van sommige regels reeds bestaande, legitieme logische methoden om anderen in te trekken, dan deze nieuwe regels genoemd derivaten, Je kunt samen met de originele regels gebruiken.

Het is noodzakelijk om specifiek op te merken dat deze meest willekeurige regels "derivaten" zijn van voorheen de regels voor de sluiting van Armstrong.

We formuleren derivatenregels voor de uitvoer van functionele afhankelijkheden in de vorm van de volgende stelling.

Stelling.

De volgende regels zijn afgeleid van de regels voor de afleiding van Armstrong.

Uitgangsregel 1.+ X? Z\u003e x;

Uitgangsregel 2. X\u003e y, x\u003e z + x? Y\u003e z;

Uitgangsregel 3. X\u003e y? Z + x\u003e y, x\u003e z;

Hier x, y, z, w, zoals in het vorige geval, willekeurige sublasten van schema's van S.

1. De eerste afgeleide regel wordt genoemd regel van trivialiteit en leest als volgt:

"De regel wordt weergegeven:" Associatie van de X- en Z-samenvoeging en Z werkt functioneel x ".

Functionele afhankelijkheid met de linkerkant, die een subset van het rechterkant is, wordt genoemd triviaal\u200b Volgens de trivialiteitsregel wordt de limiet van triviale verslaving automatisch uitgevoerd.

Interessant is dat de trivialiteitsregel een generalisatie van de reflectiviteitsregel is en, zoals de laatste, rechtstreeks kan worden verkregen van de bepaling van de beperking van functionele afhankelijkheid. Het feit dat deze regel derivaat is, is niet per ongeluk en is geassocieerd met de volledigheid van het Armstrong-regelsysteem. We zullen meer praten over de volledigheid van de regels van de Armstrong-regels.

2. De tweede afgeleide regel wordt genoemd regel van additiviteit en leest als volgt: "Als de stap x functioneel wordt bepaald door de Subllast Y, en x tegelijkertijd de Z definieert, wordt de volgende regel weergegeven:" X definieert functioneel de Unie van het Y- en Z-teken. "

3. De derde derivaatregel wordt genoemd regel van de projectiviteit of regel " additiviteit van beroep\u200b Het leest als volgt: "Als de stap x functioneel de Unie van de Y- en Z definieert, wordt de regel in de regel weergegeven:" X functioneel bepaalt de subllast Y en bepaalt tegelijkertijd x functioneel x functioneel x, Dat is inderdaad, dit is een afgeleide regel. Het is een mislukte adductivity-regel.

Het is nieuwsgierig dat de regels van additiviteit en projectiviteit met betrekking tot functionele afhankelijkheden met dezelfde linkeronderdelen u toestaan \u200b\u200bom de juiste delen van verslaving te combineren of integendeel te splitsen.

Bij het construeren van een uitgangskettingen na de bewoordingen van alle pakketten is de transitiviteitsregel van toepassing op het doel om een \u200b\u200bfunctionele afhankelijkheid aan de rechterkant in conclusie te houden.

Laten we doorbrengen bewijs vermeldde willekeurige uitgangsregels.

1. Bewijs van regels trivialiteit.

Laten we het besteden, zoals alle volgende bewijzen, door stappen:

1) We hebben: x\u003e x (van de heerser van de reflexiviteit van de afleiding van Armstrong);

De triviality-regel wordt bewezen.

2. We zullen een stapsgewijze bestendige regel uitvoeren toevoeging:

1) We hebben: x\u003e y (dit is een pakket 1);

2) Wij hebben: X\u003e Z (dit is een pakket 2);

3) Heb je: Y? Z\u003e Y? Z (van de heerser van de reflexiviteit van de terugtrekking van Armstrong);

4) Hebben: x? Z\u003e Y? Z (Wij verkrijgen het gebruik van de toepassing van de regel van de pseudo-transitiviteit van de afleiding van Armstrong, en vervolgens als gevolg van de eerste en derde stappen van bewijsmateriaal);

5) Hebben: x? X\u003e y? Z (Wij verkrijgen, toepassen van de regel van pseudo-transitiviteit van de uitvoer van Armstrong, en na volgt uit de tweede en vierde stappen);

6) Heb X\u003e Y? Z (volgt uit de vijfde stap).

De additiviteitsregel wordt bewezen.

3. En tot slot zullen we de proefregels bouwen projectiviteit:

1) We hebben: X\u003e Y? Z, x\u003e y? Z (Dit is een pakket);

2) Wij hebben: Y\u003e Y, Z\u003e Z (uitgang met behulp van de heerser van de reflexiviteit van de afleiding van Armstrong);

3) Heb je: Y? Z\u003e Y, Y? Z\u003e Z (het blijkt uit de regel van het aanvullen van de intrekking van Armstrong en het gevolg van de tweede stap van bewijsmateriaal);

4) Wij hebben: X\u003e Y, X\u003e Z (verkregen door toepassing van de regels van de pseudo-transitiviteit van de afleiding van Armstrong, en vervolgens als gevolg van de eerste en derde stappen van bewijsmateriaal).

Het project wordt bewezen door het project.

Alle derivaten van de uitvoerregels worden bewezen.

4. Volledigheid van het Armstrong-regelsysteem

Laten zijn F.(S.) - De opgegeven reeks functionele afhankelijkheden gegeven boven het relaties van de relatie S.

Duidt aan inv. <F.(S.)\u003e Beperking opgelegd door deze meervoudige functionele afhankelijkheden. Stop ermee:

Inv. <F.(S.)> r.(S.) \u003d? X\u003e y? F.(S.) [inv. Y\u003e r.(S.)].

Dit is dus een reeks beperkingen die worden opgelegd door functionele afhankelijkheden, als volgt: voor elke regel van het X\u003e Y-functionele afhankelijkheidssysteem behorend tot een aantal functionele afhankelijkheden F.(S.), Er is een limiet van functionele afhankelijkheid inv Y\u003e r.(S.), gedefinieerd bovenstaande relaties r.(S.).

Laat wat houding r.(S.) Voldoet aan deze beperking.

De uitgangsregels van Armstrong toepassen op functionele afhankelijkheden die zijn gedefinieerd voor de set F.(S.), U kunt nieuwe functionele afhankelijkheden krijgen, zoals reeds vermeld en door ons eerder bewezen. En, wat indicatief is, beperkingen van deze functionele afhankelijkheden F.(S.) Het wordt automatisch tevreden dat het wordt gezien vanuit de uitgebreide vorm van regels voor het afleiden van Armstrong. Recall de algemene weergave van deze uitgebreide uitvoerregels:

Uitgangsregel 1. inv. < X > X\u003e r.(S.);

Uitgangsregel 2. inv. Y\u003e r.(S.) ? inv. ? Z\u003e y\u003e r.(S.);

Uitgangsregel 3. inv. Y\u003e r.(S.) & inv. ? W\u003e z\u003e r.(S.) ? inv. ? W\u003e z\u003e;

Terugkeren naar onze redenering, vult veel aan F.(S.) Nieuw, afgeleid van hem met behulp van regels Armstrong-verslavingen. We zullen deze aanvulprocedure toepassen totdat we nieuwe functionele afhankelijkheden hebben. Als gevolg van deze constructie krijgen we een nieuwe reeks functionele afhankelijkheden genaamd camping Instellen F.(S.) En aangeduid F + (S).

Inderdaad, deze naam is vrij logisch, omdat we zelf-voor langdurige constructie "gesloten" een reeks beschikbare functionele afhankelijkheden van zichzelf gesloten, toevoegen (vanaf hier "+") alle nieuwe functionele afhankelijkheden van beschikbaar.

Opgemerkt moet worden dat dit proces van het construeren van de sluiting eindig is, omdat het schema zelf eindigt de relatie waarin al deze constructies worden uitgevoerd.

Vanzelfsprekend is dat de sluiting een supertension is van de gesloten set (inderdaad, het is groter!) En hoeveel verandert niet met zijn herhaalde sluiting.

Als je gewoon in de formele vorm zegt, krijgen we:

F.(S.) ? F. + (S.), [F. + (S.)] + \u003d F. + (S.);

Verder van de beproefde waarheid (dwz de wettigheid, wettigheid) van de regels voor de uitvoer van Armstrong en de bepaling van de sluiting volgt aan dat elke verhouding die voldoet aan de beperkingen van een bepaalde reeks functionele afhankelijkheden, zal voldoen aan de beperking van de afhankelijkheid van de afsluiting.

X\u003e y? F. + (S.) ? ?r.(S.) [inv. <F.(S.)> r.(S.) ? inv. Y\u003e r.(S.)];

Dus de terminalstemperatuur van het regelsstelsel voor de afleiding van Armstrong betoogt dat externe implicaties volledig juridisch en redelijk kunnen zijn om te worden vervangen door gelijkwaardigheid.

(Bewijs van deze stelling zullen we niet overwegen, aangezien het proces van bewijs niet zo belangrijk is in onze specifieke cursus van lezingen.)

Methode van normale vorm

Leraar

Voor-en achternaam Moet Salaris Ervaring Nadb Cafe Item Groep Visan
Ivanov I.M. bereiden Dbms Laball
Ivanov I.M. Bereiden Informeren Laball
Petrov M.I. St Dbms Lezing
Petrov M.I. St Grafische kunst Laball
Sidorov N.G. Bereiden Informeren Lezing
Sidorov N.G. Bereiden Grafische kunst Lezing
Egorov v.v. Bereiden Pevm Lezing

Fig. 6.4.Source Attitude Leraar

Impliciete redundantiehet manifesteert zich in hetzelfde salaris in alle leraren en in dezelfde toeslag aan het salaris voor dezelfde ervaring. Als de salaris van 500 roebel verandert. Tot 510 roebels moet deze waarde worden gewijzigd van alle leraren. Als de sidors tegelijkertijd worden gemist, wordt de basis tegenstrijdig. Dit is een voorbeeld van een anomalie-bewerkingsrelatie met impliciete redundantie.

Overtollige redundantie is om relaties te normaliseren.

De methode van normale vormen is een klassieke methode voor het ontwerpen van relationele databases. Het is gebaseerd op het fundamentele concept van relaties tussen kenmerken van relaties.

Attribuut B. functioneel hangt af bij het attribuut A, als elke waarde A precies overeenkomt met één waarde van B. wiskundig, wordt een functionele afhankelijkheid in A aangeduid door de record A ® V. Dit betekent dat in alle covers met dezelfde attribuutwaarde, het attribuut b testament hebben ook dezelfde waarde. Attributen A en B kunnen composiet zijn - bestaan \u200b\u200buit twee of meer attributen. Met betrekking tot de leraar zijn de functionele afhankelijkheden als volgt: Volledige naam ® CAF, volledige naam ® moet het salaris en anderen negeren.

Functionele onderlinge afhankelijkheid.Als er een functionele afhankelijkheid van het type A ® B en B ® A is, is er tussen A en B een wederzijds ondubbelzinnige naleving of functionele onderlinge afhankelijkheid. Mathematisch onderlinge afhankelijkheid wordt aangegeven als een "in of in" A.

Voorbeeld.Attribuut n (series en paspoortnummer) is in een functionele onderlinge afhankelijkheid met het attribuut van de naam (achternaam, naam en patroniem), als wordt aangenomen dat de situatie van de aanwezigheid van de achternamen, namen en provincies van twee personen is uitgesloten.

Gedeeltelijke functionele afhankelijkheidde afhankelijkheid van het Nexiaanse kenmerk uit het deel van de composietsleutel wordt genoemd. Met betrekking tot de leraar is de sleutel composiet en bestaat uit de attributen van de naam, onderwerp en groep. Alle niet-selectie-kenmerken zijn functioneel afhankelijk van de sleutel met variërende mate. Het kenmerk Positie is bijvoorbeeld in functionele afhankelijkheid van het naamattribuut, dat deel uitmaakt van de sleutel, d.w.z. is in gedeeltelijke afhankelijkheid van de sleutel.

Volledige functionele afhankelijkheid -de afhankelijkheid van het navel-kenmerk uit de gehele samengestelde sleutel. Het Attribuut van Vizan is bijvoorbeeld in volledige functionele afhankelijkheid van de composietsleutel.

Attribuut c is afhankelijk van attribuut A transitief (bestaat transitieve verslaving ), Indien voor Attributen A, B, C zijn de voorwaarden A ® B en B ® C, maar er is geen omgekeerde afhankelijkheid. In het voorbeeld zijn kenmerken geassocieerd met transitieve afhankelijkheid:

Volledige naam ® Do ® salaris

In relatie tot R-attribuut in multival over hangt af uit het attribuut A, als elke waarde A correspondeert met een aantal waarden van niet-andere kenmerken van R. Multi-nalevele afhankelijkheden kan "één tot velen" zijn (1: m), "velen tot één" (M: 1) of "vele" (m: m), respectievelijk aangeduid: een þ B, en Ü in en en û V.

In dit voorbeeld is er een meerwaardige afhankelijkheid M: M tussen attributen Volledige naam (één docent kan verschillende items leiden en één onderwerp kan verschillende leraren leiden).

Aangezien de relatie tussen kenmerken de oorzaak is van anomalieën, proberen dergelijke relaties in verschillende relaties te verdelen. Dientengevolge wordt een combinatie van gerelateerde relaties (tabellen) gevormd met de betrekkingen van 1: 1, 1: m, M: 1 en M: m. Tussen tabellen weerspiegelen de afhankelijkheden tussen de kenmerken van verschillende relaties.

Wederzijds onafhankelijke attributen.Twee of meer attributen worden onderling onafhankelijk genoemd als geen van deze kenmerken functioneel afhankelijk is van andere kenmerken. Wiskundig, het ontbreken van de afhankelijkheid van het attribuut A uit het attribuut b wordt aangegeven als een Ø® V. Als de Ø® B en in Ø® A is, dan wordt wederzijdse onafhankelijkheid aangeduid met Ø \u003d V.

Detectie van afhankelijkheden tussen attributen.Detectie van afhankelijkheden tussen kenmerken is noodzakelijk om het ontwerp van de database uit te voeren door de methode van normale formulieren.

Voorbeeld.Laat de verhouding r met de regeling R (A1, A2, A3) van de vorm:

A1. A2. A3.

Een priori is bekend, honderd-bestaan \u200b\u200bfunctionele afhankelijkheden:

A1®A2 en A2®A3.

Het is te zien aan de analyse die er nog steeds afhankelijkheden zijn in relatie tot:

A1®A3, A1A2®A3, A1A2A3®A2A2, A1A2®A2A3, etc.

Er is geen functionele afhankelijkheid van het A1-kenmerk uit het A2-attribuut en op het A3-kenmerk, d.w.z.

A2 Ø® A1, A3 Ø® A1.

Het gebrek aan afhankelijkheid A1 van A2 wordt verklaard door het feit dat dezelfde waarde van het attribuut A2 (21) overeenkomt met verschillende waarden van het kenmerk A1 (12 en 17).

Alle bestaande functionele afhankelijkheden met betrekking tot volledige set van functionele afhankelijkheden die F + duiden. Volledige sets van functionele afhankelijkheden kunnen worden afgeleid op basis van 8 axioma's van output: reflectiviteit, aanvulling, transitiviteit, uitbreiding, voortzetting, pseudo-transitiviteit, vereniging en decompositie.

Met betrekking tot de leraar kunt u de volgende functionele afhankelijkheden intrekken:

Volledige naam ® Salaris

Volledige naam ® DOB

Volledige naam ® Noodsituatie

Volledige naam ® NADB

Volledige naam ® CAF

Ervaring ® NADB

MOET ® SALARIS

Salaris ® Snor

VOOR-EN ACHTERNAAM. Item. Groep ® Salaris

Fig. 6.5. Afhankelijkheden tussen attributen.

Er wordt aangenomen dat één leraar in één groep één type klassen (lezingen of laboratoriumwerk) kan uitvoeren. Volledige naam is uniek. Er is een afhankelijkheid van volledige naam ® -ervaring, en de tegenovergestelde verklaring is niet waar, omdat Dezelfde ervaring hebben verschillende leraren. Wat betreft andere afhankelijkheden van redenering zijn vergelijkbaar. Tussen de post en salaris vestigt een wederzijds ondubbelzinnige afhankelijkheid.

Eén leraar in één groep in verschillende onderwerpen kan verschillende soorten klassen uitvoeren. De definitie van de formatie is te wijten aan de indicatie van de volledige naam, het onderwerp en de groep. Inderdaad, Petrov M.I. In de 256e groep leest hij lezingen en voert hij laboratoriumklassen uit, maar lezingen lezen op de DBMS en laboratoriumwerkzaamheden op het schema.

De afhankelijkheden tussen de kenmerken van de naam, het onderwerp en de groep zijn niet afgeleid, omdat Ze vormen een composietsleutel en worden niet in aanmerking genomen in het proces van het normaliseren van de relatie (tabel).

Normale vormen. Het proces van het ontwerpen van databases met behulp van normale vormen is iteratief en bestaat in een consistente vertaling van relaties van de eerste normale vorm in normale vormen van hogere orde. Elk volgende formulier beperkt een specifiek type functionele afhankelijkheden, elimineert de bijbehorende anomalieën bij het uitvoeren van operaties op databaselaties en behoudt de eigenschappen van eerdere formulieren.

Selecteer de volgende volgorde van normale formulieren:

° eerste normale vorm (1nf);

° Tweede normale vorm (2NF);

° Derde normale vorm (3 november);

° versterkte derde normale vorm of normale vorm van jongenscode (BKNF);

° Vierde normale vorm (4nf);

° Vijfde normale vorm (5 november).

Eerste normale vormDe houding is in 1 NF, als al zijn attributen eenvoudig zijn (hebben een enkele betekenis). De eerste relatie is op zo'n manier gebouwd dat het in 1nf was.

Relatieoverdracht naar het volgende normale formulier wordt uitgevoerd door de "ontleding zonder verlies" -methode, d.w.z. Verzoeken (voorbeeldgegevens voor conditie) aan de oorspronkelijke relatie en de verkregen relatie als gevolg van de ontbinding moeten hetzelfde resultaat geven.

De belangrijkste werking van de ontbindingsmethode is de uitsteekselbewerking.

Voorbeeld. Laat R (A, B, C, D, E, ...), er is een functionele afhankelijkheid C ® D. Ontbinding van de verhouding R in twee nieuwe ratio's R1 (A, B, C, E, .. .) en R2 (C, D) elimineert de functionele afhankelijkheid van de kenmerken en vertaalt de verhouding R naar het volgende normale formulier. R2-ratio is een projectie van de relatie R op de kenmerken C en D.

Eerste attitude heeft een composietsleutel Volledige naam, item, groep En is in 1nf. Attributenervaring, NADB, CAFE, MOET, Salaris zijn in functionele afhankelijkheid van het deel van de Composite Key - Attribuut Voor-en achternaam\u200b Deze gedeeltelijke afhankelijkheid leidt tot een expliciete en impliciete gegevensredundantie, die problemen van het bewerken ervan creëert. Sommige redundantie wordt geëlimineerd bij het vertalen van de relatie in 2nf.

Tweede normale vorm.De verhouding is in 2NF, als het in 1 NF is en elk neutraal kenmerk functioneel volledig afhankelijk is van de primaire sleutel (composiet).

Om gedeeltelijke afhankelijkheden te elimineren, is het noodzakelijk om de uitsteekselbewerking te gebruiken, waarbij de initiële verhouding van niet verschillende relaties is ontbinden als volgt:

° Bouw een projectie zonder attributen die in gedeeltelijke afhankelijkheid van de primaire sleutel zijn;

° Bouw projecties op delen van een samengestelde primaire sleutel en attributen afhankelijk van deze onderdelen.

We zullen de attitude in 2nf overbrengen. Dientengevolge verkrijgen we twee relaties R1 en R2.

R1

Voor-en achternaam Item Groep Visan
Ivanov I.M. Dbms Laball
Ivanov I.M. Informeren Laball
Petrov M.I. Dbms Lezing
Petrov M.I. Grafische kunst Laball
Sidorov N.G. Informeren Lezing
Sidorov N.G. Grafische kunst Lezing
Egorov v.v. Pevm Lezing

Fig. 6.6. Database Relations Docent in 2 NF

Met betrekking tot R1 Primaire sleutelcomposiet Volledige naam, item, groep , in relatie tot R2-sleutel - VOOR-EN ACHTERNAAM. Dientengevolge is de expliciete redundantie van de gegevens over leraren uitgesloten. Een impliciete duplicatie van gegevens bevindt zich nog in R2.

Voor verdere verbetering zullen we relaties overbrengen in 3 november.

Bij het ontwerpen van een database in een relationele DBMS is het hoofddoel van het ontwikkelen van een logisch gegevensmodel om een \u200b\u200bnauwkeurige presentatie van gegevens te creëren, koppelingen ertussen en de vereiste beperkingen. Om dit te doen, is het noodzakelijk om te bepalen, allereerst een geschikte reeks relaties. De tegelijkertijd die wordt gebruikt, wordt normalisatie (normalisatie) genoemd. Normalisatie is een variant van de opwaartse benadering van het ontwerp van een database, die begint met de oprichting van verbindingen tussen kenmerken.

Doel van normalisatie

Normalisatie -methode voor het maken van een reeks relaties met gespecificeerde eigenschappen op basis van gegevensvereisten in een organisatie.

Normalisatie wordt vaak uitgevoerd als een reeks tests voor een verhouding om de naleving (of inconsistenties) te verifiëren met de vereisten van een bepaald normaal formulier.

Het normalisatieproces is een formele methode waarmee u relaties kunt identificeren op basis van hun primaire toetsen (of potentiële toetsen, zoals in het geval van NFBC) en functionele afhankelijkheden die bestaan \u200b\u200btussen hun kenmerken. Databaseontwerpers kunnen normalisatie gebruiken in de vorm van tests die worden gebruikt om relaties te scheiden om relationele schema's te normaliseren op een gegeven specifieke vorm, die de overvloed van de update-anomalieën zal voorkomen.

Het hoofddoel van het ontwerpen van een relationele database is om attributen en relaties te groeperen om gegevensredundantie te minimaliseren en dus de vereiste hoeveelheid die nodig is voor de fysieke opslag van relaties die als tafels worden verminderd.

Functionele afhankelijkheden

Functionele afhankelijkheid beschrijft de relatie tussen attributen en is een van de basisconcepten van normalisatie. Dit gedeelte bevat de definitie van dit concept, en in het volgende - een beschrijving van zijn relatie met het proces van het normaliseren van de databaselementsrelaties.

Functionele afhankelijkheid - beschrijft de relatie tussen attributen van de relatie. Bijvoorbeeld, indien in relatie tot. R, die Attributen A en B bevat, hangt het attribuut in functioneel af van het attribuut A (dat is aangegeven als AV), dan wordt elke waarde van het kenmerk A geassocieerd met slechts één waarde van het kenmerk V. (en elk van de Attributen A en B kunnen bestaan \u200b\u200buit een of in meerdere attributen.)

Functionele afhankelijkheid is een semantisch (of semantisch) eigenschap attribuut-eigenschap. De semantiek van de relatie geeft aan hoe zijn kenmerken met elkaar kunnen worden geassocieerd en bepaalt ook de functionele relatie tussen kenmerken in de vorm van beperkingen die zijn opgelegd aan sommige kenmerken.

De afhankelijkheid tussen kenmerken A en B kan schematisch worden weergegeven als een diagram dat wordt weergegeven in figuur 5.

Bepalend- de determinant van functionele afhankelijkheid is het attribuut of de groep attributen die zich bevinden op het functionele afhankelijkheidsdiagram links van het pijlsymbool.

Figuur 5 - Functionele afhankelijkheidskaart

Als er een functioneel afhankelijkheidsattribuut of attribuutgroep is, wordt op het diagram links van het pijlsymbool, determinant (determinant) genoemd. Bijvoorbeeld in FIG. 6.1 Attribuut A is de determinant van het attribuut V.

Het concept van functionele afhankelijkheid is het centrale concept van het normalisatieproces.

Het combineren van meerdere attributen met één relatie wordt niet willekeurig uitgevoerd. Gegevens die in dit opzicht worden opgeslagen, zijn onderling verbonden. Deze relatie wordt bepaald door de veelheid aan functionele afhankelijkheden tussen attributen van de relatie. Dit betekent dat de waarden van één attribuut afhankelijk zijn van de waarden van andere kenmerken, d.w.z. geen enkele combinatie van attribuutwaarden zijn toegestaan. Deze afhankelijkheden zijn afgeleid van de beperkingen van het onderwerpgebied. Bijvoorbeeld in relatie tot Benodigdheden De volgende beperkingen bestaan:

· Elke leverancier heeft slechts één adres,

· Elke leverancier levert goederen tegen een bepaalde prijs,

· Producten die door verschillende leveranciers worden geleverd, kunnen in verschillende magazijnen worden verdeeld, maar de goederen van één naam, geleverd door één leverancier, moeten alleen in één magazijn worden opgeslagen,

· Elk magazijn heeft zijn eigen volume.

Deze beperkingen zijn afhankelijkheden die als volgt kunnen worden geformuleerd:

· Het adres is functioneel afhankelijk van de leverancier,

· De prijs is functioneel afhankelijk van het product en de leverancier,

· Het magazijnnummer is functioneel afhankelijk van het product en de leverancier,

· Het volume is functioneel afhankelijk van het magazijnnummer.

De functionele afhankelijkheid treedt op wanneer de waarde van de cortex op één reeks kenmerken de waarde van de cortex op een andere reeks kenmerken (of op één attribuut) opneemt.

Houding r. heeft een schema R., X. en Y. - Subsets R.\u200b Houding r. Voldoen functionele afhankelijkheid x → y, als een π y (σ x \u003d x (r)) heeft niets meer dan één tuple voor elke waarde xîx., d.w.z. attribuutwaarden x Bepaal uniek de attribuutwaarden van Y.

Functionele afhankelijkheid wordt als volgt aangegeven:

· Leverancier → Adres,

· (Product, leverancier) → Prijs,

· (Product, leverancier) → Magazijn,

· Magazijn → Volume.

En ze worden zo gelezen:

· De leverancier definieert het adres

· Goederen en leverancier bepalen de prijs,

· Goederen en leverancier bepalen het magazijn,

· Het magazijn bepaalt het volume.

In de taal van functionele afhankelijkheden, de sleutel voor de regeling R. - Dit is een subset Kír., zoals dat K.R., en niemands eigen subset K ¢ ík. Deze eigenschap bezit niet.

Normale vormen

We formuleren de regels waarop de relatie moet worden uitgevoerd. Dit proces wordt normalisatie genoemd, d.w.z. door de relatie tot de normale vorm te brengen.

Normale vormen zijn beperkingen op het relatieregeling en elimineren het van de ongewenste eigenschappen die hierboven zijn vermeld. Voordat u de relatie tot de normale vorm brengt, moet u alle functionele afhankelijkheden tussen de kenmerken die in het onderwerpgebied bestaan.

Regeling van relaties R. gevestigd in eerste normale vorm (1nf.) Als de waarden van alle kenmerken atomair (niet-composiet) zijn, d.w.z. de waarde van elk kenmerk niet een lijst noch een aantal waarden.

Bijvoorbeeld attribuut Voor-en achternaam Het is composiet, bestaat uit drie gegevens: achternamen, naam en patroniem.

Om het schema naar 1 NF te brengen, hebt u alle composietattributen nodig om eenvoudig te vervangen.

Om zich af te komen van de ontslag van informatie die is opgeslagen in de database, zijn er tweede en derde normale formulieren.

Regeling van relaties R. gevestigd in tweede normale vorm (2nf) Als het in de eerste normale vorm is en elk niet-variëren kenmerk volledig afhankelijk is van de primaire sleutel.

Wat is een onvolledige functionele afhankelijkheid van de sleutel? Deze afhankelijkheid is aanwezig in verhouding tot als een attribuut niet opgenomen in de sleutel is functioneel afhankelijk van onderdelen Attributen opgenomen in de sleutel. Elk niet-variëren kenmerk hangt noodzakelijkerwijs af van alle primaire kenmerken om de sleutel van de sleutel te bepalen. En als een niet-variëren kenmerk, bovendien, is het niet functioneel afhankelijk van alles, maar van een deel van de primaire kenmerken, dan is dit een onvolledige functionele afhankelijkheid.

Bijvoorbeeld in relatie tot Levering Primaire attributen zijn Product en De leverancier\u200b Attribuut Prijs Functioneel is volledig afhankelijk van de sleutel en het attribuut Het adres Afhankelijk van het sleuteldeel, d.w.z. alleen uit het attribuut De leverancierDit is onvolledige functionele afhankelijkheid. Dus schema Benodigdheden Niet in 2nf.

Om het schema in 1 NF, naar 2NF te brengen, moet u deze in verschillende schema's splitsen:

· Voer de projectie van de regeling uit R. Op primaire kenmerken en kenmerken, functioneel volledig afhankelijk van de sleutel, d.w.z. elimineer niet-kwetsbare attributen die onvolledig afhankelijk zijn van de sleutel,

· Voor elke onvolledige functionele afhankelijkheid, voert u de projectie van de regeling uit R. op attributen opgenomen in deze afhankelijkheid, d.w.z. laat een deel van de sleutel achter R. en attributen die functioneel afhangen van dit deel.

In het voorbeeld met een relatie Benodigdheden Als gevolg van het brengen van het schema naar 2NF, worden twee relaties verkregen:

Benodigdheden_1(Product, De leverancier, Prijs, Warehouse, Volume),

Benodigdheden_2.(De leverancier, Het adres).

Informatie over het volume van het magazijn blijft echter dupliceren. Om dit tekort aan het circuit te elimineren, is er een derde normale vorm.

Regeling van relaties R. gevestigd in derde normale vorm (3 newf) Als het in de tweede normale vorm is en er geen transitieve afhankelijkheden van niet-nauwkeurige attributen van de sleutel zijn.

Wat is transitieve afhankelijkheden? De transitieve afhankelijkheid treedt op als een niet-variërende attribuut functioneel afhankelijk is van een ander niet-betrouwbaar kenmerk, en op zijn beurt is het functioneel afhankelijk van de sleutel.

Regeling van relaties Benodigdheden_1(Product, De leverancier, Prijs, Warehouse, Volume) Het is niet in 3 november, omdat er een transitieve afhankelijkheid erin is:

{Product, leverancier} → Magazijn, MagazijnVolume.

Om een \u200b\u200bschema te brengen in 2nf, in 3 newf, heb je nodig:

· Voer de projectie van de regeling uit R. Op primaire kenmerken en attributen, transitief onafhankelijk van de sleutel, d.w.z. elimineer niet-kwetsbare attributen die transitief afhankelijk zijn van de sleutel,

· Voer voor elk transitief afhankelijk niet-variërende attribuut de projectie van de regeling uit R. Op de kenmerken opgenomen in het tweede deel van de transitieve afhankelijkheid, d.w.z. laat alleen niet-kwetsbare attributen van de relatie R.Omdat er een functionele afhankelijkheid is.

In het voorbeeld met een relatie Benodigdheden_1 Als gevolg van het brengen van het schema tot 3 newf, worden twee relaties verkregen:

Benodigdheden_1_1(Product, De leverancier, Prijs, Warehouse),

Benodigdheden_1_2.(MagazijnVolume).

Aldus het consequent uitvoeren van de scheiding van de bronschema van de relatie in verschillende andere schema's volgens de beschouwde regels, verkrijgen wij een schema in 3 NFF, vrij van de anomalieën van bijwerken en dupliceren van informatie, zoals vermeld aan het begin van de sectie.

Het proces van scheiding van het relatieregeling in verschillende andere schema's wordt genoemd ontleding Relatieschema's. Ontbinding, resulterend in een relatie met een van de normale vormen, wordt genoemd normalisatie.

In het beschouwde voorbeeld als gevolg van ontbinding in plaats van één relatie Benodigdheden We hebben drie nieuwe relaties:

Benodigdheden_1_1(Product, De leverancier, Prijs, Warehouse),

Benodigdheden_1_2.(MagazijnVolume),

Benodigdheden_2.(De leverancier, Het adres).

Met deze regeling bestaande uit drie-gerelateerde relatie-gerelateerde relaties, zijn er geen duplicatie van informatie over het adres van de leverancier en het volume van het magazijn, als het magazijn leeg is, blijft het bedrag in de database als de leverancier is levert geen goederen, het adres wordt nog steeds opgeslagen in de databasegegevens.

Zoals u opmerkt, elimineert het schema in 3NF de database van het dupliceren van informatie en update anomalieën, maar niet altijd.

Overweeg de houding Lezingen(Leerling, Ding, Leraar), die informatie opslaat over welke items studenten bestuderen en die deze items leiden. Het onderwerpgebied legt de volgende beperkingen op:

· Elke student die dit onderwerp leert, wordt alleen getraind door één leraar,

· Elke leraar leidt slechts één ding, maar elk item kan verschillende leraren leiden.

Van deze beperkingen stroomt de volgende functionele afhankelijkheden:

· (Student, onderwerp) → docent;

· Docent → onderwerp.

Functionele afhankelijkheden impliceren dat de relatie de sleutel is Lezingen Er zal een reeks attributen zijn ( Leerling, Ding}.

Houding Lezingen Gelegen in 3nf. Maar het lijdt aan de anomalieën van de update. Als u informatie wilt verwijderen die Petrov Studies Physics, dan is informatie snel dat Professor Serov Physics leert. Tegelijkertijd wordt informatie over het feit dat professor witte leidt, de algebra wordt gedupliceerd.

Deze moeilijkheden worden veroorzaakt door het feit dat er een functionele afhankelijkheid van het primaire kenmerk van niet-kwetsbaar is. Dit probleem is opgelost in de normale vorm van jongenscodd.

Houding is B. normale vorm van jongens CODD (NFBC)Als het zich in 3 november bevindt en er geen primaire kenmerken zijn, afhankelijk van de primaire kenmerken. Equivalente definitie vereist alle linker delen van functionele afhankelijkheden met potentiële sleutels.

Het NFBC vermelden, krijgen we twee relaties: Lezingen_1(Student, leraar) I. Lezingen_2.(Docent, Onderwerp).

MEEVERKEERDE afhankelijkheden

Attribuut X bepaalt uitdrukkelijk attribuut Y. in R. (of Y. Hangt snel af X.) Als elke attribuutwaarde X. Komt overeen met de set (mogelijk lege) attribuutwaarden Y., niet gerelateerd aan andere kenmerken R.\u200b Dat wil zeggen, voor de aanwezigheid van meerwaardige afhankelijkheden, moet u ten minste drie kenmerken hebben.

Multivalued-afhankelijkheid wordt aangeduid met een dubbele pijl: X → → Y..

Overweeg de houding Leraar(kamer , Naam rebawn , Ding , Positie\u200b Het onderwerpgebied legt de volgende beperkingen op:

· Elke leraar kan verschillende kinderen hebben,

· Elke leraar kan verschillende items leiden,

· Elke leraar kan slechts één positie duren,

· Elk onderwerp kan verschillende leraren leiden.

Dan de houding Leraar Hij heeft twee multivalued afhankelijkheden en één functioneel:

· Nummer → → Name_benchka,

· Nummer → → Onderwerp

· Nummer → positie.

Houding LeraarTen eerste bevat het overtollige informatie - de positie van de leraar wordt meerdere keren herhaald. Ten tweede is het niet vrij van de update-anomalieën: als de leraar een ander kind heeft, is het noodzakelijk om niet één tuple aan attitude toe te voegen, en omdat veel objecten deze leraar leiden. Evenzo, bij het toevoegen van nog een onderwerp, moet u zoveel tuples toevoegen aangezien de leraar een leraar heeft. En als de leraar geen kinderen heeft, wordt informatie over welke items die hij leidt over het algemeen in relatie.

Om van deze anomalie af te komen, is het noodzakelijk om de houding ten opzichte van de vierde normale vorm te brengen.

Houding is B. vierde narmale vorm (4nf.) Als het in de normale vorm van de jongenscode is en er geen multivalued afhankelijkheden zijn die niet functioneel zijn.

Na het brengen van de relatie Leraar Tot 4 NF krijgen we drie relaties:

Leraar_1(kamer , Positie),

Teacher_2.(kamer , Naam rebawn ),

Docent_3.(kamer , Ding ).

Ontbindingseigenschappen