välkommen till dva234: databaser - idt.mdh.se · sql –storedprocedures–api programmering...
TRANSCRIPT
![Page 1: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/1.jpg)
Välkommen tillDVA234: Databaser
Dag Nyströ[email protected]
IDT – Akademin för Innovation, Design och Teknik
![Page 2: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/2.jpg)
Personal
● Kursansvarig & lärare:● Dag Nyström, universitetslektor
[email protected]åde: Databaser för tidskritiska systemTidigare: Mimer Information Technology
● Laborationsassistenter:● Mobyen Uddin Ahmed, universitetslektor
[email protected],● Nils Müllner, postdoktor
[email protected]● Shaibal Barua, doktorand
2
![Page 3: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/3.jpg)
Vetenskap/Etik
Praktik
Teori
Kursens mål1. 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
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. 3
![Page 4: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/4.jpg)
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!
4
![Page 5: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/5.jpg)
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
![Page 6: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/6.jpg)
Ö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
![Page 7: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/7.jpg)
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
![Page 8: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/8.jpg)
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
![Page 9: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/9.jpg)
Lite om laborationerna
● Databasutveckling mot Microsoft SQL Server● MDH har en server ni jobbar emot● Ni arbetar främst i Microsoft SQL Server Management Studio
SSMS är installerat i labsalen● SSMS2016 i labsalar, 2008 fungerar lika bra om ni vill ladda ner från MS
● SSMS finns för gratis nedladdning.https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
● 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
![Page 10: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/10.jpg)
Angående SQL Server
● För närvarande är servern vi använder i kursen låstför access utanför MDHs nätverk.
● Vi förhandlar med ITA kring en lösning
● Möjliga lösningar:● Uppdatera server och öppna igen● Köra från en molnbaserad SQL Server (Azure t.ex.)
● Fungerar smidigt men kostar massor
10
![Page 11: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/11.jpg)
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)
11
![Page 12: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/12.jpg)
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!
12
![Page 13: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/13.jpg)
Resultat från förra årets kursutvärdering● Svarsfrekvens: 23 svarande av 54 studenter L● Egen arbetsinsats <5-14h/vecka (17,4%)
15-24h/vecka (34,8%)>24h/vecka (47,8%)
● Några betyg (skala 1-5)● Övergripande betyg 4.4● Kursinnehåll 4.7● Kursens undervisning 4.6● Tydlighet i examination 4.2● Kurslitteraturen gav stöd 4.0● Studiehandledning 4.7
● Annat● Information om tidigare kursutvärderingar 100% ja● Jämlikhet/Diskriminering/kränkningar
En person har svarat: ”Ja, någon annan har kränkts eller missgynnats”13
![Page 14: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/14.jpg)
Revideringar denna kurs
● Den huvudsakliga kritiken förra året gällde att den parallella kurseninteraktionsdesign tog mycket tid.● Jag har framfört detta på lärarlaget, hoppas vi får en bättre balans I
år.
● Problem: Svårt med Windows Forms om man inte gått den senasteinstansen av OOP
● Lösning: ● Jag hoppas detta försvinner i år eftersom vi nu gett detta 2 år I OOP
14
![Page 15: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/15.jpg)
Något betydligt mindre roligt
FUSK och PLAGIARISM
● Jag AVSKYR fusk och har nolltolerans
● Snälla, låt mig slippa detta i år!!!!!
● I dessa fall:● Plagiat från tidigare års rapport● Plagiat genom översättning
● För hand eller google-translate
● Vilseledande referenshantering● Parafrasering
● Tre upptäckta, tre fällda 15
![Page 16: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/16.jpg)
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!!
16
![Page 17: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/17.jpg)
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
17
![Page 18: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/18.jpg)
Sist men inte minst:
Välkomna till kursen, nu kör vi!
18
![Page 19: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/19.jpg)
Föreläsning 1:Introduktion till DatabaserDVA234 – Databaser
IDT – Akademin för Innovation, Design och Teknik
![Page 20: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/20.jpg)
Innehåll
Föreläsningens mål:Att ge en översikt över kursens innehåll.
● Varför databaser?● Vad är en databas?●Databasernas historia/Relationsmodellen●Datamodellering● Transaktionshantering
20
![Page 21: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/21.jpg)
Vad är en databas?
Ett elektroniskt arkiveringssystem.
Definition 1: ”En samling data som hör ihop, som modellerar en del av världen och är persistent.”
(Padron-McCarty)
Definition 2: ”En samling statiska data som används av applikationssystem inom en given verksamhet”
(C. J. Date)
Definition 3: ”En samling relaterat data.”(Elmasri & Navathe)
Slutsats: Det är alltså samlingen data som är databasen 21
![Page 22: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/22.jpg)
Vad är en databashanterare?● En programvara som har till uppgift att lagra och
hantera databaser● I bland brukar man slarvigt säga “Databasserver”
(Vi kommer till varför det är slarvigt senare..J )
● Databashanterare brukar förkortas DBMS(Database Management System)
● Exempel på några databashanterare:● Oracle● MS SQL Server● MS Access (ingår i MS Office Pro)● MySQL● Mimer SQL● SQLite
22
![Page 23: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/23.jpg)
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
23
![Page 24: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/24.jpg)
Varför databaser?
Dataoberoende - Separera data från applikationen
24
HårdvaraOS-kärna
OS-tjänster
OS API/Skal
App. App. App.
Data
Data(bas)centrisk approach
HårdvaraOS-kärna
OS-tjänsterOS API/Skal
App. App. App.Data Data Data
Applikationscentrisk approach
Applikationerna ansvarar själva för kommunikation• Fler appl. à Högre komplexitet• Ändras en appl. à Dominoeffekt
Separat datalager som en del av systemets basplattform• Appl. kommunicerar via databas• Databas - egen ”vy” till varje appl.
Dataoberoende – Kursens viktigaste ord!!!
![Page 25: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/25.jpg)
Databassystemet
25Databas
En stor fil (eller flera), oftast på disk.
Databashanterings-system (DBMS)
En programvara som hanterar databasfilen Databassystem
Verktyg:• Modellering• Optimering• Administration• Programmerings API• Rapportverktyg
...
Användare
Användare
Användare
Användare
Extern vy A
Extern vy B
Extern vy C
Erbjuder möjligheten attskapa anpassade vyer
![Page 26: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/26.jpg)
Databashistoria: Filbaserade databaser (1:a gen)
26Program Program
Kalle, Kostigen 4Datalogi, 2001, … Pelle, Vasagatan 3Datatekn, 2002,… Nilla, Vasagatan 2Datalogi, 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
![Page 27: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/27.jpg)
Databashistoria:Hierarkiska databaser (2:a gen)
27
Kurs
Kursplan Kurstillfälle
Lärare Student
Program Program
●Data organiserat i hierarkiskt träd
● Används i Windows Registry
● Fortfarande relativt rudimentär modell
● Leder ofta till duplicerat data
![Page 28: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/28.jpg)
Databashistoria:Nätverksdatabaser (3:e gen)
28
Kurs
Kursplan Kurstillfälle
Lärare Student
Program Program
Förkunskaper
●Data organiserat i utökat hierarkiskt träd
● Barn kan ha flera föräldrar
●Ökar modellerings-barheten
![Page 29: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/29.jpg)
Frågespråk (SQL)
Databashistoria:Relationsdatabaser (4:e gen)
●Relationsmodellen●Formell modell
●Data i tabeller●Operatorer ● Standardiserat
frågespråk (SQL)●De-facto standard
idag●Den typ vi använder i
denna kurs
29Program Program
![Page 30: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/30.jpg)
Exempel på en tabell
STUDENTPersonnr# 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
30
![Page 31: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/31.jpg)
Databashistoria:Objektorienterade databaser (5:e gen)
●Hanterar persistenta objekt (data och beteende)
●Objekt kan instansieras och delas i databasen
●Ofta hårt integrerat i programspråket
31
Databas – Persistenta objekt
Frågespråk (OQL, …)Programspråk – Ickepersistenta objekt
Program Program
![Page 32: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/32.jpg)
”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. 32
![Page 33: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/33.jpg)
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”
33
![Page 34: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/34.jpg)
Relationsmodellen● Relationsoperationer (≈ databasfrågor)
●Operatorer tillhandahålls för att skapa nya sanna påståenden utifrån givna påståenden.Exempel ”Vad hette de som startade DVP år 2014”
!"#$"(&'()*(#$+,-./0(&12#(2å(+4567 89:;<=9 ))
Resultat:
●Ovanstående kryptiska rad kan utläsas som följer(börja längst in i parenteserna)
Ta tabellen STUDENT, och välj alla rader där startår är 2014,av dessa rader välj alla rader där program är DVP,för dessa rader, ta bort alla kolumner utom Namn
● Men det här är ju krångligt, så vi måste hitta något lättare sätt 34
![Page 35: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/35.jpg)
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.
35
![Page 36: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/36.jpg)
Så vår fråga i SQL då….
Vad hette de som startade DVP år 2014: Relationsoperator:
SELECT NamnFROM STUDENTWHERE Program=’DVP’ and Startår=2014;
Resultat:
36
NamnStina Nilsson
Rikard Sjöström
π-operatorn
σ-operatorn
![Page 37: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/37.jpg)
Fler exempel på databasoperationerLä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 + 5WHERE Personnr = ’680906-1882’;
Ta bort data:
DELETE FROM STUDENT WHERE Personnr = ’790518-0219’;
37
![Page 38: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/38.jpg)
Access till Databas
● SQL i terminalfönster● Systemunderhåll● Admin-gränssnitt
38
![Page 39: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/39.jpg)
Access till Databas● Databasverktyg● Systemunderhåll● Admin-gränssnitt
39
Verktyg har sina begränsningar.Underskatta inte terminalfönstret…
![Page 40: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/40.jpg)
Access till Databas
● Programmatisk Access● Applikationer● Web-applikationer
40
![Page 41: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/41.jpg)
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!!! 41
![Page 42: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/42.jpg)
Konceptuell databasdesign:ER-modelleringEntity-Relationdiagram:
42
Personnr
StudentLäserNamn
Programnamn
Program
AkademiEntitet
Samband
Attribut (Primärnyckel understruken)
M1
Startår
Poäng
![Page 43: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/43.jpg)
Logisk databasdesign:Relationsschema
43
STUDENT
Personnr# Namn Programnamn Startår Poäng
PROGRAM
Programnamn# Akademi
Foreign key
Implementation av den konceptuella databasdesignen
Främmande nyckel:● Kan sättas på ett attribut
som refererar till en primärnyckel.
● ReferensintegritetT ex, om en främmande nyckel är Robotik, MÅSTE motsvarande primärnyckel existera.
![Page 44: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/44.jpg)
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?
44
![Page 45: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/45.jpg)
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-300WHERE KontoNr=’11223344’;
UPDATE Konton SET Saldo=Saldo+300WHERE 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.
45
![Page 46: Välkommen till DVA234: Databaser - idt.mdh.se · SQL –Storedprocedures–API programmering –Dataoberoende 1 ... //docs.microsoft.com/en-us/sql/ssms/download-sql-server ... Enkel](https://reader031.vdocuments.us/reader031/viewer/2022021902/5b9adc8509d3f22d2a8c3376/html5/thumbnails/46.jpg)
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 46