Volledige functionele afhankelijkheid. Het concept van functionele afhankelijkheid

Bij het weergeven van een conceptueel diagram als relationeel model mogelijk verschillende opties selectie van relatieschema's. Sommige selectieopties zijn in eerdere paragrafen (paragraaf 6.2.3) overwogen, andere worden verkregen door enkele relatieschema's te combineren (of te splitsen). Van de juiste keuze De relatiediagrammen die het conceptuele schema vertegenwoordigen, zullen een grote invloed hebben op de prestaties van de database.

Laten we als voorbeeld een specifiek relatieschema bekijken en de tekortkomingen ervan analyseren. Laten we aannemen dat gegevens over studenten, faculteiten en specialismen zijn opgenomen in een tabel met het volgende relatieschema: STUDENT (studentencode, achternaam, faculteitsnaam, specialiteitsnaam).

Dit relatieschema veroorzaakt de volgende nadelen van de overeenkomstige database:

  • Duplicatie van informatie (redundantie). Voor studenten die aan dezelfde afdeling studeren, wordt de naam van de afdeling herhaald. Specialiteiten worden herhaald voor verschillende faculteiten.
  • Potentiële inconsistentie ( afwijkingen bijwerken). Als bijvoorbeeld de naam van een specialiteit verandert, dan is het, door deze in één tupel (voor één student) te veranderen, noodzakelijk om deze te wijzigen in alle andere tupels waar deze aanwezig is.
  • Potentieel verlies van informatie ( afwijkingen bij het verwijderen). Wanneer we informatie verwijderen over alle studenten die een bepaald specialisme volgen, verliezen we alle informatie over dit specialisme.
  • Mogelijkheid dat informatie niet in de database wordt opgenomen ( afwijkingen bij het schakelen). De database bevat geen informatie over een specialisme als er geen studenten in studeren.

IN theorieën relationele databases gegevens Er zijn formele methoden voor het construeren van een relationeel databasemodel waarin geen sprake is van redundantie afwijkingen bijwerken, verwijdering en opname.

Normalisatie. Eerste normaalvorm.

De constructie van een rationele versie van relatieschema's (die betere eigenschappen heeft voor de bewerkingen van het opnemen, wijzigen en verwijderen van gegevens dan alle andere sets schema's) wordt uitgevoerd met behulp van de zogenaamde normalisatie relatie patronen. Normalisatie wordt in verschillende fasen uitgevoerd. Op beginfase het relatiediagram moet in de eerste staan normale vorm(1NF).

De relatie ligt in de eerste normale vorm, als alle attributen van een relatie accepteren eenvoudige waarden(atomair of ondeelbaar), niet een verzameling of tupel van meer elementaire componenten.

Beschouw het volgende voorbeeld.

De tabel vertegenwoordigt de entiteit ONDERZOEKSRAPPORT

Studentencode Achternaam Examencode Onderwerp en datum Cijfer
1 Sergejev 1 Wiskunde 5.06.08 4
2 Ivanov 1 Wiskunde 5.06.08 5
1 Sergejev 2 Natuurkunde 9.06.08 5
2 Ivanov 2 Natuurkunde 9.06.08 5

Op het snijpunt van elke rij en elke kolom is er nu één waarde en daarom deze tafel staat in de eerste normale vorm.

Vervolgens de relatie gepresenteerd in de eerste normale vorm, wordt opeenvolgend omgezet in de tweede en derde normale vormen. Het proces van het construeren van de tweede en derde normaalvorm zal in de volgende subsecties worden beschreven. Onder sommige aannames over de gegevens, de derde normale vorm is de gewenste beste optie.

Als niet aan deze aannames wordt voldaan, gaat het normalisatieproces door en wordt de verhouding omgezet naar de vierde en vijfde normale vormen. De constructie van de bijbehorende formulieren wordt in de literatuur beschreven en wordt in dit boek niet besproken.

Voordat we verder gaan met de bouw van de tweede normale vorm, is het noodzakelijk een aantal formele concepten te definiëren.

8.2. Functionele afhankelijkheden (afhankelijkheden tussen attributen van een relatie)

Laat R(A 1, A 2, ..., An) een relatieschema zijn, en X en Y deelverzamelingen (A 1, A 2, ..., An).

Functionele afhankelijkheid op houding R is een verklaring van de vorm “Als twee tupels R overeenkomen met de kenmerken van de set(dat wil zeggen dat deze tupels dezelfde waarden hebben in hun overeenkomstige componenten voor elk attribuut van de set X ), dan moeten ze samenvallen in de attributen van de set . Formeel wordt deze afhankelijkheid geschreven door de uitdrukking X -> Y, en dat wordt gezegd X functioneel definieert Y. Een andere uitspraak die vaak wordt gebruikt is: X functioneel definieert Y of Y functioneel hangt af van X ( aangegeven door X -> Y) dan en slechts dan als elke waarde van de set X relatie R geassocieerd met één waarde van de set Y relatie R. Met andere woorden, als twee tupels R komen overeen in betekenis X, ze zijn hetzelfde in betekenis Y.

Opmerking. Over het algemeen kan de term ‘relatie’ twee concepten betekenen:

  • relatie als een variabele die kan aannemen verschillende betekenissen(een tabel waarin verschillende waarden in de rijen en kolommen kunnen worden ingevoerd);
  • een relatie als een set specifieke waarden (een tabel met gevulde elementen).

