Välkommen till DVA234: Databaser

Relevanta dokument
Välkommen till DVA234: Databaser

Föreläsning 2: Översikt över ett databassystem

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

TDDD12 och TDDD46 Databasteknik. Lena Strömbäck

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

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

Databaser - Design och programmering

VAD GÖR DU / VEM ÄR DU?

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible:

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

732G16: Databaser - Design och programmering

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

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

VAD GÖR DU / VEM ÄR DU?

Tentamen DATABASTEKNIK - 1DL116

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Databaser och Datamodellering Foreläsning IV

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Databaser. Vad du ska lära dig: Ordlista

Lite om databasdesign och modellering

Databaser och databasdesign, 7,5 hp

Webbprogrammering, grundkurs 725G54

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

GIT L0003B. Databaser, en introduktion. Information inför kursstart

GIT L0009B GEOGRAFISK DATABASTEKNIK. Information inför kursstart

Föreläsning 5: Relationsmodellen

Examinator skickar kursanalys och kursutvärdering till avdelningschef.

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Denna analys bifogas kursutvärderingsrapporten inklusive (eventuellt redigerade) fritextsvar.

Webservice & ERP-Integration Rapport

1DV423 Databas med Administration

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

INFC20, Informatik: Avancerade databassystem, 7,5 högskolepoäng Informatics: Advanced Database Systems, 7.5 credits Grundnivå / First Cycle

Datamodeller och databaser, avancerad kurs

Föreläsning 7: Transaktioner

Karlstads Universitet, Datavetenskap 1

Konceptuella datamodeller

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

INFC20, Informatik: Avancerade databassystem, 7,5 högskolepoäng Informatics: Advanced Database Systems, 7.5 credits Grundnivå / First Cycle

Kursplanering Objektorienterad programmering

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Innehåll. MySQL Grundkurs

DATALAGRING. Ämnets syfte

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Thomas Padron-Mccarthy. Databasteknik, 7.5 hp (DT105G ) Antal svarande = 13. Svarsfrekvens i procent = 21. Undersökningsresultat

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

Inledande programmering med C# (1DV402) Introduktion till. eller så här är det tänkt att fungera.

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Design och underhåll av databaser

Objektorienterad Systemutveckling Period 3

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Föreläsning 6 Databaser och säkerhet

Projekt Foreläsning VI

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Databasteknik. Programkurs 6 hp Database Technology TDDD37 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Inga hjälpmedel är tillåtna

Prova på-laboration i SQL

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Föreläsning 3 Dagens föreläsning går igenom

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

Institutionen för Tillämpad fysik och elektronik Stefan Berglund och Per Kvarnbrink. Laboration: Flerskiktade applikationer

Datavetenskapligt program, 180 högskolepoäng

Design och konstruktion av grafiska gränssnitt

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Databaser Kapitel 1: Introduktion!

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Kursledare och övriga föreläsare och övningsassistenter. Antal undervisningstimmar uppdelat på föreläsningar, övningar och andra undervisningsformer

Distribuerade affärssystem

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

DVA223 INFORMATION - KUNSKAP VETENSKAP - ETIK

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

TDDI 60 Tekniska databaser

Databaser design och programmering. Design processen ER- modellering

Välkomna till DIT012 IPGO

Transkript:

Välkommen till DVA234: Databaser Dag Nyström dag.nystrom@mdh.se IDT Akademin för Innovation, Design och Teknik

Personal Kursansvarig & lärare: Dag Nyström, universitetslektor dag.nystrom@mdh.se Forskningsområde: Databaser för tidskritiska system Tidigare: Mimer Information Technology Laborationsassistenter: Simin Cai, doktorand simin.cai@mdh.se, Mobyen Uddin Ahmed, universitetslektor mobyen.ahmed@mdh.se, Nils Müllner, postdoktor nils.muellner@mdh.se 2

Kursens mål 1. förklara hur en databas används för att lagra och hantera information på ett standardiserat, strukturerat och effektivt sätt 2. konstruera konceptuella datamodeller utifrån givna kravställningar och vidare transformera och implementera dessa i en databashanterare 3. förklara relationsmodellens och relationsalgebrans principer och hur dessa tillämpas i implementationen av relationsdatabaser 4. utarbeta operationer mot en databas med hjälp av datamanipulerings- och datadefinieringsspråk samt utföra komplexa associationer och sammanslagningar på relationer 5. tillämpa normaliseringsprocessen för relationsdatabaser Teori 6. utveckla program, både i klient och i databashanteraren, som programmatiskt nyttjar databaser 7. förklara databashanterarens interna uppbyggnad med avseende på till exempel arkitektur, transaktioner, återhämtning och indexering 8. ge exempel på vetenskapliga frågeställningar och forskning inom databasområdet och 9. relatera till sociala och etiska frågeställningar inom databasområdet, som till exempel dataintrång, registersamkörning och personuppgiftslagen. Praktik Vetenskap/ Etik 3

