Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
Databasesystemer Indhold: Database, Database-system (DBMS) Data-model Database-sprog DBMS-arkitektur Nyere data-modeller OODBMS KDBMS Troels Andreasen 2
Database(DB), Data-model(DM), DB-Sprog, DB-system(DBMS) Database (DB) samling af data Data-model (DM) en abstraktion over data definerer en struktur for data i databasen Database-sprog (DDL+DML) definition af databasen (Data Definition Language - DDL) manipulation i databasen (Data Manipulation Language - DML) Database-system (DBMS) system til håndtering af databaser karakteriseret ved: den data-model det bygger på det database-sprog det definerer egenskaber: understøtter tilgang til en database (igennem DDL+DML) effektivt, også for store databaser + flere samtidige brugere Troels Andreasen 3
Eksempel, Data-model Model 1 Fil, Post og Felt Model 2 Relation, Tupel og Attribut Model 3 Entitet, sammenhæng, Attribut Model 4 Objekt, egenskab, attribut, metode Troels Andreasen 4
Database-sprog, DDL Data Definition Language (DDL) benyttes til definition af databasen, dvs. til specifikationer for filer i databasen som: navn og post-format lagringsstruktur nøgler begrænsninger (integritet) Eksempel, DDL Definition af STUDERENDE i relationel DDL CREATE TABLE STUDERENDE ( PERSONNUMMER: INTEGER, NAVN:CHAR(30), HUSNR:INTEGER); CREATE INDEX FOR STUDERENDE ON PERSONNUMMER; Troels Andreasen 5
Database skema (forskellige notationer) definitionen af en database i passende notation, f.eks.: DDL: CREATE TABLE STUDERENDE ( PERSONNUMMER: INTEGER, NAVN:CHAR(30), HUSNR:INTEGER); CREATE INDEX FOR STUDERENDE ON PERSONNUMMER; eller prædikat-notation: STUDERENDE(PNR,NAVN,HUSNR) eller diagram-notation PNR NAVN STUDERENDE HUSNR eller Troels Andreasen 6
Database-sprog, relationel DML Data Manipulation Language (DML) benyttes til manipulation af data i databasen, dvs. forespørgsel på (læsning af) data opdatering af data Eksempel, relationelt DML (SQL) Forespørgsler: I hvilket hus læser Peter Jensen? SELECT HUSNR FROM STUDERENDE WHERE NAVN = 'Peter Jensen' Hvad læser Peter Jensen? SELECT HUS.FAG FROM STUDERENDE, HUS WHERE STUDERENDE.NAVN='Peter Jensen' AND STUDERENDE.HUSNR = HUS.HUSNR Databaseskema: STUDERENDE(NAVN, HUSNR) HUS(HUSNR, FAG) STUDERENDE NAVN HUSNR : : Peter Jensen 42.2 : : HUS HUSNR FAG : : 42.2 Datalogi : : Troels Andreasen 7
Database-sprog, netværks-dml Eksempel, netværksdatabase DML FAG datalogi HUS-FAG kommunikation HUS 42.1 42.2 42.3 STUD-HUS STUDERENDE Peter Jensen Forespørgsel: Hvad læser Peter Jensen? STUDERENDE.NAVN := "PETER JENSEN" FIND STUDERENDE RECORD BY CALC KEY FIND OWNER OF CURRENT STUD-HUS SET FIND FIRST FAG RECORD IN CURRENT HUS-FAG SET print HUS.FAG Troels Andreasen 8
DBMS-arkitektur DBMS særligt kendetegnet ved Forespørgselsevaluering Optimering af forespørgsler er helt afgørende Transaktionsstyring Central for understøttelse af konsistens, samtidighed, mm. Lagerhåndtering Igennem specielt raffinerede datastrukturer sikres effektiv tilgang til data Troels Andreasen 9
Forespørgselsevaluering I konventionelle systemer (f.eks. NetværkDBMS) Forespørgsel = komplet programkode I relationelle DBMS Forespørgsel optimeres Optimizer bestemmer en plan for at udføre en operation Forespørgsel+plan = komplet programkode Optimizer omformer f.eks. en SQL-forespørgsel til en sekvens af operationer, der involverer læsninger af data Troels Andreasen 10
Om effektiv tilgang Mål for effektiv database-tilgang tidsforbrug uafhængig af datamængdens omfang navigation imellem filer understøttes Metode til effektiv database-tilgang lagrings-strukturer anvendes, f.eks hash-tabeller indeksfiler netværk (pegerkæder) Navigation at kombinere sammenhørende data fra flere filer ved brug af lagrings-strukturen Troels Andreasen 11
Om effektiv tilgang Navigation, eksempel Database STUDERENDE(NAVN, HUSNR) HUS(HUSNR, FAG) Forespørgsel: Hvad læser Peter Jensen? Netværk DML (Eksplicit navigation) STUDERENDE.NAVN := "PETER JENSEN" FIND STUDERENDE RECORD BY CALC KEY FIND OWNER OF CURRENT STUD-HUS SET FIND FIRST FAG RECORD IN CURRENT HUS-FAG SET print HUS.FAG Relationel DML (ingen navigation) SELECT HUS.FAG FROM STUDERENDE, HUS WHERE STUDERENDE.NAVN='Peter Jensen' AND STUDERENDE.HUSNR = HUS.HUSNR FAG HUS HUS-FAG STUD-HUS STUDERENDE datalogi STUDERENDE NAVN HUSNR : : Peter Jensen 42.2 : : HUS HUSNR FAG : : 42.2 Datalogi : : komm 42.1 42.2 42.3 Peter Jensen Troels Andreasen 12
Om effektiv tilgang Optimering Gammel teknologi, f.eks. Netværk DBMS programmør ansvar Nyere teknologi, f.eks. Relationel DBMS system-ansvar Ny teknologi, Objektorientering programmør / system ansvar? Troels Andreasen 13
Transaktionsstyring Transaktion: vigtigt begreb i forbindelse med bl.a. Konsistens Samtidighed Datasikkerhed Transaktion = Gruppe af operationer på databasen Troels Andreasen 14
Transaktionsstyring ACID-transaktion T (regler for transaktionsstyring) Atomicity alle eller ingen oprationer i T gennemføres Metode: resultat af T beregnes og "commit"tes (dvs. T logges og resultat realiseres i DB) Consistency antages før og kræves efter T, men ikke under T Metode: Håndhævning af begrænsninger Isolation samtidige T1 og T2 må ikke have indflydelse på hinanden (F.eks. at tømme sin konto i to banker samtidigt ) Metode: låsning ved opdatering Durability resultat af T må ikke gå tabt Metode: logging Troels Andreasen 15
DB: mer end tekst og tal Data kan f.eks. være dokumenter billeder video, audio rader-signaler remote sensing kort (GIS) Ofte realiseret ved hybride løsninger OO-funktionalitet programmerbar DBMS-funktionalitet f.eks. "forespørgsel" = fingeraftryk Troels Andreasen 16
DBMS: mer end læs og skriv Client-server DBMS fødes i client-server arkitektur f.eks. Oracle s SQL-net DBMS specialitet Distribuerede databaser Aktive DBMS constraints regler opretholdt af systemet triggers hændelses-styret kode (som dæmoner) Troels Andreasen 17
DBMS: mer end læs og skriv Data warehouse speciel database der opstår som samling af centrale udtræk fra forskellige databaser beregnet på forespørgsler er ofte Temporale databaser dvs. omfatter historiske data for en passende periode Data mining/knowledge discovery metadata-udtræk fra database i form af regler/viden om indhold Troels Andreasen 18
DBMS: mer end læs og skriv Advanced query mechanisms høj-niveau sprog, f.eks. med avancerede/fleksible konstruktioner eller naturligt sprog specielle evaluerings-mekanismer blød fortolkning af forespørgsler relevance feedback Troels Andreasen 19
OODBMS Objektbase-systemer Egenskaber komplekse objekter - nedarvning indkapsling - metoder tilknyttet objekter Database objekt-forekomster Databaseskema objekt-typer (klasser) Sammenlignelig med: Kørende OO-program To retninger: Objekt-orienteret og Objekt-relationel Troels Andreasen 20
KDBMS: Videnbase-systemer Egenskaber understøtter ét generelt sprog til definition, manipulation og forespørgsler på data databasesproget er deklarativt med stor udtrykskraft Database, database skema og forespørgsler udtrykt ved sætninger i det generelle sprog Sammenlignelig med : Kørende Prolog-program Troels Andreasen 21