Functionele afhankelijkheden karakteriseer alle relaties die in principe waarden kunnen zijn van het relatieschema R. Dat is waarom de enige manier definiëren functionele afhankelijkheden– analyseer zorgvuldig de semantiek (betekenis) van attributen.

Functionele afhankelijkheden zijn met name integriteitsbeperkingen, dus het is raadzaam deze elke keer te controleren wanneer de database wordt bijgewerkt.

Voorbeeld van functionele afhankelijkheden voor de relatie ONDERZOEKSRAPPORT

Studentcode -> Achternaam Studentcode, Examencode -> Cijfer

Een voorbeeld van functionele afhankelijkheden voor de STUDENT-relatie gegeven aan het begin van deze lezing

Studentcode -> Achternaam, Studentcode -> Faculteit

Merk op dat de laatste afhankelijkheid bestaat onder de voorwaarde dat één student niet aan meerdere faculteiten kan studeren.

Volledige set functionele afhankelijkheden

Voor elke relatie bestaat er een goed gedefinieerde reeks functionele afhankelijkheden tussen de attributen van deze relatie. Bovendien kunnen uit één of meer functionele afhankelijkheden die inherent zijn aan de beschouwde relatie, andere worden afgeleid functionele afhankelijkheden, ook inherent aan deze relatie.

Een gegeven reeks functionele afhankelijkheden voor een relatie R laten we aanduiden F een complete set functionele afhankelijkheden waaruit logischerwijs kan worden afgeleid F afsluiting genoemd F en wordt aangewezen F+.

Als een reeks functionele afhankelijkheden samenvalt met een sluiting gegeven set, dan wordt een dergelijke reeks functionele afhankelijkheden compleet genoemd.

Met de geïntroduceerde concepten kunnen we het concept van een sleutel formeel definiëren.

Laat er een plan zijn R met attributen A 1 A 2 ...Een n , F – een aantal functionele afhankelijkheden en X - een deelverzameling R. Dan X wordt een sleutel genoemd als, ten eerste, in F+ er is sprake van een afhankelijkheid X -> A 1 A 2 ...Een n en ten tweede, voor geen enkele subset Y opgenomen in X, verslaving Y -> A 1 A 2 ...Een n hoort er niet bij F+.

Een volledige functionele afhankelijkheid is de afhankelijkheid van een niet-sleutelattribuut van de gehele samengestelde sleutel..

Een gedeeltelijke functionele afhankelijkheid is de afhankelijkheid van een niet-sleutelattribuut van een deel van een samengestelde sleutel..

Om te berekenen het sluiten van meerdere functionele afhankelijkheden de volgende worden gebruikt regels voor inferentie (


Invoering

Een dialectische benadering van de studie van de natuur en de samenleving vereist het beschouwen van verschijnselen in hun onderlinge samenhang en voortdurende verandering.

In de praktijk van economisch onderzoek kunnen de beschikbare gegevens vaak niet worden beschouwd als een steekproef uit een multivariate normale populatie, bijvoorbeeld wanneer een van de variabelen in kwestie niet willekeurig is of wanneer de regressielijn duidelijk niet recht is, enz. In deze gevallen probeert men de curve (oppervlak) te bepalen die de beste (in de zin van de kleinste kwadraten) benadering geeft van de oorspronkelijke gegevens. De overeenkomstige benaderingsmethoden worden aangeroepen regressieanalyse. De doelstellingen van regressieanalyse zijn het vaststellen van de vorm van afhankelijkheid tussen variabelen, het schatten van de regressiefunctie en het schatten van onbekende waarden (voorspelling van waarden) van de afhankelijke variabele.

Het bovenstaande bepaalt de relevantie van de onderwerpkeuze cursus werk. Het doel van dit werk is om de functionele afhankelijkheid tussen willekeurige variabelen te bestuderen met behulp van de methoden van correlatie- en regressieanalyses.



Hoofdstuk 1 Correlatieanalyse

1.1 Functionele, statistische en correlatieafhankelijkheden

In de natuurwetenschappen is dat vaak het geval waar we het over hebben over functionele afhankelijkheid (verbinding), wanneer elke waarde van de ene variabele overeenkomt met een zeer specifieke waarde van een andere. Functionele afhankelijkheid kan zowel voorkomen tussen deterministische (niet-willekeurige) variabelen (bijvoorbeeld de afhankelijkheid van de mate van daling in een vacuüm van tijd, enz.) als tussen willekeurige variabelen (bijvoorbeeld de afhankelijkheid van de kosten van producten die worden verkocht op de markt). hun aantal, enz.). In de economie zijn er in de meeste gevallen afhankelijkheden tussen variabele hoeveelheden, wanneer elke waarde van één variabele niet overeenkomt met een specifieke, maar met veel mogelijke waarden van een andere variabele.

Met andere woorden: elke waarde van de ene variabele komt overeen met een bepaalde (voorwaardelijke) verdeling van een andere variabele. Deze afhankelijkheid (verbinding) wordt statistisch (of stochastisch, probabilistisch) genoemd.

Vanwege de ambiguïteit van de statistische relatie tussen Y en X is vooral voor de onderzoeker het afhankelijkheidspatroon, gemiddeld over x, van belang, d.w.z.

een patroon in de verandering in de gemiddelde waarde - de voorwaardelijke wiskundige verwachting (Y) (de wiskundige verwachting van een willekeurige variabele Y, gevonden op voorwaarde dat de variabele X de waarde x aanneemt) afhankelijk van x. Definitie

