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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Relationsalgebra Tilldelning := Relationsalgebran är sluten: Med hjälp av dessa operatorer kan andra (icke-primitiva) operatorer definieras: Icke-primitiva operatorer R 1 op R 2 R relation relation relation theta-join θ ekvi-join naturlig join X snitt division ((R 1 op R 2) op R ) op R 4 Tar en eller två tabeller som argument (indata). Producerar en ny tabell som resultat! 1 av 52 Projektion π - Unär operator π A1, A2,...An (Relationsnamn) Vertikal delmängd av attribut ANSTÄLLD Projektion innebär att välja ut ett antal attribut ur en relation. p,lön ANSTÄLLD Projektion Lön Chef Avd Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym Lön Per Kvist Bo Gren Sten Rot Nils Hed 0000 Eva Berg 5000 attribut t s (π A1,A2,...An (R)) = antalet attribut, dvs just här = n π A1,A2,...An (R) R, vanligen R Omordning av attribut möjligt via π π Lön, (ANSTÄLLD) Lön Per Kvist Bo Gren Sten Rot Nils Hed Eva Berg 2 av 52

2 ANSTÄLLD Selektion innebär att man väljer ut ett antal tupler ur en relation baserat på något villkor. s Avd=Parfym ANSTÄLLD Selektion σ - Unär operator Horisontelll delmängd av rader σ villkor (R) Enkelt villkor: attribut θ attribut attribut θ värde, där θ {=,, <, >,, } Sammansatt villkor: villkor operator villkor där operator {NOT, AND, OR} Selektion Lön Chef Avd Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym Lön Chef Avd Bo Gren Eva Berg Parfym Eva Berg 5000 Eva Berg Parfym t s (σ villkor (R)) = t s (R) σ villkor (R) R av 52 Kartesisk product A B (eller ibland A * B) ska tolkas som alla rader i A kombinerade med alla rader i B A a b c B x y A B a x a y b x b y c x c y t s (A B) = t s (A) + t s (B) A B = A B 4 av 52

3 Kartesisk produkt, ett exempel till ANSTÄLLD Lön Chef Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym AVDELNING Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 ANSTÄLLD AVDELNING Lön Chef Avd Anamn Våning Och så vidare på samma sätt... Eva Berg Eva Berg Parfym Eva Berg Eva Berg Parfym Eva Berg Eva Berg Parfym Eva Berg Eva Berg Parfym Eva Berg Eva Berg Parfym Leksaker Livsmedel Parfym Skor Trädgård Leksaker Livsmedel Parfym Skor Trädgård Totalt har ANSTÄLLD AVDELNING 25 st rader! (ANSTÄLLD har 5 rader och AVDELNING har 5 rader = totalt 5*5 st rader). 5 av 52 θ JOIN ( theta-join ) där θ {=,, <, >,, } ANSTÄLLD Avd Pia 5 Mia Ken AVDELNING Avd A 5 Bröd 1 Ost Vin ANSTÄLLD θ AVDELNING Anställd.Avd = Avdelning.Avd Anst. Avd. Avd Avd Anamn Pia Mia Ken 5 5 Bröd Vin Vin t s (AθB) = t s (A) + t s (B) AθB A B Här bildas den nya tabellen genom att matcha kolumnvärden (här kolumen Avd) från två tabeller. Om jämförelsevillkoret är = talar man om en equi-join. Observation: σ θ-villkor (A B) Α θ θ-villkor B 6 av 52

4 NATURAL JOIN ANSTÄLLD Avd AVDELNING Avd A ANSTÄLLD X AVDELNING Avd Anamn Pia 5 5 Bröd Pia 5 Bröd Mia 1 Ost Mia Vin Ken Vin Ken Vin En NATURAL JOIN är en EQUI-JOIN där man projicerat bort ett av de ingående JOIN-attributen (här tar vi bort dupliceringen av JOINattributet Avd ). En NATURAL JOIN förutsätter att JOIN-attributet (attributen) heter likadant i det två tabeller som ska joinas (i annat fall blir NATURAL JOIN samma sak som Cartesisk produkt). Observation: π(σ =-villkor (A B)) Α X B 7 av 52 Övning i relationsalgebra ANSTÄLLD(, Lön, Chef, Avd) Vad innebär följande uttryck i naturligt språk? p (s Lön > (ANSTÄLLD)) Skriv ett relationsalgebraiskt uttryck som ger namnen på cheferna för de anställda som tjänar mer än på skoavdelningen. AVDELNING ANSTÄLLD Lön Chef Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 π Chef (σ Lön>20000 AND Avd= Sko (ANSTÄLLD)) 8 av 52

5 Övning i relationsalgebra ANSTÄLLD(, Lön, Chef, Avd) AVDELNING(Anamn, Våning) Skriv ett relationsalgebraiskt uttryck som ger namn och lön för de anställda som arbetar på andra våningen. Metod I (flera steg): Rätt_avdelningar := σ Våning=2 (AVDELNING) Rätt_anställda := ANSTÄLLD θ Avd=Anamn Rätt_avdelningar Rät_uppgifter_om_anställda := π, Lön (Rätt_anställda) Metod II (ett enda långt relationsalgebraiskt uttryck): π, Lön (ANSTÄLLD θ Avd=Anamnσ Våning=2 (AVDELNING)) 9 av 52 Union compatibility Somliga av de relationsalgebraiska operatorerna kräver att de tabeller som de opererar på ska vara unionskompatibla. Detta betyder att de två tabellerna måste ha: samma grad (lika många attribut/kolumner) attribut som motsvarar varandra måste ha samma domän UNION, SNITT och DIFFERENS är unionskompatibla operatorer. Ska man ta unionen av två tabeller måste tabellerna ha lika många kolumner och de par av kolumner som svarar mot varandra måste vara av samma typ (ha samma domän). A UNION B? A UNION B? A UNION B! A B A B A B a b a b a b a b c a b a b a 1 a x a 1 a 1 m a x b x a 2 a y a 2 a 2 n a y a m b 2 b x b 2 b 2 o b x b x 10 av 52

