Databaser och databassystem

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Svenska WebDewey Introduktion
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Databaser & databasdesign
Vad är en databas? “En databas är en delad samling logiskt relaterade data som designats för att möta informationsbehovet i en organisation eller för.
Att söka till högskolan
Relationsdatabasdesign
Databasadministration
Romersk skulptur Exempel Förutsättningar Kännetecken
Access med Sebastian och Robert
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Klasser och objekt.
DATABASHANTERING för programmerare
B2KUNO Johan Eklund.
Från verksamhet till databas
Tillämpning av bolagsstyrningskoden vid årsstämmor 2005 och 2006.
Leif Håkansson’s Square Dancer Rotation
Datamodellering med E/R-diagram
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Objektorienterad tänkande
Välkommen Vahid Mosavat
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
LANDSTINGSDIREKTÖRENS STAB Regional utveckling BILD 1 Resultat av enkät till landstingspolitiker
Föreläsning 2 Datalogi för E1 2D1343
Svenska WebDewey Introduktion
WEBMASTER DAG 13 Mahmud Al Hakim
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Databaser och databas-system
Praktisk databasdesign (kap 12)
DAV B04 - Databasteknik Indexering (kap 14).
Datamodellering med E/R-diagram
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
Föreläsning 11 Arrayer.
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Programmering B PHP Lektion 2
DATABASHANTERING för programmerare
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
TÄNK PÅ ETT HELTAL MELLAN 1-50
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
ITK3:DB/EIT:DB Databasmetodik
Databashantering MS Access 2003 Lektion 2
Flexicon – Din systempartner
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
OpCon/xps - A case study. Club2200Page 1 OpCon/xps – A case study Club2200 Magnus Nyman & Hans Forslind.
Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Från databas till Excel
IT Databas Göran Wiréen
Repetition Del 1.
IT Databas Göran Wiréen
KaU - Datavetenskap - DAV B04 - MGö
Presentationens avskrift:

Databaser och databassystem Vad är en databas? Vad har en databas för egenskaper? Vilka olika typer av användare finns det? Fördelar/nackdelar Kort historik om databaser Hur är databaser uppbyggda? (arkitektur) Databasteknik

Grundläggande terminologi En databas är en samling av relaterad data Databasen representerar någon aspekt av verkligheten, ibland kallad minivärlden eller University of Discourse (UoD) Ett databashanteringssystem (DBHS) är ett programvarusystem som används för att skapa och underhålla databaser ”Ett filhanteringssystem som kan hantera komplexa relationer mellan data och hämta och uppdatera data enkelt och effektivt” Ett databas-system består av DBHS-mjukvaran tillsammans med själva databasen (applikationer, användare) Databasteknik

Databasteknik

Egenskaper hos databas-system I DBHS lagras en beskrivning av databasen (struktur, datatyper, integritetsregler mm) En datamodell används för att gömma implementationsdetaljer och i stället ge användarna en logisk vy av databasen Data i en databas är: integrerad (”one fact in one place”) delad (flera användare kan använda databasen samtidigt) Manipulation av databasen görs med ett frågespråk (oftast SQL) Databasteknik

Databasteknik

Egenskaper hos databas-system (forts) Redundansen kan minskas Säkerheten kan förbättras Flera olika användargränssnitt Integriteten kan upprätthållas Stöd för komplexa relationer mellan data Stöd för återhämtning av data Tiden för applikations-utveckling kan minskas Databasteknik

Nackdelar med databas-system Ofta höga kostnader för hårdvara, mjukvara och utbildning Komplexiteten hos ett DBHS kan ibland vara onödig eller ge för låg prestanda Databasteknik

Användare av databas-system Databasadministratörer (DBA) Applikationsprogrammerare Slutanvändare Databasteknik

Kort historik… 1965-1980 användes främst hierarkiska databaser och nätverksdatabaser Från ca 1980 har de flesta nya databas-system varit relationsdatabaser DB2, ORACLE, INFORMIX, SYBASE SQL Server, Access (Microsoft) MySQL (Linux) Från ca 1990 har också andra typer av databas-system utvecklats, t ex objektorienterade och objektrelationella databaser Databasteknik