Kurshemsida http://www.idt.mdh.se/kurser/dva234 På hemsidan finns information om: Föreläsningar, labbar, övningar & seminarier Examinationsformer/regler Fusk/Plagiarism Diskriminering Nyheter Så håll er uppdaterade! I år är det en helt ny hemsida, hittar ni buggar (eller udda features) hör av er till mig. 4

Examinationsformer Kursen examineras genom: 1 skriftlig inlämningsuppgift (betygsgrundande akademisk rapport) Kunna förklara och argumentera kring användning av databas. Exemplifiera vetenskapliga frågeställningar och forskning inom omr. Relatera till sociala och etiska frågeställningar inom databasområdet. 5 stycken övningar (papper och penna) görs 2 och 2 Datamodellering Relationsmodellen Normalisering Transaktioner Fysisk databasdesign 4 stycken laborationer (Programmeringsövningar) Görs 2 och 2 SQL Stored procedures API programmering Dataoberoende 1 seminarium (gruppdiskussioner presentationer) Sociala och etiska frågor runt dataintrång, registersamkörning & PUL På kurshemsidan finns mer information om examinationen på kursen 5

Övningarna 5 stycken övningar som knyter an till föregående föreläsning Övningen öppnar efter föreläsningen på måndagen Görs i labgrupperna 2 och 2 Papper och penna övningar Man får ha boken På övningstillfället på fredagen skall hela gruppen redovisa Man får tidsslottar på ca 10-15 minuter per grupp Godkänt på alla 5 övningar krävs för avslutad kurs! 6

Seminariet Obligatorisk aktiv närvaro Man måste alltså delta aktivt i diskussionerna INNAN Seminariet Läsanvisningar ligger på kurshemsidan Var och en skriver en kort reflektion som lämnas in dagen före Seminariedagen 13:15-13:30 Inledning och gruppindelning 6-8 personer/grupp Utdelning av frågor och ståndpunkt för/emot 13:30-14:30 Gruppdiskussioner & förberedelser 14:30-17:00 Redovisning sker i 4 block (2 grupper per block) - 5 min framläggande av argument för - 5 min framläggande av argument emot - 20 min duell mellan grupper 7

Laborationerna Labredovisning Laborationstillfällen varje vecka, labbarna skall primärt redovisas på dessa. Ev extra handledningstider mot slutet av kursen läggs upp vid behov. Efter kursens slut kommer några redovisningstillfällen fördelade under året. Laborationer redovisas för labass Laborationerna tar mycket tid!! Labbtillfällena räcker inte. 8

Lite om laborationerna Databasutveckling mot Microsoft SQL Server MDH har en server ni jobbar emot Ni arbetar främst i Microsoft Server Management Studio MSMS är installerat i labsalen MSMS2016 i labsalar, 2008 fungerar lika bra om ni vill ladda ner från MS Denna är en del av SQL Server paketet. Ni skall kunna ladda ner denna kostnadsfritt från MS Academic Alliance (dreamspark??!?) Programmering mot databas i C# Ni arbetar i Microsoft Visual Studio VS2008 är installerat i labsalen Labbarna görs i grupper om 2 Nästa föreläsning kommer jag skicka runt en labblista Jag skapar konton på servern för varje labgrupp. 9

Lite om laborationerna Alla laborationer och den ena övningen hör ihop Mål: Skapa en applikation för hantering av IDT Studenter, kurser, personal osv Lab 1: Skapa tabeller Grundläggande SQL Lab2: Enkel C# applikation med ADO.NET Övn1: Modellera IDT-databasen Lab3: Implementera IDT Databasen, designa applikationen samt implementera denna Lab4: Avancerad SQL (Extra-lab: Dynamisk SQL) 10

Kurslitteratur Default-boken: Databasteknik av Thomas Padron-McCarthy och Tore Risch Alternativ 1 (Gamla Default-boken) Fundamentals of Database Systems (4:de editionen eller senare) av Elmasri och Navathe Har tyvärr blivit större och större och dyrare och dyrare med åren. Alternativ 2: An Introduction to Database Systems (7:de editionen eller senare) av C J Date För mer info, se kurshemsidan! 11

