Relationer En relation mellem to mængder er en generaliseret funktion En funktion f: A B kan opfattes som en mængde af ordnede (a, b), hvor der til ethvert a A eksisterer netop ét b B, så f(a) = b. Dvs. f er en delmængde af A B, som opfylder ovenstående begrænsning Denne definition kan generaliseres ved at fjerne begrænsningen og lade et element i A være relateret til 0 eller flere elementer i B og omvendt FEN 2013-01-29 Relationer
Definition af relationer En relation R mellem mængderne A og B er en delmængde af A B: R A B = {(a, b) A B a A b B} Ofte kikker vi på relationer, hvor A = B og så taler vi om en relation på A FEN 2013-01-29 Relationer
Eksempler a = b, hvor a A b A: Generelt kan vi skrive ’=’ er en relation på A og vi kan skrive ”(a, b) =” i stedet for ”a = b” Generelt kan vi skrive aRb i stedet for (a, b) R for en relation R på A. FEN 2013-01-29 Relationer
Relationer og grafer En relation kan repræsenteres med en orienteret graf (digraph: directed graph). Fx: A = {1, 2, 3, 4} R = {(1,1),(1,2),(2,1),(2,2), (2,3),(2,4),(3,4),(4,1)} FEN 2013-01-29 Relationer
Ækvivalensrelationer En relation R på en mængde A er en ækvivalensrelation, hvis den er: Refleksiv: a A (aRa) Symmetrisk: a, b A (aRb bRa) Transitiv: a, b, c A ((aRb bRc) aRc) FEN 2013-01-29 Relationer
Øvelse (5 min.) = b) > c) Undersøg, hvilke af følgende relationer på de naturlige tal N: = b) > c) Der er Refleksive Symmetriske Transitive FEN 2013-01-29 Relationer
Øvelse Og den her: Refleksiv? Symmetrisk? Transitiv? A = {1, 2, 3, 4} FEN 2013-01-29 Relationer
Eksempel: kongruensrelation på de naturlige tal Lad relationen ’4’ være defineret ved: a 4 b, hvis a-b er et multiplum af 4, hvor a{0, 1, 2, 3} eller præcist: (a 4 b) def (k Z: (a - b)= k4) Fx er {0, 4, 8, 12, 16, …} kongruente (modulus 4) Er 4 en ækvivalensrelation? Refleksiv? Symmetrisk? Transitiv? Læses: Kongruent modulus 4 FEN 2013-01-29 Relationer
Klassedelinger (eng.: partition) En klassedeling S1, S2,…, Sn af en mængde A er en samling af parvis disjunkte delmængder af A, hvis foreningsmængde er lig med A: A= (i| 1in: Si) hvor Si A og Si Sj = Ø for alle 1 i, j n FEN 2013-01-29 Relationer
Klassedelinger og ækvivalensrelationer En klassedeling af en mængde A definerer en ækvivalensrelation E på A, idet vi kan definere E: aEb ”a og b tilhører samme klasse” Bevis: Først vises, at E er en ækvivalensrelation: 1) Refleksive? 2) Symmetrisk? 3) Transitiv? (Tænk på klasserne som ”spande”) FEN 2013-01-29 Relationer
Vi skal nu vise, at mængderne [a]E for a A er en klassedeling, dvs. Bevis – fortsat Nu skal vi vise, at en ækvivalensrelation definerer en klassedeling: Lad [a]E betegne {x A xEa}, vi kalder [a]E ækvivalensklassen indeholdende a Vi skal nu vise, at mængderne [a]E for a A er en klassedeling, dvs. at foreningsmængden af alle ækvivalensklasserne er lig med A at ækvivalensklasserne er parvis disjunkte Ad 1: Vi skal vise, at ethvert element i A tilhører én af ækvivalensklasserne. Følger trivielt af definitionen af [a]E Ad 2: Øvelse (se Martin, s. 17) FEN 2013-01-29 Relationer
Relationer mellem n>2 mængder En relation kan også defineres mellem mere end én eller to mængder: Givet mængder A1, A2, …, An. En relation mellem disse er da defineret som en delmængde af det kartetiske produkt mellem disse: R A1 A2 … An eller R {(a1, a2, …,an) a1 A1 a2 A2 … an An} En relation mellem n mængder er en mængde af n-tupler (et ordnet par er en 2-tuple, så en n-tuple er et ordnet ”par” med n elementer) FEN 2013-01-29 Relationer
Databaser som relationer En databasetabel kan ses, som en relation mellem de domæner, som tabellen er defineret over: Hermed kan en database opfattes som en mængde af relationer, hvor en relation er en mængde af tupler. FEN 2013-01-29 Relationer
Egenskaber ved relationer: Følger af, at en relation er en mængde i matematisk forstand: der ingen tuple, som optræder mere end en gang ( => der eksisterer altid en primærnøgle) tuplerne er uordnede (vertikalt) attributterne er uordnede (horisontalt) BEMÆRK FORSKELLE TIL TABELLER Afhænger af den præcise definition af mængdeprodukt FEN 2013-01-29 Relationer
Fordele Relationsdatabaser er baseret på en solid matematisk teori, hvilket muliggør, at man ræsonnere formelt om relationsdatabaser: Forespørgselssprog (relationsalgebra/prædikatslogik). Query-optimering (vise ækvivalens mellem forskellige forespørgsler). Normalisering (redundans undgås, og integritet kan sikres). Automatiske værktøjer. Mmm. FEN 2013-01-29 Relationer