Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2



Relaterede dokumenter
Relationel Algebra og SQL

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form

Algebra. Denition. Signatur: et antal sorter eller typer: (simple eller strukturerede). et antal konstantsymboler med type, og

Fagligt Nyhedsbrev. Pædagogisk Assistentuddannelse er nu en realitet. Til pædagogmedhjælpere og andre interesserede!

Højere Teknisk Eksamen maj Matematik A. Forberedelsesmateriale til 5 timers skriftlig prøve NY ORDNING. Undervisningsministeriet

Introduktion til SQL queries

BLIV EKSPERT I DIN TEMPERAMENTSBOMBE

Eksamen Uden hjælpemidler - normeret til 60 minutter

Noter til C# Programmering Selektion

SQL-opgaver 5 løsning

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

JAR Øvelse nr. 2. JAR-Manual, Version 1.0. Avanceret søgning. Regionsvejledning

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form

JavaScript. nedarvning.

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Skriftlig eksamen i Datalogi

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Appendix C - Databeskrivelse

Bestillingsskema - skolemad

Regulære udtryk og endelige automater

SPØRGSMÅL OG SVAR: GENHUSNING I FORBINDELSE MED RENOVERING I AAB AFDELING 50

STUDIERETNINGSPROJEKTET ÅSG 2015

Begivenheder i Kerteminde Sted : Fjord & Bælt,, Pasteltegning Sted : Lucy Bergstrøm,, Sted : Fjord & Bælt,,

Databasesystemer. IT Universitetet i København 7. juni 2005

Vejledning for anvendelse af PensionsIndberetningssystem PI

Generelle ændringer i indberetningen til Tilbudsportalen 15. marts 2016

HJØRRING IDRÆTSFORENING OLD BOYS Generalforsamling 3. marts 2015 på Landlyst

Udsagnslogik. Anker Mørk Thomsen. 6. december 2013

Logik. Af Peter Harremoës Niels Brock

Løsning af skyline-problemet

Boolsk algebra For IT studerende

t a l e n t c a m p d k Matematik Intro Mads Friis, stud.scient 27. oktober 2014 Slide 1/25

Nyheder i Untis KMD Educa Skema

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

FORGRENINGSLOGIK OG CALCULATED FIELDS. Opsætning af forgreningslogik Felttypen Calculated field

BRUGERVEJLEDNING CP-508LCD ALARMCENTRAL

Passager: Fanø. Leveret af Bus & Tog Rejsedata JANUAR-DECEMBER 2016

Databaser Obligatorisk opgave 1

DPSD undervisning. Vejledning til rapport og plan opsætning

Den ideelle operationsforstærker.

ÅRSPLAN M A T E M A T I K

Strukturprogram og app for alle med kognitive udfordringer

Strukturprogram og app for alle med kognitive udfordringer

Vejledning til CVRselvbetjeningsløsning

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

Madplan for uge

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2

INDHOLDSFORTEGNELSE INTRODUKTION SØGERESULTAT

Velkommen. Power point vil efter mødet kunne ses på.

Fra Informationsmodel til en DTD

Søren Løbner (lobner) ddb Databaser

Anklagemyndighedens Vidensbase

Naturstyrelsens Referencelaboratorium for Kemiske og Mikrobiologiske Miljømålinger NOTAT

Passager: Fanø. Leveret af Bus & Tog Rejsedata JANUAR-NOVEMBER 2017

Allan C. Malmberg. Terningkast

Fredagsbrev!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Århus&Friskole&fredag&d.30!01##2015"!

Tolv timer - Lysets foranderlighed

På dansk ser det underligt ud hvis et substantiv står helt»bart«uden nogen form for bestemmer. Se for eksempel:

Fusionsgrundlag for genbrugspladser

18 Multivejstræer og B-træer.

Objektorientering. Programkvalitet

BOSK F2011, 1. del: Udsagnslogik

Regulære udtryk og endelige automater. Ugens emner

Import af rekursivt (parent-child) hierarki i Palo

Python programmering. Per Tøfting. MacFest

