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



Relevanta dokument
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. 2. Prata med databaser (frågepsråket SQL)

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

Idag. Hur vet vi att vår databas är tillräckligt bra?

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

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?

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

Distribuerade Informationssystem VT-04

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

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

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Två konstiga klockor

Skriva B gammalt nationellt prov

Utveckla arbetsmiljö och verksamhet genom samverkan

Lathund, procent med bråk, åk 8

Grunderna i SQL del 1

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

729G04 - Hemuppgift, Diskret matematik

Intervjumall. Datum: Intervjuare: Kandidatens namn: Kandidatens uppgifter: Växel: (5)

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

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Skogsbruk på ren svenska Lektion 4: Mästare på både förnyelse och återvinning. Tema: Återvinning Ämne: Biologi, Kemi Årskurs: 7-9

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

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

WCMS-15, Webbutvecklare CMS

Syftet är att öka medvetenheten dels om vilka språkliga handlingar som krävs i ämnet, dels om vilka som utförs.

e-cm Elektronisk Cash Management dygnet runt, världen över.

Att koda en magnetremsa i plastkortskrivare med inbyggd magnetkodare.

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Databaser och SQL - en kort introduktion

Kiwiböckerna metod och begrepp

Utbildningsplan för arrangörer

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Arbeta bäst där du är Dialect Unified Mi

Vi skall skriva uppsats

Sveriges Trafikskolors Riksförbund Film om körkort för nysvenskar Speakertext - Svensk

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Lathund till Annonsportalen

Vad är en webbläsare?

Statsbidrag för läxhjälp till huvudmän 2016

Bra att veta samt tips och trix i SiteVision 3

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

Har vi lösningen för en bättre hemtjänst? Självklart.

Morgonsamling till lågstadier

Användarmanual VX-webben

Till dig som vill bli medlem i SEKO

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Databasutveckling Introduktion till SQL och TSQL

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

KOMMUNICERA. och nå dina mål. Lärandeförvaltningens kommunikationsstrategi

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

ANVÄNDARHANDLEDNING FÖR

Matriks Automate 1.4 Praktiska exempel. Navision / Microsoft Dynamics NAV. Hur det funkar i verkligheten. Joakim Hansson

Din MediaCoach Medie- och intervjuträning för alla

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Förskolan Vårskogen, Svaleboskogen 7. Plan mot diskriminering och kränkande behandling

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

För dig som är valutaväxlare. Så här följer du reglerna om penningtvätt i din dagliga verksamhet INFORMATION FRÅN FINANSINSPEKTIONEN

Samtals- och dokumentationsunderlag Språk och erfarenheter

Träning i bevisföring

Administration Excelimport

Räck upp handen ni som är tjänstemän, anställda i kommuner, landsting eller företag. Ni som är politiker.

Modul 6: Integraler och tillämpningar

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Hävarmen. Peter Kock

Bemanningsindikatorn Q1 2015

Öde ön Jag befinner mig mitt ute på Indiska Oceanen. Det är min tredje vecka till sjöss och allt har varit lugnt och gått enligt planerna. Tills nu.

Introduktion till Open 2012

Planera och framföra ett högtidstal

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Fristående förskolor totalt Antal svar samtliga fristående förskolor: 360 (57 %)

Föreningen Nordens lokala hemsidor

ELEV- HANDLEDNING (Ansökan via webben)

Nationell källa för ordinationsorsak kopplad till nationell informationsstruktur

TIMREDOVISNINGSSYSTEM

Välkommen till Kommunal

Kundservicerapport Luleå kommun 2015

DEMOKRATI 3 DEMOKRATINS VILLKOR

Tentamen i Databasteknik

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

LPP laboration. Förmågor: Centralt innehåll: Kunskapskrav:

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

Administrera utskick på utbildningstillfälle

Idag: Dataabstraktion

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Senaste Nytt. Läs sida 2. I detta nummer. Lite information. Har det någon gång hänt att någon har stulit något? Ja... (Susanne Wahlgren svarar)

Avsändare och mottagare

Ekvationssystem, Matriser och Eliminationsmetoden

Välkommen till Arbetsförmedlingen! Information till dig som är arbetssökande

Hur du laddar ner och installerar elevlicens

Jämförelse länder - Seminarium

Bild Engelska Idrott

Väga paket och jämföra priser

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

Sundbybergs stad Skolundersökning 2015 Föräldrar förskola Stella Nova förskola

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Transkript:

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 Anställning Lager Avdelning Försäljning Vara DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 2 / 17

