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



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

Databasdesign. E-R-modellen

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

Databaser Kapitel 1: Introduktion!

Objektorienterad programmering

Relationell databasdesign

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

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

Andra relationella språk

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

Introduktion till arv

Databaser - Design och programmering

732G16: Databaser - Design och programmering

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

Design och underhåll av databaser

Objektorientering Användning

Programmering A. Johan Eliasson

Sätt att skriva ut binärträd

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

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

Programmeringsteknik med C och Matlab

Grunderna för relationsmodellen!

Föreläsning 3.1: Datastrukturer, en översikt

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

Föreläsning 7. Grafiska användargränssnitt

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Föreläsning 10. ADT:er och datastrukturer

Programmering för språkteknologer II, HT2014. Rum

Föreläsning 6: Introduktion av listor

Reducering till relationsscheman

Projektarbete 2: Interaktiv prototyp

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

Övningar Dag 2 En första klass

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Introduktion av aktiv generaliserad kunskap i Businss Process Support System (BPSS)

Tentamen DATABASTEKNIK - 1DL116

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Tentamen Databasteknik

Digitalt lärande och programmering i klassrummet

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

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

HexaFlip. Kravspecifikation

SMD 134 Objektorienterad programmering

Frågeoptimering. Frågeoptimering kapitel 14

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:

Objekt och klasser - Introduktion

Ett annat exempel på en E-R modell. En bank. Beskrivning av banken

Grafisk visualisering av en spårbarhetslösning

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Editering, Kompilering och Exekvering av Javaprogram

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

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

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

Semantik och pragmatik

Major Release 3.1. Vad innebär Major Release 3.1 för svenska användare?

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

TNM065 Johan Eliasson johel964 Dokumentstrukturer Kristina Engström krien026

Grunderna i stegkodsprogrammering

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

INTRODUKTION TILL JDBC

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

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

19. Skriva ut statistik

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

Laboration 1: Figurer i hierarki

OOMPA 2D1359 Föreläsning 2

Abstraktion. Objektorientering. Kartor. Kartor. Hus. Generalisering

Karlstads Universitet, Datavetenskap 1

Objektsamlingar i Java

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Analytisk relationsdatabasdesign


Att använda pekare i. C-kod

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

1 Inledning. Mikael Gunnarsson. 27 juni 2013

PDA-applikationer med.net

Felsökning av mjukvara

Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.

Tentamen TEN1 HI

Föreläsning 1 & 2 INTRODUKTION

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

GEOGRAFI. Läroämnets uppdrag

Välkommen till kommunens Lärportal. - Användarhanledning till dig som vårdnadshavare

Synkronisering. Föreläsning 8

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Imperativ programmering. Föreläsning 4

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programmering och digital kompetens

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

Databasteknik för D1, SDU1 m fl

Transkript:

1 Kap. 1 INTRODUKTION Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a. 1. Möjligheten att hantera persistenta data 2. Möjligheten att accessera stora mängder av data bekvämt och effektivt. Punkt 1 säger bara att det finns en databas som existerar permanent. Innehållet av denna databas är de data ett DBHS accesserar och hanterar. Punkt 2 skiljer åt ett DBHS från ett filsystem, som också hanterar persistenta data, men i allmänhet inte ger snabb access till godtyckliga delar av data. Dessa två egenskaper är fundamentala. Andra som nästan alltid finns i kommersiella DBHS: a. Understöd för åtminstone en datamodell (matematisk abstraktion genom vilken användaren ser data). b. Understöd för vissa högnivåspråk som tillåter användaren att definiera strukturen hos data, accessera data, och manipulera data. c. Transaktionshantering, dvs. att kunna ge korrekt access till databasen åt många användare samtidigt. d. Accesskontroll, dvs. att kunna begränsa access till data av icke-auktoriserade användare. e. Resiliency (stryktålighet): icke förlora data vid systemfel. 1.1 Syften med databassystem Betrakta ett bankbolag som håller information om alla kunder och konton i permanenta filer vid banken. Dessutom har systemet ett antal applikationsprogram som tillåter anv. att manipulera filerna, t.ex. - ett program för att debitera eller kreditera ett konto - ett program för att lägga till ett konto - ett program för att bestämma balansen av ett konto - ett program för att generera månatliga rapporter Dessa applikationsprogram har skrivits av systemprogrammeraren Nya applikationsprogram läggs till systemet efter behov. Typiskt läggs nya permanenta filer och nya appl.program till systemet. Allt detta understöds av ett konventionellt operativsystem