Videregående Programmering for Diplom-E Noter

Matematiske metoder - Opgaver

Vejledning til oprettelse af brugere på MIT DANSKE ARK. Udføres af virksomhedsrepræsentant eller lokaladministrator. Indholdsfortegnelse:

VEJLBY forår Januar. Februar. Tirsdag d. 5. januar kl Gudstjeneste Der drikkes eftermiddagskaffe bagefter.

ISO 27001/27002:2013 i SecureAware Policy TNG

Algebra INTRO. I kapitlet arbejdes med følgende centrale matematiske begreber:

Lockout-skema for uge 15 ( april 2013)

2. Kravspecifikation. 2.1 Generelt Papirsække. 2.2 Fejl og mangler

Peder Troldborg's træningsdagbog Rapport med estimat over træningsmængde (samlet og specifik),

Flow-øvelse - Både. LEANREJSEN - En guide til leanledelse. Adobe full screen: Ctrl + L. Leanrejsen - En guide til leanledelse

Vælg trygt din mad fra Favrskov Mad

Introduktion til funktioner, moduler og scopes i Python

Nyt fra Skovgården December 2015

DANSK / EUROPÆISK STANDARD DS/EN 1838

O B T G O M B R Y D N I N G & T Y P O G R A F I N I K O L A J V A N G K I L D E M E D I E G R A F I K E R S V E N D E P R Ø V E

Nyt fra Skovgården Maj 2016

Vejledning til Photofiltre nr. 117 Side 1

Mundtlig prøve i Matematik

Ventetiden på apoteket halveret siden 2009

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit if (indkomst > ) topskat = (indkomst ) * 0.

Dansk-historie-opgave 1.g

Årsplan for matematik 2.b (HSØ)

EPOS LØN TIPS & TRICKS NR. 6 EKSPORT VIA SKABELON TIL EXCEL

Kolding Triathlon Klub

Håndtering af penge Et opslagsværk Café Rejseladen

Mundtlig prøve i Matematik

Præsentation of SHOPUS-projektet og Ny Nordisk Hverdagsmad

Nuværende madordning Allerød Kommune plejecentre. kostformer/diæter leveres. Kost til småtspisende: Protein: 18 E% Kulhydrat: E% Fedt: 50 E%

Ansøgning om bolig. Boligerne Eksempler på boligstørrelser og husleje

viden vækst balance Æggelab Æggets madtekniske egenskaber Æggelab 1/15

Abstrakte datatyper C#-version

Miniprojekt i Programmering (MIP) for DAT2 og SW2, Forår 2012

Om at udregne enkeltstående hexadecimaler i tallet pi

Fredagsbrev!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Århus&Friskole&fredag&d.24/10&&2014!!

Kombiner den rigtige sort og grundstamme

Transkript:

Relationel Algebra Indholdsfortegnelse Relationel Algebra...1 Indholdsfortegnelse...1 Operationer på den relationelle model...2 Mængdeoperationerne...2 Union...2 Difference...2 Intersection...3 Hvilke relationer er union-kompatible?...3 Andre egenskaber ved operationerne...3 Kartesisk Produkt...4 De specifikke relationelle operationer - Selektion og Projektion...4 Selektion operationen...4 Sammenligningsoperatorer...5 Logiske operatorer...5 Eksempler på Selektion...5 Projektion operationen...7 Eksempler på Projektion...8 Kombineret anvendelse af Selektion og Projektion...8 Aggregatfunktioner...9 Eksempler på aggregatfunktioner...9 Join-operationer...10 Generisk join...10 Eksempler på generiske join-operationer...11 Natural Join-operationer...12 Ydre Join (outer join)...12 Venstre ydre join...13 Højre ydre join...13 Fuld ydre join...13 Ydre Union (Outer Union)...14 RelationelAlgebra Side 1 af 15