Resultat från förra årets kursutvärdering Svarsfrekvens: 22 svarande av 54 studenter L Egen arbetsinsats 5-14h/vecka (10%) 15-24h/vecka (52%) >24h/vecka (38%) Några betyg (skala 1-5) Övergripande betyg 4.5 Kursinnehåll 4.6 Kursens undervisning 4.2 Tydlighet i examination 4.1 Kurslitteraturen gav stöd 4.0 Studiehandledning 4.4 Annat Information om tidigare kursutvärderingar 100% ja Jämlikhet/Diskriminering/kränkningar 100% nej 12

Kritik i fritextsvar i förra kursen Några fritextsvar: "fokusera lite mer pa hur man programmerar mot databaser Saknade verkligen föreläsningar som fokuserar helt pa programmeringen" Mer kodexempel skulle kunna tagits upp Inlämningsuppgift är det enda delmoment som har gradering i betyget. Kursens examination gjordes med hjälp av google, inte med hjälp av det vi egentligen har lärt oss. Kanske ha med na gon som kan prata om databaser i arbetslivet Kunde varit mer om hur databaser ser ut och används i företag" De 2 senaste kursanalyserna ligger på kurshemsidan! 13

Revideringar denna kurs Problem: Svårt med C# och Windows Forms, fick lägga ner mycket tid på att lära sig sånt som kursen inte handlar om. Lösning: Förberedande lab/föreläsningar i OOP kursen Ny föreläsning(sdel) om Windows Forms i denna kurs Önskemål om gästföreläsare Tyvärr har jag inte mäktat med att lösa detta tills i år. Vi har tidigare haft gästföreläsare men det var då inte uppskattat. Hellre tenta än skriftlig rapport/enda betygsgrundande betyg Detta är en del av en strategi på IDT, att öva mer på akademiskt skrivande. Övningar ersätter tentan. Svårt att ha betyg på övningarna i dess nuvarande form, jag ska se vad som kan göras i framtiden. 14

Så för att vara tydlig Nästa föreläsning: Ni skall ha parat ihop er 2 och 2 och skriva upp er på den lista jag skickar runt. Sedan kommer jag att ge varje grupp inloggningsuppgifter till servern. Det tar mig ett tag att göra dessa så jag behöver alla grupper för att hinna till labben!! 15

Upprop Finns du inte med på listan, eller är osäker på om du har behörighet, eller har du ett tillgodoräknande som ej är beslutat än ta det med studievägledare/studenttorget 16

Sist men inte minst: Välkomna till kursen, nu kör vi! 17

Föreläsning 1: Introduktion till Databaser DVA234 Databaser IDT Akademin för Innovation, Design och Teknik

Innehåll Föreläsningens mål: Att ge en översikt över kursens innehåll. Varför databaser? Vad är en databas? Relationsdatabaser och relationsmodellen Datamodellering Transaktionshantering 19

Vad är en databas? (Varför använda en databas?) Ett elektroniskt arkiveringssystem. Definition 1: En samling statiska data som används av applikationssystem inom en given verksamhet (C. J. Date) Definition 2: En samling relaterat data. (Elmasri & Navathe) Slutsats: Det är alltså samlingen data som är databasen, inte servern eller någon programvara 20

Vilka krav ställs på en databas? Hantera mycket stora datamängder Kraftfulla dataoperationer Komplexa frågor över stora mängder data Stödja ändringar av strukturen (schemat) i run-time Delning av data (Flera samtidiga användare) Persistens ( Garanterad permanent lagring) Tillförlitlighet (up-time) Datakonsistens/Dataintegritet Datadistribution Säkerhet 21

Varför databaser? Dataoberoende - Separera data från applikationen Applikationscentrisk approach App. App. App. Data Data Data OS API/Skal OS-tjänster OS-kärna Hårdvara Data(bas)centrisk approach App. App. App. OStjänster OS API/Skal Data OS-kärna Hårdvara Applikationerna ansvarar själva för kommunikation Fler appl. à Högre komplexitet Ändras en appl. à Dominoeffekt Dataoberoende Kursens viktigaste ord!!! Separat datalager som en del av systemets basplattform Appl. kommunicerar via databas Databas - egen vy till varje appl. 22