6 UNION A Fido Karo Mindy Ossi Ras Pudel Dvärgtax B Fido Emir Lady Morris Ras Schäfer Welsh Corgie Alla rader som finns i A plus alla rader som finns i B A B Fido Karo Mindy Ossi Emir Lady Morris Ras Pudel Dvärgtax Schäfer Welsh Corgie Observation: A Β = Β Α t s (A B) = t s (A) = t s (B) A B A + B max( A, B ) 11 av 52 SNITT (INTERSECT) A Fido Karo Mindy Ossi Ras Pudel Dvärgtax B Fido Emir Lady Morris Ras Schäfer Welsh Corgie A B Fido Ras Alla rader som finns i både A och B Observation I : A Β = Β Α t s (A B) = t s (A) = t s (B) A B min( A, B ) 12 av 52

7 DIFFERENCE (MINUS) A Fido Karo Mindy Ossi Ras Pudel Dvärgtax B Fido Emir Lady Morris Ras Schäfer Welsh Corgie A MINUS B Karo Mindy Ossi Ras Pudel Dvärgtax Alla tupler som finns i A men inte i B t s (A B) = t s (A) = t s (B) A B A Observation: A - B B - A 1 av 52 Differens fortsättning... Differens är användbart för frågor av typ: Ta fram alla som inte gjort ngt/helt saknar en viss egenskap etc. T ex Ta fram alla personer som aldrig ätit glass PERSON GLASS Glass Päronsplit ÄTANDE Glass Päronsplitt Päronsplit 1. Skapa en relation som som innehåller alla personer som har ätit glass: GLASSÄTARE := π (ÄTANDE) 2. Dra sen bort denna mängd tupler från relationen PERSON (dvs mängden av alla personer): ALDRIG_ÄTIT_GLASS := PERSON - GLASSÄTARE Observera att man måste projicera ut från ÄTANDE eftersom differens kräver att de ingående relationerna ska vara unionskompatibla! 14 av 52

8 A x x x y y z z z B m n o m n m n o B m n o Kvot R S Vi har två relationer R och S. R S A x z För att förstå vad R KVOT S är kan man tänka på ungefär följande sätt: Vilka kolumner kommer resultatet att innehålla: Jo R - S dvs de kolumner som förekommer i R men inte i S. I vårt fall blir det kolumnen A i R. Vilka kolumn-värden kommer med i kolumnen A? Jo alla de A-värden i R som är relaterade till ALLA B- värden i S. I vårt fall är detta sant för A-värden x och z. Dvs x har ett B-värde för både m,n och o. Det samma gäller z. A-värdet y kommer inte med eftersom det saknar ett B-värde. o. 15 av 52 R Resultat A 2 A 1 1 A 2 a A 1 a A 1 1 a 2 a 2 1 a a 2 a 1 2 a 2 S Kvot, forts. R(A 1,..., A n, A n+1,..., A n+m) S(A n+1,..., A n+m) R S = Resultat(A 1,..., A n) Varje A 1,...A n - del av en R-tuppel ( huvudet ) har A n+1,...a n+m - del ( svansen ) som är lika med var och en av S-tupplerna, till vänster är n=1 och m=2. A 1 1 t s (A B) = t s (A) - t s (B) A B A För att kunna ta kvoten mellan två relationer måste nämnarens kolumner uppfylla kraven på unionskompatibilitet med en delmängd av täljarens kolumner (mao nämnaren måste vara lika med svansen i täljaren) 16 av 52

9 Kvot fortsättning... Kvot är användbart för frågor av typ: Ta fram alla som gjort allt/har alla egenskaperna etc. T ex Ta fram alla som ätit av alla glass-sorterna ÄTANDE Glass Päronsplitt Päronsplit GLASS Glass Päronsplit ÄTANDE GLASS KVOT kallas även DIVISION 17 av 52 Sammanfattning av några relationsalgebraiska operatorer UNION INTERSECT(= SNITT) DIFFERENCE A B A B A B A UNION B A INTERSECT B A DIFFERENCE B (A MINUS B) Alla rader som förekommer i A eller B PROJECTION Alla rader som förekommer i både A och B De rader som förekommer i A men inte i B SELECTION 18 av 52

10 SQL - Structured Query Language SQL har funktioner för att hantera: databeskrivning, SQL-DDL (Data Definition Language) databearbetning, SQL-DML (Data Manipulation Language) behörighet, SQL-DCL (Data Control Language) 19 av 52 SQL - Structured Query Language SELECT, Lön FROM ANSTÄLLD WHERELön > p X s SQL kan uttrycka allt som går att uttrycka i relationsalgebran - språket är relationally complete 20 av 52

11 SQL-DML SELECT, utsökning INSERT, lägga in (vanligen rader i en tabell) UPDATE, ändra DELETE, ta bort 21 av 52 SELECT SELECT, Avd FROM ANSTÄLLD WHERE Lön > ANSTÄLLD Lön Chef Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym AVDELNING Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 Resultat: Nils Hed Eva Berg Avd Skor Parfym 22 av 52

12 ANSTÄLLD WHERE predikatet kan innehålla: jämförelseoperatorerna =, <>, > >=, <, =< logiska operatorerna AND, OR och NOT paranteser kan användas för att styra utvärderingen BETWEEN för att testa intervall Lön Chef Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym AVDELNING Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 SELECT, Våning FROM ANSTÄLLD, AVDELNING WHERE Avd = Anamn AND Lön BETWEEN AND 0000 Resultat: Våning Sten Rot Nils Hed 1 2 av 52 Kvalificerade attributnamn Om ett attributnamn förekommer i flera av de berörda tabellerna måste det kvalificeras med tabellnamnet: ANSTÄLLD Lön Chef Anamn Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym AVDELNING Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 SELECT, Våning FROM ANSTÄLLD, AVDELNING WHERE ANSTÄLLD.Anamn = AVDELNING.Anamn AND Lön BETWEEN AND av 52

