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



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

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

Relationsdatabasdesign

Tentamen för DD1370 Databasteknik och informationssystem

Logisk databasdesign

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

NORMALISERING. Mahmud Al Hakim

Tentamen plus lösningsförslag

Konceptuella datamodeller

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

Databaser. Vad du ska lära dig: Ordlista

Tentamen för DD1370 Databasteknik och informationssystem

Mitthögskolan ITM Telefon Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

Laborationer - databaser, EDAA20 Programmering och databaser

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

An English version of the questions is found at the back of each page.

Starta MySQL Query Browser

Databasdesign. E-R-modellen

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

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Tentamen för DD1370 Databasteknik och informationssystem

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

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

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

Tentamen för DD1370 Databasteknik och informationssystem

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

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

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

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Föreläsning 6 Databaser och säkerhet

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

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

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

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

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

3. Dynamiska webbplatser, 20 Yhp (4 v)

Tentamen Databasteknik

Lösningsförslag Tentamen, 25 april 03

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Introduktion till MySQL

Innehållsförteckning

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

Lösningsförslag till Exempel tentamen

Webbprogrammering, grundkurs 725G54

Kom igång med Telia Touchpoint i mobilen. Hur du använder de viktigaste funktionerna. TSP-3721_2-1403

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Vad är SQL? Introduktion till SQL

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Ontech Control för Iphone Användarmanual Svenska

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

Databasteori Övningar

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

Structured query language (SQL)

VAD GÖR DU / VEM ÄR DU?

Grunderna i SQL del 1

Sample exam questions. Database exam TIG058

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

Karlstads Universitet, Datavetenskap 1

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

Tentamen DATABASTEKNIK - 1DL116

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

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Telia Touchpoint mobil växellösning. Kom igång utan smartphone

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

TNK046 GIS - Databaser Laborationsuppgift 1 Introduktion till Microsoft Access 2007

Exempel-Tentamen III

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

1.Lär känna MS SQL Observera. Tips. Förberedelse

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Datum Den första bilden i installationsprogrammet visar vilken version det är. Klicka på Nästa eller tryck Enter för att fortsätta.

Tentamen i Databasteknik

Tentamen i. Databasteknik

Innehåll. MySQL Grundkurs

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

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

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

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

ER-Diagram. Databasutveckling Diagram

Tentamen i Databasteknik

Konsumentklagomål på telefoni och bredband. Kvartalsrapport juli - september 2015

Konsumentklagomål på telefoni och bredband. Rapport januari - juni 2017

Grunderna för relationsmodellen!

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid

Microsoft Access. Skapa en ny databas. Östersund Vårterminen 2005

Tentamen. TDDB38 - Databasteknik

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Konsumentklagomål på telefoni och bredband. Kvartalsrapport juli - september 2016

1 I Om telefoni. om telefoni

Konsumentklagomål på telefoni och bredband. Kvartalsrapport oktober - december 2016

Transkript:

Databasbaserad publicering Föreläsning 4 1 Föreläsning 4 Dagens föreläsning går igenom E/R-modellen, fortsättning Frågor till flera tabeller samtidigt Många-till-många-relationer Läs om E/R-diagram i kapitel 2-3 och och SQL i kapitel 7 i boken "Databasteknik" 2013-09-23

Databasbaserad publicering Föreläsning 4 2 SQL-frågor till flera tabeller För att man ska ha nytta av förhållanden mellan tabeller måste man kunna ställa SQL-frågor till flera tabeller samtidigt. Om vi tex vill veta telefonnumret till en viss person måste vi fråga både tabellen person och abonnemang. Vi kan börja med att ställa en fråga till båda tabellerna utan ytterligare villkor: SELECT * FROM person,abonnemang Resultat blir en produkt av tabellerna person och abonnemang Med produkt i detta sammanhang menas att varje rad i en tabellen slås ihop med varje rad i andra tabellen. Om person har 2 rader och abonnemang har 5 rader kommer den resulterande tabellen att få 2 x 5 = 10 rader:

Databasbaserad publicering Föreläsning 4 3 Din sql-fråga select * from person,abonnemang gav följande resultat: namn personnummer nummer operator personnummer 6502019999 046-123456 Tele 2 6502019999 Sven Svensson 7312125555 046-123456 Tele 2 6502019999 6502019999 040-654321 Telia 7312125555 Sven Svensson 7312125555 040-654321 Telia 7312125555 6502019999 040-6657000 Telia 6502019999 Sven Svensson 7312125555 040-6657000 Telia 6502019999 6502019999 0739-654321 Comviq 7312125555 Sven Svensson 7312125555 0739-654321 Comviq 7312125555 6502019999 070-654321 Vodaphone 7312125555 Sven Svensson 7312125555 070-654321 Vodaphone 7312125555 Detta resultat är inte särskilt användbart, men blir det plötsligt om vi tillfogar villkor på nyckel-kolumnerna. Vi kan börjamed att titta på alla rader (gulmarkerade ovan) där primärnyckeln i person är lika med främmande nyckeln i abonnemang.

Databasbaserad publicering Föreläsning 4 4 Vi kan välja ut de raderna med följande SQL-sats: SELECT * FROM person INNER JOIN abonnemang ON person.personnummer=abonnemang.personnummer; namn personnummer nummer operator personnummer 6502019999 046-123456 Tele 2 6502019999 Sven Svensson 7312125555 040-654321 Telia 7312125555 6502019999 040-6657000 Telia 6502019999 Sven Svensson 7312125555 0739-654321 Comviq 7312125555 Sven Svensson 7312125555 070-654321 Vodaphone 7312125555 Observera att vi anger person.personnummer och abonnemang.personnummer för att särskilja kolumner i olika tabeller men med samma namn. Vi har nu fått en förteckning över alla telefonnummer. Denna operation brukar man kalla INNER JOIN

Databasbaserad publicering Föreläsning 4 5 Om vi vill ha alla telefonnummer till Sven Svensson lägger vi till ett villkor: SELECT * FROM person INNER JOIN abonnemang ON person.personnummer=abonnemang.personnummer WHERE namn='sven Svensson' namn personnummer nummer operator personnummer Sven Svensson 7312125555 040-654321 Telia 7312125555 Sven Svensson 7312125555 0739-654321 Comviq 7312125555 Sven Svensson 7312125555 070-654321 Vodaphone 7312125555

Databasbaserad publicering Föreläsning 4 6 Om vi bara är intresserade av namn, nummer och operatör byter vi ut stjärnan mot de kolumner vi vill visa: SELECT namn,nummer,operator FROM person INNER JOIN abonnemang ON person.personnummer=abonnemang.personnummer WHERE namn='sven Svensson' namn nummer operator Sven Svensson 040-654321 Telia Sven Svensson 0739-654321 Comviq Sven Svensson 070-654321 Vodaphone

Databasbaserad publicering Föreläsning 4 7 Mer om ER-diagram och många-till-många-relationer Vi utgår från ett tidigare exempel med person och abonnemang men utökar nu till en många-till-många-relation så att varje person kan ha flera abonnemang och ett abonnemang kan delas av flera personer. person M har N abonneman g nummer nam n operatör id Hur översätter man detta till tabeller i en relationsdatabas?

Databasbaserad publicering Föreläsning 4 8 Vi blir nu tvungna att införa en mellantabell som knyter samman person och abonnemang. Vi inför en mellantabell personabonnemang med primärnycklarna från både person och abonnemang. Tabellstrukturen blir:

Databasbaserad publicering Föreläsning 4 9 person namn Bo Eriksson 67 Sven Svensson 73 Anna Eriksson 69 2 operatör Tele 2 Telia Telia 67 1 67 2 73 3 69 1 I personabonnemang kan båda kolumnerna innehålla dubbletter. Ingen kolumn kan då ensam vara primärnyckel. De två kolumnerna utgör tillsammans primärnyckeln!

Databasbaserad publicering Föreläsning 4 1 SQL-exempel, många-till-många För att välja få en lista över alla telefonnummer och namn kan vi skriva SELECT person.namn,abonnemang.nummer FROM person INNER JOIN personabonnemang ON person.id=personid INNER JOIN abonnemang ON abonnemang.id=abonnemangid För att få alla nummer till Bo Eriksson utökar vi frågan: SELECT person.namn,abonnemang.nummer FROM person INNER JOIN personabonnemang ON person.id=personid INNER JOIN abonnemang ON abonnemang.id=abonnemangid WHERE namn='bo Eriksson'