Motsvarande databasstruktur Vara (varunr, typ) Avdelning (avd, våning) Anställd (namn, lön, chef, avd) Leverantör (företag, adress) Lager (företag, avd, varunr, volym) Försäljning (avd, varunr, volym) DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 3 / 17

Strukturen motsvaras av tabeller Vara Försäljning Avdelning varunr typ avd varunr volym avd våning 1 blomma blommor 1 201 bad 8 4 krukväxt blommor 4 87 barnkläder 5 9 blomma blommor 9 86 blommor 1 22 toalettpapper damkläder 254 55 bröd 1 27 hushållspapper matvaror 60 2345 damkläder 6 33 diskmedel sport 153 743 matvaror 1 60 läskedryck tekniskaart 22 1203 möbler 8 130 skiftnyckel tekniskaart 27 944 skor 4 134 skruvmejsel tekniskaart 33 321 sport 2 153 träningsoverall verktyg 130 456 tekniskaart 1 225 handväska möbler 336 95 leksaker 2 254 kjol verktyg 134 886 verktyg 2 336 stol papper 347 5643 möbler 8 347 penna väskor 336 87665 papper 7 358 bok leksaker 347 243 väskor 4 DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 4 / 17

Prata med databaser SQL Structured query language Förr tvingades man skriva program för varje frågeställning Tidsödande och krävde specialister Därför utvecklades en mängd olika språk som skulle ha vissa egenskaper De skulle vara deklarativa (specificera resultatets egenskaper och låt datorn generera metoden för att hitta resultatet) De skulle vara optimerande så att även en idiotiskt formulerad fråga utfördes på rimlig tid De skulle vara intuitiva, vilket kom att betyda så nära talad engelska som möjligt eller grafiska (programmera med exempel eller gester) SQL har så småningom blivit en de facto standard. Några udda språk finns kvar med för en tynande tillvaro Till SQL har utvecklats möjligheter att bädda in SQL-sater i program skrivna i vanliga programspråk och ta hand om och hantera svaren från databasen SQL används även för att skapa databaser och databastabeller (och förstöra dem också) DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 5 / 17

SQL Vad måste man kunna göra med ett sådant språk? Skapa en databas (inte standardiserat) Kasta bort en databas drop database <databasnamn> Skapa tabeller create table <tabellnamn>... Ta bort tabeller drop table <tabellnamn> Lägga till data i tabeller insert... into <tabellnamn> Ta bort data ur tabeller delete from <tabellnamn>... Uppdatera data i tabeller update <tabellnamn>... Hämta data från tabeller Kommer... Eftersom språket kan göra så många saker på så många sätt är det bäst att titta efter vid behov (men vi ska gå igenom några exempel) Omfattande hjälp finns i databashanteringsystemet DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 6 / 17

SQL Hämta data Vad krävs för att kunna göra allt? Vi måste kunna dela upp tabeller, plocka enstaka rader eller kolumner eller båda (= plocka enstaka värden) sätta ihop resultaten till meningsfull information Kort sagt: Vi måste kunna plocka isär och sätta ihop efter eget behag Men då tillåts vi också göra bort oss (ibland ganska kapitalt) Extra krydda(??). Vi vet inte alltid om ett tomt svar är korrekt eller beror på felformulerad fråga DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 7 / 17

SQL Grunden Frågor till databasen ställs med select [distinct] lista-1-med-kolumner from lista-med-tabeller where lista-1-med-villkor [group by lista-2-med-kolumner [having lista-2-med-villkor]] [order by del-av-lista-1-med-kolumner] Varje operation ger en tabell som resultat (tabellen är den enda grundläggande datatypen) Vi ska se på en del exempel och kommentera dem DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 8 / 17

SQL Plocka rader select * from Anställd; skriv ut tabellen anställd select * from Anställd where lön > 9000; skriv ut de anställda som tjänar mer än 9000 select * from Anställd where lön > 9000 and chef = Näsström C ; select * from Anställd where lön > 9000 or chef = Näsström C ; select * from Anställd where lön > 9000 and not chef = Näsström C ; select * from Anställd where lön > 9000 and chef <> Näsström C ; DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 9 / 17

SQL Plocka kolumner select Företag from Leverantör; select Lön from Anställd; select Namn,Lön from Anställd where lön > 9000 and chef <> Näsström C ; plocka kolumner ur vissa rader (eller enstaka värden) Test på mängdtillhörighet Vad tjänar chefen/cheferna på skoavdelningen? select lön from Anställd where namn in (select chef from Anställd where avd = skor ); Även kostanta mängder kan användas select lön from Anställd where avd in (select avd from Avdelning where våning in (4, 5)) och godtyckligt djup på nästling Vad tjänar cheferna på fjärde våningen? select lön from Anställd where namn in (select chef from Anställd where avd in (select avd from Avdelning where våning = 4)); DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 10 / 17