Operationer på den relationelle model Relationel Algebra er en samling af Operationer på Relationer. (husk den særlige og korrekte betydning af begrebet relation!) Relationerne er operander og resultatet af en operation er en anden relation. Man skelner mellem to hovedtyper af relationelle operationer: 1. Mængdeoperationerne (Set operations): Union, Intersection, Difference og Kartesisk produkt. 2. De specifikke relationelle operationer: Selektion, Projektion, Join, Division Mængdeoperationerne Vi bruger følgende relationer: R og S R Fornavn Efternavn Alder Villy Smith 22 Hanne Green 28 Marie Keldsen 23 Tom Johansen 32 S Fornavn Efternavn Alder Frederik Gundersen 36 Hanne Green 28 Dennis Markussen 27 Union R S (Foreningsmængden) Relation med tupler fra R og S med evt. duplikater fjernet. Difference R - S (Mængdedifferensen) Relation med tupler fra R men ikke fra S RelationelAlgebra Side 2 af 15

Intersection R S (Fællesmængden) Relation med tupler som findes både i R og S. Resultaterende relationer: R S Fornavn Efternavn Alder Villy Smith 22 Hanne Green 28 Marie Keldsen 23 Tom Johansen 32 Frederik Gundersen 36 Dennis Markussen 27 R - S Fornavn Efternavn Alder Villy Smith 22 Marie Keldsen 23 Tom Johansen 32 R S Fornavn Efternavn Alder Hanne Green 28 Hvilke relationer er union-kompatible? Relationernes attributter behøver ikke være identiske (ie: have samme attributnavn) for at man kan udføre operationerne: union, intersection og difference. De skal imidlertid have samme relationsgrad (ie: antal attributter), og korresponderende attributter skal have samme domæne (ie: attributtens datatype og størrelse). Andre egenskaber ved operationerne Union, Intersection og difference operatorer må kun anvendes ved union-kompatible relationer. Union og Intersection er kommutative operationer, idet R S = S R og R S = S R Difference operationen er IKKE kommutativ, idet R - S = S - R RelationelAlgebra Side 3 af 15

Kartesisk Produkt Resultatet af operationen er en relation, der indeholder alle kombinationer af tupler fra to relationer. R Fornavn Efternavn Alder Villy Smith 22 Marie Keldsen 23 Tom Johansen 32 S Hovedret DanskBøf Kylling Dessert Rødgrød BananaSplit R S Fornavn Efternavn Alder Hovedret Dessert Villy Smith 22 DanskBøf Rødgrød Villy Smith 22 Kylling BananaSplit Marie Keldsen 23 DanskBøf Rødgrød Marie Keldsen 23 Kylling BananaSplit Tom Johansen 32 DanskBøf Rødgrød Tom Johansen 32 Kylling BananaSplit De specifikke relationelle operationer - Selektion og Projektion Både Selektion og Projektion er unære operationer (ie: de anvender kun én operand). Selektion operationen Anvendt symbol: σ (sigma). Selektion operationen fungerer som et filter på en relation ved at den kun returnerer et bestemt antal tupler. Den resulterende relation får samme relationsgrad som den originale relation. Den resulterende relation kan få færre tupler end den originale relation. De tupler, der returneres er afhængige af en kondition, (betingelse) som er en del af selektion operationen. Eksempel : σ C (R) returnerer kun de tupler i R, som tilfredsstiller konditionen C En kondition C kan bestå af enhver kombination af sammenlignende eller logiske operatorer som opererer på R's attributter. RelationelAlgebra Side 4 af 15

Sammenligningsoperatorer Sammenligningsoperatorer, (relational operators), er følgende: (øverste tabelrække viser de sædvanlige symboler i sproget C (C++) eller Java, og nederste tabelrække de traditionelle symboler i relationel algebra) Lig med Mindre end Større end Større end eller lig med Mindre end eller lig med Forskellig fra = = < > > = < =! = = < > Logiske operatorer Logiske operatorer er følgende: (igen er sidste række symbolerne fra relationel algebra) Og Eller Ikke &&! Sandhedstabellerne for de logiske operatorer er som følger: T F T T F F F F T F T T T F T F T F F T Eksempler på Selektion Eksemplerne anvender relationen ANSAT med følgende tupler og attributter: RelationelAlgebra Side 5 af 15