Databasteknik

Datamodeller En datamodell är en samling koncept för att beskriva databasens struktur, de integritetsregler den måste följa och oftast också de operationer som går att göra på databasen Olika typer av datamodeller Högnivå-modeller använder koncept som ligger nära hur användare förstår data. Används ofta vid databasdesign. Exempel E/R-modellen Logiska modeller använder koncept som kan förstås av användare men inte ligger alltför långt ifrån hur data organiseras i databasen. Lågnivå-modeller använder koncept som beskriver i detalj hur data är lagrad rent fysiskt Beskrivningen av databasen kallas databasens schema och kan visas i ett schema-diagram Databasteknik

Databasteknik

The three-schema architecture Databasteknik

Treschema-arkitekturen Definierar scheman på tre nivåer. Interna schemat – beskriver fysiska lagringsstrukturer och access-vägar Konceptuella schemat – beskriver hela databasen på en logisk nivå Externa scheman – beskriver de olika användarvyerna Databasteknik

Dataoberoende Logiskt dataoberoende: Det går att göra ändringar i det konceptuella schemat utan att det påverkar de externa schemana eller applikationsprogrammen Fysiskt dataoberoende: Det går att göra ändringar i det interna schemat utan att det påverkar det konceptuella schemat Databasteknik

Databasens gränssnitt Varje användare kommunicerar med databasen m h a ett språk. Programmerare använder antingen ett konventionellt programspråk såsom C eller java, eller ett 4GL-språk. En slutanvändare använder antingen något frågespråk ( t ex SQL) eller kommunicerar med databasen genom något special-designat menysystem. Varje sådant språk inkluderar ett underspråk (data sublanguage eller DSL), som sägs vara inbäddat i värdspråket (host language). Databasteknik

Ett DSL består av: DDL – Data Definition Language. Den del av språket som används för att definiera de olika objekten som databasen består av. DML – Data Manipulation Language. Den del av språket som används för att manipulera eller utföra operationer på sådana objekt. Databasteknik

Applikationer Applikationer skrivna av användaren Applikationer skrivna i något programspråk (t ex C) med inbäddad SQL eller applikationer skrivna i SQL. Applikationer skrivna av någon leverantör (tools) Kompilatorer för något frågespråk, rapportgeneratorer, grafiska användargränssnitt, kalkylprogram, statistikprogram, 4GL-kompilatorer, CASE-verktyg Program som används för att administrera databasen Laddningsprogram, backup-program, reorganisationsprogram, statistik- och analysprogram. Databasteknik

Katalogen (Data Dictionary) Ett DBHS måste innehålla en katalog eller ett data dictionary, där detaljerad information om systemets olika delar lagras. Exempel på vad som lagras är information om tabeller, index, användare, integritets- och säkerhetsregler. Katalogen lagras också som tabeller, så att det går att ställa frågor till den på samma sätt som till databasen. Databasteknik

Översikt av kursen Genomgång av relationsmodellen (strukturer, integritet, operationer) Genomgång av SQL + praktiska övningar Konceptuell databasdesign (designprocessen, E/R-modellen, mappning av E/R-modellen till relationsmodellen, funktionella beroenden och normalisering) Fysisk databasdesign (främst indexering) Transaktionshantering (concurrency, recovery) Databassäkerhet Web-databaser och distribuerade databaser Laborationer: teori, design, implementation och användargränssnitt. Databasteknik

Relationsmodellen En formell teori som baserar sig på (främst) mängdlära och predikatlogik. Föreslogs av E.F Codd 1970 i artikeln ”A relational model for large shared data banks” i Communications of the ACM, juni 1970. Relation är den matematiska termen för tabell. En databas ses som en mängd relationer: DB = {R1, R2,…Rn} Relationsdatamodellen beskriver ett sätt att se på data från en logisk synvinkel. Tre aspekter av data tas upp i modellen: Datastrukturer (eller objekt). Huvudsakligen tabeller. Datamanipulation (eller operationer). Operationer är bl a SELECT, PROJECT och JOIN. Dataintegritet. De viktigaste reglerna är de om entitetsintegritet och referensintegritet Databasteknik

