Relation (relationel model)

Den stabile version blev tjekket ud den 4. maj 2021 . Der er ubekræftede ændringer i skabeloner eller .

Relation  er et grundlæggende begreb i den relationelle datamodel . Af denne grund kaldes modellen relationel (fra engelsk  relation  - "relationship").

Definition og egenskaber for en relation

Lad et sæt af datatyper T 1 , T 2 , …, T n , også kaldet domæner , være givet, ikke nødvendigvis forskellige. Så er en n -ær relation R , eller en relation R af grad n en delmængde af det kartesiske produkt af mængder T 1 , T 2 , …, T n [1] [2] .

Relationen R består af en header ( skema ) og en body . Headeren er et sæt attributter (navngivne forekomster af domænet i relationsheaderen), og brødteksten er et sæt tuples svarende til [2] headeren . Mere strengt:

Antallet af tupler kaldes relationens kardinaltal ( kardinalitet ), eller relationens potens .

Antallet af attributter kaldes graden eller " aritet " af relationen; en relation med en attribut kaldes unær, med to - binær, og så videre, med n attributter - n -ær. Set fra teoriens synspunkt er en relation med et nul antal attributter også helt korrekt, som enten ikke indeholder tupler, eller indeholder en enkelt tupel uden komponenter (en tom tupel) [2] .

Grundlæggende egenskaber for relationen [1] [2] :

En delmængde af relationsattributter, der opfylder kravene til unikhed og minimalitet (irreducerbarhed), kaldes en potentiel nøgle . Da alle tupler i en relation per definition er unikke, skal der være mindst én kandidatnøgle i enhver relation.

Relationer og tabeller

Relationen har normalt en simpel grafisk fortolkning i form af en tabel, hvis kolonner svarer til attributter, og rækkerne svarer til tupler, og i "cellerne" er der attributværdier i tupler. Men i en stærk relationel model er en relation ikke en tabel , en tupel  er ikke en række , og en attribut  er ikke en kolonne [2] [3] . Udtrykkene "tabel", "række", "kolonne" kan kun bruges i en uformel sammenhæng, forudsat at det er fuldt ud forstået, at disse mere "venlige" udtryk kun er en tilnærmelse og ikke giver en nøjagtig idé om essensen af ​​de begreber, der betegnes [2] [4] .

Som defineret af C.J. Date er en tabel en direkte og sand repræsentation af en eller anden relation, hvis den opfylder følgende fem betingelser:

  1. Der er ingen rækkefølge af linjer fra top til bund (med andre ord, rækkefølgen af ​​linjer indeholder ingen information).
  2. Der er ingen venstre-til-højre rækkefølge af kolonnerne (med andre ord, rækkefølgen af ​​kolonnerne indeholder ingen information).
  3. Ingen duplikerede linjer.
  4. Hvert skæringspunkt mellem en række og en kolonne indeholder præcis én værdi fra det tilsvarende domæne (og intet andet).
  5. Alle kolonner er normale. "Regulariteten" af alle kolonner i en tabel betyder, at der ikke er nogen "skjulte" komponenter i tabellen, som kun kan tilgås ved påkaldelse af en speciel operator i stedet for at henvise til almindelige kolonnenavne, eller som fører til bivirkninger for rækker eller tabeller, når du kalder standardoperatører. Således har strenge for eksempel ingen identifikatorer ud over de normale kandidatnøgleværdier (ingen skjulte "række-id'er" eller "objekt-id'er"). De har heller ikke skjulte tidsstempler [5] .

Eksempel

Lad følgende typer (domæner) angives:

Så består det kartesiske produkt af 18 tupler, hvor hver tupel indeholder tre værdier: den første er et af efternavnene, den anden er den akademiske disciplin, og den tredje er karakteren.

Lad relation R have titel H : { (Efternavn, T 1 ), (Subject, T 2 ), (Score, T 3 )}.

Så kan kroppen af ​​relationen R simulere den virkelige situation og indeholde fem tuples, der svarer til resultaterne af sessionen (forudsat at Petrov ikke bestod eksamen i fysik). Lad os vise forholdet i form af en tabel:

R
Efternavn Disciplin karakter
Ivanov Fysik fire
Ivanov Kemi 3
Petrov Kemi 5
Sidorov Fysik 5
Sidorov Kemi fire

Operationer på relationer

Se også: relationel algebra , relationel regning .

Enhver operation, der resulterer i en relation, falder ind under begrebet en relationel operation og kan bruges i relationel teori og praksis. Det følgende er en liste over otte operationer, der oprindeligt blev foreslået af skaberen af ​​den relationelle model, Edgar Codd . Alle operationer fra listen, undtagen division, er stadig meget brugt, men listen er ikke udtømmende, det vil sige, at der faktisk bruges et meget større antal relationelle operationer.

Noter

  1. 1 2 Dato K.J., 2005 .
  2. 1 2 3 4 5 6 Database i dybden, 2005 .
  3. Intet forhindrer især forholdet i at blive visuelt repræsenteret af en tabel, hvor kolonnerne ikke svarer til attributter, men til tupler, og rækkerne til ikke tupler, men til attributter. Det vil sige, at korrelationen af ​​relationstupler med tabelrækker og relationsattributter med tabelkolonner kun er en hyldest til traditionen, men har ingen teoretisk betingethed.
  4. Det skal huskes, at "tabel" oftest ikke betyder "forhold" som et abstrakt begreb , men en visuel gengivelse af forholdet på papir eller skærm. Forkert og løs brug af udtrykket "bord" i stedet for udtrykket "relation" fører ofte til misforståelser. Den mest almindelige fejl er at tro, at den relationelle datamodel omhandler "flade" eller "todimensionelle" tabeller, når kun visuelle repræsentationer af tabeller kan være det. Relationer er på den anden side abstraktioner og kan hverken være "flade" eller "ikke-flade".
  5. C. J. Dato. Hvad den første normale form virkelig betyder //С. J. dato. Dato på database: Skrifter 2000-2006, Apress, 2006, ISBN 978-1-59059-746-0

Litteratur