Navn Lokale Afdeling Stilling Smith 400 EDB Assistent Johansen 220 Regnskab Fuldmægtig Green 160 Regnskab Assistent Brun 420 EDB AfdLeder Smith 500 Finans AfdLeder Opgave 1: Udvælg kun de ansatte i EDB afdelingen: Operation Kondition Relation σ Afdeling = 'EDB' ANSAT Formel: σ Afdeling= 'EDB' (ANSAT) Navn Lokale Afdeling Stilling Smith 400 EDB Assistent Brun 420 EDB AfdLeder Opgave 2: Udvælg kun Ansatte ved Navn Smith, som har Stillingen Assistent. Operation Kondition Relation σ Navn = 'Smith' Stilling = 'Assistent' ANSAT Formel: σ Navn = 'Smith' Stilling = 'Assistent' (ANSAT) Navn Lokale Afdeling Stilling Smith 400 EDB Assistent RelationelAlgebra Side 6 af 15

Opgave 3: Udvælg kun de Ansatte, som er enten har stillingen AfdLeder eller er i Regnskabs-Afdelingen Operation Kondition Relation σ Stilling = 'AfdLeder' Afdeling= 'Regnskab' ANSAT Formel: σ Stilling = 'AfdLeder' Afdeling= 'Regnskab' (ANSAT) Navn Lokale Afdeling Stilling Brun 420 EDB AfdLeder Johansen 220 Regnskab Fuldmægtig Green 160 Regnskab Assistent Smith 500 Finans AfdLeder Opgave 4: Udvælg kun de Ansatte, som IKKE er i EDB-afdelingen ELLER har stillingen Fuldmægtig: Operation Kondition Relation σ (Afdeling= 'EDB' Stilling = 'Fuldmægtig') ANSAT Formel: σ (Afdeling= 'EDB' Stilling = 'Fuldmægtig') (ANSAT) Navn Lokale Afdeling Stilling Green 160 Regnskab Assistent Smith 500 Finans AfdLeder Projektion operationen Projektion er som tidligere nævnt også en unær operation (anvender kun én operand). Anvendt symbol: Π (pi). Projektion begrænser antallet af attributter, som vil blive returneret fra den originale relation Den resulterende relation vil have det samme antal tupler som den originale relation. Relationsgraden på den resulterende relation kan være lig med eller mindre end i den originale relation. Syntakseksempel: Π attributliste (R) Attributliste omfatter de attributter, der skal vises i den resulterende relation, og (R) er navnet på den originale relation RelationelAlgebra Side 7 af 15

Eksempler på Projektion Vi genanvender relationen ANSAT fra det foregående. Opgave 5: Vis kun Navn og Afdeling fra tuplerne i ANSAT Syntaks: Π Navn,Afdeling (ANSAT) Navn Smith Johansen Green Brun Smith Afdeling EDB Regnskab Regnskab EDB Finans Kombineret anvendelse af Selektion og Projektion Selektion og Projektion operationerne kan kombineres. Eksempel på kombineret brug: Opgave 6: Vis Navn på alle Ansatte i EDB-afdelingen Syntaks: Π Navn (σ Afdeling= 'EDB' (ANSAT)) Navn Smith Brun Opgave 7: Vis Navn og Stilling på de Ansatte, som IKKE er i EDB-Afdelingen ELLER har stillingen Fuldmægtig. Syntaks: Π Navn, Stilling (σ (Afdeling= 'EDB' Stilling ='Fuldmægtig') (ANSAT)) RelationelAlgebra Side 8 af 15