Relationer En relations schema består av en mängd attribut: R = {A1, A2, …An}, där R är relationens namn. Varje attribut är definierat på exakt en underliggande domän. Attributnamnen i en relation måste vara unika. Flera attribut kan dock vara definierade på samma domän. En relations tillstånd eller värde vid en viss tidpunkt benämns r och består av en mängd tupler t (0 eller flera): r = {t1,t2,…tn} Varje tuple t består av en mängd värden v: t = {v1,v2,…vn} där varje värde är hämtat från motsvarande domän Antalet tupler i en relation kallas relationens kardinalitet Antalet attribut i en relation kallas relationens grad En eller flera attribut som unikt identifierar en tuple kallas för relationens primärnyckel Databasteknik

Example of a Relation Databasteknik

Domäner En domän är en namngiven mängd av skalära värden, alla av samma typ. Varje attributs värden måste tas från exakt en underliggande domän. En domän är vad man i moderna programspråk kallar en datatyp. Ex 1. typedef enum{London, Paris, Athens, New York, Stockholm, Rome} City; Detta skapar en datatyp City i ett C-program. Alla variabler av typen City måste ha som värde en av de uppräknade städerna. Ex 2. CREATE DOMAIN City Char(9) DEFAULT ’???’ CHECK (VALUE IN (’London’, ’Paris’, ’Athens’, ’New York’, ’Stockholm’, ’Rome’, ’???’ ) ). De flesta av dagens relationsdatabaser stödjer dock bara primitiva datatyper som CHARACTER, INTEGER och FLOAT. Databasteknik

Egenskaper hos en relation Det finns inga duplicerade tupler. Tuplerna är oordnade (Det finns ingen ”första” eller ”sista ”tuple”). Attributen är oordnade (Det finns inget ”första” eller ”sista” attribut). Alla värden är atomära (odelbara). Detta betyder att en relation alltid är i första normalformen. Databasteknik

Olika sorters relationer En namngiven relation är en relation som har definierats i databasen. En basrelation är en relation som inte är en härledd relation, utan existerar ”på riktigt”. En härledd relation är en relation som är definierad i termer av andra relationer. En vy är en namngiven härledd relation som är virtuell – den existerar bara som ett uttryck. Ett frågeresultat är en icke namngiven härledd relation som är resultatet av att en specifik fråga exekveras. Databasteknik

Vyer (virtuella relationer) En vy är en härledd relation som är namngiven. Relationen finns bara som ett uttryck och brukar därför kallas en virtuell relation Vyer har flera användningsområden, men det viktigaste är att de kan användas för att skapa logiskt dataoberoende. Ett system har logiskt dataoberoende om användare och applikationer inte påverkas av ändringar i databasens logiska struktur. Två aspekter Om databasen växer, d v s om t ex ett attribut läggs till en relation eller en relation läggs till databasen, kan dessa ändringar gömmas med hjälp av vyer. Om databasen omstruktureras, t ex om en relation bryts ner i två stycken, kan vyer användas för skapa illusionen om att det fortfarande är en enda relation. Logiskt dataoberoende kan bara uppnås om systemet stödjer operationer på vyer på ett korrekt sätt. Databasteknik

Andra fördelar med vyer Vyer tillåter att samma data kan ses av olika användare på olika sätt samtidigt. Vyer kan användas som "macron" Vyer kan användas för att gömma data (av säkerhetsskäl) Databasteknik

Integritet Integritet handlar om att se till att data i databasen är korrekt. Vid varje tillfälle innehåller en databas en mängd datavärden som skall representera en viss del av "verkligheten". Vissa värden kan inte tillåtas eftersom de inte representerar något som finns i verkligheten (t ex negativa löner) När databasen definieras måste därför också vissa integritetsregler läggas till. Dessa gör det möjligt för DBHS att hindra att inkorrekta värden läggs in i databasen. Databasteknik

