Databaser Kapitel 1: Introduktion!



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

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

Databaser - Design och programmering

Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.

732G16: Databaser - Design och programmering

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

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

Grunderna för relationsmodellen!

VAD GÖR DU / VEM ÄR DU?

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

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

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

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

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

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

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

Datalager och datautvinning

VAD GÖR DU / VEM ÄR DU?

TDDD12 och TDDD46 Databasteknik. Lena Strömbäck

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

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

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

Karlstads Universitet, Datavetenskap 1

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Databaser och Datamodellering Foreläsning IV

Databaser design och programmering. Fö 2: Design processen, ER-modellering

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

1. Kvalitetsbegreppet 2. Kommunikation 4. Olika typer av datalagring. 5. Databas 6. DBMS 7. Molntjänster 8. Tabeller. 10. SQL 11.

Databaser design och programmering. Design processen ER- modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Tentamen DATABASTEKNIK - 1DL116

Konceptuella datamodeller

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

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

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

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Webbprogrammering, grundkurs 725G54

Webservice & ERP-Integration Rapport

Introduktion till MySQL

ÖVERVAKNING AV SQL SERVER

Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!

Ny skalbar och öppen OLAP-teknologi, SAS OLAP server

Databaser. Vad du ska lära dig: Ordlista

Lite om databasdesign och modellering

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

Design och underhåll av databaser

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

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

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

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

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

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

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

Sample exam questions. Database exam TIG058

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Vinjett 1: Relationsdatabas för effektivaste vägen

Mål med lektionen! Repetera och befästa kunskaperna.

Databasdesign. E-R-modellen

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

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

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

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

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Prova på-laboration i SQL

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Databaser - Design och programmering. Säkerhetsproblem. SQL-injektion. Databashanteraren. Transaktion. Exempel. Transaktionshantering och säkerhet

Introduktion till frågespråket SQL (v0.91)

Databaser och databasdesign, 7,5 hp

NORMALISERING. Mahmud Al Hakim

DATALAGRING. Ämnets syfte

Tentamen för DD1370 Databasteknik och informationssystem

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Föreläsning 6 Databaser och säkerhet

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

Vyer, Prepared Statements, Triggers

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

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Tentamen för DD1370 Databasteknik och informationssystem

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

Relationsmodellen och syntetisk databasdesign

Analytisk relationsdatabasdesign

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

Programmering B med Visual C

PHP-presentation Dataföreningens Open Source-nätverk

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

Analys och utveckling av en metod för distribution av data

ER-Diagram. Databasutveckling Diagram

Dagens agenda. Lagring & berarbetning av data. Filer och filformat Metadata Komprimering Kryptering Olika typer av data Filsystem Databaser

Structured Query Language (SQL)

INTRODUKTION TILL JDBC

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Objektorientering. Grunderna i OO

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Transkript:

Databaser Kapitel 1: Introduktion 1 Vad är en databas? En databas innehåller information som beskriver eller modellerar en viss del av världen T.ex. ett företag eller en verksamhet En databas består av en samling av sinsemellan relaterad data är persistent (dvs. beständig) har ett schema, dvs. en beskrivning av data samt de samband som finns mellan data skall vara konsistent, dvs. skall inte innehålla motsägelser Till en databas hör också en mängd av tillämpningsprogram som kan användas för att accessera och manipulera data Ger användarna en omgivning som är både bekväm och effektiv att använda En databashanterare (DBMS, Database Management System) är ett datorsystem som lagrar och hanterar databaser 2 1