SQL Relationsvariabler... create view tmp as select * from Anställd where chef = Näsström C ; skapar ett SQL-uttryck som lagras undan för senare användning... ; create view resultat as select namn from tmp where lön > 9000; som fungerar som vilken tabell som helst, rätt kolumnnamn ärvs create view resultat(anst, månadslön) as select namn, lön from Anställd; Men man kan namnge kolumnerna också... ger stora möjligheter att hämta vilka data som helst och bygga ihop i stort sett vilka tabeller som helst DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 11 / 17

SQL Mängdoperationer Man bygger språken på mängdmatematik (mängdalgebra och predikatlogik) select * from Anställd where lön > 9000 and chef = Näsström C union select * from Anställd where lön > 10000 and chef = Hovander T ; select * from Anställd where chef = Näsström C except select * from Anställd where lön <= 9000; select * from Anställd where chef = Näsström C intersect select * from Anställd where lön > 9000; DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 12 / 17

SQL bygga ihop tabeller Här har man tillgång till Join som slår ihop två rader och Naturlig join som slår ihop rader där värdena överensstämmer i i kolumner med samma namn i båda tabellerna select * from Anställd, Avdelning where våning = 2; select * from Anställd, Avdelning where Avdelning.våning = 2; select * from Anställd, Avdelning where Anställd.avd <> Avdelning.avd; select * from Anställd, Avdelning where Avdelning.avd <> Anställd.avd; select * from Anställd join Avdelning on Anställd.avd <> Avdelning.avd; select * from Anställd natural join Avdelning; DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 13 / 17

SQL Aggregat Man kan utföra vissa enkla beräkningar på innehållet i en tabell eller en tabellkolumn. SUM(kol), AVG(kol), MAX(kol), MIN(kol), COUNT(distinct kol eller *) select SUM(lön) from Anställd; Finn totala lönekostnaden för alla anställda, ignorera NULL-värden select SUM(lön) from Anställd where avd= skor ; Finn lönekostnaden för skoavdelningen, ignorera NULL-värden select SUM(lön), COUNT(*) from Anställd where avd= skor ; Finn lönekostnaden och antalet anställda på skoavdelningen, ignorera NULL-värden select avd, SUM(lön), COUNT(*) from Anställd group by avd; Finn lönekostnad och antalet anställda för alla avdelningar, ignorera NULL-värden create view result(avd, avglön) as select avd, AVG(lön) from Anställd group by avd; select avd from result where avglön = (select MAX(avglön) from result; Vilken avdelning har högst medellön? DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 14 / 17

SQL Alias (tupelvariabler) Man kan använda variabler som är kapabla att hålla i en tupel (tabellrad). Bra om man behöver läsa i samma tabell två gånger i samma fråga eller man vill referera mellan nivåerna i en nästlad fråga. select distinct a.varunr from lager a, lager b where a.varunr=b.varunr and a.avd!= b.avd ; Vilka varor (varunummer) finns på fler än ett lager? select * from Anställd U where chef = Näsström C and exists (select * from Anställd where lön > 9000 and namn = U.namn and lön = U.lön and chef = U.chef and avd = U.avd) ett annat sätt att uttrycka skärning DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 15 / 17

SQL Lite udda men användbara saker Man kan jämföra ett värde med en mängd som innehåller endast ett värde select namn from Anställd L where lön > (select max(lön) from Anställd where avd = fisk ); Vilka tjänar mer än den som tjänar mest på fiskavdelningen? select namn from Anställd L where lön > (select min(lön) from Anställd where avd = fisk ); Vilka tjänar åtminstone inte sämre än den som tjänar sämst på fiskavdelningen? Man kan också jämföra med en mängd värden select namn from Anställd L where lön > all (select lön from Anställd where avd = fisk ); Vilka tjänar mer än den som tjänar mest på fiskavdelningen? (igen) select namn from Anställd L where lön > any (select lön from Anställd where avd = fisk ); Vilka tjänar mer än den som tjänar minst på fiskavdelningen? (igen) DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 16 / 17

SQL Textmatchning Like och Matches kan användas vid matchning av texter select namn from Anställd L where namn like A% ; select namn from Anställd L where namn matches A?? ; Like: Matches: % följd av tecken _ ett tecken \ speciell mening med nästa tecken * följd av tecken? ett tecken [ ] ett tecken ut ett intervall \ speciell mening med nästa tecken DD1370 (Föreläsning 2) Databasteknik och informationssystem 7,5 hp Hösten 2011 17 / 17