Integritet (forts) Exempel på integritetsregler för STUDENT-databasen CreditHours i relationen COURSE måste vara större än noll. Grade i relationen GRADE_REPORT måste ha värdet A, B, C, D eller F CourseNumber i relationen COURSE måste bestå av ett antal bokstäver följt av fyra siffror Dessa regler är databas-specifika (eller semantiska), dvs de gäller bara för en specifik databas. Relationsdatamodellen innehåller också två generella integritetsregler, dvs regler som gäller för alla databaser. Dessa handlar om (a) kandidatnycklar (och primärnycklar) och (b) främmandenycklar. Databasteknik

Kandidatnycklar Definition av Kandidatnyckel (K): Låt R vara en relation. Då är en kandidatnyckel för R en delmängd av Rs mängd av attribut, säg K, så att: Vid varje givet tillfälle, så har två olika tupler i R inte samma värde på K (K är unik) Om K är sammansatt, så kan ingen del av K tas bort och K fortfarande vara unik (K är ej reducerbar). Notera: En kandidatnyckel som består av mer en ett attribut sägs vara sammansatt. En kandidatnyckel som består av exakt ett attribut sägs vara enkel. Databasteknik

Kandidatnycklar (forts) Kandidatnycklar definieras som mängder av attribut. Ex: STUDENT: K = {StudentNumber} COURSE: K = {CourseNumber} GRADE_REPORT: K = {StudentNumber,SectionIdentifier} Skälet till att kandidatnycklar är så viktiga är att det enda sättet att adressera en speciell tuple är genom att använda ett värde på en kandidatnyckel. Databasteknik

Primärnycklar och alternativa nycklar Primärnyckel: En nyckel som väljs från mängden kandidatnycklar. Alternativ nyckel: Den återstående mängden kandidatnycklar när primärnyckeln har tagits bort. Sekundärnyckel: En sekundärnyckel är en nyckel som när den används för sökning kan returnera en relation med fler än en tuple. Ex. SELECT SSN from EMPLOYEE WHERE DNO = 5; DNO är här en sekundärnyckel. Databasteknik

Nycklar och saknad information (nulls) Nulls är något som används i databaser för att handskas med saknad information. För varje attribut i en relation kan man specificera NULLS ALLOWED eller NULLS NOT ALLOWED. Nulls innebär vissa logiska svårigheter, t ex hur det egentligen skall tolkas. Tolkningar av null värde okänt egenskapen ej relevant värde finns inte värde odefinierat Databasteknik

Entitetsintegritet Tillsammans med primärnycklar finns i relationsmodellen regeln om entitetsintegritet: Ingen del av primärnyckeln i en basrelation får vara null. I en relationsdatabas lagrar vi inte information om någonting vi inte kan identifiera. Databasteknik

Främmandenycklar Definition av främmandenyckel (FK) Låt R2 vara en basrelation. Då är en främmandenyckel i R2 en delmängd av mängden attribut i R2, säg FK, så att: Det finns en basrelation R1 (R1 och R2 behöver ej vara olika) med en primärnyckel PK, och För varje tillfälle, så är varje värde på FK i relationen R2 antingen helt och hållet null eller identiskt med värdet på PK i någon tuple i R1. Varje attribut i en främmandenyckel måste definieras på samma domän som det motsvarande attributet i den matchande primärnyckeln. Främmande-till-primärnyckel referenser sägs ibland vara det "lim" som håller ihop databasen. Dessa sägs representera relationer mellan olika tupler. Databasteknik

Referensintegritet Tillsammans med främmandenycklar, så finns i relationsdatamodellen regeln om referensintegritet: Databasen får inte innehålla några icke matchande värden på främmandenycklar (dvs om B refererar till A, så måste A existera). Databasteknik