Varför behöver jag känna till databaser? Databaser ingår som en komponent i så gott som alla större informationssystem. Man behöver känna till grunderna för databaser för att kunna delta i arbete med att designa, utveckla eller fatta beslut om hur ett informationssystem skall byggas. Vi använder informationssystem som är baserade på databaser varje dag: När man lyfter pengar från en bankautomat eller betalar räkningar på web-banken. När man handlar i en butik. När man bokar resor. När man använder ÅA:s studieplaneringssystem MinPlan, t.ex. för att anmäla sig till en kurs eller en tent. När man besöker webbplatser som t.ex. Facebook, YouTube, LinkedIn eller IT-institutionens websidor. När man ringer ett telefonsamtal. O.s.v. 3 Tillämpningar av databaser Databasanvändare: Banker: kunder, konton, lån, transaktioner Försäkringsbolag: kunder, försäkringar, ersättningar,... Skatteverket: uppgifter om inkomster, avdrag, skatter,... Flygbolag: bokningar, flygförbindelser,... Universitet: studenter, kurser, studieprestationer, anställda,... Försäljning: kunder, produkter, pris, försäljning, lager, Online försäljning: produkter, kunder, uppföljning av beställningar, personliga rekommendationer och reklam Tillverkning: produktion, inventering, lager, beställningar, supply chain Human resources: anställda, arbetsförhållanden, löner, beskattning, O.s.v. Databaser berör alla aspekter av våra liv 4 2

Fördelar med databassystem Alternativet till databastillämpningar är datorsystem som lagrar data i vanliga filer. Tillämpningsprogram som accesserar data lagrat i filer och som utför en viss uppgift. Nackdelar med att använda filsystem för att lagra data: Risk för redundans och inkonsistens i data Multipla filformat, duplicerad information i olika filer Ökar risken för att lagra motstridig information Svårt att accessera data Måste skriva ett nytt program för varje ny uppgift som skall utföras Dataisolering Data finns inte samlat på ett ställe, utan i multipla filer och i olika format Integritetsproblem Integritetsbegränsningar (t.ex. att ett kontos saldo måste vara större än noll) blir gömda i programkod i stället för att vara explicit deklarerade Svårt att sätta till nya restriktioner eller ändra på existerande 5 Fördelar med databassystem Nackdelar med att använda filsystem (forts.) Svårt att implementera atomicitet i uppdateringar Misslyckade uppdateringar kan lämna databasen i ett inkonsistent tillstånd med bara partiella uppdateringar utförda Exempel: Överföring av en summa från ett konto till ett annat skall antingen utföras i sin helhet, eller så inte alls Svårt att implementera samtidig access från multipla användare Samtidig access behövs för effektivitetsskäl Okontrollerade samtidiga accesser kan leda till inkonsistens Exempel: Två användare läser ett kontos saldo och uppdaterar det samtidigt Säkerhetsproblem Svårt att ge olika användare access till en del av data, men inte allt Databassystem erbjuder lösningar till alla de ovan nämnda problemen 6 3

Nackdelar med databassystem? För små tillämpningar kan det vara onödigt att använda databassystem. Om mängden data är liten och behandlingen av data är enkel. Ett alternativ kan t.ex. vara att använda ett tabellkalkylprogram (som t.ex. Excel eller OpenOffice) Databassystem är resurskrävande. Kräver mera lagringskapacitet på skivminnen och mera processeringskapacitet av datorerna än de flesta andra alternativen Kan vara problematiskt i inbyggda system där man kräver en strikt övre gräns på hur lång tid en operation får ta Kan också kräva mera minneskapacitet än vad som finns tillgängligt i ett litet inbyggt system Tidigare gällde också att databashanterare var dyra att anskaffa Gäller inte nödvändigtvis mera Det finns gratis lösningar av hög kvalitet Open source databashanterare som MySQL, PostgreSQL och SQLite 7 Abstraktionsnivåer Databassystem kan ge olika typer av användare olika vyer av data Gömmer bort en del detaljer från användare som inte behöver känna till de här view level Alla användare behöver inte ha tillgång till all data som finns lagrad. Vy nivån: Olika typer av användare kan se olika delar av data. Logiska nivån: Beskriver data som är lagrad i databasen, och vilka relationer som finns mellan data. Fysiska nivån: view 1 view 2 logical level physical level Beskriver hur information fysiskt lagras t.ex. på skivminne. view n 8 4

