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 dbtinf08) En kurs om grunderna i databasteknik oavsett vad de sysslar med DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 1 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 2008 3 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 4 / 24
Översikt Översikt Vad ska vi gå igenom på kursen? Vad ska vi öva på? Varför använda databaser (fördelar / nackdelar) Modellera verkligheten eller en lagom del av den Överföra modellen till en databasstruktur Hur vet man att det blev (hyfsat) rätt? Definition av databaser Mata in data och ändra i data Ställa frågor till databaser Lite om applikationsprogram Lite om beslutstödsystem Modellera för det är svårt Överföra modeller till databasstrukturer Kritiskt granska modeller Koll på hur bra det blev Frågespråk för att hitta i datamängden DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 5 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 bygga databaser Frågespråk för att hitta i datamängden Enkel databasapplikation Använda beslutstödsystem 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 2008 7 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 8 / 24
Information vs. data Information vs. data viktigt Vi använder dagligen information både i arbetet och på fritiden 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 En del information behöver vi återanvända senare Men vi sparar data och metadata för att kunna återskapa informationen Utan metadata och utan kunskap om varför data sparas kan vi inte återskapa informationen på ett rimligt sätt Metadata = data om data (för enklare tolkning av data) Vi skapar data från information för återanvändning Vi samlar in data för ett visst ändamål med en viss avsikt Vi måste återanvända data med samma ändamål och samma avsikt All annan användning är värdelös Data utan metadata är meningslös DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 9 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 2008 11 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 12 / 24
Enkelt exempel... Man skulle kunnat göra så: Information består av data och data som säger hur data ska tolkas För återanvändning behövs alltså både data och metadata Ofta räcker det att ge rimliga namn åt tabeller och tabellkolumner Alltså är relationsdatabaser organiserade som tabeller Tabellernas (relationernas) kolumners och raders ordning är av underordnad betydelse Man undviker dubbellagring (redundant lagring) och alltså kan relationsdatabaser ses som mängder Mängder av metadata, mängder av tabeller med mängder av kolumner och mängder av rader Tabellrader är mängder av värden så... relationsdatabaser är mängder av mängder av mängder... 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 2008 13 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 2008 15 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 av värde 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 2008 17 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 18 / 24 Varför ska man använda databaser? Vem behöver använda databaser? Redundansen (dubbellagringen) reduceras 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 Alla organisationer som ä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 2008 19 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 Ett databasssytem är en databas och ett DBMS som förmår hantera den aktuella databasen Användare/Applikationsprogram Extern vy Extern nivå Externt schema Konceptuell vy Konceptuell nivå Konceptuellt schema Intern vy Intern nivå Internt schema Data Metadata DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 21 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 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 titta närmare på hur man modellerar och överför modeller till databasstrukturer (tabeller i ett DBMS) Data Metadata DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 23 / 24 DD1370 (Föreläsning 1) Databasteknik och informationssystem 7,5 hp Hösten 2008 24 / 24