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



Relevanta dokument
Relationell databasdesign

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

Grunderna för relationsmodellen!

Databasdesign. E-R-modellen

Uppdelning. Relationell databasdesign, FB Teori Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat.

Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10

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

Reducering till relationsscheman

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

Frågeoptimering. Frågeoptimering kapitel 14

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

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

Funktionella beroenden - teori

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

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

Universitetet: ER-diagram

Karlstads Universitet, Datavetenskap 1

NORMALISERING. Mahmud Al Hakim

Tentamen DATABASTEKNIK - 1DL116

Databaser Design och programmering

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

Konceptuella datamodeller

Lite om databasdesign och modellering

Karlstads Universitet, Datavetenskap 1

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

Föreläsning 3 Dagens föreläsning går igenom

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

Svar till tentamen DATABASTEKNIK - 1DL poäng

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

Informationssystem och databasteknik

EMPS(NAME, SALARY, DEPT)

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Databaser. Vad du ska lära dig: Ordlista

Kvalitetstänkande. Utgångsläge Samtliga ER-diagram har överförts till scheman

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Logisk databasdesign

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

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

Föreläsning 6: Normalisering & funktionella beroenden

Relationsdatabasdesign

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

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Föreläsning 5: Relationsmodellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser design och programmering. Design processen ER- modellering

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

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

Lösningar till tentamen i EDAF75

Databasteori. Övningar

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Databaser och Datamodellering Foreläsning IV

Webbprogrammering, grundkurs 725G54

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

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

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

Relationskalkyl (RK)

Inga hjälpmedel är tillåtna

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

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Klasser och objekt, referenser Grundkurs i programmering med Python

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

IT i organisationer och databasteknik

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

Tentamen Databasteknik

Informationssystem och Databasteknik

GIS, databasteknik och kartografi. Kursmaterial för databasdelen

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

Design och underhåll av databaser

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Databasteori. Övningar

An English version of the questions is found at the back of each page.

Lösningsförslag, tentamen i Databaser

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

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

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

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Prova på-laboration i SQL

ER-Diagram. Databasutveckling Diagram

Analytisk relationsdatabasdesign

Tentamen i Databasteknik

Databasteori Övningar

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

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

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Transkript:

Relationsmodellen 2-1 Relationsmodellen Relations modellen är idag den mest änvända datamodellen för kommersiella applikationer. Relationsdatabasstruktur En relationsdatabas består av en samling tabeller, alla med unika namn. En rad i en tabell representerar ett samband mellan en mängd värden. En tabell är en entitetsmängd och en rad en entitet. Exemplet i boken är ett banksystem tabell, entitetsmängd attribut rad, entitet account account_number branch_name balance A-101 Downtown 500 A-102 Perryridge 400 A-201 Brighton 900 A-215 Mianus 700 A-217 Brighton 750 A-222 Redwood 700 A-305 Round Hill 350 Ett nära samband mellan en tabell och en relation existerar.

Relationsmodellen, 2-2 Grundläggande struktur Givet mängder D 1, D 2,..., D n så är en relation r en delmängd av D 1 D 2... D n En relation är en mängd av n-tupler (a 1, a 2,..., a n ) ) där varje a i D i D i är domänen = mängden av alla tillåtna värden för attribut i Ex.: Låt customer_name = {Jones, Smith, Curry, Brown} customer_street = {Main, North, Park} customer_city = {Rye, Pittsfield, Harrison} Då är r = { (Jones, Main, Harrison), (Smith, North, Harrison), (Curry, North,Rye), (Brown,Park, Rye) } en relation över customer_name customer_street customer_city Enda skillnad från definitionen av en relation i matematiken är att varje attribut i en relation har namn istället för att vara numrerade (nummer 1 för domänen som listas först, osv.).

Relationsmodellen 2-3 Attributtyper Attributvärden måste (normalt) vara atomiska; dvs. odivisibla. Obs! Multivärda attributvärden är inte atomiska. Sammansatta attributvärden är inte atomiska. Det speciella värdet null är medlem av varje domän. Null-värdet orsakar komplikationer vid definition av många operationer. Tupelvariabler En tupelvariabel t är en variabel vars domän är mängden av alla tupler Notation: värdet för tupel t:s attribut customer_name: t[customer_name] alt.: t[1] dvs.: t[customer_name] = t[1] = Jones Notation: t r anger att tupeln t är i relationen r Obs! Eftersom en relation (tabell) är en mängd av tupler har tuplernas (radernas) ordningsföljd ingen betydelse.

Relationsmodellen 2-4 Databasscheman Databasschema = logisk uppbyggnad av databasen. Databasinstans = innehållet i databasen vid en viss tidpunkt. Begreppet relation motsvarar variabeln i ett programmeringsspråk och begreppet relationsschema således typdeklarationen i ett programmeringsspråk. Ett relationsschema ges ett namn (konvention: relationsnamn består av bara små bokstäver, medan namnen på relationsscheman börjar med en stor bokstav). Ett relationsschema består av en lista attribut med motsvarande domäner: A 1, A 2,..., A n är attribut R = (A 1, A 2,..., A n ) är ett relationsschema Ex.: Ex.: Customer_schema = (customer_name, customer_street, customer_city) r(r) är en relation på relationsschemat R customer(customer_schema)

Relationsmodellen 2-5 Databasinstans Relationsinstans är det aktuella värdet för en relation (kan förändras) och anges m.h.a. en tabell. (Begreppet relationsinstans motsvarar värdet för en variabel i ett programmeringsspråk.) Ett element t i r är en tupel, representerad av en rad i en tabell Exempel på en relationsinstans för relation customer customer = { (Jones, Main, Harrison), (Smith, North, Harrison), (Curry, North,Rye), (Brown,Park, Rye) } med schemat Customer_schema = (customer_name, customer_street, customer_city) tupel, rad relation, tabell attribut, kolonner customer customer_name customer_street customer_city Jones Main Harrison Smith North Harrison Curry North Rye Brown Park Rye Schemadiadram för Customer_schema Customer_schema customer_name customer_street customer_city

