EMPS(NAME, SALARY, DEPT)

Relevanta dokument
Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Databasspråket SQL - online.

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Databasspråket SQL - online.

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Grunderna för relationsmodellen!

Databasspråket SQL - online.

Frågeoptimering. Frågeoptimering kapitel 14

Karlstads Universitet, Datavetenskap 1

Frågespråk mot relationsmodellen

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Grunderna i SQL del 1

Databasspråket SQL - online.

Databasdesign. E-R-modellen

Databasspråket SQL - online.

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

Föreläsning 5: Relationsmodellen

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Databaser. Vad du ska lära dig: Ordlista

Tentamen i Databasteknik

Relationskalkyl (RK)

Karlstads Universitet, Datavetenskap 1

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL

Andra relationella språk

Tentamen DATABASTEKNIK - 1DL116

Relationsdatabasdesign 2I-4067 HT99. Relationsalgebra. som resultat!

Programmering II (ID1019) :00-11:00

Prova på-laboration i SQL

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Tentamen Databasteknik

Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat.

Relationsmodellen och syntetisk databasdesign

Språket Python - Del 1 Grundkurs i programmering med Python

Relationsdatabasdesign

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Databaser Design och programmering

Databasteknik. Vad är. Vad är databaser bra till? data? föreläsare: Kjell Lindqvist. och NADA. databaser? och. vad är de bra för?

Skriv ditt sökord i sökrutan och markera rutan för att föreslå ämnesord (Suggest Subject Terms).

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Grunderna i SQL del 1

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Karlstads Universitet, Datavetenskap 1

Introduktion till frågespråket SQL (v0.91)

Lösningsförslag till Exempel tentamen

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

Structured Query Language (SQL)

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Uppsala universitet Institutionen för lingvistik och filologi. Grundbegrepp: Mängder och element Delmängder

Dagens föreläsning. KTH & SU, CSC Databasteknik Föreläsning 10 sid 1

Vad du skall komma ihåg från tidigare föreläsningar. Dagens föreläsning. Evaluering av frågor. Data dictionary

IT i Organisationer och Databasteknik. Frågespråk mot relationsmodellen

Tentamen i Databasteknik

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen

Universitetet: ER-diagram

Föreläsning 9 Exempel

Relationell databasdesign

Övningshäfte 1: Logik och matematikens språk

Räkna med C# Inledande programmering med C# (1DV402)

Mål med lektionen! Repetera och befästa kunskaperna.

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

Exempel-Tentamen III

Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b)

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Föreläsning 3 Dagens föreläsning går igenom

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Svar till tentamen DATABASTEKNIK - 1DL poäng

TDIU01 - Programmering i C++, grundkurs

Datalager och datautvinning

Databasteori. Övningar

Lösningsförslag till Tentamen,

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

Funktionella beroenden - teori

Fortsättningskurs i programmering F 3. Algoritmer i programutveckling II Hugo Quisbert Flödesplaner med selektion

Webbprogrammering, grundkurs 725G54

Vyer, Prepared Statements, Triggers

Begreppen "mängd" och "element" är grundläggande begrepp i matematiken.

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Laborationer - databaser, EDAA20 Programmering och databaser

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Uppdelning. Relationell databasdesign, FB Teori Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

SQL del 2. Christer Stuxberg Institutionen för Informatik och Media

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