13 Alias Alias för tabellnamn kan införas (t ex om tabellnamnen är långa) SELECT A1., A2.Våning FROM ANSTÄLLD A1, AVDELNING A2 WHERE A1.Anamn = A2.Anamn AND Lön > av 52 Alias fortsättning Alias är även användbart när man vill joina en tabell med sig själv: Ta fram namn och lön på alla anställda som har en chef som tjänar mer än 0000 kr: SELECT A1., A1.Lön FROM ANSTÄLLD A1, ANSTÄLLD A2 WHERE A1.Chef = A2. AND A2.Lön > 0000 ANSTÄLLD AVDELNING Lön Chef Anamn Avd Anamn Våning Bo Gren Eva Berg Parfym Sten Rot Nils Hed Skor Nils Hed 0000 Eva Berg Skor Eva Berg 5000 Eva Berg Parfym Leksaker 2 Livsmedel Parfym Skor 2 Trädgård 1 Resultat: Per Kvist Bo Gren Nils Hed Eva Berg Lön av 52

14 Nästlade frågor Ta fram namn och lön på alla anställda som har en chef som tjänar mer än 0000 kr: SELECT, Lön FROM ANSTÄLLD WHERE Chef IN (SELECT FROM ANSTÄLLD WHERE Lön > 0000) Här använde vi nästling som ett alternativ till att joina en tabell med sig själv! (se föregående fråga) 27 av 52 Nästlade frågor motsvarande aldrig, inga etc. Ta fram namn på alla personer som aldrig ätit glassen Päronsplitt SELECT WHERE NOT IN (SELECT WHERE Glass= Päronsplitt ) SELECT WHERE Glass Päronsplitt SELECT EXCEPT SELECT WHERE Glass = Päronsplitt Alternativ ÄTANDE Glass Päronsplitt Päronsplit 28 av 52

15 Nästlade frågor med NOT EXISTS Ta fram namn på alla som ätit av alla glasstyperna: SELECT Ä. Ä WHERE NOT EXISTS (SELECT Glass FROM GLASS WHERE Glass NOT IN (SELECT Glass FORM ÄTANDE WHERE = Ä.)) Det får inte existera någon glass i GLASS som inte ätits av Ä. ÄTANDE Glass Resultat: Päronsplitt Päronsplit GLASS Glass Päronsplit 29 av 52 Nästlade frågor forts. Ta fram namn på alla som ätit samma glassar som : SELECT Ä. Ä WHERE NOT EXISTS (SELECT Glass WHERE = AND Glass NOT IN (SELECT Glass WHERE = Ä.)) ÄTANDE Glass Päronsplitt Päronsplit GLASS Glass Päronsplit Det får inte existera någon glass som ätit som inte den vi söker ätit. Hmm... Räcker detta? 0 av 52

16 SELECT Ä. Ä WHERE NOT EXISTS (SELECT Glass WHERE = AND Glass NOT IN (SELECT Glass WHERE = Ä.)) AND NOT EXISTS (SELECT Glass WHERE = Ä. AND Glass NOT IN (SELECT Glass WHERE = )) Nästlade frågor forts. Ta fram namnen på de som ätit samma glassar som ätit: Det får inte existerar någon glass som ätit som inte de vi söker ätit. Det får heller inte existera någon glass som de vi söker ätit som inte ätit. Resultat: Ingen hade ätit precis de glassar ätit (utom ). 1 av 52 Vyer kan göra det lite enklare CREATE VIEW s_glassar AS (SELECT Glass WHERE = ) SELECT Ä. WHERE NOT EXISTS (SELECT Glass FROM s_glassar WHERE Glass NOT IN (SELECT Glass WHERE = Ä.)) AND NOT EXISTS (SELECT Glass WHERE = Ä. AND Glass NOT IN s_glassar) 2 av 52