2 NACKDELAR: - Dataredundans och inkonsistens - Svårighet att accessera data - Dataisolering - Samtidig access anomalier - Säkerhetsproblem - Integritetsproblem 1.2 En syn på data Ett viktigt mål för ett DBHS är att ge använandaren en abstrakt syn på data, dvs. systemet döljer vissa detaljer hur data lagras och upprätthålls. 1.2.1 Dataabstraktion För att systemet skall vara användbart måste det skaffa fram data effektivt. Detta har lett till skapandet av komplicerade datastrukturer för att representera data i databasen. Denna komplexitet döljes för användare via flera abstraktionsnivåer: Fysiska nivån. Den lägsta nivån beskriver hur data verkligen lagras. Komplicerade låg-nivå datastruktuer beskrivs härvid i detalj. Logiska nivån. Den nästa nivån beskriver vilka data lagras i databasen, och vilka relationskaper som finns mellan dessa data. Vy nivån. Den högsta abstraktionsnivån beskriver bara en del av hela databasen. Typiskt för att ge användare av databasen en bekväm syn på den del av databasen de är intresserade av.

3 Vy nivå vy 1 vy 2... vy n logisk nivå fysisk nivå Analogi med progr.språk: Vi kunde dekl. en post som: type customer = record customer-name : string; social-security : string; customer-street : string; customer-city : string; end; En bank kunde ha flera dylika post typer, såsom - account, med fälten account-number och balance - employee, med fälten empoyee-name och salary På den fysiska nivån kan en customer, account eller employee post beskrivas som ett block av konsekutiva lagringspositioner (t.ex. ord eller bytes). Kompilatorn döljer denna detaljnivå för programmerare. Likaså döljer databassystemet många lågnivådetaljer för databasprogrammerare. Databasadministratörer kan känna till vissa detaljer om den fysiska organisationen av data. På den logiska nivån beskrivs varje dylik post av en typ definition. På vy nivån definieras flera vyer av databasen och användare ser dessa vyer. 1.2.2 Instanser och Schemor Overall design: schema (<-> typ). Ändras mycket sällan. Information lagrad vid ett visst ögonblick: instans (svarar mot värde av en variabel (av en given typ) vid ett visst ögonblick).

4 Vid deklaration av post typen har vi ännu inte deklarerat några. I progr. var customer1 : customer; Ett fysiskt schema Ett begr. schema Flera subscheman 1.2.3 Data Oberoende I avsnitt 1.2 tre abstraktionsnivåer på vilka databasen kan betraktas Möjligheten att modifiera en schema def. på en nivå utan att påver-ka en schema def på nästa högre nivå kallas kallas data oberoende. Fysiskt data oberoende är möjligheten att modifiera det fysiska schemat (göres ibland för att förbättra effektivitet) utan att till. program behöver skrivas om. Logiskt data oberoende är möjligheten att modifiera det begr. schemat utan att till. program behöver skrivas om. Behövs när den logiska strukturen av databasen förändras (t.ex. tillägg av ett nytts slags konto i ett banksystem). (Svårare) Begr. d.o. svarar mot begr. abstrakta datatyper i progr.språk. Vardera gömmer impl. detaljer för användarna och gör det möjligt att koncentrera på den allmänna strukturen (i st.f. lågnivå impl. detaljer). 1.3 Data Modeller = samling begr. redskap som beskriver - data - datarelationskaper - datasemantik - konsistensbegränsningar Tre grupper: objekt-baserade logiska modeller, post-baserade logiska modeller, (fysiska modeller).

5 1.3.1 Objekt-baserade logiska modeller Används för att beskriva data på logisk och vy nivå. Entitets-relationskaps modellen (E-R) Objekt-orienterade modellen (O-O) 1.3.1.1 E-R modellen Samling grundläggande objekt, entiteter och relationskaper mellan dessa. Entitet särskiljbar (från andra objekt) genom attribut. T.ex. konto-nr och balans beskriver ett visst konto i en bank. En relationskap är en associering mellan flera entiteter. T.ex. deponent (eller cust-acct) associerar en kund med varje konto som kunden har. Mängden av alla entiteter av samma typ: entitetsmängd Mängden av alla relationskaper av samma typ: relationskapsmängd Den logiska strukturen i stora drag av en databas kan uttryckas grafiskt med ett E-R diagram rektanglar, repr. entitetsmängder ellipser, repr. attribut ruter (diamonds), repr. relationskper mellan ent.mgder linjer, länkar attribut till ent.mgder och ent.mgder till relationskaper. cust-id cust-str cust-city acct-nr balance cust-name customer deponent account 1.3.1.2 Objekt-Orienterade Modellen Liksom E-R: baserad på en samling objekt. Ett objekt innehåller värden lagrade i instansvariabler inom objektet. Ett objekt innehåller även kod som opererar på objektet. Dessa kodmängder kallas metoder. Objekt som innehåller samma typer av värden och samma metoder grupperas ihop till klasser.