Databassystemets komponenter eller Hur man uppnår dataoberoende? Användare Användare Användare Användare Verktyg: Modellering Optimering Administration Programmerings API Rapportverktyg... Erbjuder möjligheten att skapa anpassade vyer Extern vy A Extern vy B Extern vy C En programvara som hanterar databasfilen Oracle, SQL Server, MySQL. En stor fil (eller flera), oftast på disk. Metadata = data om datat Databashanteringssystem (DBMS) Databas Samling av allt data + metadata Databassystem 23

Databashistoria: Filbaserade databaser (1:a gen) Kalle, Kostigen 4 Datalogi, 2001, Pelle, Vasagatan 3 Datatekn, 2002, Nilla, Vasagatan 2 Datalogi, 2011, Lagra data i filer Flat file database Dataposter i filer Jämför fopen, fwrite,fread Inga samband mellan data Hanterar delning av data Program Program 24

Databashistoria: Hierarkiska databaser (2:a gen) Kursplan Kurs Kurstillfälle Lärare Student Data organiserat i hierarkiskt träd Används i Windows Registry Fortfarande relativt rudimentär modell Leder ofta till duplicerat data Program Program 25

Databashistoria: Nätverksdatabaser (3:e gen) Kursplan Kurs Kurstillfälle Lärare Student Data organiserat i utökat hierarkiskt träd Barn kan ha flera föräldrar Ökar modelleringsbarheten Förkunskaper Program Program 26

Databashistoria: Relationsdatabaser (4:e gen) Frågespråk (SQL) Relationsmodellen Formell modell Data i tabeller Operatorer Standardiserat frågespråk (SQL) De-facto standard idag Den typ vi använder i denna kurs Program Program 27

Exempel på en tabell STUDENT Personnr# Namn Program Startår Poäng 810602-0547 Stina Nilsson DVP 2014 65 800129-0355 Stefan Andersson Nätverk 2013 73 790518-0219 Per Johansson Nätverk 1999 110 761130-1288 Nina Persson Nätverk 2014 72 721210-1256 Rikard Sjöström DVP 2014 70 621021-3459 Tor Hedman DVP 1995 105 680906-1882 Eva Ekman Nätverk 2015 25 28

Databashistoria: Objektorienterade databaser (5:e gen) Databas Persistenta objekt Frågespråk (OQL, ) Hanterar persistenta objekt (data och beteende) Objekt kan instansieras och delas i databasen Ofta hårt integrerat i programspråket Programspråk Ickepersistenta objekt Program Program 29

Databashistoria : Nutida och framtida typer Objektrelationsmodellen Blandning av relations och objektmodellen Fält i en tabell kan vara objekt med beteende NoSQL databaser ( NoRel ) Samlingsnamn för nya grafbaserade databaser, ickerelationella Bygger ofta på grafteori och stödjer mycket stora datamängder. Exempel: Facebooks inbox search ca (50TB) Källa: Wikipedia.org Embedded-databaser Små databaser som sitter i device, typ mobiltelefoner, reglerdon Primärminnesdatabaser Lagrar data i RAM - Snabbhet vs. Persistens Realtidsdatabaser För applikationer med tidskrav. Ger garanterade svarstider. 30

Relationsmodellen Relationsdatabaser är baserade på en formell teori som kallas relationsmodellen (Codd 1970) Bygger på följande abstrakta datamodell: Data representeras som rader i en tabell (eller flera) Varje rad kan utläsas som en ett sant påstående, ex kan utläsas Personen med personnummer 810602-0547 heter Stina Nilsson, läser DVP och har 65 poäng 31

Exempel på en tabell Tabellnamn Nyckelattribut (Primärnyckel) STUDENT Attribut Personnr# Namn Program Startår Poäng 810602-0547 Stina Nilsson DVP 2014 65 K a r d i n a l i t e t 800129-0355 Stefan Andersson Nätverk 2013 73 790518-0219 Per Johansson Nätverk 1999 110 761130-1288 Nina Persson Nätverk 2014 72 721210-1256 Rikard Sjöström DVP 2014 70 621021-3459 Tor Hedman DVP 1995 105 680906-1882 Eva Ekman Nätverk 2015 25 Post Grad 32