Navn Green Smith Stilling Assistent AfdLeder Aggregatfunktioner Aggregatfunktioner er operationer, der opererer på én af relationens attributter vertikalt gennem dens tupler. SUM MINIMUM (MIN) MAXIMUM (MAX) AVERAGE, MEAN, MEDIAN (AVG, MEAN,MED) COUNT Aggregatfunktioner returnerer en simpel (ie: ikke sammensat) værdi. Syntaks: I Funktionsnavn (attributnavn) (Relationsnavn) Eksempler på aggregatfunktioner Vi genbruger delvis den originale relation ANSAT fra før: Navn Lokale Afdeling Gage Smith 400 EDB 24000 Johansen 220 Regnskab 32000 Green 160 Regnskab 21000 Brun 420 EDB 41000 Smith 500 Finans 37000 Opgave 8: Find minimums gagen! Syntaks: I MIN (Gage) (ANSAT) MIN(Gage) 21000 Opgave 9: Find gennemsnits-gagen Syntaks: I AVG (Gage) (ANSAT) RelationelAlgebra Side 9 af 15

AVG(Gage) 31000 Opgave 10: Tæl antallet af Ansatte i EDB-afdelingen Syntaks: I COUNT (Navn) ( σ Afdeling = 'EDB' (ANSAT)) COUNT(Navn) 2 Kommentar: Funktionen skal have et attributnavn at arbejde på, vi vælger attributten Navn, efter først at have anvendt en Selektion operation til at returnere en ny relation, der kun indeholder tupler med afdeling = 'EDB' Opgave 11: Find den totale gage-sum for Regnskabs-afdelingen Syntaks: I SUM (Gage) (σ Afdeling = 'Regnskab' (ANSAT)) SUM(Gage) 155000 Join-operationer Generisk join Join operationer sammenføjer to relationer til én, idet deres attributter og tupler kombineres på en specificeret måde. Join-operatorens argumenter er attributnavne fra begge de to relationer, der ønskes sammenføjet. Generisk Join symbolet er: RelationelAlgebra Side 10 af 15

Eksempler på generiske join-operationer Vi genbruger den tidligere anvendte relation ANSAT: Navn Lokale Afdeling Gage Smith 400 EDB 24000 Johansen 220 Regnskab 32000 Green 160 Regnskab 21000 Brun 420 EDB 41000 Smith 500 Finans 37000 Desuden findes relationen PRIVAT med følgende indhold: Navn Telefon Firmabil Gratiale Smith 6612 1414 Null 18000 Johansen 6611 1337 XA24.547 35000 Brun 6579 4453 TA54.431 35000 Smith 6224 2423 OE65.561 25000 Boss Hemmeligt KK18.111 150000 Opgave 12: Find al information om hver Ansat fra begge relationer: Syntaks: Relation 1 Operator Kondition Relation 2 ANSAT Navn = Navn PRIVAT Navn Lokale Afdeling Gage Navn Telefon Firmabil Gratiale Smith 400 EDB 24000 Smith 6612 1414 Null 18000 Johansen 220 Regnskab 32000 Johansen 6611 1337 XA24.547 35000 Brun 420 EDB 41000 Brun 6579 4453 TA54.431 35000 Smith 500 Finans 37000 Smith 6224 2423 OE65.561 25000 Join operationer, hvor konditionens operator er = (lig med) kaldes for Equi-joins. Konditionen kan anvende alle sammelignende og logiske operatorer som vist på side 4. Bemærk, at attributter med samme navn gentages i den resulterende relation. RelationelAlgebra Side 11 af 15

Opgave 13: Find al information om Ansatte, hvis gratiale overstiger deres gage. Syntaks: Relation 1 Operator Kondition Relation 2 ANSAT (Navn = Navn) (Gratiale > Gage) PRIVAT Navn Lokale Afdeling Gage Navn Telefon Firmabil Gratiale Johansen 220 Regnskab 32000 Johansen 6611 1337 XA24.547 35000 Natural Join-operationer. Bemærk som tidligere nævnt, at den generiske join operation returnerer en relation, hvor fælles attributter gentages. Natural Join operationen fjerner disse duplikate attributter. Natural Join symbolet er * Natural join anvendes som en Equi-Join på de fælles attributter, hvoraf den ene (duplikatet) fjernes i den resulterende relation. Eksempel: Syntaks: Relation 1 Operator Relation 2 ANSAT * PRIVAT (attributten Navn forekommer kun én gang) Navn Lokale Afdeling Gage Telefon Firmabil Gratiale Smith 400 EDB 24000 6612 1414 Null 18000 Johansen 220 Regnskab 32000 6611 1337 XA24.547 35000 Brun 420 EDB 41000 6579 4453 TA54.431 35000 Smith 500 Finans 37000 6224 2423 OE65.561 25000 Ydre Join (outer join) Vi har hidtil udelukkende arbejdet med join operationer, der returnerer en relation med tupler, hvor de attributter vi opererer på, har matchende værdier Ydre join operationer kan imidlertid sammenføje de to originale relationer til en resulterende relation, hvor RelationelAlgebra Side 12 af 15

