TDDD12 och TDDD46 Databasteknik Lena Strömbäck http://www.ida.liu.se/~tddd12 http://www.ida.liu.se/~tddd46
Vad är en databas? Ett sätt att lagra data på elektroniskt format. Används i dagliga livet, banker, hotellbokning, bibliotekssökningar, handel. Nyare applikationer: multimediadatabaser, geografiska informationssystem, realtidsdatabaser, webdatabaser 2
Vad är en databas? - Definition En databas representerar någon aspekt av den verkliga världen, i.e. en minivärld En databas består av en samling logiskt koherenta data med en underliggande mening. En databas är designad byggd och fylld med data utifrån ett underliggande syfte. 3
Varför behövs databaser? Komplexa samband Datamodellering Oberoende av implementation Dataoberoende, effektivitet Flera användare samtidigt Serialisering Persistens vid fel Återställning, backup 4
Hantera flera användare Pelle Summerar lönekostnaden Kalle Uppdaterar lönerna för 1000 anställda Databas 5
Persistens och fel Strömavbrott Kalle Uppdaterar lönerna för 1000 anställda Databas 6
Tidiga databasmodeller: Nätverksdatabaser Hierarkiska databaser 7
70-tal: Relationsmodellen Data lagras som tabeller Teoretisk modell Standardiserat frågespråk I början var dock dessa databaser långsamma, hierarkiska databaser snabbare. 8
Databaser Databashanteringssystem: database management system (DBMS): Ett antal program som tillåter användaren att skapa och underhålla en databas. Databassystem = databas + DBMS Exempel på DBMS för relationsdatabaser: Oracle, DB2, MS SQL Server, MySQL, Postgres,. 9
DBMS - fördelar Kontroll av redundant information Dataåtkomst Persistent datalagring Tillåter frågor och analys Tillåter flera användare Representera flera användare Effektiv lagring av data Integritetsvillkor Backup och återställning 10
Arkitektur tre nivåer Dataoberoende mellan nivåerna Vy Vy Vy Konceptuell nivå Fysisk nivå 11
Senare databasmodeller Objektorienterade databaser (80-tal) - modell: persistenta objekt, meddelanden,inkapsling, ärvning Objekt-relationella databaser (90-tal) XML-databaser (00-tal) NoSQL databaser (10-tal) 12
Idag: Relationsdatabaser absolut dominerande. Fortfarande finns hierarkiska databaser. (Främst inom flygindustrin) Objekt-orienterade och objekt-relationella databaser är en liten del. Webben ställer helt nya krav en hel flora av nya databasarkitekturer utvecklas.. 13
Kursmål (1) Förstå de viktigaste begreppen inom databaser och databasteknik Designa en datamodell EER modellering Designa och använda en relationsdatabas Relationer Använda och förstå SQL Använda MySQL Sätta sig in en ny databashanterare 14
Kursmål (2) Den teoretiska grunden för relationsdatabaser Hur man använder detta för att skapa bra datamodeller Hur dessa påverkar implementationen av databaser Förstå hur databasen finns lagrad på en dator Teknik, filstrukturer, indexering Hur påverkar detta databasens prestanda 15
Kursmål (3) Förstå hur databaser kan hantera flera användare. Vilka problem uppstår Transaktioner Serialisering Förstå hur man kan garantera persistens. Återställning, backup 16
Förändringar sedan förra året: Ny databasklient i laborationerna Delvis reviderat projekt Delvis personalförändringar TDDD46: Resurstillfällen 17
Kursorganisation TDDD12 9 föreläsningar 2 lektioner Skriftlig tentamen Laborationer 3 laborationer Oracle 1 skrivbordsuppgift Miniprojekt: Brian Air TDDD46: Basgruppstillfällen, resurstillfällen, annat projekt Mer information på första laborationen. 18
Lärare Examinator: Lena Strömbäck, lena.stromback@liu.se Kursassistent: He Tan, he.tan@liu.se Kursadministration: Madeleine Häger Dahlqvist madeleine.hager.dahlqvist@liu.se Studierektor: Lena Strömbäck, lestr@ida.liu.se Föreläsare: Lena Strömbäck, lestr@ida.liu.se He Tan, he.tan@liu.se José M Pena, jose.m.pena@liu.se Labassistenter: He Tan, he.tan@liu.se Qiang Liu, qiang.liu@liu.se Emil Nielsen emil.nielsen@liu.se / Juha Takkinen juha.tallinen@liu.se Lena Strömbäck lena.stromback@liu.se / Valentina Ivanova valentina.ivanova@liu.se 19
Laborationer Tider och lokaler finns på hemsidan En grupp 2 labbsalar Miniprojektet ej handlett Du behöver ett databaskonto Skapas automatiskt vid kursregistrering Om du tidigare använt MySQL ditt gamla konto ska användas Anmäl er till labbar via kurshemsidan 20
Laborationer deadlines Laboration 1 fredag den 8:e april Laboration 2 fredag den 15:e april Laboration 3 fredag den 15:e april Projektet: ER-modell och översättning till tabeller för projektet senast den 3:e maj. Ni får sedan tillbaka den med möjlighet till korrigering på det obligatoriska tillfället den 5:e maj. Denna del måste vara godkänd innan ni får börja med implementationen av projektet. Helt klart fredag den 24:e maj. 21
Inlämning av laborationer Direkt till läraren vid labbtillfället Till assistentens internpost: Hus B, mittemot café Java Miniprojektet lämnas in på papper och koden + beskrivning skickas via e-mail till Urkund. (Detaljer ges under kursen) Utlämning av labbar i postlådorna utanför våra kontor och på labbtillfällen. Kom ihåg att hämta labbarna. Det är ditt enda bevis på att du är godkänd! 22
Deadline laborationer Labbar lämnas in kontinuerligt vid deadline Sista dag för inlämning: 24:e maj Nästa tillfälle: 15:e augusti, 9:e januari Senare: Gör om labbarna! 23
Skriftlig tentamen Två delar: praktisk och teoretisk Måste klara båda delarna Inga böcker tillåtna på tentamen Ingen miniräknare tillåten 24
Kurslitteratur Elmasri, Navathe, Fundamentals of Database Systems, 5th edition, Addison Wesley. Labmaterial finns på hemsidan (www.ida.liu.se/~tddd12 och www.ida.liu.se/~tddd46) 25
Kursöversikt Del1 Databaser introduktion och modellering av data Relationsmodellen och SQL Lab1: SQL-queries Översättning mellan modeller. Lab2: Databasdesign med SQL Att skapa bra relationsmodeller: Normalisering Lab3: Normalisering 26
Kursöversikt del 2 Hur är databasen lagrad? Index. Hur hanterar vi flera användare? Transaktioner. Databasen ska vara beständig över tid: Återställning och säkerhet. Summering Parallellt med detta görs miniprojektet. 27
Databaser Real World Model User 4 User 3 Updates Queries Answers Updates User 2Queries Answers Updates User 1Queries Answers Updates Queries Answers Database management system Processing of queries and updates Access to stored data Physical database 28
ER modellering Personnummer Adress Namn E-mail Telefon Ålder 29
ER-diagram Ett strukturerat sätt att modellera data Oberoende av databastyp. Dokumentation av din datastruktur. 30
Symboler i ER diagram Attribut Kandidatnycklar Sammansatta attribut AnstÅr E-mail PNummer Entitet FNamn ENamn Namn Anställd Age Free Härlett attribut Flervärt attribut 31
Relationer Pnum Anum Anställd Arbetar på Avdelning Anställda arbetar på avdelningar 32
Totalt deltagande Pnum Anum Anställd Arbetar på Avdelning Varje avdelning måste ha minst en anställd 33
Totalt deltagande Pnum Anum Anställd Arbetar på Avdelning Varje anställd måste arbeta på en avdelning 34
Restriktioner på antal Pnum Anum Anställd 1 Arbetar på 1 Avdelning Varje avdelning har exakt en anställd och varje anställd jobbar på exakt en avdelning 35
Restriktioner på antal Pnum Anum Anställd N Arbetar på 1 Avdelning Varje avdelning kan ha många anställda men varje anställd kan endast jobba på en avdelning 36
Restriktioner på antal Pnum Anum Anställd M Arbetar på N Avdelning Varje avdelning kan ha många anställda och varje anställd kan jobba på flera avdelningar 37
Restriktioner på antal Pnum Anum Anställd (1,1) Arbetar på (1,100) Avdelning Varje avdelning kan ha upp till 100 anställda men varje anställd kan jobba på en avdelning 38
Svaga entiteter Pnum Anum Anställd N Arbetar 1 på Avdelning Anställda identifieras genom sin avdelning, Kalle på sälj 39
Exempel Studenter studerar på studieprogram och läser ett antal kurser. Varje kurs identifieras av en kurskod och ger studenten ett antal intjänade poäng. 40
Vad är en databas? - Definition En databas representerar någon aspekt av den verkliga världen, i.e. en minivärld En databas består av en samling logiskt koherenta data med en underliggande mening. En databas är designad byggd och fylld med data utifrån ett underliggande syfte. 41
EER-modellering Addera ärvning till ER-diagram. 42
Symboler i EER diagram Tekniker System Administratör Språk ANummer Telefon. Lön ANummer Telefon Lön 43
Anställd d Tekniker System Administratör Språk ANummer Telefon Lön Anummer Telefon Lön 44
Anummer Anställd Telefon Lön d Tekniker System Administratör Språk Anställda kan vara tekniker eller (XOR) administratörer 45
Anummer Anställd Telefon Lön d Tekniker System Administratör Språk Anställda måste vara tekniker eller (XOR) administratörer 46
Anummer Anställd Telefon Lön o Tekniker System Administratör Språk Det kan finnas anställda som är tekniker och administratörer 47
ANummer Anställd Telefon Lön o Tekniker System Administratör Språk AdmTekn Procent 48
Exempel På universitetet finns två typer av studenter, doktorander och grundutbildningsstudenter och man kan inte tillhöra båda kategorierna. Beroende på vilken kategori man tillhör är olika kurser tillåtna. En del kurser bara för doktorander, en del för grundutbildningsstudenter och en del för alla typer av studenter. 49
www.liu.se