17 DISTINCT SQL rensar inte duplikat automatiskt (vilket ju operatorerna i relationsalgebra gjorde). För att eliminera dubletter anges DISTINCT. Ta fram alla som ätit minst en glass som även ätit: SELECT DISTINCT() From ÄTANDE WHERE Glass IN s_glassar SELECT From ÄTANDE WHERE Glass IN s_glassar Resultat: Resultat: av 52 Inbyggda funktioner, aggregatfunktioner COUNT(*), räknar antalet rader i en tabell COUNT(kolumnnamn), räknar antalet värden i en kolumn SUM(kolumnnamn), summerar värdena i en kolumn AVG(kolumnnamn), tar genomsnittet av värdena i en kolumn MAX(kolumnnamn), ger största värdet i en kolumn MIN(kolumnnamn, ger minsta värdet i en kolumn 4 av 52

18 Exempel på aggregat-funktioner SELECT COUNT(*) Ger antalet rader i tabellen ÄTANDE Resultat: 8 SELECT COUNT(DISTINCT ) Ger antalet (unika) personer i tabellen ÄTANDE Resultat: 5 av 52 ORDER BY En relation (tabell) saknar ju ordning, men man kan sortera resultatet (vanligen presenteras resultatet i primärnyckelordning om man läser från en tabell). SELECT DISTINCT ORDER BY Ger alla namnen sorterade i bokstavsordning Resultat: 6 av 52

19 GROUP BY Grupperar rader efter det värde som anges. Ta fram alla personer och hur mycket glass de ätit per person: SELECT, count(glass) GROUP BY Resultat: 2 7 av 52 Ge ny kolumnrubrik till resultat Grupperar rader efter det värde som anges. Ta fram alla personer och hur mycket glass de ätit per person: SELECT, count(glass) AS Glass_antal GROUP BY Resultat: Glass_antal 2 8 av 52

20 GROUP BY OCH HAVING HAVING fungerar på grupper som WHERE fungerar på rader, dvs elimenerar grupper Ta fram alla personer som ätit mer än 2 glassar: SELECT, count(glass) GROUP BY HAVING COUNT(Glass) > 2 Resultat: 9 av 52 Mer om nästlade frågor (subselect) Vissa frågor kräver att man beräknar ett värde i databasen för att använda det i en WHERE-klausul. Detta kan endast lösas med en subselect (nåja en vy skulle också fungera). Ta fram alla personer som ätit fler glassar än ätit SELECT, count(glass) Resultat: GROUP BY HAVING COUNT(Glass) > (SELECT count(glass) WHERE NAMN = ) 40 av 52

21 UNION Ta fram alla avdelningar som ligger på plan 1 eller avdelningar där personer är antällda som tjänar mer än eller båda delar: Alternativ SELECT Anamn FROM AVDELNING WHERE Våning = 1 UNION SELECT Anamn FROM ANSTÄLLD WHERE Lön > SELECT AVDELNING.Anamn FROM AVDELNING, ANSTÄLLD WHERE AVDELNING.Anamn = ANSTÄLLD.Anamn AND Våning = 1 OR Lön > ANSTÄLLD(, Lön, Chef, Anamn) AVDELNING(Anamn, Våning) 41 av 52 INTERSECT(SNITT) Ta fram alla avdelningar som ligger på plan 1 OCH där det finns personer anställda som tjänar mer än 20000: Alternativ ANSTÄLLD(, Lön, Chef, Anamn) AVDELNING(Anamn, Våning) SELECT Anamn FROM AVDELNING WHERE Våning = 1 INTERSECT SELECT Anamn FROM ANSTÄLLD WHERE Lön > SELECT AVDELNING.Anamn FROM AVDELNING, ANSTÄLLD WHERE AVDELNING.Anamn = ANSTÄLLD.Anamn AND Våning = 1 AND Lön > av 52 ANSTÄLLD.An

22 EXCEPT(MINUS) Ta fram alla avdelningar som inte har några personer som tjänar mer än 0000: Alternativ ANSTÄLLD(, Lön, Chef, Anamn) AVDELNING(Anamn, Våning) SELECT Anamn FROM AVDELNING EXCEPT SELECT Anamn FROM ANSTÄLLD WHERE Lön > 0000 SELECT Anamn FROM AVDELNING WHERE Anamn NOT IN (SELECT Anamn FROM ANSTÄLLD WHERE Lön > 0000) 4 av 52 Textsträngsmatchning Ta fram alla anställda vars namn börjar på bokstaven n: SELECT FROM ANSTÄLLD WHERE LIKE n% Kolumnnamn LIKE textkonstant, där textkonstant kan utgöras av % (svarar mot 0 eller flera tecken) och/eller _ (svarar mot ett godtyckligt tecken) och/eller övriga tecken (som motsvarar sig själva). Mari_ K%sson svarar mot en textsträng som börjar på Mari och följs av minst ett godtyckligt tecken, ett blanktecken, ett K, samt ett godtyckligt antal valfria tecken avslutat med bokstäverna sson. Exempel: Karlsson, Marie Klasson men också Mari Ksson. I t ex Access svarar % mot * och _mot? 44 av 52

23 INSERT Används för att lägga till rader i redan existerande tabeller: Två sätt: antingen med specificerade värden eller via SELECT: INSERT INTO GLASS VALUES( Dajmstrut ); INSERT INTO ÄTANDE VALUES(, Dajmstrut ) Om man tänker sig att man har en annan tabell (benämnd statistik) som innehåller på personer och deras genomsnittliga ätande kan man skapa INSERT via SELECT INSERT INTO statistik(, snittkvant) SELECT, avg(glass) GROUP BY Vad händer om de två INSERT-satserna anropas i omvänd ordning? 45 av 52 DELETE Används för att ta bort rader i redan existerande tabeller: Ta bort glassen Dajmstrut : DELETE FROM GLASS WHERE Glass = Dajmstrut Vad händer om de med de rader i ÄTANDE som refererar till Dajmstrut? Ta bort alla rader i tabellen ÄTANDE: DELETE 46 av 52

24 UPDATE Betraka tabellan GLASS_I_LAGER till nedan. Om en leverans med 200 päron- split anländer samtidigt som man vill rea just päronsplit kan följande UPDATEsats exekveras. Används för att ändra innehållet i ett eller flera attribut i rader i redan existerande tabeller: UPDATE GLASS_I_LAGER SET Antal_i_lager = Antal_i_lager + 200, Pris = 6.00 WHERE Glass = Päronsplit GLASS_I_LAGER (före UPDATE) Glass Päronsplit Antal_i_lager Pris GLASS_I_LAGER (efter UPDATE) Glass Päronsplit Antal_i_lager Pris av 52 Några slutord om vyer (VIEWS) En vy är en mall genom vilken man ser en databas. En vy är dynamisk, dvs varje gång man gör SELECT på en vy ser man aktuella värden. En vy är inte en ny tabell och dess innehåll kommer inte att lagras på sekundärminne. Det som lagras är definitionen av vyn. Kurs Student Resultat Grupp IS:4 IS:4 IS:4 IS:4 GKD GKD GKD GKD GKD Kalle Olle Kalle Olle Eva Knut VG G U VG VG G G G G GruppA GruppA GruppB GruppB Grupp1 Grupp2 Grupp2 Grupp1 Grupp2 Schemaläggaren vill bara kunna läsa Kurs och Student Studenterna får bara läsa Kurs, Student och Grupp Lärarna och studierektor behöver både kunna läsa och skriva hela tabellen 48 av 52

25 Några slutord om vyer (VIEWS) Vyer kan definieras på en eller flera bastabeller och eller andra vyer. CREATE VIEW Student_vy AS (SELECT Kurs, Student, Grupp FROM KURSTILLFÄLLE) CREATE VIEW Lärar_vy AS (SELECT * FROM KURSTILLFÄLLE) CREATE VIEW Schemaplanerings_vy AS (SELECT Kurs, Student FROM KURSTILLFÄLLE) Schemaläggaren vill bara kunna läsa Kurs och Student Studenterna får bara läsa Kurs, Student och Grupp Lärarna och studierektor behöver både kunna läsa och skriva hela tabellen 49 av 52 Fördelar med vyer visst logiskt dataoberoende samma data kan betraktas av olika användare på olika sätt (på samma gång) Användaren kan få en förenklad bild av databasen - mindre komplex DML flexibel behörighetskontroll 50 av 52

26 Vy - exempel Returnera alla som aldrig ätit Päronsplit men ändå ätit minst en likadan glass som : CREATE VIEW EJPÄRON AS (SELECT,Glass FROM Glassätande WHERE NOT IN (SELECT FROM Glassätande WHERE Glass= Päronsplit )) EJPÄRON Glass CREATE VIEW STINAS_GLASSAR AS (SELECT Glass FROM Glassätande WHERE = ) STINAS_GLASSAR Glass Päronsplit SELECT EP. FROM EJPÄRON EP, STINAS_GLASSAR SG WHERE EP.Glass=SG.Glass 51 av 52 Mera schema-ddl CREATE TABLE EMPLOYEE (EID VARCHAR(11) NOT NULL UNIQUE, BID CHAR(7) NOT NULL, PRIMARY KEY(EID), FOREIGN KEY(BID) REFERENCES BUSINESS ON DELETE CASCADE ON UPDATE CASCADE) DDL: DML: DCL: CREATE SCHEMA CREATE TABLE CREATE VIEW CREATE INDEX DROP TABLE DROP VIEW DROP INDEX ALTER TABLE SELECT INSERT UPDATE DELETE GRANT REVOKE Förelsäsning 6! 52 av 52

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

Relationsdatabasdesign 2I-4067 HT99. Relationsalgebra. som resultat! Relationsalgebra Relationsalgebra Relationsalgebran r ett formellt sprâk fˆr att extrahera data ur relationer. SprÂket r uppbyggt av ett litet antal operatorer. Tar en eller två tabeller De primitiva operatorerna

Läs mer

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

MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL MODELLER OCH SPRÅK FÖR RELATIONSDATABASER: Relationsalgebra, Relationskalkyl (Tuple calculus) & SQL Ted Codd 970 - klassisk artikel: The relational model of data - DATASTRUKTUR - OPERATIONER - INTEGRITY

Läs mer

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen

Informationssystem och Databasteknik. Frågespråk mot relationsmodellen Informationssystem och Databasteknik HUND Namn Ras Mindy Tax Ossi Tax Frågespråk mot relationsmodellen Relationsalgebra SQL 1 Relationsalgebra Primtiva operatorer projektion π selektion σ union differens

Läs mer

Frågespråk mot relationsmodellen

Frågespråk mot relationsmodellen HUND Mindy Ossi Frågespråk mot relationsmodellen Relationsalgebra Relationsalgebra Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Med hjälp av dessa operatorer kan andra

Läs mer

IT i organisationer och Databasteknik, 2I-1033 HT2002. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

IT i organisationer och Databasteknik, 2I-1033 HT2002. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3. Primtiva operatorer projektion π selektion σ union differens - kryssprodukt X Relationsalgebra Tilldelning := Relationsalgebran är sluten: Med hjälp av dessa operatorer kan andra (icke-primitiva) operatorer

Läs mer

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

IT i Organisationer och Databasteknik. Frågespråk mot relationsmodellen IT i Organisationer och Databasteknik HUND Namn Ras Mindy Ossi Frågespråk mot relationsmodellen Relationsalgebra SQL 1 Relationsalgebra Primtiva operatorer projektion π selektion σ union differens - kryssprodukt

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 3 Kap. 4 Kap. 5 utom

Läs mer

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

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information

Läs mer

Övningar i SQL. SQLAccess.doc Ove Lundgren 2000-11-14

Övningar i SQL. SQLAccess.doc Ove Lundgren 2000-11-14 Övningar i SQL Övningar i SQL Använd Access för att öva SQL (= Structured Query Language) Skapa tabeller med SQL 1. Ny databas: SQLÖVNING Klicka: Frågor > Ny > Design > OK >Stäng > SQL Radera ordet SELECT.

Läs mer

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

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation SQL Structured Query Language Frågespråk för att används för data åtkomst data manipulation Kommandon Lägga in ny data, INSERT Ändra data, UPDATE Radera data, DELETE Hämta data, SELECT mfl 2005-10-13 Gk/ÖK:ITO,

Läs mer

Databasutveckling Introduktion till SQL och TSQL

Databasutveckling Introduktion till SQL och TSQL Databasutveckling Introduktion till SQL och TSQL Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till SQL SELECT satsen, enkla frågor Hämta specifika kolumner Alias

Läs mer

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 Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

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

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL) Idag 1. Från modell till databasstruktur 2. Prata med databaser (frågepsråket SQL) DD1370 (Föreläsning 3) Databasteknik och informationssystem 7,5 hp Hösten 2008 1 / 22 Från verklighet via modell till

