till databaskursen Varför ska man lära sig sånt? till databaskursen till kursen Databasteknik och informationssystem Nästan alla större system idag innehåller eller använder data lagrad i en databas Så nästan alla ingenjörer kommer att stöta på databaser DD1370 (kursomgång dbtinf12) En kurs om grunderna i databasteknik oavsett vad de sysslar med DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 1 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 2 / 24 till databaskursen till databaskursen Vad är databaser bra till? Kursansvarig Alla organistaioner behöver spara information för senare användning Redovisning av verksamheten till berörda myndigheter (skattemyndigheter, tillsynsmyndigheter, et.c.) Jag: Tel: E-post: Serafim Dahl 073 708 29 25 (dagtid, i nödfall) serafim@csc.kth.se Internt har man behov av att känna till sina anställda, betala deras löner, hålla reda på vad de sysslar med... Kontor: Osquars Backe 2, plan 5, rum 1531 så man kan tvingas spara stora mängder data Kontakt: enklast vid schemalagd verksamhet eller via e-post DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 3 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 4 / 24
Översikt Översikt Vad ska vi gå igenom på kursen? Vad ska vi öva på? Varför använda databaser (fördelar / nackdelar) Ställa frågor till databaser Definition av databaser Mata in data och ändra i data Modellera verkligheten eller en lagom del av den Överföra modellen till en databasstruktur Ställa frågor till databaser för att hitta i datamängden Modellera se hur vi representerar intressanta saker Överföra modeller till databasstrukturer Gå bakvägen från en databas till en modell Lite om applikationsprogram Lite om beslutstödsystem DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 5 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 6 / 24 Översikt idag Vad ska vi labba på? Efter den här föreläsningen hoppas jag att ni ska förstå skillnaden mellan data och information Frågespråk för att hitta i datamängden Enkel databasapplikation (bygga en databas) genom att gå från en existerande databas till en modell och förverkliga modellen. veta vad en databas är förstå varför databaser är nödvändiga känna till de grundläggande ideerna förstå fördelarna med databaser (jämfört med andra lösningar) DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 7 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 8 / 24
Information vs. data Information vs. data viktigt Vi använder dagligen information både i arbetet och på fritiden Vi skapar data från information för återanvändning Mycket av informationen går oss förbi eftersom vi lär oss filtrera bort oväsentlig information Mycket information går oss förbi därför att vi filtrerar fel Vi samlar in data för ett visst ändamål med en viss avsikt En del information behöver vi återanvända senare Vi sparar data och metadata för att kunna återskapa informationen Vi måste återanvända data med samma ändamål och samma avsikt Utan metadata och utan kunskap om varför data sparas kan vi inte återskapa informationen på ett rimligt sätt All annan användning är värdelös Metadata = data om data (för att kunna tolka data = återskapa informationen) Data utan metadata är meningslös DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 9 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 10 / 24 En databas Enkelt exempel För ett adressregister behöver man namn och adresser. är en logiskt sammanhängade mängd av till varandra relaterade data. Vad betyder det? Man lagrar data som har ett samband och som har en betydelse i verksamheten och som man tror att man behöver senare i sin verksamhet och man skapar metadata för korrekt återanvändning Adressregister Efternamn Förnamn Gatuadress Postnr Postort Andersson Kalle Monumentvägen 3 133 33 Saltsjöbaden Karlsson Eva Blomstervägen 16 131 37 Nacka Pettersson Klas Kattugglegränd 7 745 61 Enköping Först metadata och sedan data som tillsammans ger begriplig information I ett så här enkelt fall kan man lista ut betydelsen från data men det går oftast inte i det generella fallet DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 11 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 12 / 24
Enkelt exempel... Man skulle kunnat göra så: Information består av data och någonting som säger hur dessa data ska tolkas För återanvändning behövs alltså både data och metadata (data om data) Ofta räcker det att ge rimliga namn åt tabeller och tabellkolumner Alltså är relationsdatabaser organiserade som tabeller (relationer) Tabellernas (relationernas) kolumners och raders ordning är av underordnad betydelse Man undviker dubbellagring (redundant lagring) med hjälp av genomtänkt design Allt kunde lagras i en vanlig textfil Namn: Adressregister Kolumner: Efternamn! Förnamn! Gatuadress! Postnr! Postort Data: Andersson! Kalle! Monumentvägen 3! 133 33! Saltsjöbaden Karlsson! Eva! Blomstervägen 16! 131 37! Nacka Pettersson! Klas! Kattugglegränd 7! 745 61! Enköping Vad är skillnaden? DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 13 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 14 / 24 Lite databashistoria Lite databashistoria... Tidigt insåg man att datorerna skulle ge fördelar i samband med (i första hand) stora företags redovisning för beskattning Man började ungefär samtidigt med informationssystem som innehöll infomrationsposter organiserade antingen som hierarkier eller som nätverk Matematiken haltade och man ville ha system som följde matematiska koncept eftersom de är lättare att programmera och underhålla. 1970 gav E.F. Codd ut A Relational Model of Data for Large Shared Data Banks som startade utvecklingen av relationsdatabaser. Dessa är förhärskande idag Man har forskat om andra system, främst objektorienterade, men relationsdatabaser med utbyggbart typsystem är de som slagit igenom De första kommersiella systemen kom efter 15 år, 1985. Svenska Mimer och amerikanska Ingres var först Från början var databassystem förunnat endast stora företag eftersom programmen var stora och dyra Idag får man rum med en eller flera databashanterare och ett stort antal databaser på en ordinär PC DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 15 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 16 / 24
Vilka är alternativen till att använda databaser? De första databassystemen Det enda alternativet (i dator) är att använda vanliga filer men... trots att de numera kan bli väldigt stora finns ingen samtidighetskontroll och det finns inte frågespråk som hittar enkelt i filerna och filkatalogstrukturen stämmer sällan med någon mental (eller annan) modell av verkligheten. Man hade alltså inget enkelt sätt att dela data med andra användare De första databassystemen hade inga metoder för att enkelt ställa frågor om innehållet Man var tvungen att skriva ett program för varje fråga. Man var tvungen att känna till hur data var strukturerat. Man lade ner oerhörd ansträngning även för små frågor. Man vann alltså högre säkerhet och samtidighetskontroll jämfört med filsystemen men det var inga enkla system att hantera Dagens databassystem är mycket sofistikerade DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 17 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 18 / 24 Varför ska man använda databaser? Vem behöver använda databaser? Redundansen (dubbellagringen) reduceras Alla organisationer som Data kan delas av fler Det finns numera standarder Sekretess och integritet Dataoberoende All access till den fysiska databasen går via databassystemet Databassystemet kan utföra alla nödvändiga konverteringar är stora har höga krav från myndigheter har stora krav på lagring har höga krav på planering har höga krav på flexibilitet DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 19 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 20 / 24
Databaser, databassystem, databashanteringssystem? Hur är en databashanterare uppbyggd? Man kan ha många aspekter av en databashanterares uppbyggnad. Här är en Jag har använt alla tre termerna men bara definierat en databas som en logiskt sammanhängade mängd av till varandra relaterade data. Ett databashanteringssystem (DBMS) är ett applikationsprogram (Oracle, Informix, DB2,... ) avsett för att hantera databaser genom att tillhandahålla verktyg för att skapa och ta bort databaser skapa och ta bort tabeller i databaser lägga till tabellrader i och ta bort tabellrader från tabeller uppdatera (ändra) data i tabeller hämta ut data från existerande tabeller Användare/Applikationsprogram Extern vy Extern nivå Externt schema Konceptuell vy Konceptuell nivå Konceptuellt schema Intern vy Intern nivå Internt schema Ett databasssytem är en databas och ett DBMS som förmår hantera den aktuella databasen Data Metadata DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 21 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 22 / 24 Hur är en databashanterare uppbyggd? Nästa föreläsning Här är en annan Schemamodifierare Frågor Datamodifierare Applikationsprogram ODBC SQLC SqlJ JDBC Frågehanterare Lagringshanterare Transaktionshanterare ska vi se hur man pratar med en databas Data Metadata DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 23 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2012 24 / 24