: Een statistische relatie tussen twee variabelen waarbij elke waarde van één variabele overeenkomt met een bepaalde gemiddelde waarde, d.w.z. de voorwaardelijke wiskundige verwachting is anders, correlatie genoemd. Anders is de correlatieafhankelijkheid tussen twee variabele grootheden de functionele afhankelijkheid tussen de waarden van de ene en de voorwaardelijke wiskundige verwachting van de andere.

De correlatieafhankelijkheid kan worden weergegeven als: Er wordt aangenomen dat φ(x)≠const en ψ(x)≠const, d.w.z. als, wanneer x of y verandert, de voorwaardelijke wiskundige verwachtingen (Y) niet veranderen, dan zeggen ze dat er geen correlatie bestaat tussen de variabelen X en Y. Vergelijken

verschillende soorten afhankelijkheid tussen X en Y kunnen we zeggen dat met een verandering in de waarden van de variabele X, met een functionele afhankelijkheid, een bepaalde waarde van de variabele y ondubbelzinnig verandert, met een correlatie - een bepaalde gemiddelde waarde (voorwaardelijke wiskundige verwachting ) van Y, en met een statistische - een bepaalde (voorwaardelijke) verdeling van de variabele Y (Fig. .1.1) Van de beschouwde afhankelijkheden is dus de statistische afhankelijkheid het meest algemeen. Elke correlatie is statistisch, maar niet elke statistische relatie is correlatie.

Functionele afhankelijkheid vertegenwoordigt

speciaal geval correlatie. Over het algemeen is het noodzakelijk om de verdelingswet van een tweedimensionale willekeurige variabele (X,Y) te kennen.

In de praktijk heeft de onderzoeker in de regel slechts een beperkte steekproef van waardenparen (,). In dit geval kunnen we spreken van een schatting (een uitdrukking bij benadering) op basis van een steekproef van de regressiefunctie. Deze beste (in de zin van de kleinste kwadratenmethode) schatting is de steekproefregressielijn (curve) van Y op X

waar is het voorwaardelijke (groeps)gemiddelde van de variabele Y voor een vaste waarde van de variabele X = x;

,…, zijn de parameters van de curve.

De voorbeeldregressielijn (curve) van X op Y wordt op dezelfde manier bepaald:

waar is het voorwaardelijke (groeps)gemiddelde van de variabele X voor een vaste waarde van de variabele Y = y; -curveparameters.

Vergelijkingen (1.3) en (1.4) worden ook wel genoemd, respectievelijk Y bij X en X bij Y. Met correct gedefinieerde benaderende functies) en met toenemende steekproefomvang (n), zullen ze in waarschijnlijkheid convergeren naar respectievelijk de regressiefuncties ψ(x) en φ(y). Statistische relaties tussen variabelen kunnen worden bestudeerd met behulp van de methoden van correlatie- en regressieanalyse. Het hoofddoel van regressieanalyse is het vaststellen van de vorm en het bestuderen van de relatie tussen variabelen. De belangrijkste taak

correlatie analyse

– het identificeren van de relatie tussen willekeurige variabelen en het beoordelen van de nabijheid ervan.

1.2 Lineaire paarregressie
Het is handig om gegevens over statistische afhankelijkheid in de vorm van een correlatietabel in te stellen.

Laten we als voorbeeld eens kijken naar de relatie tussen de dagelijkse productie Y (t) en de waarde van de vaste productiemiddelen X (miljoen roebel) voor een reeks van 50 vergelijkbare ondernemingen (Tabel 1).

(In de tabel geven respectievelijk de en de middelpunten van de overeenkomstige intervallen aan, en geven de en hun frequenties aan.)

Voor elke waarde, d.w.z. voor elke rij van de correlatietabel berekenen we de groepsgemiddelden

waar zijn de frequenties van paren () en; m – aantal intervallen voor variabele Y.

We plaatsen de berekende groepsgemiddelden in de laatste kolom van de correlatietabel en geven deze grafisch weer in de vorm van een onderbroken lijn, de empirische regressielijn van Y op X genoemd.

Op dezelfde manier voor elke waarde volgens de formule

Laten we de groepsgemiddelden berekenen, waarbij l het aantal intervallen is voor de variabele X.

Laten we even een pauze nemen van het beschouwde voorbeeld en formules zoeken voor het berekenen van de onbekende parameters van de lineaire regressievergelijking.

Voor dit doel passen we de kleinste kwadratenmethode toe, waarbij de onbekende parameters zo worden geselecteerd dat de som van de kwadratische afwijkingen van de empirische groepsgemiddelden berekend met behulp van formule (1.5) uit de gevonden waarden met behulp van de regressie vergelijking (1.8) is minimaal:

Gebaseerd op noodzakelijke voorwaarde van het uiterste van de functie van twee variabelen S=S() stellen we de partiële afgeleiden ervan gelijk aan nul, d.w.z.

Van waaruit we, na transformatie, een systeem van normale vergelijkingen verkrijgen voor het bepalen van de parameters van lineaire regressie:

Rekening houdend met (1.5), transformeren we de uitdrukking en rekening houdend met (1.7), door beide zijden van vergelijkingen (1.10) te delen door n, verkrijgen we een systeem van normale vergelijkingen in de vorm:

waarbij de overeenkomstige gemiddelden worden bepaald door de formules:

Door de waarde uit de eerste vergelijking van het systeem (1.11) te vervangen door de regressievergelijking (1.8), verkrijgen we