Läs mer

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

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas Idag 1. Från modell till databasstruktur Från verklighet via modell till databas När vi analyserat den värld vi vill representera i en databas har vi tagit med alla möjliga kopplingar och beskrivit dem

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

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

SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. SQL, nästlade delfrågor 3-19 Nästlade delfrågor SQL har en mekanism för nästling av delfrågor: En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. Delfrågor används

Läs mer

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

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post SQL Structured Query Language Frågespråk för att används för data åtkomst data manipulation Kommandon Lägga in ny data, INSERT Ändra data, UPDATE Radera data, DELETE Hämta data, SELECT mfl Rader Tabeller

Läs mer

Frågespråk och SQL. nikos dimitrakas rum 2423

Frågespråk och SQL. nikos dimitrakas rum 2423 Frågespråk och SQL nikosd@kth.se 08-161295 rum 2423 Connolly/Begg (3rd edition) Kapitel 5, 6 (och lite överallt) (4.1, 4.2) (4th edition) Kapitel 5, 6 (och lite överallt) (4.1, 4.2) (5th edition) Kapitel

Läs mer

Design och underhåll av databaser

Design och underhåll av databaser Design och underhåll av databaser 1. Modell av verkligheten 2. Normalformer 3. Introduktion till DDL 4. Skapa databaser 5. Skapa tabeller 6. Skapa index 7. Restriktioner 8. Ta bort databaser, tabeller

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Databaser, design och programmering Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company