Transkript:

Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer från mängteori: Union, Snitt (Intersection), Differens, Kartesisk produkt. Operationer införda för relationsdatabaser: Urval, Projektion, Division, Sammansättning (Join). Exempel DBschema Ett varuhus som har anställda, kunder, leverantörer som man kan beställa från (NAME, SALARY, DEPT) ORDERS(O#, DATE, CUST) CUSTOMERS(NAME, ADDR, BALANCE) SUPPLIES(NAME, ITEM, PRICE) INCLUDES(O#, ITEM, QUANTITY) Att plocka ut data Ex: Lista alla anställda som tjänar över 30000kr Relationen Emps Operation: Urval Villkor: attributet SALARY>30000. SALARY>30000 (Emps) Resultat: alla tupler som matchar villkoret

SALARY>30000 (Emps) Max Macka 31000 Mat Att plocka ut data, forts Resultatet av en relationsalgebraoperation är en ny relation. Kombinationer möjliga Ex: Alla som tjänar mer än 30000 och ändå inte jobbar på kansliet. DEPT <> Kansli ( SALARY>30000 (Emps) ) SALARY>30000 DEPT <> Kansli (Emps) Formellt: V (R) Urval Där V är ett villkor (logiskt uttryck) uppbyggt av attributnamn och värden aritmetiska operatorer < > " = # logiska operatorer " Resultatet är den mängd tupler i R som uppfyller villkoret V. Att plocka ut data, forts. Ex: Vad heter våra anställda Relationen Emps, attributet NAME från alla tupler. Operation: Projektion Attribut: NAME $ NAME (Emps) Resultatet är en relation med bara en kolumn

NAME (Items) Max Macka 31000 Mat Mer kombinationer Var jobbar folk som tjänar mer än 30000? Relation: Operation: först urval, sedan projektion $ DEPT ( SALARY>30000 (Emps)) DEPT ( SALARY>30000 (Emps)) Max Macka 31000 Mat Formellt: A ( R) Projektion Där A är en mängd av attribut i relationen R Attribut som finns i A måste finnas i relationen. Resultat: en relation vars schema har exakt de attribut som finns i A där varje tupel har de värden på attributen som motsvarande tupel i R.

Jobba på mer data Ex: Om vi vill veta vilka människor som finns i våra register (både anställda och kunder)? Relation: Emps och Customers Operation: Union # - men bara på unionskompatibla relationer $ NAME (Emps) # $ NAME (Customers) Alla namn ur båda relationerna NAME (Emps) # NAME (Customers) CUSTOMERS NAME ADDR BALANCE Olle Olle Bgatan 22 +125 Zack Zebra Cgatan 33-200 Judy Giraffe Dgatan 44-50 Kalle Anka Ygatan 55 +43 Max Macka 31000 Mat Formellt: R # S Union Där R och S är två unionskompatibla relationer. Dvs de måste bestå av samma attribut (mer formellt: attributvärdena måste vara ur samma domäner). Resultat: En relation av alla deras tupler. Inga dubletter Jobba på mer data Ex: Om vi vill ha all information om de människor som finns i våra register? Relation: Emps och Customers Operation: Yttre Union - om partiellt unionskompatibla relationer Emps Yttre union Customers Alla attribut ur båda relationerna

Emps Yttre Union Customers ADDR BALANCE Bgatan +125 null null null null null null Max Macka 31000 Mat null null Zack Zebra null null Cgatan 33-200 Judy Giraffe null null Dgatan 44-50 Kalle Anka null null Ygatan 55 +43 Jobba på mer data Ex: Om vi vill veta om vi har anställda som också finns i kundregistret? Relation: Emps och Customers Operation: Snitt $ - men bara på unionskompatibla relationer $ NAME (Emps) $ $ NAME (Customers) Namn som finns i båda relationerna. NAME (Emps) # NAME (Customers) CUSTOMERS NAME ADDR BALANCE Olle Olle Bgatan 22 +125 Zack Zebra Cgatan 33-200 Judy Giraffe Dgatan 44-50 Kalle Anka Ygatan 55 +43 Olle Olle Max Macka 31000 Mat Formellt: R $ S Snitt Där R och S är två unionskompatibla relationer. Resultat: En relation av bara tupler som finns i båda relationerna. Eller en tom mängd.

Jobba på mer data Ex: Sök alla kunder som INTE är anställda Relation: Emps och Customers Operation: Differens " - men bara på unionskompatibla relationer $ NAME (Customer) % $ NAME (Emps) Tar bort Emps ur Customers NAME (Customer) " NAME (Emps) CUSTOMERS NAME ADDR BALANCE Olle Olle Bgatan 22 +125 Zack Zebra Cgatan 33-200 Judy Giraffe Dgatan 44-50 Kalle Anka Ygatan 55 +43 Zack Zebra Judy Giraffe Kalle Anka Max Macka 31000 Mat Formellt: R " S Differens Där R och S är två unionskompatibla relationer. Resultat: en relation med alla tupler som finns i R men inte i S Eller en tom mängd. OBS: R%S # S%R Kombinera data Ex: Vem har beställt vad? Relation: Orders och Includes Operation: först Kartesisk produkt & Orders & Includes Sätter ihop varje tupel i Orders med varje tupel i Includes.

Orders O# DATE CUST 1024 1 jan Zack Zebra 1025 7 jan Kalle Anka Includes O# ITEM QUANTITY 1024 Oxfilé 1.5 1024 Lök 5 1025 Lök 2 1025 Banan 3 1025 Ost 500 Orders # Includes O# DATE CUST O# ITEM QUAN TITY 1024 1 jan Zack Zebra 1024 Oxfilé 1.5 1024 1 jan Zack Zebra 1024 Lök 5 1024 1 jan Zack Zebra 1025 Lök 2 1024 1 jan Zack Zebra 1025 Banan 3 1024 1 jan Zack Zebra 1025 Ost 500 1025 7 jan Kalle Anka 1024 Oxfilé 1.5 1025 7 jan Kalle Anka 1024 Lök 5 1025 7 jan Kalle Anka 1025 Lök 2 1025 7 jan Kalle Anka 1025 Banan 3 1025 7 jan Kalle Anka 1025 Ost 500 Urval ur kombination Tupler där O# är lika Orders.O#=Includes.O# (Orders&Includes) O# DATE CUST O# ITEM QUANTITY 1024 1 jan Zack Zebra 1024 Oxfilé 1.5 1024 1 jan Zack Zebra 1024 Lök 5 1025 7 jan Kalle Anka 1025 Lök 2 1025 7 jan Kalle Anka 1025 Banan 3 1025 7 jan Kalle Anka 1025 Ost 500 Formellt: R # S Kartesisk produkt Resultat: En relation med alla attribut ur både R och S, och alla kombinationer av tupler ur S med tupler ur R Sammansättning (Join) Formellt R VS = V (R&S) Dvs Orders.O#=Includes.O# (Orders&Includes) = Orders Orders.O#=Includes.O#Includes Kallas också Inre Join (Inre sammansättning)

Mer kombinationer Om man vill titta på alla kunder, och, om de har någon aktuell order, även ordernumret och datumet? Operation: Join? Orders O# DATE CUST 1024 1 jan Zack Zebra 1025 7 jan Kalle Anka Customer NAME ADDR BALANCE Olle Olle Bgatan 22 +125 Zack Zebra Cgatan 33-200 Judy Giraffe Dgatan 44-50 Kalle Anka Ygatan 55 +43 Mer kombinationer Customer NAME=CUST Order = NAME=CUST (Customer & Orders) NAME ADDR BALANCE O# DATE Zack Zebra Cgatan 33-200 1024 1 jan Kalle Anka Ygatan 55 +43 1025 7 jan Men det är inte alla kunder Mer kombinationer Operation: Yttre Sammansättning Tar med även tupler ur endera relationen som inte villkoret är uppfyllt för. Customers NAME=CUST Orders NAME ADDR BALANCE O# DATE Zack Zebra Cgatan 33-200 1024 1 jan Kalle Anka Ygatan 55 +43 1025 7 jan Olle Olle Bgatan 22 +125 null null Judy Giraffe Dgatan 44-50 null null Sammansättning Formellt: R V S (inre sammansättning) R V S (vänster yttre s.) R V S (Höger yttre s.) R V S (Full yttre s.) Resultat: alla sammansättningar av tupler ur R med tupler ur S sådana att villkoret V är uppfyllt, plus alla tupler ur R (Vänster yttre) eller S (Höger yttre) eller båda (Full yttre)

Hitta alla som... Ex: Hitta alla som tänker laga fläsk med löksås (som har beställt både stekfläsk och lök) Operation: division Includes Includes (modifierad) O# ITEM 1024 Oxfilé 1024 Lök 1025 Lök 1025 Banan 1025 Ost 1025 Stekfläsk 1026 Lök 1026 Stekfläsk FläskMedLök ITEM Stekfläsk Lök Hitta alla order som innehåller alla saker i FläskMedLök Division Operationer Formellt: R S Där alla attribut i S måste finnas i R Resultat: första halvan av de tupler i R där andra halvan motsvarar ALLA tupler i S. (Dvs för alla tupler i S finns motsvarande grupp tupler i R som har samma värde på de attribut som inte finns med i S. Urval $ Projektion # Union $ Snitt % Differens & Kartesisk produkt Sammansättning inre höger yttre vänster yttre full yttre Division

Övning Vilka av de följande ekvationerna gäller, gäller de alltid eller bara under vissa förutsättningar? 1. V1 ( V2 (R)) = V1 V2 (R) 2. V (R&S) = V (R) &S 3. V ($ A (R)) = $ A ( V (R)) V, V1 och V2 är villkor, A en attributmängd.