6 Enda sättet ett objekt kan accessera data av ett annat objekt är genom att till. en metod av det andra objektet. Detta kallas att sända ett budskap (message) till objektet. Till skillnad från entiteter i E-R modllen har varje objekt sin egen entydiga identitet oberoende av de värden det innehåller. Två objekt innehållande samma värden är olika. 1.3.2 Post-baserade logiska modeller Anv. för att beskriva data på begr. (logiska) och vy nivåer. Även högnivå beskrivning av implementeringen (i motsats till objekt-baserade). Databasen är strukturerad i fix-formats poster (därav namnet) av flera typer (förenklar fysiska-nivå impl.). Tre vanligaste (post-baserade): relations (denna kurs handlar mest om detta) nätverks hierarkiska 1.3.2.1 Relationsmodellen Data och relationskaper mellan data repr. av en samling tabeller, som var och en har ett antal kolonner med entydiga namn. Ex. på tabelldata i relationsmodellen customer-name customer-id customer-street customer-city accountnumber Johnson 192-83-7465 Alma Palo Alto A-101 Smith 019-28-3746 North Rye A-215 Johnson 192-83-7465 Alma Palo Alto A-201 Jones 321-28-3123 Main Harrison A-217 Smith 019-28-3746 North Rye A-201 account-number balance A-101 500 A-201 900 A-215 700 A-217 750

7 1.3.2.2 Nätverksmodellen Data repr. av en samling poster och relationskaper bland data representeras av länkar (kan betr. som pekare). Pointer chasing Posterna i databasen är organiserade som samlingar av godtyckliga grafer. 1.3.2.4 Hierarkiska modellen Skiljer sig från nätverksmodellen på så sätt att posterna är organiserade som samlingar av träd i st.f. godtyckliga grafer.

8 1.4 Databas språk Ett databassystem tillhandahåller två typer av språk: ett för att specificera databasschemat, och ett för att uttrycka förfrågningar (queries) och uppdateringar, 1.4.1 Data Definitions Språk (DDL) Spec. ett data schema med en mängd av definitioner i ett DDL. Resultatet av kompileringen av DDL kommandon är en mängd av tabeller som lagras i en speciell fil kallad data lexikon (denna konsulteras förrän verkliga data läses in eller modifieras). Lagringsstrukturen och access metoder spec. med en mängd definitioner i ett speciellt DDL, kallat ett data lagrings och definitionsspråk. 1.4.2 Data Manipuleringsspråk Abstraktionsnivåerna (i 1.2) gäller inte bara strukturering av data utan även manipulering av data. Med data manipulering menar vi sökning av information lagrad i databasen insättning av ny information i databasen strykning av information från databasen modifikation av information lagrad i databasen På den fysiska nivån måste vi definiera algoritmer som tillåter effektiv access till data. På högre abstraktionsnivåer är det i stället effektiv mänsklig interaktion, dvs. bekväm användning som är viktigt. Ett data manipuleringsspråk (DML) är ett språk som tillåter användare att accessera och manipulera data. Två typer: Procedurala DML, kräver att användare anger vilka data efterfrågas och hur de erhålles. Icke-procedura DML, kräver att användare anger vilka data efterfrågas men ej hur de erhålles. Icke-procedurala DML är vanligen lättare att använda, men koden kanske inte lika effektiv. Detta kan förbättras genom inbyggda optimeringstekniker (i själva verket förbättringstekniker), vilka diskuteras i Kap. 12 i kurs-boken. En förfrågan (query) är ett kommando för att söka efter information. Det har blivit praxis att använda frågespråk och data manipuleringsspråk synonymt.

