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

Relevanta dokument
EMPS(NAME, SALARY, DEPT)

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?!

Grunderna för relationsmodellen!

Databasspråket SQL - online.

Frågeoptimering. Frågeoptimering kapitel 14

Karlstads Universitet, Datavetenskap 1

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

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

Frågespråk mot relationsmodellen

Grunderna i SQL del 1

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

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

Föreläsning 5: Relationsmodellen

Databasdesign. E-R-modellen

Databasspråket SQL - online.

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

Databasspråket SQL - online.

Karlstads Universitet, Datavetenskap 1

Databaser. Vad du ska lära dig: Ordlista

Relationskalkyl (RK)

Tentamen i Databasteknik

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

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

Tentamen Databasteknik

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

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

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

Tentamen DATABASTEKNIK - 1DL116

Andra relationella språk

Programmering II (ID1019) :00-11:00

Prova på-laboration i SQL

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

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

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

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

Relationsmodellen och syntetisk databasdesign

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

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Relationsdatabasdesign

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).

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

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

Lösningsförslag till Exempel tentamen

Structured Query Language (SQL)

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

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

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

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

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

Tentamen i Databasteknik

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

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen

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

Universitetet: ER-diagram

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

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

Föreläsning 9 Exempel

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

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

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

Relationell databasdesign

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

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

Lösningsförslag till Tentamen,

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

Exempel-Tentamen III

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

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

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

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

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.

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

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

Tentamen i Databasteknik

Sample exam questions. Database exam TIG058

TDIU01 - Programmering i C++, grundkurs

Datalager och datautvinning

Databasteori. Övningar

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

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

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

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Funktionella beroenden - teori

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

Webbprogrammering, grundkurs 725G54

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

Laborationer - databaser, EDAA20 Programmering och databaser

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 EMPLOYEE(key,name,salary,manager) SALE(debit,item,quantity) ITEM(key,name,price,qoh) DEBIT(key,sdate,employee,account) INCLUDES(O#, ITEM, QUANTITY) ORDER (O#, DATE, CUST) Att söka 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)? Operation: Union # - men bara på unionskompatibla relationer $ NAME (Emps) # $ NAME (Customers) Alla namn ur båda relationerna " NAME (Emps) # " NAME (Customers) CUSTOMERS 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? 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? Operation: Snitt $ - men bara på unionskompatibla relationer $ NAME (Emps) $ $ NAME (Customers) Namn som finns i båda relationerna.

" NAME (Emps) $ " NAME (Customers) CUSTOMERS 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 Operation: Differens # - men bara på unionskompatibla relationer $ NAME (Customer) % $ NAME (Emps) Tar bort Emps ur Customers " NAME (Customer) # " NAME (Emps) CUSTOMERS 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 Naturlig sammansättning Natural join Formellt R*S = V (R&S) Där V är villkoret att de attribut som heter lika ska ha lika värde på i de utvalda tuplerna. Sammansättning (Join) Mer kombinationer 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) 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

Mer kombinationer Customer NAME=CUST Order = NAME=CUST (Customer & Orders) O# DATE 1024 1 jan 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 O# DATE 1024 1 jan 1025 7 jan null null null null Sammansättning Hitta alla som... 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) 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 Formellt: R S Division 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.

Operationer Övning Urval $ Projektion # Union $ Snitt % Differens & Kartesisk produkt Sammansättning inre höger yttre vänster yttre full yttre Division 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.