Instanser och scheman Schema definierar databasens logiska struktur Beskriver de tabeller som ingår i databasen Ändras sällan Analogt med typ-information för en variabel i ett program Instans det verkliga innehållet i databasen vid en viss tidpunkt Ändras varje gång som man sätter in eller stryker data i databasen Analogt med värdet på en variabel Fysiskt dataoberoende Det logiska schemat är oberoende av det fysiska schemat, dvs. hur data fysiskt lagras t.ex. på hårdskivor. Man kan modifiera det fysiska schemat utan att ändra på det logiska schemat. Tillämpningar är enbart beroende av det logiska schemat. Gränssnitten mellan de olika nivåerna och komponenterna skall vara väldefinierade, så att förändringar i en del inte påverkar andra delar. 9 Datamodeller En samling av begrepp och verktyg för att beskriva Data Relationer mellan data Semantik för data (dvs. betydelsen av data) Restriktioner på data Det finns en mängd olika datamodeller som kan användas för att beskriva databaser Relationsmodell Entity-Relationship modell (främst för databasdesign) Objekt-baserade datamodeller (Objektorienterad och Objektrelationsmodeller) Semistrukturerad datamodell (XML) Andra äldre datamodeller: Nätverksmodell Hierarkisk modell 10 5

Exempel på en relationsdatabas En relationsdatabas består av en samling av tabeller som är relaterade med varandra En tabell som beskriver lärare vid ett universitet ID namn institutionens namn lön En tabell som beskriver institutionerna institutionens namn byggnad budget Rader (tuppler) Kolumner (attribut) 11 Data Definition Language (DDL) Databasscheman beskrivs med hjälp av ett datadefinitionsspråk (DDL). Specifikationsspråk för att definiera databasschema Exempel: create table instructor ( ID char(5), name varchar(20), dept_name varchar(20), salary decimal(8,2) " "); " Tabelldefinitionerna lagras som metadata (dvs. data om data) i en data dictionary Databasschema Integritetsbegänsningar Hurudana värden kan attributen ha (domänbegränsningar) Hurudana beroenden finns mellan data (referentiell integritet) Lagringsstruktur och accessmetoder Auktorisering vilka användare har rätt att accessera data 12 6

Data Manipulation Language (DML) Språk för att accessera och manipulera data som är organiserat enligt en viss datamodell Kallas också frågespråk query language Två klasser av språk Procedurella användaren specificerar exakt hur man kommer åt det det data som man vill ha som i ett vanligt programmeringsspråk (som t.ex. Java) Deklarativa (icke-procedurella) användaren specificerar hurudan data som begärs, utan att exakt behöva ange hur man kommer åt det SQL är det överlägset mest använda frågespråket Mera deklarativt än procedurellt 13 SQL SQL: allmänt använt icke-procedurellt språk Exempel: Hitta namnet på den föreläsare som har ID-nummer 22222 select name "from instructor "where instructor.id = 22222 ; " Exempel: Hitta ID-nummer och institutionen för alla föreläsare i de institutioner som har en budget på över 95 000 select instructor.id, department.dept_name from instructor, department where instructor.dept_name = department.dept_name and department.budget > 95000 ; " Tillämpningsprogram accesserar vanligtvis databaser via Utvidgning av ett programmeringsspråk som tillåter inbäddad SQL Gränssnitt till tillämpningsprogram som tillåter att man sänder SQL frågor till en databas t.ex. ODBC/JDBC 14 7

Databasdesign Processen att designa databasens allmänna struktur: Logisk design Fatta beslut om hur databasens schema skall se ut. Databasdesign kräver att vi hittar en bra samling av relationsscheman som innehåller all data som behövs i den verksamhet där databasen skall användas. Business beslut: Vad? Vilka alla attribut skall lagras i databasen? Datatekniska beslut: Hur? Vilka relationsscheman (dvs. tabeller) skall vi ha och hur skall de olika attributen fördelas mellan tabellerna? Fysisk design Besluta om den fysiska layouten av databasen Normalisering Teori som beskriver vad som är en bra databasdesign. Delar upp informationen som skall lagras i en mängd tabeller utan onödig redundans. 15 Databasdesign? Är det här ett bra sätt att lagra informationen i vår exempeldatabas? En del information lagras upprepade gånger, t.ex. information om att Finance-institutionen finns i Painter-byggnaden och att den har en budget på 120 000. 16 8