Relationsmodellen 2-6 Databas En databas består av flere relationer. Informationen om en organisation bryts upp i delar, varje del lagras i en relation. Ex.: account: lagrar information om konton depositor: lagrar information om vilken kund äger vilket konto customer: lagrar information om kunder Att lagra all information som en enda relation, bank (account_number, balance,,customer_name,...) resulterar i: repetition av information behov av nullvärden Hur uppdelningen bäst sker, dvs. hur man designar relationsscheman bygger på normaliseringsteori (kap 7)

Relationsmodellen 2-7 Nycklar (key) Tupler i en relation måste kunna identifieras unikt två tupler i en relation får ej ha samma värde på alla attribut. En supernyckel är en mängd av ett eller flera attribut som tillsammans unikt identifiera tuplerna i en relation. Ex.: customer customer_id customer_name customer_street customer_city 192-83-7465 Johnsson 12 Alma St. Palo Alto 677-899011 Hayes 3 Main St. Harrison 182-73-6091 Turner 123 Putnam Ave. Stamford 321-12-3123 Jones 100 Main St. Harrison 336-66-9999 Brown 175 Park Ave. Pittsfield 019-28-3746 Smith 72 North St. Rye supernycklar: {customer_id } {customer_name, customer_id} {customer_name} om kunder ej tillåts ha samma namn i banken Def.: Låt R vara ett relationsschema och K R. K är en supernyckel för R om värden på K räcker till att identifiera en entydig tupel för varje möjlig relation r i R, dvs. om t 1 t 2 r och t 1 t 2 så t[k 1 ] t[k 2 ]. En supernyckel är ej lämplig om den innehåller onödiga attribut. En kandidatnyckel är en minimal supernyckel, dvs. en supernyckel för vilken ingen äkta delmängd är en supernyckel. Ex.: {customer_id } är en kandidatnyckel för customer ty den är en supernyckel för customer och ingen äkta delmängd av den är en supernyckel. Men {customer_name, customer_id} är ej en kandidatnyckel ty customer_id är en supernyckel för customer.

Relationsmodellen 2-8 Primärnyckel för en relation är den kandidatnyckel som främst används av databassystemet för att identifiera tupler i relationen. Önskade egenskaper: värdet ändras aldrig eller mycket sällan. Man brukar lista primärnyckel-attributen först i ett relationsschema. Ett attribut i en relation r 1 kallas en främmande (forein) nyckel i r 1 refererande r 2 om det är en primärnyckel i r 2. Relationen r 1 kallas en refererande relation och r 2 en refererad relation för den främmande nyckeln ifråga. Primär- och fämmandenyckel beroenden kan avbildas i ett schemadiagram. Schemadiagram branch account depositor customer branch_name branch_city assets account_number branch_name balance customer_name account_number customer_name customer_street customer_city loan loan_number branch_name amount borrower customer_name loan_number

Relationsmodellen 2-9 Bankexemplet Customer_schema = (customer_name, customer_street, customer_city) Branch_schema = (branch_name, branch_city, assets) Account_schema = (account_number, branch_name, balance) Loan_schema = (loan_number, branch_name, amount) Depositor_schema = (customer_name, account_number) Borrower_schema = (customer_name, loan_number) Obs! I ett verkligt system skulle kunderna identifieras med ett idnummer ej namn. branch branch_name branch_city assets Brighton Brooklyn 7100000 Downtown Brooklyn 9000000 Mianus Horseneck 400000 North Town Rye 3700000 Perryridge Horseneck 1700000 Pownal Bennington 300000 Redwood Palo Alto 2100000 Round Hill Horseneck 8000000 account account_number branch_name balance A-101 Downtown 500 A-102 Perryridge 400 A-201 Brighton 900 A-215 Mianus 700 A-217 Brighton 750 A-222 Redwood 700 A-305 Round Hill 350 customer customer_name customer_street customer_city Adams Spring Pittsfield Brooks Senator Brooklyn Curry North Rye Glenn Sand Hill Woodside Green Walnut Stamford Johnsson Alma Palo Alto Hayes Main Harrison Turner Putnam Stamford Jones Main Harrison Lindsay Park Pittsfield Smith North Rye Williams Nassau Princeton loan loan_number branch_name amount L-11 Round Hill 900 L-14 Downtown 1500 L-15 Perryridge 1500 L-16 Perryridge 1300 L-17 Downtown 1000 L-23 Redwood 2000 L-93 Mianus 500 depositor customer_name account_number Hayes A-102 Johnsson A-101 Johnsson A-201 Jones A-217 Lindsay A-222 Smith A-215 Turner A-305 borrower customer_name loan_number Adams L-16 Curry L-93 Hayes L-15 Jackson L-14 Jones L-17 Smith L-11 Smith L-23 Williams L-17

Relationsmodellen 2-10 Frågespråk Ett frågespråk är ett språk med vilket en användare begär information från en databas. Klasser av språk procedurala språk, användaren anger den sekvens av operationer som skall göras på databasen för att producera önskat resultat. icke-procedurala språk, användaren behöver bara specifiserar vilken data som skall produceras. Rena språk Relationsalgebra - proceduralt (kap 2) Tupelrelationskalkyl - icke-proceduralt (kap 5) Domänrelationskalkyl - icke-proceduralt (kap 5)