De coëfficiënt b 1 in de regressievergelijking, de voorbeeldregressiecoëfficiënt genoemd (of eenvoudigweg de regressiecoëfficiënt) Y op X, wordt aangegeven met het symbool. Nu wordt de regressievergelijking van Y op X als volgt geschreven:

De regressiecoëfficiënt Y op X laat zien hoeveel eenheden de Y-variabele gemiddeld verandert wanneer de X-variabele met één eenheid toeneemt.

Oplossysteem (1.11) vinden we

waar is de steekproefvariantie van de variabele X

µ - monstercorrelatiemoment:

Door op dezelfde manier te redeneren en aan te nemen dat de regressievergelijking (1.4) lineair is, kunnen we deze reduceren tot de vorm:

steekproefregressiecoëfficiënt (of eenvoudigweg regressiecoëfficiënt) X op Y, die aangeeft hoeveel eenheden de variabele X gemiddeld verandert wanneer de variabele Y met één eenheid toeneemt = – (–steekproefvariantie van de variabele Y. verslaving. In dit geval bevinden alle waarnemingen zich... Trendlijn (Fig. 2); 3) selecteer het type afhankelijkheden regressie. Voor ons voorbeeld is het trendtype...

  • Stoombad regressie (3)

    Toets >> Wiskunde

    De betekenis van regressieanalyse is de constructie functioneel afhankelijkheden tussen twee groepen variabelen... lineair en niet-lineair regressie. Lineair regressie:. Niet-lineair regressie zijn verdeeld in twee klassen: regressie, niet-lineair ten opzichte van...

  • het systeem bestuderen of de mening van gebruikers over de werking van het systeem analyseren.

    Het doel van deze fase is het optimaliseren van de werking bestaande systeem door het reorganiseren van de database en/of het aanbrengen van wijzigingen in de software.

    7.2. Functionele afhankelijkheden

    Volgens Hugh Darwen zijn functionele afhankelijkheden "zo niet heel fundamenteel, dan wel heel dichtbij" die ten grondslag liggen aan het databaseontwerp.

    Het concept van functionele afhankelijkheid

    In wezen is een functionele afhankelijkheid een veel-op-een-relatie tussen sets attributen binnen een bepaalde relatie.

    Laat R een familie zijn van alle mogelijke relaties met dezelfde kopH R (kan worden aangeroepen

    een variabele van het relatietype, en elke r P R is de waarde van deze variabele (of een toelaatbare relatie). Zij A Ď H R en B Ď H R - enkele subsets van de headerattributen van de relatievariabelen R.

    Definitie 1. AttributensetB functioneel afhankelijk van A (en duidt A Ñ B aan) als en slechts als elke waarde van attributen A van elke toelaatbare relatie r geassocieerd is met precies één waarde van attributen B van relatie r , dat wil zeggen als twee tupels samenvallen in de waarde van attributen A , dan vallen ze ook samen in de waarde van attributen B. Formeel:

    pA ÑB q ô @r HR ; Br P R @T 1 ;T 2 P Br p@a PA T 1 :aT 2 :aq Ñ p@b PB T 1 :bT 2 :bq:

    Opmerking. Het concept van functionele afhankelijkheid wordt op dezelfde manier gedefinieerd als een speciaal geval voor een afzonderlijke gewone relatie.

    Definitie 2. Als A Ñ B, dan wordt de verzameling attributen A een determinant genoemd, en is B een afhankelijke

    dit deel.

    Merk op dat als A dat is potentiële sleutel relatie r , dan volgt uit de definitie van een potentiële sleutel dat alle attributen van relatie r noodzakelijkerwijs functioneel afhankelijk moeten zijn van A .

    nationale afhankelijkheden tot een aanvaardbare omvang terugbrengen . Waarom is dit doel belangrijk? Eén reden is dat er veel functionele afhankelijkheden zijnintegriteitsbeperkingenDaarom is het wenselijk dat het DBMS ervoor zorgt dat deze worden nageleefd. Daarom voor elke gegeven set functionele afhankelijkheden S het zou wenselijk zijn om zo'n set te vinden T , wat (in een ideale situatie) aanzienlijk zou zijn kleiner dan de set S in macht en tegelijkertijd elke functionele afhankelijkheid in de set S kan worden vervangen door een functionele afhankelijkheid van verschillende T . Als zo'n menigte T werd gevonden, dan zou het voor het DBMS voldoende zijn om de uitvoering van functionele afhankelijkheden vanuit de set te controleren T , wat automatisch zou zorgen voor naleving van alle functionele afhankelijkheden van de set S . Daarom de taak om een ​​geschikte set te vinden T is van groot praktisch belang.

    Triviale en niet-triviale afhankelijkheden

    Definitie 3. Een functionele afhankelijkheid wordt triviaal genoemd als er niet anders dan aan voldaan kan worden, dat wil zeggen dat ze onder alle omstandigheden geldig is.

    Definitie 3'. De functionele afhankelijkheid A Ñ B wordt triviaal genoemd als en slechts als B Ď A , anders wordt ze niet-triviaal genoemd.

    Zoals hun naam al aangeeft, zijn triviale afhankelijkheden van weinig praktisch belang; Tijdens het ontwerpproces is het doorgaans veel belangrijker om niet-triviale afhankelijkheden te identificeren, aangezien deze de integriteitsbeperkingen op de relatie vertegenwoordigen. Dat is waarom op een voor de hand liggende manier het verminderen van veel functionele afhankelijkheden is dat wel het elimineren van triviale afhankelijkheden.

    Meerdere afhankelijkheden sluiten

    Sommige functionele afhankelijkheden kunnen leiden tot andere functionele afhankelijkheden. Stel dat er een relatievariabele R is, en A Ď H R, B Ď H R en C Ď H R - enkele subsets

    zijn attributen.

    Definitie 4. De functionele afhankelijkheid A Ñ C wordt transitief (of passeren B ), als er functionele afhankelijkheden A Ñ B en B Ñ C zijn.

    Definitie 5. De verzameling S van alle functionele afhankelijkheden die volgen uit een gegeven verzameling functionele afhankelijkheden S wordt de sluiting van de verzameling S genoemd.

    Uit de bovenstaande definitie volgt dat om het geformuleerde probleem op te lossen (het verminderen van de reeks afhankelijkheden), het noodzakelijk is om een ​​algoritme te vinden voor het berekenen van S op basis van S.

    De eerste poging om dit probleem op te lossen werd gedaan door Armstrong: hij stelde een reeks gevolgtrekkingsregels voor (genaamd Armstrongs axioma's 1) nieuwe functionele afhankelijkheden op basis van de gegeven afhankelijkheden.

    Laat A Ď H R ,B Ď H R ,C Ď H R enkele subsets van attributen zijn van de relatievariabele R .

    Armstrongs basisaxioma's:

    1. Regel van reflexiviteit: als B Ď A, dan A Ñ B.

    2. Augmentatieregel: als A Ñ B , dan A Y C Ñ B Y C .

    3. Transitiviteitsregel: als A Ñ B en B Ñ C , dan A Ñ C .

    Bewijs: Het eerste axioma is waar, omdat A Ñ B met B Ď A een triviale functie is

    nationale afhankelijkheid per definitie.

    Laten we het axioma van complement bewijzen door tegenspraak. Laten we aannemen dat voor A

    Ñ ​​​​B is onjuist

    A Y C Ñ DOOR Y C . Dit betekent dat er twee tupels zijn T 1 P B r en T 2 P B r (B r

    Iemands lichaam

    een toelaatbare relatie r ) zodanig dat

    T1:acT2:ac

    @ac PAYC;

    maar tegelijkertijd

    Dbc P B YC :T 1 :bcT 2 :bc

    Sinds A Ď AY C , volgt volgens het axioma van reflexiviteit AY C Ñ A , en dus uit (7.1) dat

    T1:aT2:a

    @a P A :

    Omdat A Ñ B gegeven is, volgt uit (7.3)

    T1:bT:b

    @bP B :

    Maar dan volgt uit de ongelijkheden (7.2) en (7.4) dat de genoemde bc (7.2) tot C behoort, d.w.z.

    Dc P C: T1:cT2:c

    Aan de andere kant verkrijgen we, vanwege de aanwezigheid van een triviale afhankelijkheid A Y C Ñ C en (7.1),

    T 1 :cT 2 :c @c PC

    wat in tegenspraak is met (7.5). De oorspronkelijke veronderstelling was dus onjuist.

    1 Maar de geldigheid van Armstrongs ‘axioma’s’ wordt bewezen met behulp van de definitie van functionele afhankelijkheid.

    We zullen het axioma van transitiviteit ook bewijzen door tegenspraak. Stel A Ñ B en B Ñ C , maar A Ñ C . DanDr P R: D T 1 ; T 2 P B r zodanig dat

    T 1 :aT 2 :a @a PA

    Dit systeem van regels is:

    Compleet - voor een gegeven set functionele afhankelijkheden S kan een minimale set functionele afhankelijkheden die alle afhankelijkheden uit de set S impliceren, worden afgeleid uit de afhankelijkheden van de set S, alleen op basis van deze regels.

    Consistent- met behulp van deze regels kunnen geen aanvullende functionele afhankelijkheden worden afgeleid (d.w.z. afhankelijkheden die niet worden veroorzaakt door de functionele afhankelijkheden van de verzameling S).

    Deze regels kunnen dus worden gebruikt om de afsluiting S van een reeks afhankelijkheden S te verkrijgen.

    IN om het gemakkelijker te vinden S kan worden ingevoerd aanvullende opnameregels(D Ď H R):

    4. Zelfbeschikkingsregel: EEN Ñ EEN .

    5. Ontbindingsregel: als A Ñ B Y C , dan A Ñ B en A Ñ C .

    6. Verenigingsregel: als A Ñ B en A Ñ C , dan A Ñ B Y C .

    7. Regel van compositie: als A Ñ B en C Ñ D , dan A Y C Ñ B Y D .

    8. Algemene unificatiestelling(Darwen): als A Ñ B en C Ñ D , dan A Y p C z B q Ñ BY Y D .

    De sluiting S voor een gegeven reeks functionele afhankelijkheden S kan op een triviale manier worden berekend: pas de gevolgtrekkingsregels opnieuw toe totdat er mogelijke creatie nieuwe functionele afhankelijkheden.

    Onherleidbare sets van afhankelijkheden

    Laat S 1 en S 2 twee sets functionele afhankelijkheden zijn.

    Definitie 6. De verzameling S 2 wordt een afdekking voor de verzameling S 1 genoemd als een functionele afhankelijkheid die volgt uit de verzameling afhankelijkheden S 1 ook voortvloeit uit de verzameling afhankelijkheden S 2, d.w.z. S 1 Ď S 2.

    Opmerking. Dit betekent dat als het DBMS ervoor zorgt dat de beperkingen worden nageleefd die worden vertegenwoordigd door de afhankelijkheden van de set S2, dan zullen alle beperkingen die worden ingesteld door de afhankelijkheden van de set S1 automatisch worden nageleefd.

    Definitie 7. Reeksen van afhankelijkheden S 1 en S 2 worden equivalent genoemd als S 1 een dekking is voor S 2 en S 2 een dekking is voor S 1, d.w.z. S 1 S 2.

    Definitie 8. Er wordt een reeks functionele afhankelijkhedenS aangeroepen onherleidbaar (minimaal) dan en slechts dan als het alle drie de eigenschappen heeft:

    1. Het afhankelijke deel van elke functionele afhankelijkheid van S bevat slechts één attribuut.

    2. De determinant van elke afhankelijkheid van S is irreducibel, d.w.z. geen enkel attribuut van de de-

    de terminator kan niet worden weggelaten zonder de sluiting S 1 te veranderen (dat wil zeggen zonder S

    in een ongelijke reeks afhankelijkheden).

    3. Geen enkele functionele afhankelijkheid uit vele S kan niet worden verwijderd zonder de afsluiting S te veranderen (dat wil zeggen zonder de verzameling S te transformeren in een inequivalente afhankelijkheidsset).

    1 Deze functionele afhankelijkheid wordt genoemd onherleidbaar gelaten.

    Anders wel reduceerbaar genoemd.

    Stelling. Voor elke reeks functionele afhankelijkheden is er een ten minsteéén equivalente set die onherleidbaar is.

    Bewijs: Laat de initiële set afhankelijkheden S gegeven worden.

    1. Op grond van de ontledingsregel kunnen we zonder verlies van algemeenheid aannemen dat elke functionele afhankelijkheid in deze verzameling S heeft een singleton-afhankelijke clausule.

    2. Volgende voor elke afhankelijkheid fPS moet elk attribuut in de afhankelijkheidsdeterminant f controleren: als het verwijderen van attribuut a aan de linkerkant van afhankelijkheid f de afsluiting S niet verandert, dan moet dat attribuut worden verwijderd.

    3. Vervolgens voor elke afhankelijkheid Als f in de verzameling S blijft, is het noodzakelijk om te controleren of de verwijdering ervan uit de verzameling S leidt tot een verandering in de sluiting van S: in het geval van een negatief antwoord moet de afhankelijkheid f uit de verzameling S worden verwijderd.

    De resulterende verzameling S1 als gevolg van dergelijke acties is onherleidbaar en equivalent aan de oorspronkelijke verzameling S.l

    Definitie 9. Een reeks functionele afhankelijkheden T, die onherleidbaar is en gelijkwaardig is aan een andere reeks functionele afhankelijkheden S, wordt genoemd onherleidbaar equivalent setsS.

    Dus in plaats van de oorspronkelijke set functionele afhankelijkheden S kan het systeem zijn onherleidbare equivalent T gebruiken. Voor een gegeven reeks functionele afhankelijkheden bestaat er echter niet altijd een uniek, onherleidbaar equivalent.

    Verliesloze ontleding en functionele afhankelijkheden

    De normalisatieprocedure omvat het opdelen of ontleden van een gegeven relatievariabele in andere relatievariabelen, en de ontleding moet omkeerbaar zijn, dat wil zeggen uitgevoerd zonder verlies van informatie. Met andere woorden, alleen die bewerkingen die worden uitgevoerd zonder verlies van informatie zijn van belang.

    Een van de ontledingsmethoden is het gebruik van een projectie, waarvoor het omgekeerde geldt

    een samenvoegingsoperatie, zoals blijkt uit de stelling van Heath:

    Stelling (Heath; Heath). Laat een relatievariabele R gegeven worden met een header H R A Y B Y C , waarbij A ; B; C zijn paarsgewijze disjuncte sets attributen van de relatievariabele R. Als R voldoet aan de functionele afhankelijkheid A Ñ B , kan de verliesloze ontleding worden uitgevoerd in de vorm

    R1 AYB pRq; R2 AYC pRq;

    die omkeerbaar is met behulp van een natuurlijke verbinding: R R 1 "R 2.

    Als gevolg van de generalisatie kunnen we (informeel) opmerken dat de ontleding van de relatievariabele R naar de projectie R l; R2; ::: ; R n wordt zonder verlies uitgevoerd als R R l "R 2" ::: "R n .

    Functionele afhankelijkheidsdiagrammen

    Laat R een relatievariabele zijn en T de onherleidbare verzameling van zijn functionele afhankelijkheden. De verzameling T kan visueel worden weergegeven als functionele afhankelijkheidsdiagrammen

    verblijf:

    Elk attribuut wordt weergegeven door een rechthoek met de attribuutnaam erin.

    Elke set attributen wordt weergegeven als een rechthoek, waarbinnen er zich bevinden rechthoeken-attributen, die zijn opgenomen in de set attributen.

    Een functionele relatie wordt weergegeven als een pijl van een domein (altijd een potentiële sleutel) naar een reeks attributen van het afhankelijke deel.

    Functionele afhankelijkheden

    Functionele afhankelijkheid beschrijft de relatie tussen attributen en is een van de basisconcepten van normalisatie. Laten we aannemen dat het relationele schema attributen heeft (A, B, C,..., Z) en dat de hele basis kan worden weergegeven als één universele relatie R=(A, B, C,..., Z). Daarom heeft elk attribuut in de database een unieke naam.

    Als A en B attributen zijn van een bepaalde relatie R, en elke waarde van A geassocieerd is met één en slechts één waarde van B (en elk van de attributen kan uit een of meer attributen bestaan), dan is attribuut B functioneel afhankelijk van attribuut A (ВАА).

    Een functionele afhankelijkheid die onder alle omstandigheden geldig is, wordt genoemd triviaal. Niet-triviale afhankelijkheden definiëren integriteitsbeperkingen op relaties.

    Transitieve afhankelijkheid voor attributen A, B en C van een bepaalde relatie betekent het volgende: als AàB en BàC, dan hangt C transitief af van attribuut A via attribuut B (op voorwaarde dat A functioneel onafhankelijk is van B of C).

    Om gegevensredundantie te voorkomen, wat kan leiden tot verlies van integriteit, is het noodzakelijk om een ​​minimaal voldoende aantal afhankelijkheden te gebruiken.

    Databaseontwerp met behulp van normalisatie begint met het definiëren van functionele afhankelijkheden die semantisch voor de hand liggend zijn, d.w.z. reductie tot de eerste normaalvorm.

    Een tabel in eerste normaalvorm moet aan de volgende eisen voldoen:

    1) de tabel mag geen dubbele records bevatten;

    2) de tabel mag geen dubbele groepen velden bevatten;

    3) elk veld moet semantisch ondeelbaar zijn.

    Een tabel in de tweede normaalvorm moet aan alle 1NF-vereisten voldoen; elk niet-sleutelveld wordt uniek geïdentificeerd volledige set sleutelvelden, dat wil zeggen dat elk attribuut van de relatie geheel of gedeeltelijk functioneel afhankelijk is van een ander attribuut.

    De functionele afhankelijkheid van AàB is vol functionele afhankelijkheid als het verwijderen van een attribuut van A leidt tot het verlies van deze afhankelijkheid. De functionele afhankelijkheid van AàB wordt genoemd gedeeltelijk Als er in A een bepaald attribuut aanwezig is, blijft deze afhankelijkheid bestaan ​​als deze wordt verwijderd.

    Een tabel in de derde normaalvorm moet aan alle vereisten van 2NF voldoen; geen enkel niet-sleutelveld wordt geïdentificeerd door een ander niet-sleutelveld, dat wil zeggen een relatie die zich in de eerste en tweede normaalvorm bevindt en geen attributen heeft die dat niet zijn; in de primaire sleutel van de attributen , die in een transitieve functionele afhankelijkheid van deze primaire sleutel zouden zijn.

    Boyce Code Normal Form (BCNF) is gebaseerd op functionele afhankelijkheden die rekening houden met alle potentiële sleutels van een relatie, maar met strengere beperkingen.

    Determinant van functionele afhankelijkheid is een attribuut (of een groep attributen) waarvan een ander attribuut volledig functioneel afhankelijk is.

    Om te controleren of een relatie tot de BCNF behoort, is het noodzakelijk om al zijn determinanten te vinden en er zeker van te zijn dat dit potentiële sleutels zijn.

    Het verschil tussen 3NF en BCNF is dat de functionele afhankelijkheid AàB is toegestaan ​​in 3NF als attribuut B is primaire sleutel, en attribuut A is niet noodzakelijkerwijs een kandidaatsleutel. Voor BCNF is deze afhankelijkheid alleen toegestaan ​​als attribuut A een kandidaatsleutel is. Daarom is BCNF een striktere versie van 3NF, aangezien elke BCNF-relatie 3NF is, maar niet elke 3NF-relatie BCNF.

    Er is alleen sprake van een relatie in BCNF als elk van de determinanten ervan een potentiële sleutel is.

    De vierde normaalvorm (4NF) is een relatie in BCNF die geen niet-triviale meerwaardige afhankelijkheden bevat.

    Meerwaardige afhankelijkheid vertegenwoordigt een relatie tussen attributen van een relatie (bijvoorbeeld A, B en C), zodat elke waarde van A een reeks waarden voor B en een reeks waarden voor C vertegenwoordigt. De sets waarden vertegenwoordigen echter want B en C zijn onafhankelijk van elkaar.

    Een meerwaardige afhankelijkheid kan verder worden gedefinieerd als triviaal of niet-triviaal. Een meerwaardige afhankelijkheid AàB van een relatie R wordt als triviaal gedefinieerd als attribuut B een subset is van attribuut A of . Omgekeerd wordt een meerwaardige afhankelijkheid als niet-triviaal gedefinieerd als aan geen van beide voorwaarden is voldaan. Een triviale meerwaardige afhankelijkheid legt geen beperkingen op aan deze relatie, maar een niet-triviale afhankelijkheid wel.

    Bij het verdelen van een relatie met behulp van de projectiebewerking wordt de gebruikte ontledingsmethode nauwkeurig bepaald. Het is noodzakelijk dat wanneer de resulterende relaties opnieuw worden verbonden, de oorspronkelijke relatie kan worden hersteld. Deze ontbinding wordt genoemd verliesloze verbindingsontbinding(of een win-win of niet-additieve join) omdat alle gegevens in de oorspronkelijke relatie behouden blijven en het maken van extra dummy-rijen wordt geëlimineerd.

    Vijfde normaalvorm (5NF), ook wel projectieve connectieve normaalvorm genoemd, betekent dat een relatie in deze vorm geen join-afhankelijkheden heeft. Een relatie R met een subset van attributen A,B,…,Z voldoet aan een join-afhankelijkheid als elk geldige waarde R is gelijk aan de vereniging van zijn projecties op deelverzamelingen A,B,…,Z.

    Lezingen nr. 8-9.

    Functionele afhankelijkheid. Normale vormen.

    Doel van de les: leerlingen kennis laten maken met de definitie van de functionele afhankelijkheid van attributen, met het concept van normalisatie van de oorspronkelijke relatie, praten over de redenen die leiden tot de noodzaak om recordbestanden te normaliseren, manieren introduceren om het vereiste niveau te garanderen van de normaliteit van een tabel, om normale vormen te definiëren met behulp van een specifiek voorbeeld.

    Functionele afhankelijkheden

    De theorie van normalisatie is, net als de theorie van databases in het algemeen, gebaseerd op een wiskundig apparaat, waarvan de basis de verzamelingenleer en elementen uit de algebra is.

    Dezelfde gegevens kunnen worden gegroepeerd in tabellen (relaties) op verschillende manieren. De groepering van attributen in relaties moet rationeel zijn (d.w.z. de duplicatie van gegevens moet minimaal zijn) en de procedures voor de verwerking en actualisering ervan vereenvoudigen. Het elimineren van gegevensredundantie is een van de maatregelen belangrijkste taken databaseontwerp en wordt verzekerd door normalisatie.

    Normalisatie van tabellen (relaties)- dit is een formeel apparaat met beperkingen op de vorming van tabellen (relaties), dat duplicatie elimineert, de consistentie van de gegevens die in de database zijn opgeslagen garandeert en de arbeidskosten voor het onderhouden (invoeren, aanpassen) van de database verlaagt. Het normalisatieproces bestaat uit het ontleden (decompositie) van de oorspronkelijke databaserelaties in eenvoudiger relaties. Elke fase van dit proces brengt het patroon van relaties in opeenvolgende normale vormen. Voor elke fase van normalisatie zijn er reeksen beperkingen waaraan de databaserelaties moeten voldoen. Met normalisatie kunt u overtollige niet-sleutelinformatie uit databasetabellen verwijderen.

    Laten we eerst enkele concepten onthouden:

    Eenvoudig attribuut is een attribuut waarvan de waarden ondeelbaar zijn. Met andere woorden, de tabel bevat geen velden zoals Volledige naam of Adres - deze zijn in het eerste geval onderverdeeld in velden Achternaam, Voornaam, Patroniem en in het tweede geval in velden Index, Stad, etc..

    Complex (samengesteld) attribuut wordt verkregen door verschillende atomaire attributen te combineren, anders wordt het genoemd vector of aggregaat van gegevens.

    Definitie van functionele afhankelijkheid: Laten X en Y zijn attributen van een bepaalde relatie. Indien op enig moment een willekeurige waarde X overeenkomt met een enkele waarde Y, dan is Y functioneel afhankelijk van X (XJ)

    Als de sleutel samengesteld is, moet elk attribuut afhankelijk zijn van de sleutel als geheel, maar kan het niet functioneel afhankelijk zijn van enig deel van de samengestelde sleutel, d.w.z. de functionele afhankelijkheid heeft de vorm (X 1 , X 2 , ..., X)Y.

    Functionele afhankelijkheid kan compleet of onvolledig zijn.

    Onvolledige afhankelijkheid de afhankelijkheid van een niet-sleutelattribuut van een deel van een samengestelde sleutel wordt genoemd .


    Volledige functionele afhankelijkheid wordt de afhankelijkheid genoemd van een niet-sleutelattribuut van de gehele samengestelde sleutel, en niet van de delen ervan.

    Definitie van transitieve functionele afhankelijkheid: Laten X, Y, Z- drie kenmerken van een relatie. Bij dezetom XY en YZ, maar er is geen omgekeerde correspondentie, dat wil zeggen dat Y niet afhankelijk is van Z, en X niet afhankelijk is van Y. Dan zeggen ze dat Z hangt transitief af van X.

    Definitie van meerwaardige afhankelijkheid: Laat X en Y attributen zijn van een bepaalde relatie. Kenmerk Y hangt veel af van attribuut X, if. Elke X-waarde komt overeen met een set Y-waarden die niet zijn gekoppeld aan andere attributen uit de relatie. Meerwaardige afhankelijkheden kan een “één-op-veel” (1:M), “veel-op-één” (M:1) of “veel-op-veel” (M:M) karakter hebben, dienovereenkomstig aangeduid: X=> Y, Y<=X и X<=>Y. Als een leraar bijvoorbeeld meerdere vakken geeft, en elk vak kan door meerdere leraren worden gegeven, is er sprake van een afhankelijkheid van de volledige naam <=> Item.

    Beschouw het volgende voorbeeld: Stel dat voor het onderwijsgedeelte van de faculteit een database over docenten wordt aangemaakt, die de volgende attributen bevat:

    Volledige naam - achternaam en initialen van de leraar (samenvallen van achternamen en initialen is uitgesloten).

    Positie is de positie die de leraar bekleedt.

    Salaris - salaris van de leraar.

    Ervaring - onderwijservaring. D_Experience - bonus voor anciënniteit.

    Afdeling - het nummer van de afdeling waar de docent is geregistreerd.

    Onderwerp - de naam van het onderwerp (discipline) dat door de leraar wordt gegeven.

    Groep - het nummer van de groep waarin de leraar lessen geeft.

    Lestype - type les gegeven door een leraar in een studiegroep.

    Uitgangshouding LERAAR