ikke matchende tupler medtages. Der findes 3 typer af ydre join operationer: 1. Venstre ydre join (Left Outer Join) medtager alle tupler fra relationen til venstre for konditionsudtrykket, men kun de tupler, der matcher iflg. konditionen fra relationen til højre for konditionsudtrykket. 2. Højre ydre join (Right outer Join) medtager alle tupler fra relationen til højre for konditionsudtrykket, men kun de tupler, der matcher iflg. konditionen fra relationen til venstre for konditionsudtrykket 3. Fuld ydre join (Full Outer Join) medtager alle tupler fra begge relationer Eksempler: Venstre ydre join ANSAT PRIVAT Navn Lokale Afdeling Gage Telefon Firmabil Gratiale Smith 400 EDB 24000 6612 1414 Null 18000 Johansen 220 Regnskab 32000 6611 1337 XA24.547 35000 Green 160 Regnskab 21000 Null Null Null Brun 420 EDB 41000 6579 4453 TA54.431 35000 Smith 500 Finans 37000 6224 2423 OE65.561 25000 Højre ydre join ANSAT PRIVAT Navn Lokale Afdeling Gage Telefon Firmabil Gratiale Smith 400 EDB 24000 6612 1414 Null 18000 Johansen 220 Regnskab 32000 6611 1337 XA24.547 35000 Brun 420 EDB 41000 6579 4453 TA54.431 35000 Smith 500 Finans 37000 6224 2423 OE65.561 25000 Boss Null Null Null Hemmeligt KK18.111 150000 Fuld ydre join ANSAT PRIVAT RelationelAlgebra Side 13 af 15

Navn Lokale Afdeling Gage Telefon Firmabil Gratiale Smith 400 EDB 24000 6612 1414 Null 18000 Johansen 220 Regnskab 32000 6611 1337 XA24.547 35000 Green 160 Regnskab 21000 Null Null Null Brun 420 EDB 41000 6579 4453 TA54.431 35000 Smith 500 Finans 37000 6224 2423 OE65.561 25000 Boss Null Null Null Hemmeligt KK18.111 150000 Ydre Union (Outer Union) Ydre Union operationen anvendes til sammenlægning af partielt unionkompatible relationer. Anvendt symbol: * Eksempel: Vi har følgende 2 relationer: 1. KOSTPLAN Ugedag Mandag Tirsdag Onsdag Torsdag Fredag Lørdag Søndag Middagsret Stegt Flæsk Dansk Bøf Kogt Torsk Frikadeller Spaghetti Dyreryg Kylling 2. LIVRET Navn Hr. Hansen Hr. Nielsen Frk. Brun Frk. Sort Hr. Carlsen Frk. Bramsen Lille Ida Middagsret Dansk Bøf Dansk Bøf Kylling Dyreryg Frikadeller Spaghetti Røde Pølser RelationelAlgebra Side 14 af 15

Opgave 14: Udfør en outer union af de to relationer: KOSTPLAN * LIVRET Middagsret Navn Ugedag Stegt Flæsk Null Mandag Dansk Bøf Hr. Hansen Tirsdag Dansk Bøf Hr. Nielsen Tirsdag Kogt Torsk Null Onsdag Frikadeller Hr. Carlsen Torsdag Røde Pølser Lille Ida Null Spaghetti Frk. Bramsen Fredag Dyreryg Frk. Sort Lørdag Kylling Frk. Brun Søndag RelationelAlgebra Side 15 af 15