Kursens mål Databasteknik TDDB48 http://www.ida.liu.se/~tddb48 Förstå de koncept som ligger bakom databaser och databasorganisation Designa och bygga datamodeller (effektiva filstrukturer) Använda databasfrågespråk i ett kommersiellt databasssystem Designa en ralationsdatabas för en given applikation 1 2 Kursorganisation 13 föreläsningar skriftlig tenta labserie 5 laborationer Mini projekt Lärare Examinator: Lena Strömbäck FÖ: Lena, Henrik Andre -Jönsson, Ross Graham La: Lena, Sandra Nore, Camilla Jansson, Christer Andersson Kursadministration: Anette Larsson Studierektor: Patrick Lambrix 3 4 Laborationsinformation Varje lab lämnas i anslutning till sista laborationstillfället. Rapporteringsdeadline vid varje tentatillfälle behövs ett särskilt databaskonto --> automatisk vid registrering på kursen databaskontona tas bort efter 1 år anmälan till laborationer via kurshemsidan Inlämning av laborationer Kan göras direkt till läraren vid labbtillfället Inlämning till Lena: Internpostkuvert i IDAs postfack Övriga assistenter: Assistentfack finns i E-huset plan 1 Laboration 0 redovisas endast muntligt Miniprojektet redovisas muntligt och skriftligt. 5 6 1
Kurslitteratur Vad är en databas? - Sjukhuset: Elmasri, Navathe, Fundamentals of Database Systems, 3rd edition, Addison Wesley, 2000. Labkompendium: Databases, ADIT-3, version spring 2002 (Bokakademin Kårallen) 7 8 Vad är en databas? - Fabriken: Vad är en databas? - Media,TV: Kunder Tillverkningskapacitet Personal Internet Leverantörer Fakturor Lager Maskiner Löner Budget James Bond Specialisten 9 10 Vad är en databas? Ett (av flera) sätt att lagra data i elektronisk format Används i det vardagliga livet: bank, bokning av hotel eller resa, sökning i biblioteket, handla nya tillämpningar: multimediadatabaser, geografiska informationssystem, realtiddatabaser Vad är en databas? - Definition En databas representera någon aspekt av den riktiga världen, dvs. en Minivärld. En databas är en logiskt sammanhängande samling av data med en underliggande mening. En databas är designad, byggd och fylld med data utifrån ett speciellt syfte. 11 12 2
databas? - Sjukhuset: databas? - Fabriken: Kunder Tillverkningskapacitet Personal Leverantörer Fakturor Lager Maskiner Löner Budget 13 14 databas? - Media,TV: Internet James Bond Specialisten databas? Databaser ger bland annat stöd för följande: Ett verktyg för att beskriva sina data Flera användare ska ha tillgång till och se data på olika sätt Olika användare använder data på olika sätt Effektiv datalagring Backup, återställning av data efter en crash? Flera användare får tillgång till data samtidigt Konsistens i databasen Införande av ny data 15 16 Databaser Varför finns det en databaskurs på I-linjen? databashanteringssystem (DBMS): en uppsättning program som tillåter en användare att skapa och underhålla en databas databassystem = databas + databashanteringssystem 17 18 3
DBMS - fördelar Arkitektur - tre nivåer av data Kontroll av redundant information Kontroll av vem som kommer åt data (access) Permanent lagring av data (persistancy) Tillåta frågor och inferensdaragning Tillåta flera användare Representation av komplexa samband mellan data Effektiv lagring av data Kräva villkor på data. (Integrity Constraints) Backup och recovery. Dataoberoende mellan nivåerna Vy Vy Konceptuell nivå Fysisk nivå Vy 19 20 Schema och Instanser Databasschema - beskrivning av databasens struktur Instans - nuvarande innehåll i databasen Tre nivåer av schema: Fysiskt schema Konceptuellt schema Vyschema Databasspråk Data Definition Language - DDL Specificerar det konceptuella schemat Data Modification Language - DML Används för att hämta och uppdatera data Host language tilläg till ett programmeringgpråk 21 22 Personer databasadministratör databasdesigner användare ( end user ) programmerare av tillämpningar DBMS designer utvecklare av verktyg operatör, underhåll Olika typer av användare Applikations programmerare interagerar via DML anrop. Sofistikerade användare - frågor i frågespråk Specialicerade användare - skriver specialiserade applikationer Naiva användare - använder databasen via andra program. 23 24 4
Olika typer av databaser Hierarkiska (träd) Nätverksdatabaser Relationsdatabaser: - model: tabeller + relationsalgebran - frågespråk (SQL) Objektorienterade databaser: - model: fortlevande object, meddelande, inkapsling, ärvning - frågespråk (t.ex. OQL) Vad vill man beskriva? Data Samband mellan data Semantik för data Villkor på data 25 26 Datamodellering Entity-relationship titel genre Vad är en datamodell? Varför är det viktigt? Hur avgör man om en modell är bra? beskrivning TV-Program m crid Referens Det viktigaste steget i att skapa ett bra datoriserat informationssystem. namn n TV-kanal typ 27 område Relationsdatabaser TV-PROGRAM CRID TITEL GENRE <123> Teletubbies Kids TV-KANAL-OMRÅDE TV-KANAL OMRÅDE BESKRIVN. Barnprogram för de minsta TVKANAL-TYP ARTICLE-ID REFERENS PROGRAM TV-KANAL <123> <123> TYP SQL beskrivning TV-program genre = kids; England Skottland Tyskland Holland Sverige Norge Danmark Finland Estland Kommersiell Statsägd TV-program CRID <1234> Titel Teletubbies Genre Kids Beskrivning Ett program för de minsta 30 5
SQL TV-PROGRAM CRID <123> TITEL Teletubbies GENRE Kids BESKRIVN. Barnprogram för de minsta REFERENS PROGRAM TV-KANAL område tv-program, referens, tv-kanal-område!" tv-program.titel = teletubbies #$% referens.program = tv-program.crid &'( referens.tv-kanal = tv-kanal-område.område; TV-KANAL <123> <123> TV-KANAL-OMRÅDE OMRÅDE England Skottland Tyskland Holland Sverige Norge Danmark Finland Estland Kursöversikt - FÖ Introduktion Datamodellering med ER/EER diagram Relationsmodellen SQL Att gå från ER diagram till relationsscheman 32 Kursöversikt - FÖ Normalisering Datastrukturer för databaser (2) ACCESS Relationsalgebra och frågeoptimering Transaktioner, parallellitet och återställning Framtida databaser och sammanfattning Kursöversikt - LA+projekt Lab0: Att använda Oracle Lab1: SQL Lab2: Databasdesign och ER modelering Lab3: Tilldelningar, triggers och procedurer. Lab4: Normalisering Miniprojekt i ACCESS 33 34 6