Läs mer

Föreläsning 2: Översikt över ett databassystem

Föreläsning 2: Översikt över ett databassystem Föreläsning 2: Översikt över ett databassystem DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över databassystemets arkitektur, delar och

Läs mer

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 Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda

Läs mer

Structured query language (SQL)

Structured query language (SQL) Structured query language SQL) Varför SQL? SQL är ett standardspråk som är oberoende av databashanteringssystemen som finns på marknaden. Med andra ord kommer du kunna arbeta mot nästan alla sorters relationsdatabaser

Läs mer

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Introduktion Enkla frågor (queries) Hämta en specifik kolumn Sök Sammanfattning

Läs mer

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö. Laboration 2, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall vi jobba vidare på bildatabasen som vi började på förra gången. Vi skall ändra fält och lära oss att

Läs mer

WCMS-15, Webbutvecklare CMS

WCMS-15, Webbutvecklare CMS WCMS-15, Webbutvecklare CMS Övningstentamen, delkurs Dynamiska webbplatser (20 YH-poäng) Plats: Medieinstitutet, Malmö Tid: 25 november 2015, kl. 13.00-16.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,

Läs mer

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ; Lösningsförslag till Övning i SQL Data Definition Language (DDL) D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ; D2. Create Domain CHARNRKEY char(7 D3. Create Table Skiva( T1. Create Table Skiva(

Läs mer

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

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar: DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL r s använder vi för att uttrycka frågor där ordet alla figurerar: Ex. Vilka personer har stamkundskort vid ALLA klädesbutiker i stad X? Vilka personer har bankkonto

Läs mer

Laboration SQL. Kom igång. http://www.tfe.umu.se/courses/systemteknik/webbkurser/d&w/laborationer/sql.ht...

Laboration SQL. Kom igång. http://www.tfe.umu.se/courses/systemteknik/webbkurser/d&w/laborationer/sql.ht... Page 1 of 5 Laboration SQL Syfte: Under denna laboration skall du bekanta dig med SQL. När laborationen är genomförd skall du klara av att själv formulera enklare SQL-frågor för att kunna ta fram information

Läs mer

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag Påminnelse: Deadline på tisdag Databasteknik och informationssystem DD1370 F3 Petter Ögren Inlämningsuppgift 1 - Skall mailas in senast 23:59 på tisdag. - Redovisas på övningen på onsdag - Inspireras av

Läs mer

Tentamen i Databasteknik

Tentamen i Databasteknik Tentamen i Lördagen den 21 oktober 2006 Tillåtna hjälpmedel: Allt skrivet material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig

Läs mer

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

Introduktion till frågespråket SQL (v0.91) DD1370: Databaser och Informationssystem Hösten 2014 Petter Ögren Introduktion till frågespråket SQL (v0.91) 13:e November Disclaimer: Dessa anteckningar har producerats under viss tidspress, och kan därför

Läs mer

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index INNEHÅLL SQL DEL 4 DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index Chapter 3, 6, 8 delar av. Beginning SQL Server 2008 for Developers 1 CREATE

Läs mer

Databaser och SQL - en kort introduktion

Databaser och SQL - en kort introduktion Databaser och SQL - en kort introduktion Databaser är inte precis något som i sig är svårbegripligt. Det är bara en massa data samlade på ett ställe i strukturerad form. Problemen består i att det just

Läs mer

Analytisk relationsdatabasdesign

Analytisk relationsdatabasdesign Analytisk relationsdatabasdesign Att förbättra kvaliteten i databaser Presenter s Name Organization name www.horton.com Domän-regler och främmande nyckel regler via DDL Datatyp! Datatyp! Maxvärde! Maxvärde!

Läs mer

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

Databasteknik. Vad är. Vad är databaser bra till? data? föreläsare: Kjell Lindqvist. och NADA. databaser? och. vad är de bra för? Databasteknik Vad är data? föreläsare: Kjell Lindqvist och NADA databaser? och vad är de bra för? och varför ska ni kunna något om dem? Copyright c NADA, KTH DBT, bild 1 Copyright c NADA, KTH DBT, bild

Läs mer

Lösningsförslag till Exempel tentamen

Lösningsförslag till Exempel tentamen Inst. för Data- och Systemvetenskap SU/KTH Maria Bergholtz, Paul Johannesson Lösningsförslag till Exempel tentamen 2I-1033 IT i Organisationer och Databasteknik Tentamenstiden är 5 timmar Skriv bara på

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Webprogrammering och databaser Fö 5 Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company.

Läs mer

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem? En mängd program som tillåter användaren att skapa och underhålla

Läs mer

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen. Databasmetodik Lördag 27 september 2014 kl Inst. för Data- och Systemvetenskap SU/KTH Tentamen EIT:DB, SP:DB, DVK:DB, ATD:DB, FK:DB, DSK:DB Ska även användas av äldre kurstillfällen, t ex för IV1018, IV1003, ITK3:DB, ITK1:DB, DSV1:DB mfl. Databasmetodik

Läs mer

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LIVE Exempelkod från föreläsningen Plushögskolan Frågeutveckling inom MSSQL - SU14 Här kommer exempelkoden jag använde under föreläsningen Exemplen Constraints... 2 Transactions... 4 Views... 5 Functions...

Läs mer

Databasspråket SQL - online.

Databasspråket SQL - online. Webprogrammering och databaser Fö 5 Databasspråket SQL - online. Innehåll: Viktiga kommandon och konstruktioner i SQL, både DDL och DML. Utgångspunkt: en databas om ett varuhus (The Jonson Brothers Company.

Läs mer

Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag

Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag Tentamen EIT:DB Databastmetodik 11/1 2013 kl. 13 17 + Lösningsförslag Inga hjälpmedel är tillåtna (annat än ordbok). Kort syntaxsamling för delar av SQL samt lista med symboler för relationsalgebraiska

Läs mer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i

Läs mer

Vad är SQL? Introduktion till SQL

Vad är SQL? Introduktion till SQL Introduktion till SQL Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är SQL? Structured Query Language (SQL) är ett standardiserat frågespråk för att hämta och modifiera data i en

Läs mer

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Skrivtid: 14.30-18.30 Hjälpmedel: papper, penna och radergummi Betygsgränser: G = 36p (60 %), VG = 48p (80

Läs mer

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar FÖ 8: Databaskursen 1. SQL 2. Utsökningar mot en tabell 3. Od Order by 4. Funktionerna upper, lower och initcap 5. Konkatenering 6. Kolumnalias 7. Distinct 8. Hantera nullvärden med nvl-funktionen 9. Between

Läs mer

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

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras. Laboration 1, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall du se till att du kommer åt databasmotorn och att det fungerar. Du kommer också att skapa en tabell

Läs mer

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix Arbetsuppgift 1: Uppdatera och uppgradera din installation. Steg 1: Starta och logga på din server,

Läs mer

Databaser. Vad du ska lära dig: Ordlista

Databaser. Vad du ska lära dig: Ordlista Databaser Vad du ska lära dig: Ordlista Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda en

Läs mer

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

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer

Läs mer

Föreläsning 5: Relationsmodellen

Föreläsning 5: Relationsmodellen Föreläsning 5: Relationsmodellen DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över hur relationsmodellen fungerar Relationsmodellen Relationsalgebra

Läs mer

Databaser och. SQL, utsökningar mot en tabell

Databaser och. SQL, utsökningar mot en tabell Databaser och Informationssystem 5 hp IK008 Föreläsning 7 SQL, utsökningar mot en tabell Övningsuppgifter Övningstabell SQL> desc personal Name Null? Type ------------------------------------- --------

Läs mer

13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas?

13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas? Påminnelse: Vad är en Databas? Databasteknik och informationssystem DD1370 F3 Petter Ögren Ett antal tabeller Referenser (pilar) mellan tabellerna Ex: register abc123 BMW 830101-0000 def100 Volvo 830101-0000

Läs mer

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

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?! Relationsalgebra 1 Varför behöver jag lära mig relationsalgebra?! Relationsmodellen är den datamodell som används i de flesta moderna databassystemen Data beskrivs och lagras som relationer, dvs. som ett

Läs mer

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

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser? Databaser Design och programmering! Diverse praktiskt! Varför databaser?! Vad är en databas?! Andra viktiga begrepp Kursöversikt! Teori och praktik! Samläsning! Olika projekt! Examination (tenta, labb

Läs mer

3. Dynamiska webbplatser, 20 Yhp (4 v)

3. Dynamiska webbplatser, 20 Yhp (4 v) Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.m Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.medieinstitutet.se, sida 3/12 3. Dynamiska webbplatser, 20

Läs mer

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen

Läs mer

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

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE Kap. 3 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join Kap. 4 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 5 utom

Läs mer

Exempel-Tentamen III

Exempel-Tentamen III Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Exempel-Tentamen III Inga hjälpmedel tillåtna (syntaxsammanställning behövs inte på denna tentamen) Skriv bara på en sida av

Läs mer

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20 Idag Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten 2009 1 / 20 Idag Hur skapar vi och underhåller en databas? Hur skapar man tabeller?

Läs mer

Tentamen i Databasteknik

Tentamen i Databasteknik Tentamen i Onsdagen den 7 mars 2007 Tillåtna hjälpmedel: Allt skrivet material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig

Läs mer

EMPS(NAME, SALARY, DEPT)

EMPS(NAME, SALARY, DEPT) Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Relationsmodellen och syntetisk databasdesign

Relationsmodellen och syntetisk databasdesign Relationsmodellen och syntetisk databasdesign Den teoretiska grunden för relationsdatabaser Från konceptuellt schema till databas Relationsmodellen Bil Ägare En relationsdatabas är en databas som uppfattas

Läs mer

Vyer, Prepared Statements, Triggers

Vyer, Prepared Statements, Triggers Vyer, Prepared Statements, Triggers Vyer En vy är en virtuell tabell, som ej behöver existera fysiskt, en namngiven fråga En vy är inte snabbare än SELECT satsen som definierar vyn Det är möjligt att ställa

Läs mer

Idag. 1. En enkel databas. 2. Prata med databaser (frågepsråket SQL)

Idag. 1. En enkel databas. 2. Prata med databaser (frågepsråket SQL) Idag 1. En enkel databas 2. Prata med databaser (frågepsråket SQL) DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 1 / 17 En enkel modell över ett varuhus Anställd Leverantör

Läs mer

Informationssystem och Databasteknik

Informationssystem och Databasteknik Informationssystem och Databasteknik Föreläsning 4 Relationsmodellen Från konceptuell modell till relationsdatabasschema Inför projektarbetet: - sammansmältning av flera överlappande modeller av samma

Läs mer

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

Föreläsning 5 Dagens föreläsning går igenom Databasbaserad publicering Föreläsning 5 1 Föreläsning 5 Dagens föreläsning går igenom SQL-sammanfattning Komplett exempel, från E/R till tabeller och SQL Databasbaserad publicering Föreläsning 5 2 SQL

Läs mer

732G16: Databaser - Design och programmering

732G16: Databaser - Design och programmering 732G16: Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Johan Falkenjack, IDA (johan.falkenjack@liu.se) Fö 1 Introduktion 2 Kursöversikt Teori och praktik Kursbok, lektionshäfte,

Läs mer

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

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13 Institutionen för Data- och Systemvetenskap IT-universitetet Maria Bergholtz Tentamen DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 203 kl. 9-3 Inga hjälpmedel tillåtna (syntaxsammanställning

Läs mer

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg Databaser och Informationssystem 15 hp IK1008 Föreläsning 8 SQL, utsökningar mot flera tabeller Övningsuppgifter STUDENT TENTA KURS # studnr * fnamn * enamn o regdatum # radnr (#) studnr (#) kursnr * tentadatum

Läs mer

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7) 1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen

Läs mer

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

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server DVA234 Databaser 1(6) Kurs: DVA234 Databaser Version: 4, uppdaterad 2016-03-21 Utvecklad av: Dag Nyström, dag.nystrom@mdh.se Laboration 1: Introduktion till databaser och MS SQL Server I den här laborationen

Läs mer

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner Databasföreläsning Del 2 lagrade procedurer, vyer och transaktioner Lagrade procedurer (Stored procedures) En stored procedure är en procedur (funktion) lagrad i en databas, och exekveras direkt på databasservern

Läs mer

Databaser - Design och programmering

Databaser - Design och programmering Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Fö 1; introduktion Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp 2 Kursöversikt

Läs mer

Idag. Exempel. Exempel modellen (1) Exempel...

Idag. Exempel. Exempel modellen (1) Exempel... Idag Exempel Knyta ihop säcken Repetition av hela processen från värld till databas Kontroll av resultatet Exempel på frågor mot varuhusdatabasen Man börjar alltid med att bestämma vad man måste hålla

Läs mer

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias

1. SQL 2. Utsökningar mot flera tabeller. 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias FÖ 9: Databaskursen 1. SQL 2. Utsökningar mot flera tabeller 3. Nästlad sökning eller sub queries 4. IN-operatorn 5. Join 6. Kartesisk produkt 7. Tabellalias 8. Distincti 9. Group by 10. Having 11. In

Läs mer

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra. 1 Datafiler tillhör alltid en filgrupp. Det måste alltid finnas en PRIMARY group. Det är inget som hindrar att datafiler på olika diskar tillhör samma filgrupp. PRIMARY gruppen innehåller huvudfilen till

Läs mer

Databaser och Datamodellering Foreläsning IV

Databaser och Datamodellering Foreläsning IV Webbprogrammering - 725G54 Databaser och Datamodellering Foreläsning IV Agenda Databaser ERD SQL MySQL phpmyadmin Labb 4 Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt

Läs mer

Lösningar till tentamen i EDAF75

Lösningar till tentamen i EDAF75 Lösningar till tentamen i EDAF75 4 april 2018 Lösning 1 (a) Här är ett förslag till E/R-modell: Det finns flera rimliga alternativa sätt att modellera, så du behöver inte vara orolig bara för att du inte

Läs mer

Sample exam questions. Database exam TIG058

Sample exam questions. Database exam TIG058 Sample exam questions Database exam TIG058 Distribution of topics covered 1. Grundläggande om Databaser och Databashanterare (5p) 2. SQLite-databashanteraren (5p) 3. SQL - SELECT, ORDER BY, WHERE, LIMIT

Läs mer

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE INNEHÅLL Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE Chapter 8, 9, 11 delar av. Beginning SQL Server 2008 for Developers 1 VAD

Läs mer

Prova på-laboration i SQL

Prova på-laboration i SQL Prova på-laboration i SQL Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-19 1. Introduktion till databaser Databaser finns i så gott som alla sammanhang

Läs mer

Frågeoptimering. Frågeoptimering kapitel 14

Frågeoptimering. Frågeoptimering kapitel 14 Frågeoptimering kapitel 14 Frågeoptimering sid Introduktion 1 Transformering av relationsuttyck 4 Kataloginformation för kostnadsestimering Statisk information för kostnadsestimering Kostnadsbaserad optimering

Läs mer

FileMaker 14. SQL-referens

FileMaker 14. SQL-referens FileMaker 14 SQL-referens 2013-2015 FileMaker, Inc. Med ensamrätt. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Kalifornien 95054, USA FileMaker och FileMaker Go är varumärken som tillhör FileMaker,

Läs mer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella

Läs mer

Lösningsförslag till Tentamen,

Lösningsförslag till Tentamen, Institutionen för Data- och Systemvetenskap SU/KTH Maria Bergholtz och Paul Johannesson Lösningsförslag till Tentamen, 022 2I-00 Informationssystem och databasteknik För att erhålla betyget tre räcker

Läs mer

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot Att konstruera och underhålla en databas Skapa en databas Då man gjort färdig sin modell, fört över den till en databasstruktur och normaliserat strukturen så måste man realisera databasen i någon databashanterare.

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 24 Augusti 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

Relationskalkyl (RK)

Relationskalkyl (RK) 1 Relationskalkyl (RK) Formellt frågespråk som är baserad på predikatkalkyl (logik) En formel i RK är icke-procedurell (deklarativ), dvs den specificerar vad som ska hämtas och inte hur Jämför med relationsalgebran

Läs mer

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers

INNEHÅLL SQL DEL 2. Funktioner inbyggda Aggregatfunktioner Skalärfunktioner. Chapter 11. Beginning SQL Server 2008 for Developers INNEHÅLL SQL DEL 2 Funktioner inbyggda Aggregatfunktioner Skalärfunktioner Chapter 11. Beginning SQL Server 2008 for Developers 1 FUNKTIONER, INBYGGDA Det finns ett mängd med funktionen du kan använd dig

Läs mer

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem Hösten 2011 1. a) Jag följer kokboken (förel 3, bild 34) a. Regeln säger att alla objektklasser med e-termer ska bilda

Läs mer

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

SQL del 2. Christer Stuxberg Institutionen för Informatik och Media SQL del 2 Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Repetition SELECT INSERT Mer SELECT Null sökning Gruppering (GROUP BY) Begränsad gruppering (HAVING)

Läs mer

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet

Läs mer