9 1.5 Transaktionshantering Ofta bildar flera operationer av databasen en enda logisk arbetsenhet. Betr. ett exempel med en penningsöverföring där ett konto (A) debiteras och ett annat (B) krediteras. Antingen bör både debiteringen och krediteringen ske eller så ingendera (dvs. överföringen måste ske helt och hållet eller inte alls). Detta allt-eller-ingenting krav kallas atomicitet. Dessutom krävs det att överföringen bevarar databasens konsistens, dvs. värdet av A + B måste bevaras. Slutligen måste de nya värdena av A och B bevaras, trots möjligheten av systemfel, kallas durability. En transaktion är en samling operationer som utför en enda logisk funktion i en databastillämpning. Varje transaktion är både en atomisk och konsistent enhet. Vi kräver alltså att transaktioner inte motstrider några konsistentsvillkor. Om databasen var konsistent när en transaktion startade, så måste databasen vara konsistent när transaktionen terminerar framgångsrikt. Men under transaktionens exekvering kan det behövas att tillfälligt tillåta inkonsistent. Detta kan leda till problem om fel inträffar. Det är programmerarens sak att ordentligt definiera de olika transaktionerna, så att de bevarar databasens konsistens. Att försäkra atomicitet och durability skötes av databassystemet självt - nämligen transaktionshanterings-komponenten. När flera transaktioner uppdaterar databasen samtidigt behöver inte längre konsistensen hos data bevaras trots att varje individuell transaktion är korrekt. Det är på concurrencycontrol managerns ansvar att kontrollera interaktionen bland de samtidiga transaktionerna för att försäkra konsistens hos databasen. Databassystem för små persondatorer har inte dylika finesser, men de är ett krav i större sammanhang. 1.6 Lagringshantering Firmors databaser gigabytes (1000 Megabytes) eller terabytes. Lagras på skivor. Dataflyttningar mellan skivminne och primärminne behövs. Dessa år långsamma jämfört med CPU:s hastighet. Därför: minimera behovet av dylika dataflyttningar. En lagringshanterare (databasmanager) är en programmodul som ger interfacet mellan lågnivåsdata lagrade i databasen och till.program och förfr. givna till systemet. Ansvarig för: Interaktion med filmanagern. DMM översätter de olika DML satserna till lågnivå filsystemskommandon. Integritetskrav. Säkerhetskrav. Backup och återställande. Concurrency control.

10 1.7 Databasadministratör (DBA) Person som har central kontroll över systemet (både data och programmen som accesserar data). Schema definition Lagringsstruktur Schema modifikation och modifikation av fysiska org. Givande av accessrättigheter Specificering av integritetsbegränsningar. 1.8 Databasanvändare - Applikationsprogrammerare - Sofistikerade användare - Naiva användare 1.9 Systemstruktur i stort 1) Query processor komponenter 2) Storage manager komponenter 1): - DML kompilator - Inbyggd DML prekompilator - DDL tolk - Frågeevalueringsmaskin 2): - Auktoriserings- och integritetshanterare - Transaktionshanterare - Filhanterare - Bufferhanterare Dessutom krävs flera datastrukturer för fysiska implementeringen: - Data filer - Datalexikon - Index - Statistiska data

11 1.10 Sammanfattning Ett databashanteringssystem (DBHS) består av en samling data och program som accesserar data. Data beskriver en speciell firma (t.ex.). Det primära syftet är att ge en omgivning som är både bekväm och effektiv för sökning och lagring av information (och typiskt stora informations-mängder). Ett BHS ger användare en abstrakt syn på data: systemet gömmer detaljer om hur data lagras. Det gör detta genom att definiera tre abstraktionsnivåer: den fysiska nivån, den logiska nivån och vy nivån. Databasens struktur anges av datamodellen: en samling begreppsmässiga redskap för att beskriva data, data relationskaper, och data begränsningar. Databaser förändras med tiden när information insätts och stryks.samlingen information lagrad vid ett visst ögonblick kallas databasens instans.designen i stort kallas databasens schema. Möjligheten att modifiera en schemadefinition på en nivå utan att påverka en schemadefinition på nästa högre nivå kallas dataoberoende. Det finns två nivåer av data oberoende: fysiskt d.o. och logiskt d.o. Ett databasschema anges m.h.a. ett data-definitionsspråk (DDL). DDL kommandon kompileras till en mängd av tabeller som lagras i en speciell fil som kallas ett data lexikon. Ett datamanipuleringsspråk (DML) är ett språk som gör det möjligt för användare att accessera och manipulera data. Det finns väsentligen två typer: procedurala och ickeprocedurala. Transaktionshanteraren ansvarar för att försäkra att databasen förblir i ett konsistent tillstånd trots systemfel. Den ser också till att samtidiga transaktioner fortskrider utan konflikter. Lagringshanteraren är en programmodul som ger interfacet mellan låg-nivå data lagrade i databasen och tillämpningsprogram och frågor givna till systemet.

12 Övningsuppgifter 1.1 Vilka är de fyra största skillnaderna mellan ett DBHS och ett filhanteringssystem? 1.2 I detta kapitel har vi listat några av de främsta fördelarna med ett DBHS. Finns det några nackdelar? (W-m 1.2) 1.3 Förklara skillnaden mellan fysiskt och logiskt dataoberoende. 1.4 Lista databasmanagerns uppgifter. För varje fall, förklara de problem som skulle uppstå om ansvaret inte uppfylldes. 1.5 Vad är de viktigaste funktionerna hos en databasadministratör? 1.6 Lista sju olika programmeringsspråk som är a) procedurala och två som är b) icke-procedurala. Vilken grupp är lättare att lära sig och använda? (W-m 1.6) 1.7 Lista de viktigaste stegen då en databas sättes upp för en speciell firma. (W-m 1.7)