Entity-Relationship modellen Modellerar en verksamhet som en samling av entiteter och samband mellan dessa Entitet: en sak eller ett objekt som kan särskiljas från andra objekt Beskrivs av en mängd attribut Samband: ett samband mellan två eller flera entiteter Representeras visuellt med hjälp av ett Entity-Relationship diagram: instructor ID name salary member department dept_name building budget Sambandet member beskriver att varje entitet instructor kan vara knuten till en entitet department 17 Intern struktur av databassystem naive users (tellers, agents, web users) application programmers sophisticated users (analysts) database administrators use write use use application interfaces application programs query tools administration tools compiler and linker DML queries DDL interpreter application program object code DML compiler and organizer query evaluation engine query processor buffer manager file manager authorization and integrity manager transaction manager storage manager indices data dictionary disk storage data statistical data 18 9

Lagringshantering Lagringshanteraren (storage manager) är en programmodul som utgör ett gränssnitt mellan låg-nivå data som är lagrat i databasen och tillämpningsprogram och frågor som görs mot databasen. Lagringshanteraren är ansvarig för: Interaktion med filhanteringen Effektiv lagring, sökning och uppdatering av data Sköter om: Access till lagringsmedia (vanligtvis hårdskivor) Filorganisation Indexering och hashing 19 Frågeprocessering 1. Parsning och översättning 2. Optimering 3. Evaluering query query output parser and translator evaluation engine Det kan finnas flera olika alternativa sätt att evaluera en fråga Skillnaden i kostnad mellan ett bra och ett dåligt sätt att evaluera en fråga kan vara mycket stor Systemet behöver kunna estimera kostnaden för en operation Lagrar statistisk information om tabellerna i databasen (t.ex. deras storlek) Estimerar kostnaden för för att utföra frågor. data relational-algebra expression optimizer execution plan statistics about data 20 10

Transaktionshantering Vad händer om databassystemet kraschar? Vad händer om flera användare samtidigt försöker uppdatera samma data? En transaktion är en samling av operationer som utför en logisk funktion i en databastillämpning T.ex. överför en summa pengar från ett bankkonto till ett annat En transaktionshanteringskomponent ser till att databasen hålls i ett konsistent (korrekt) tillstånd trots att det kan ske fel i systemet (t.ex. strömavbrott, operativsystemet kraschar) och transaktionen misslyckas. Concurrency-control manager övervakar interaktionen mellan samtidiga transaktioner, och ser till att databasen hålls konsistent. 21 Databasanvändare Användare kan delas in i olika klasser beroende på hur de använder systemet Databasadministratör definierar databasens struktur, beviljar användare rättigheter till databasen, övervakar databassystemets prestanda, rutinunderhåll Applikationsprogrammerare utvecklar program som utför transaktioner mot databasen (med SQL) Sofistikerade användare gör SQL frågor mot databasen, t.ex. för att sammanställa rapporter av olika slag Naiva användare använder sig av färdiga tillämpningsprogram som har blivit utvecklade av applikationsprogrammerare Exempel: användare som accesserar en databas över webben, bankfunktionärer, en student som gör en kursanmälan 22 11

Databassystemens historia 1950-tal och tidigt 1960-tal: Databehandling med magnetband som lagringsmedia Magnetband ger endast möjlighet till sekventiell access Hålkort för input Sent 1960-tal och 1970-tal: Hårdskivor ger möjligheter till direktaccess till data Nätverks- och hierarkiska datamodeller är i allmän användning Ted Codd definierar relationsdatamodellen Tilldelas ACM Turing Award för det här arbetet IBM Research börjar utveckla en prototyp av System R UC Berkeley börjar utveckla en prototyp av Ingres Effektiv transaktionsbehandling (för sin tid) 23 Historia (forts.) 1980-tal: Prototyper av relationsdatabassystem, som utvecklats i forskningsprojekt, utvecklas vidare till kommersiella system SQL blir en industristandard Parallella och distribuerade databassystem Objekt-orienterade databassystem 1990-tal: Stora beslutsstödande och data-mining tillämpningar Stora multi-terabyte datalager (data warehouse) Handel på webben börjar utvecklas Tidigt 2000-tal: Access till databaser via WWW XML och XQuery standarderna Automatiserad databasadministration Nu: NoSQL databaser databaser som inte använder relationsmodellen Mycket stora distribuerade databaser Google BigTable, Yahoo Pnuts, Apache Cassandra, Amazon Dynamo, 24 12