Regler för främmandenycklar Vad ska då systemet göra om en operation försöker utföras som skulle bryta mot regeln om referensintegritet ? Vad skall t ex hända om någon försöker ta bort eller uppdatera StudentNumber ’17’ i relationen STUDENT? Två möjligheter (åtminstone) finns för båda operationerna: RESTRICTED - operationerna är förbjudna om ’17’ också finns i GRADE_REPORT CASCADES - operationerna utförs också på de tupler som innehåller ’17’ i GRADE_REPORT. För varje främmandenyckel i databasen skall databasdesignern specificera vad som skall hända vid delete eller update av den matchande primärnyckeln. Databasteknik

Semantiska integritetsregler Semantiska integritetsregler, även kallade business rules, är sådana som bara gäller för en specifik databas. Regler av typen ”Ingen kan ha en lön som är mindre än 10000” kan specificeras med domänregler. Regler av typen ”Varje kurs måste tillhöra en avdelning” specificeras genom att ange NOT NULL för attributet Department i COURSE Regler av typen ”Ingen lärare får ge mer än fyra kurser per termin” kan specificeras genom triggers eller assertions Databasteknik

Relationsalgebra Operationer som görs på relationer för att hämta data från en databas Utdata från alla operationer är en ny relation (algebran är sluten). Detta gör det möjligt att skriva nästlade operationer Operationer De speciella relationsoperationerna select, project, join och division De traditionella mängdoperationerna union, intersection, difference och cartesian product. Databasteknik

SELECT  SELECT returnerar en relation som består av alla tupler från en relation som uppfyller ett visst villkor. SELECT-operationen benämns <selection condition> (R) Den resulterande relationen har samma attribut som R Villkoret är av formen X <jämförelseoperator> Y, där X är ett attributnamn och Y är ett attributnamn eller en konstant. Flera villkor kan sättas samman med hjälp av AND, OR och NOT SELECT är unär, dvs indata är en relation Databasteknik

PROJECT  PROJECT returnerar en relation som består av alla tupler i en relation sedan vissa attribut har utelämnats PROJECT-operationen benämns <attribute list> (R) Den resulterande relationen har bara de attribut som specificeras i attributlistan Duplicerade tupler tas bort av PROJECT PROJECT är unär, dvs indata är en relation Databasteknik

Sekvenser av operationer och RENAME-operationen Flera operationer kan kombineras för att bilda ett algebraiskt uttryck (en fråga) Exempel: Hämta namn och vikt för produkter i London: P PNAME,WEIGHT (s CITY=’London’(P) ) Alternativt så kan man specificera temporära relationer för varje steg: LONDON_PROD <-s CITY=’London’ (P) R <-P PNAME,WEIGHT(LONDON_PROD) Attribut i den resulterande relationen kan ges andra namn om man så vill: LONDON_PROD <-s PNAME,WEIGHT (P) R(Produktnamn,Vikt) <- P PNAME,WEIGHT (LONDON_PROD) Databasteknik

Traditionella mängdoperationer Dessa binära operationer fungerar som motsvarande operationer i matematiken, med en viktig skillnad: operanderna måste vara typkompatibla, dvs bestå av samma slags tupler (gäller ej produkt). UNION: R1  R2 INTERSECTION: R1  R2 DIFFERENCE: R1 – R2 CARTESIAN PRODUCT: R1 X R2 Den kartesiska produkten av två relationer R1 och R2 ger en relation med alla möjliga kombinationer av tupler från R1 och R2. Är meningslös i sig själv. Databasteknik

JOIN – operationer THETA JOIN: Är det samma som en kartesisk produkt följt av en SELECT-operation. THETA JOIN benämns R1 <join condition> R2. Oftast jämförs ett attribut i R1 med ett i R2 i villkoret. EQUIJOIN kallas operationen om villkoret är ”=” NATURAL JOIN är det samma som EQUIJOIN, men där join-attributet i R2 är borttaget i resultat-relationen. NATURAL JOIN benämns R1 * R2 eller R1 * <join attribute1>, <join attribute2> R2 Databasteknik

DIVISION-operationen DIVISION tar två relationer, en binär och en unär, och returnerar en relation som består av alla värden som ett av den binära relationens attribut har och där det andra attributet matchar alla värden i den unära relationen. DIVISION benämns R1  R2 Databasteknik