Relationsmodellen Relationsoperationer ( databasfrågor) Operatorer tillhandahålls för att skapa nya sanna påståenden utifrån givna påståenden. Exempel Följande namn startade DVP år 2014 π "#$" (σ '()*(#$+, -./0 (σ 12#(2å(+4567 STUDENT )) Resultat: Regler och restriktioner i databasen kan sättas så att operatorerna bibehåller sanningshalten i databasen (Databasens integritet) Notera Closure egenskapen på operatorerna, dvs en operator på en tabell skapar en ny tabell!!! 33

Structured Query Language (SQL) Ett frågespråk för att arbeta med data i databaser Används för att: Ändra värden på data i databasen Läsa ut data ur databasen Ändra strukturen på hur data lagras Med SQL kan man relativt enkelt skapa väldigt komplexa sökningar i stora datamängder. 34

Exempel på databasoperationer Hämta data (SQL): SELECT Namn, Program, Poäng FROM STUDENT WHERE Startår=2014; Relationsoperator: Project-operatorn Restrict-operatorn Resultat: Namn Program Poäng Stina Nilsson DVP 65 Nina Persson Nätverk 72 Rikard Sjöström DVP 70 35

Fler exempel på databasoperationer Lägga till data: INSERT INTO STUDENT(Personnr, Namn, Program, Startår, Poäng) VALUES ( 780828-0458, Kalle Svensson, DVP, 2015, 0); Ändra data: UPDATE STUDENT SET Poäng = Poäng + 5 WHERE Personnr = 680906-1882 ; Ta bort data: DELETE FROM STUDENT WHERE Personnr = 790518-0219 ; 36

Access till Databas SQL i terminalfönster Systemunderhåll Admin-gränssnitt 37

Access till Databas Databasverktyg Systemunderhåll Admin-gränssnitt Verktyg har sina begränsningar. Underskatta inte terminalfönstret 38

Access till Databas Programmatisk Access Applikationer Web-applikationer 39

Databasdesign Konceptuell databasdesign Skapa en generell modell av verkligheten Oberoende av databas och datamodell Tekniker: Entity-Relationdiagram, UML, Logisk databasdesign Transformera den konceptuella databasmodellen till en datamodell (relationell, objektorienterad osv ) Oberoende av fysiska hänsyn eller DBMS val Fysisk databasdesign Transformera den logiska databasmodellen till en fysisk design Lagringsmedia, DBMS-val, prestandaoptimeringar (index etc) Detta är givetvis en iterativ process!!! 40

Konceptuell databasdesign: ER-modellering Entity-Relationdiagram: Program namn Personnr Program 1 Läser M Student Namn Startår Akademi Entitet Samband Poäng Attribut (Primärnyckel understruken) 41

Logisk databasdesign: Relationsschema Implementation av den konceptuella databasdesignen Främmande nyckel: Kan sättas på ett attribut som refererar till en primärnyckel. Referensintegritet T ex, om en främmande nyckel är Robotik, MÅSTE motsvarande primärnyckel existera. Foreign key PROGRAM Programnamn# STUDENT Personnr# Namn Programnamn Startår Poäng Akademi 42

Samtidig dataaccess En databashanterare måste klara av många samtidiga användare. Exempel: Banker, biljettbokningssystem, facebook osv Inte ovanligt med tusentals samtidiga användare Samtidiga användare à risk för konflikter, t ex Någon tar ut pengar i en bankomat samtidigt som någon annan för över pengar från samma konto Samma sittplats på Bruce Springsteens konsert bokas samtidigt av flera kunder Hur hanterar en databas detta? 43

Transaktionshantering En transaktion är en logisk arbetsenhet Består av en eller flera operationer som utförs atomärt, tex: BEGIN TRANSACTION; UPDATE Konton SET Saldo=Saldo-300 WHERE KontoNr= 11223344 ; UPDATE Konton SET Saldo=Saldo+300 WHERE KontoNr= 55667788 ; COMMIT; Om transaktionen avbryts (vid systemkrasch eller explicit med ROLLBACK operationen) får inget av delstegen utföras. Transaktionshanteringen är en av de mest komplexa delarna av en databashanterare. 44

Summering av föreläsningen Databaser hanterar stora datamängder Delning av data, persistens, separat datalager Ett databassystem består av Databas, databashanteringssystem, diverse verktyg etc. Relationsdatabaser och relationsmodellen En formell datamodell där data lagras i tabeller Datamodellering Konceptuell, logisk och fysisk datamodellering Transaktionshantering En transaktion samlar ihop en mängd operationer till en atomär logisk arbetsenhet. Adress till kurshemsidan: http://www.idt.mdh.se/kurser/dva234 45