Databaser (TDT4146) Innhold. Frederik M.J.V MTDT 8. mai 2009

Størrelse: px
Begynne med side:

Download "Databaser (TDT4146) Innhold. Frederik M.J.V MTDT 8. mai 2009"

Transkript

1 INNHOLD INNHOLD Databaser (TDT4146) Frederik M.J.V MTDT 8. mai 2009 Innhold 1 Info Oversikt DBMS Relasjonsmodellen SQL - Strukturert spørrespråk Definisjon av uttrykk Litt terminologi ER-modellering Databasedesign ER-modellen Entiteter og attributter Relasjoner Relasjoner og mengder Binærrelasjoner Flervegsrelasjon Bareksempel Kardinaliteter for relasjoner Eksempel kardinaliteter Flere relasjoner Attributter på relasjoner Entitetskasse Konvertering fra flerveis- til binærrelasjoner Roller Subklasser Eksempel Overlap og disjoint Total Nøkkler Eks Svake identitetsklasser Støttende relasjon Kjeder av støttende relasjoner Oppsummering av ER Modelleringscase: Relasjonsmodellen Eksempel på relasjonsskjema Terminologi Mengdeteori Eksempel på bruk av mengdeteori - Øl Entitetsklasser relasjoner Nøkler i relasjoner ER-relasjoner til relasjoner Eksemple på omdøping av attributt Kombinasjon av relasjoner Svake entitetsklasser relasjoner Subklasser relasjoner Eksempel på subklassing Sammenligning av stiler Relasjonsalgebra Hvorfor lære relasjonsalgebra? Oversikt over relasjonsalgebraoperatorer Relasjonsalgebra generelt Nye eksempelrelasjoner Den enkleste spørringen som finnes Seleksjon (utvalg) Projeksjon (eliminering av kolonner (Kartesisk) produkt Naturlig join c Frederik M.J. Vestre

2 INNHOLD 4.10 θ-join Omdøpning Union Differanse Snitt Kombinasjoner av operasjoner - trær Omskiving av operasjoner Bager Bagunion Bagsnitt Bagdifferanse Omskrivingsregler og bager Utvidede algrebraoperasjoner Relasjonssjema Hvilke vogner består tog 46 av? Hvilke tog passerer Hamar stasjon mellom klokka 12 og 13? Når ankommer hurtigtog tid Hamar stasjon Hvor mange seter har de forskjellige togene Tilsvarende 4.27 men kun for tog Spørring som kommer annenhver eksamen Gruppering aggregering og Aggregeringsoperatorer SQL Hvorfor trenger vi SQL? SQL-spørring Eksempelskjema - bareksemplet Eksempel Tilsvarende algebra Utføringssemanitkk SELECT * Omdøping av kolonner Uttrykk som verdier ORDER BY - sortering Om WHERE Mønster/alltegn/LIKE NULL Unknown Multiselect (over mange tabeller) Algebrauttrykk for flertabelluttrykk Utføringssemantikk Tuppelvariabler Nøsta spørringer med enkeltverdier Nøsta spørringer INNHOLD 5.21 Eksists All Any Mengdeoperasjoner Litt mer om Bagger i motsetning til mengder Aggregering Gruppering Having Innsetting av rader Innsetting av queryresultat Sletting av mange rader Modifiseringsemantikk Oppdatering DDL-operasjoner (DatabaseDefinisjons[L]språk) Sikkerhet Attributtyper Nøkler ALTER TABLE Indekser Views Hvilke øl kan hans drikke Oppdaterbarhet for views Hvilke vogner består tog 46 av? Hvilke tog passerer Hamar stasjon mellom kl 12 og Hvor mange seter har de forskjellige togene Antall seter i tog Finn vognene med minst vekt Restriksjoner Deling av semantikk og oppførsel Restriksjoner (constraints) Nøkler Fremmednøkler Restriksjoner over en tabell Restriksjoner over flere tabeller (Forsikringer) Triggere (1) Triggere i javadb (2) JDBC 23 2 c Frederik M.J. Vestre

3 INNHOLD 7 Lagring/indekser Fra egenskap ved database Arkitektur/innhold Data på magnetisk disk Indekser B-trær intro Indeksblokk Hashbaserte (randomiserte) indekser Hva inneholder en post i indeksen Heapfil Vanlig situasjon Klassifisering av indekser Kostnadsmodell for analyse av lagrings-/indekseringsalternativ Sammenligner Heapfil Sortert fil Clustered B+tre Heap+uclustret b+tre Heapfil+uclustert hash Konklusjon Hvilke indekser skal lages Hvilke indekser (2) Eskempel på indekser Indekser med sammensatte nøkler Disker Organisering av blokker i filer Friplassadministrasjon Bufferhåndtering Bufferhåndtering Buffer replacement Hva skjer ved scanning av tabell Postformat Variabel lengde Blokkformat-fastlengdeposter Variabellengdposter Aksess fra algebra Heapfil implementert som liste Heapfil med directory Systemkatalogen (SQL dictionary) B+trær B+trær i praksis B+tre: Innsetting INNHOLD 7.42 Blokksplitting i B+tre Statisk hashing Extendable hashing Directory doubling Queryutføring/optimalisering Teknikker for utføring av algebra Statistikk om data Akksessvei Seleksjon Skjema for eksempel Bruk av indeks, Seleksjon Joineksempel Join: Nøstet løkke Join: Index nested loop Sort-merge join Optimalisering ved seleksjonspushing og bruk av sortering Optimalisering ved bruk av indekser Estimering av størrelser og reduksjonsfaktorer Transaksjoner (kap 16-18) Fra egenskaper ved et DBMS Samtidighetsproblem - eksempel ACID - egenskaper ved transaksjoner Commit/Abort SQL s isolasjonsnivå Transaksjoner og samtidighet Historie (Schedule) Serialiserbar historie - på nytt Problemer med flettet utføring Isolasjonsnivåer- forklaring Eksempler på serialiserbare historier Gjennopprettbare historier Historier som unngår galloperende abort Strict 2PL-tofaselåsing a Strict historie Konfliktserialiserbarhet Konfliktserialiserbar historie (på nytt) Persidensgraf Eksempel på presidensgraf Teorem om konflikserialiserbarhet Serialiserbarhet ved strict 2PL Låsetyper c Frederik M.J. Vestre

4 9.21 Implementasjon av låser Vranglås Fra egenskaper ved et DBMS Transaksjoner etter recovery Force/steal-klassifisering av Logging/recovery-algoritmer Write-Ahead-Logging WAL-konsepter i ARIES Loggpost Datastrukturer for recovery Sjekkpunkting (Aries måten) Avbryting Recovery etter krasj Redo av loggpost (Aries) Normalisering Normalisering av relasjonsskjema Problemer med anormale tabeller Funksjonelle avhengigheter (F.A./F.D) Nøkkeler, generelt og typer nøkkeler Supernøkkel Tillukning av en mengde attributter (Closure) Algoritme for å regne ut x + med hensyn på F (funksjonelle avhengigheter) Eksempel Supernøkkeler og tillukning Normalform (3NF) Boyce-Codd Normalform (BCNF) Full funksjonell avhengighet Andre normalform Bevaring av FA er Dekomponering til BCNF Info Svein Erik Bratsberg, 209 Øving: Simon, Nattiya Und.Ass:... 1 INFO Øvingsveiledning på sal. 414 i P15 kl Man 12-15, Tirs 16-19, Tors 12-14, 17-19, Fre Examen: Hjepemidler: Kalkulator, lukket bok Pensum Lærebok: Database Management systems. ER-diagrammer vises som på tavla, og ikke i boka. Aggregering og gruppering Normaliseringsteori Bokinfo: Første kap. info, andre kap. dybden. snakke om andre ting en bare bruken. Advarsel: Ikke hele kapittelene er pensum. 1.1 Oversikt Nummerering for kryssreferering etter følgende tema: 1. Introduksjon - (Hva er databaser? - kap 1) 1. Databaser - plan/innhold 2. ER-modellering - Kap 2+foiler (for notasjon), utgør ofte 20%-25% på eksamen, ikke likt som i ITGK. 3. Relasjonsmodellen - type databaser, kommuniseres ofte med vha. sql, Kap 3+foiler 4. Relasjonsalgebra - Kap 4+foiler 5. SQL - kap 5 6. JDBC - kap 6.2,3 (i forbindelse med siste del av FP) 7. Lagring og indekser, kap 8-11 (se pensum, tatt ut ganske mye innimellom) 8. Query- evaluering og optimalisering - kap Transaksjoner kap 16-18, se pensumliste, unntak 10. Normalisering, kap se pensum 2. Databasesystem - DBMS, system for å håndtere databaser Egenskaper: 4 c Frederik M.J. Vestre

5 1. Håndtere store datamengder (, men ikke datastrømmer som video, lyd og bilde) 2. Støtter effektiv og rask tilgang til data. 3. Støtter tilgang samtidig, og håndterer konflikter og problemer som det kan føre til. (Flerbrukerkontroll) 4. Sikkre atomisk tilgang til data, transaksjoner og gjennoppreting. 1.2 DBMS Bruker Bruker Bruker Bruker Definisjon av uttrykk 2 ER-MODELLERING 1. Datadatadefinisjonsspråk-DDL: CREATE TABLE, DROP TABLE, DELETE TABLE (tømmer), ALTER TABLE, [CREATE INDEX, CREATE VIEW: Virtuelle tabeller], CREATE PROCEDURE, CREATE TRIGGER 2. Datamanipulasjonsspråket-DML: INSERT.. INTO VALUES.. DELETE FROM.. WHERE.. UPDATE.. SET..=.. WHERE..; SELECT.. FROM.. WHERE..; Litt terminologi Relasjonsmodellen Relasjon tuppel SQL Tabell rad Datamodell: Vanligvis brukt om språket vi modellerer, f.eks 1.3 Relasjonsmodellen Basert på tabeller med rader Ex Bankkonto: Kontonummer Navn Saldo Gandalv Frodo SQL - Strukturert spørrespråk Uttales ofte sequel. Finn sjefen til Clark Kent: Vi har to tabeller: Ansatt:(,avd), Avdeling:(avd,sjef) Vanlig SQL spørring: SELECT sjef FROM Ansatt, Avdeling WHERE = Clark Kent, AND Ansatt.avd=Avdeling.avd; (Database)skjema: Beskrive hvordan datane er lagt inn i en bestemt database. (defineres vha. DDL) 2 ER-modellering ER står for entity relationship 2.1 Databasedesign Steg for å bygge en database for en eller flere applikasjoner. 1. Forstå problemet i den virkelige verden. 2. Spesifiser problemet i en databasedesignmodell f.eks ER-modell 3. Oversette ER-skjemaet til databasesystemet. 4. Lag skjema vh.a. DDL 5. Last inn data 5 c Frederik M.J. Vestre

6 2.6 Binærrelasjoner 2 ER-MODELLERING 2.2 ER-modellen 2.6 Binærrelasjoner Veldig polulær Grafisk notasjon Ikke standardisert Verktøy: VisualER - må bruke VPN/NTNU-nett. Student Tar Fag Substantiv Verb assist Studass subst 2.3 Entiteter og attributter Entitet: Objekt, ting Entitetsklasse: Består av to perspektiver: som klasser (fra programmering): En beskrivelse (intensjonen). Som en mengde entiteter (verdier) (ekstensjonen) atributt: Egenskap til en entitet. (en verdi) Student Fag TDT TDT Flervegsrelasjon Fag TDT4145 TDT4145 Student Studass Ida Julianne Veileder Fag Intensjon Student nr epost Eksten.. Per Kari Pål Student Fag Studass TDT4145 Julianne TDT4140 Kim TDT4145 Ida Studass 2.4 Relasjoner Forbindelse mellom to eller flere klasser: 2.8 Bareksempel Selger addr Bar bevilgning Går på 2.5 Relasjoner og mengder Student Tar Fag Substantiv Verb subst intensjon (beskrivelse), ekstensjon (mengde av verdier) Tenk på den som en tabell Tar Student Fag TDT TDT4140 Øl Liker produsent 2.9 Kardinaliteter for relasjoner Mange til mange Mange til en En til en Drikker addr 6 c Frederik M.J. Vestre

7 2.13 Entitetskasse 2 ER-MODELLERING 2.10 Eksempel kardinaliteter 2.13 Entitetskasse (0,N) (0,1) Øl Favoritt Drikker Bar Selger Øl Hver drikker har en favorittøltype (ops tall motsatt av UML) Pris Pris Volum prisid (0,N) (1,1) Øl Favoritt Drikker Hver drikker har eksakt en favorittøltype Du er ikke en drikker med mindre du har en favorittøltype Flere relasjoner Da kan den samme baren selge samme øllet til forskjellige priser eller volum Konvertering fra flerveis- til binærrelasjoner Hvis designmodellen ikke støtter flerveisrelasjoner. Da setter vi opp relasjonen som en egen identitetsklasse Skummende drikke Øl En øl kan vær favoritt hos mange, eller ingen Liker Favoritt En drikker må like minst én øl Drikker En drikker har bare 1 favorittøl Har Har Har Bar Øl Pris Lurt å bruke mest mulig binærrelasjoner 2.12 Attributter på relasjoner 2.15 Roller Alle relasjoner har minst to roller Bar Pris Selger Volum Øl Kvinne Person Mann Gift med Bar Pris Volum Øl Østeriks rockebar 54 0,4 Fatøl Somalinen 69 0,5 Fatøl Denne modellen innebærer at en bar ikke kan selge samme øltypen med forskjellig pris eller volum. GiftMed: Mann Ola Ask Kvinne Kari Embla 7 c Frederik M.J. Vestre

8 2.19 Total 2 ER-MODELLERING 2.16 Subklasser 2.19 Total <Entitetsklass> is-a <Entitetsklasse> Kan bety: Spesialtilfelle Ferre identiteter (inkslusjon) Flere egenskaper Flere egenskaper: Roller, attributter Rockebar Bar D Dansebar Pianobar 2.17 Eksempel Dobbelstrek viser total: Alle barer er enten pianobarer, dansebarer eller rockebarer. Bar bevilgning addresse 2.20 Nøkkler En nøkkel er en mengde attributter hvor verdien skal være unik for hver entitet. PianoBar covercharge Spiller på Pianist To entiteter kan ikke ha samme verid for en nøkkelen. Det er lov å ha flere alternative nøkkeler, men det finnes det ingen god notasjon for. Pianobar er en delmegde av bar 2.18 Overlap og disjoint StudNr Student Personnummer Bar Dansebar Pianobar 2.21 Eks Overlap: noen barer er både danse- og pianobarer. addr Bar bev Bar Pianobar cc D Rockebar Pianobar ( og addr er nøkkel) Nøkkelen for spreentitetsklassen er nøkkel for subklassene Disjoint: Ingen barer er både Rockebar og Pianobar Det er ikke mulig å lage nye nøkler i subklassene 8 c Frederik M.J. Vestre

9 2.26 Modelleringscase: 3 RELASJONSMODELLEN 2.22 Svake identitetsklasser Kardinaliteter og roller for relasjoner Entitetsklasser med delvise nøkler Flerveisrelasjoner Bar Jobber i Bartender addr bev Subklasser: Overlaps, disjoint, total. Svake entitetsklasser 2.26 Modelleringscase: Ser etter: Hus: (1,N) Nøkkelen til bartender blir da: (bar), addr (bar), (bartender) Entitetsklasser Attributter Hus inneholder Rom Relasjoner 2.23 Støttende relasjon addr Svake entitetsklasser må ha ha en støttende relasjon til en entitetsklasse som ikke er svak. Må ha eksakt en (1,1)-eksistensvahengighet Kjeder av støttende relasjoner romnr Universitet Bygn Auditorium sittepl Tegner opp entitetsklassene: Tog: Vogn; Lok, MotorV,Passasjr, Lastevogn. Ligger løsning på nettet Stasjon: 3 Relasjonsmodellen Modeller: Relasjonsmodellen ER relasjonsskjema Nøkkel for aud: univ.,bygn.,aud Oppsummering av ER Enitetsklasser med attribtter og nøkkler Relasjoner med attributter Nøkler (sammen med normalsering) Constraints seinere 3.1 Eksempel på relasjonsskjema Øl (,produsent) Navn Produsent drikker Øl: Dahls pils Rignes Liker: Hans Artic ice Mach Grete øl Dahls pils Arctic ice 9 c Frederik M.J. Vestre

10 3.4 Eksempel på bruk av mengdeteori - Øl 3 RELASJONSMODELLEN 3.2 Terminologi 3.4 Eksempel på bruk av mengdeteori - Øl Relasjon: Tabell, (mattematisk relasjoon jmf. diskret) Brukes til å representere entiteter og relasjoner. to mengder: Attributter: Navn på kolloner Tuppel: Rad i tabellen (mat: Kant mellom to elementer i hver mengde, kommer tilbake til det) Relasjonsdefinisjon. (attributter)+nøkkelinfo. Databaseskjema: Sampling av relasjonsefinisjoner Attributtdomene: Typen til et attributt NULL-verdi: Attributtverdi som betyr ukjent/udefinert/ikke relevant (not applicable) Fremmednøkler: Attributt i en tabell som peker til en nøkkel i en annen tabell, feks Liker.drikker. - Hansa bayer - Arctic ice - Lysholmer 3.5 Entitetsklasser relasjoner Konverterer direkte produsent - Rignes - Mach - Hansa Merk: Rekkefølgen til attributter har ingen betydning Tuppler har heller ingen rekkefølge Øl produsent 3.3 Mengdeteori Et attributt har et domene Domener er mengden av verdier D 1, D 2, D 3 Relasjoner er det kartesiske produktet, f.eks D 1 D 2 D 3 (også et mengde) (kartesisk verdi er alle mulige kombinasjoner av mengdene). Relasjonsinstansen er en delmengde av det kartesiske produktet. (den faktiske tabellen vi har i databasen). Relasjonen er en endlig mengde, Den tomme mengden er en lovlig relasjoninstans. Øl (, produsent) 3.6 Nøkler i relasjoner En attributt eller en mengde attributter K er nøkler i en relasjon hvis vi forventer at det ikke finnes flere tuppler med samme verdi for K i samme relasjonsinstans. Eksempel på nøkler i relasjoner - Øl: Øl (, produsent). Hvis vi forventer at øl av forskjellige produsenter har samme : Øl (, produsent). Hvis det ikke finnes gode naturlige nøkler lar vi systemet generere nøkler (vha. autoindent, sequences, identity elns.) 10 c Frederik M.J. Vestre

11 3.11 Subklasser relasjoner 3 RELASJONSMODELLEN 3.7 ER-relasjoner til relasjoner Støttende relasjoner blir borte Relasjonen har et attributt for hver rolle og hvert attributt i ER-relasjonen. Gir: Bygninig(addr, ); Auditorium(romnr,addr, sitteplasser) Må ofte omdøpe attributt Subklasser relasjoner 3.8 Eksemple på omdøping av attributt Tre forskjellige metoder: gift med Drikker addr liker favoritt Øl produsent 1. Objektorientert stil: Hver entitet har en egen relasjon Lager en relasjon for hver entitetsklasse som inkluderer alle attributtene. 2. Lage en relasjon for hver entitetsklasse (glemmer arvede attributter). En entitet vil være i mange relasjoner. 3. Lag en relasjon med attributter for alle klasser og bruker NULL-verdier for ikkerelevante attributter. Liker(drikker,øl,addr) Favoritt(drikker,øl,addr) GiftMed(mann,kvinne,maddr,kaddr) [maddr=kadder forhåpentligvis] 3.9 Kombinasjon av relasjoner Kombinasjon av entitetsklassen E med mange-til-en-relasjon R en til en Eksempel: Kombinerer Drikker(,addr) med Favoritt Gir: Drikker(,addr, favøl [fremmednøkkel]) 3.12 Eksempel på subklassing Øl LagerØl prod farge Kan ikke gjøre det med mange til mange, f.eks Drikker+Liker. Det ville gitt: Drikker(, addr,likerøl) Skaper situasjonene: (Harry, kongensgt, ArcticIce) (Harry, kongensgt, hansa Bayer) 3.10 Svake entitetsklasser relasjoner Bygning addr romnr Auditorium inneholder sitteplasser Relasjonen for en svak entitetsklasse må inkludere hele nøkkelen, også nøkkelen fra den sterke entitetsklassen 1. OO-stil: Øl: Lysholmer 2. ER-stil: Lyshomer Hansa Bayer produlsent Rignes produsent Rignes Hansa LagerØl: Lager Øl: produsent farge Hansa Bayer Hansa Svak mørk Hansa Bayer produsent farge 3. NULL-verdier: Lyshomer Rignes NULL HansaBayer Hansa Svak mørk Kan også legge på en fjerde type-kollonne farge Svak mørk 11 c Frederik M.J. Vestre

12 4.2 Oversikt over relasjonsalgebraoperatorer 4 RELASJONSALGEBRA 3.13 Sammenligning av stiler 4.2 Oversikt over relasjonsalgebraoperatorer 1. OO-stil; minus:må spørre flere relasjoner for å finne alle entiteter pluss: alle attributter til en entitet er samlet. 2. ER-stil: minus: attributtene til en entitet er spredd over flere relasjoner pluss: En relasjon inneholder alle relevante entiteter 3. NULL-verdier: pluss: har alle attributter og entiteter i same relasjon minus: Må håndtere NULL-verdier, og kaster bort litt plass Mapping til relasjoner: Se notat/resultat på nettsiden til faget 4 Relasjonsalgebra 4.1 Hvorfor lære relasjonsalgebra? 1. Spørrespråket som tilhører relasjonsmodellen. Definert av Codd (IBM) i Internspråket i DBMSer. 3. Kan optimaliseres (Rewrite rules) 4. Letter forståelsen av normalisering (tapsløse joins) 5. SQL inneholder noen algebraoperasjoner. Operatorer som håndterer relasjoner på en enkel, men begrenset måte. (SQL: bag, multiset, set der man kan ha to like elementer: Pensum foiler) 1. Mengdeoperasjoner: union ( ), snitt ( ), differanse (-). 2. Seleksjon (utvalg): Plutt ut gitte tupler basert på attributtverdi fra en relasjon (tabell) (Operator: σ - sigma). 3. Projeksjon: Plukker ut (projekter) gitte attributter (kolonner) fra en relasjon (resultat av et uttrykk). (Operator π - Pi) 4. Produkt og joins (forening): Lag nye relasjoner - kartesisk produkt (brukes veldig lite): Lager en tabell som er kombinasjon av to andre tabeller. - join 5. Omdøping av relasjoner og attributter. (ρ - rho) 6. Duplikateliminering (δ - delta) (dyrt/treigt, må bes om manuelt) 7. Sortering (τ - tau) 8. Grupperingsoperator (γ - gamma) (Pensum: Foiler) 9. Outer join o (join som tar med elementer også der det ikke finnes en match mellom tabellene) 4.3 Relasjonsalgebra generelt Spørsmål (queries) over relasjoner, som gir nye relasjoner som output. Kan kombineres Data& indexer Optimalisering Resultat Parser/ kompilator Dictionary, SQL-tabeller, indekser SQLquery Utføringsmodul Rel. algebra Optimalisator Rel. algebra (utføringsplan) Begrenset uttrykskraft. (tillater en delmegde av alle mulige spørsmål) Eksempel: Transitiv tillukning: Barn Mor Far Jon Kari Per Kari Anna Hans Per Nora Jens Anna Embla Ask Finn alle forfedre til John. Ikke mulig i relasjonsalgebra. Gode muligheter for optimalisering Språket er rikt nok til å uttrykke de fleste spørringer. 12 c Frederik M.J. Vestre

13 4.7 Projeksjon (eliminering av kolonner 4 RELASJONSALGEBRA 4.4 Nye eksempelrelasjoner 4.7 Projeksjon (eliminering av kolonner Innskudd (ravn,kontonr,kundenavn, saldo) Kunde (kunde, gate, kundepoststed) Lån (kundenavn,kontonr, kundenavn, saldo) Avdeling(avdNavn,saldo,avdPoststed) R 1 = π L (R 2 ). Hvor L er en liste av attributter avnnavn kundenavn Gløshaugen Per Hansen Ex π (Lån) avdnavn,kundenavn Gløshaugen Kari Oslen Nardosletta Jan jensen Gløshaugen Kari Olsen (under nederste streken er bagsemantik, over er mengdesemantik) Kundebehandler(kundeNavn, ansattnavn) 4.5 Den enkleste spørringen som finnes Relasjonset: Returnerer alle tupler i tabellen. Resultatet er en mengde. Ex Lån(Gløshaugen, 12345, Per Hansen, ) (Gløshaugen,56789, Kari Olsen, ) (Gløshaugen,12789, Kari Olsen,100000) (Nardosletta,73456, Jan Jensen,150000) 4.6 Seleksjon (utvalg) Eliminering av rader/tupler R 1 = σ c (R 2 ) hvor c er en betingelse over attributtene til R 2 LånOåGløs=σ (Lån) addrnavn=gløshaugen : avdnavn kontonr kundenavn saldo Gløs Per Gløs Kari Gløs Kari G c (R) R C-term: attr, op, attr(konstant):,=,,, C-termer forbindes med AND, OR, NOT G avdnavn=gløshaugen AND beløp > (Kartesisk) produkt R = R 1 R 2 Parrer hvert tupel i R 1 med alle tupler i R 2. Puttes ofte inn av DBMS et Brukes til å forklare SQL-selects over flere tabeller. Ex R: A b R S : S: 4.9 Naturlig join R = R 1 R A R B S B C D Slår samme tupler som har like verdier for like. Eliminer duplikatattributter. Ex Omdøper: Øl(,produsent) Øl(øl,produsent) Liker(øl,) Øl Produsent Navn Øl Liker (equivjoin): Arctic Ice Mach Grete Dahls Pils Rignes Hans 13 c Frederik M.J. Vestre

14 4.13 Differanse RELASJONSALGEBRA Følger en to-veis verdireferanse Differanse - - Finnes i SQL som Natural join. Kan ikke ha naturlig join mellom relasjoner som ikke har felles attributter. Tupler som ikke har match blir ikke med. De kalles Dangling tuples. For å få med de må man bruke outer join. Finn kundene på Gløshaugen som ikke har lov (denne type diff. gies av og til på eksamen) KundeNavn=π(σ avdnavn=gløshaugen (Innskudd)) π(σ avdnavn=gløshaugen (Lån)) 4.14 Snitt θ-join R = R 1 c R 2 er ekvivalent med R = σ C (R 1 R 2 ) (c-en skal stå under Selger: Bar øl Pris volum addr Hjørnet øl1 53 0,5 Hjørnet Dronningns Hjørnet øl2 60 0,33 Kontoret Nordre Kontoret øl3 49 0,33 BarMeny=selger Bar Selger.bar=Bar. bar lø pris volum addr Hjørnet øl1 53 0,5 Hjørnet Dronningens Hjørnet øl2 60 0,33 Hørnet Dronningens Kontoret lø3 49 0,33 Kontoret Nordre Selger Bar Selger.bar=Bar. and volum 0,5 Eliminerer ikke duplikatattributter! Finn kundene på Gløshaugen som både har lån og innskudd. KundeNavn=[π(σ avdnavn=gløshaugen (Innskudd)) π(σ avdnavn=gløshaugen (Lån)) Innskudd Lån] = Innskudd - (Innskudd-Lån) 4.15 Kombinasjoner av operasjoner - trær Ex Finn ene til alle kunder på gløshaugen: π Kunde (σ avdnavn= Gløshaugen ]](Lån Innskudd)) Som tre: Kunde avdnavn= 'Gløshaugen' 4.11 Omdøpning ρ S (A 1,..., A n ) R Lån Innskudd Produserer en relasjon identisk med R, som hara nytt. bar adr Ex ρ Bar R(bar,adr) : Hjørnet Dronningen Kontoret Nordre Selger ρ Bar R((baradr) 4.12 Union - Finn ene på kundene på Gløshaugen? KundeNavn:σ avdnavn=gløshaugen (Lån Innskudd) Krever like attributt (bruker ofte omdøping først) 4.16 Omskiving av operasjoner Uttrykk kan ofte skrves om (rewrite rules) f.eks push-down-select Lån avdnavn= 'Gløshaugen' Kunde avdnavn= 'Gløshaugen' Innskudd 14 c Frederik M.J. Vestre

15 4.22 Utvidede algrebraoperasjoner 4 RELASJONSALGEBRA 4.17 Bager 4.22 Utvidede algrebraoperasjoner (lagt ut ekstra pensumfoiler på hjemmesida) En tabell i SQL er en bag. (i utgangspunktet) dvs en (uordnet) mengde som kan inneholde duplikater (multi set) pga. ytelse. (dvs. duplikateliminering er dyrt, bruk det kun når det er nødvendig. Ex {1, 2, 1, 3} er en bag, og ikke en mengde. Oppførsel av operatorer: Oppfører seg som før:seleksjon, projeksjon og join virker for bager som for mengder. (de eliminerer ikke duplikate tupler) 4.18 Bagunion {1, 2, 1} {1, 2, 3, 3} = {1, 2, 1, 1, 2, 3, 3} 4.19 Bagsnitt {1, 2, 1} {1, 2, 3, 3} = {1, 2} (går igjennom i den ene baggen og ser at det finnes et tilsvarende elementer i den andre baggen), bruker minimum av antallet i hver bag Bagdifferanse {1, 2, 1} {1, 2, 3, 3} = {1} 4.21 Omskrivingsregler og bager Relasjonalgebraen har noen omskrivningsregler i.e. R S = S R. Ikke alle omskringninsregler er gyldige for begge dvs ikke gyldig for bagger (R S) T = (R T ) (S T ) ({1} {1}) {1} = ({1} {1}) ({1} {1}) {1} = {} {} For å tilpasse algebraen til sql 1. Duplikateliminering δ(r) - delta 2. Utvided projeksjon π A+B,A,A (R) hvor A, B etc kan være funksjoner. (her kan det være flere like attributter og funksjoner, i motsetning til vanlig projeksjon) 3. Sorteringsoperator τ B (R)- tau, sorter etter B. 4. Gruppering og aggregeringsoperator γ - gamma Eksempel på Selger(øl,bar,pris,volum): γ øl,avg(pris) (Selger) den Grupperer tubler etter øl så beregnes gjennomsnittlig pris øl avg Øl1 49 Øl Outerjoin o Vanlig join kan miste tupler, fordi man ikke treffer tupler i den andre tabellen. Outerjoin løser dette ved å padde inn NULL-verdier for manglende attributter. Ex Student(snr,), StudentTarFag(snr,fagnr) 123 John 456 Hanne Snr Fagnr 456 tdt tdt4145 Student o StudentTarFag gir: snr fagnr 123 Jon NULL 456 Hanne tdt Hanne tdt4145 o Varianter: L, o R, o c Beholder alle tupler fra hhv. venstre-,høyretabell, C er θjoin Relasjonssjema 4.24 Hvilke vogner består tog 46 av? Framgangsmåte: Hvor står informasjonene hen?: π vogn ((σ tog=46 (Består av)) 4.25 Hvilke tog passerer Hamar stasjon mellom klokka 12 og 13? To relevante tabeller, 15 c Frederik M.J. Vestre

16 4.28 Tilsvarende 4.27 men kun for tog 46 5 SQL Ankommer: Avgår: 4.28 Tilsvarende 4.27 men kun for tog 46 tog stasjon tid tog stasjon tid 46 Hamar Hamar γ tog,sum(seter) ((PassasjerVogn π Vognnr,seter (MotorVogn) σ tog=46 (BestårAv)) 47 Hamar Hamar Lager delresultater: Avkommer avgår tog stasjon tid 46 Hamar Hamar Hamar Hamar Avkommer avgår [Avkommer.tog=Avgår.tog] Ankommer.tog Ankommer.stasjon Ankommer.tid Avgår.tog Avgår.stasjon Avgår.tid 4.30 Gruppering aggregering og Aggregeringsoperatorer 46 Hamar Hamar Egentlig ikke rel.alg. operatorer, brukes på hele kolonner og gir en verdi som resultat. 47 Hamar Hamar F.eks SUM,AVN,COUNT,MIN,MAX: γ SUM(A) (R) 1. Når en av tidene er mellom 12 og 13: π tog < σ tid<13.00 AND tid>17.00 AND stasjon=hamar ( Ankommer Avgår) 2. Når begge tidene er mellom 12 og 13: π tog σ Ankommer.tid>12 AND Ankommer.tid<13 AND Avgår.tid > 12 Adn Avgår.tid < 13 (σ Stasjon= Hamar Ankommer Ankommer.tog=Avgår.tog σ Stasjon= Hamar ) Avgår 4.26 Når ankommer hurtigtog tid Hamar stasjon σ type= Hurtigtog AND stasjon= Hamar (Ankommer tog=nr Tog) (der vil databasen sannsynligvis gjøre en pushdown-select tid tog=nr 4.29 Spørring som kommer annenhver eksamen (kanskje det kommer i år?, kommer selvfølgelig forkledd i mange oppgaver) Finn vognene (dvs. vognnnr) med minst vekt (OBS: Det kan være flere!). π Vognnr (Vogn ρ Vekt (γ MIN(vekt) (Vogn))) Er ikke sikker på at han kan gi den i år siden han har beskrevet den så nøye. Grupperer og aggregrerer hver gruppe γ A,B,AVG(C) (R) 5 SQL 5.1 Hvorfor trenger vi SQL? Databasearkitektur Iter. App.srv JDBC ODBC C/c++ DBMS JDBC java stasjon=hurtigtog Ankommer type=hurtigtog Tog 4.27 Hvor mange seter har de forskjellige togene Ønsker resultat: Tog #seter Får ut /vognnnr, seter) av unionen: γ tog,sum(seter) ((PassasjerVogn π Vognnr,seter (MotorVogn) BestårAv) Gjør en natural join og får voggnr, seter,tog Programmeringsspråkene endres men SQL består. SQL er standardisert, det finnes forskjellige versjoner (SQL-92,SQL-99,2003,2006,2008). Sql 92 funker ofte generelt. Leverandører/DBMSene har lokale tilpasninger 5.2 SQL-spørring SELECT ønskade attr FROM tuppelvariabler over tabeller WHERE betingelser 16 c Frederik M.J. Vestre

17 5.9 Uttrykk som verdier 5 SQL 5.3 Eksempelskjema - bareksemplet 5.9 Uttrykk som verdier Alle spørringer testa. ÆØÅ skal funke, men vi stoler ikke på det Ol(,produsent) Bar(,addr,bevilgning) Drikker(,addr,telefon) Liker(drikker,ol) Selger(bar,ol,pris,volum) Besoker(drikker,bar) SQL er case-insensitiv, bortsett fra inni strenger 5.4 Eksempel Hvilke øl produseres av Rignes: SELECT FROM ol WHERE produsent= Rignes ; Gir: øl1 øl2 5.5 Tilsvarende algebra Tenker: FROM WHERE SELECT: π (σ produsent= Rignes (Ol)) 5.6 Utføringssemanitkk Gå igjennom alle variabler (tuppel) i FROM Sjekke om WHERE-uttrykket er sant Hvis WHERE er sant: Skriv ut verdien i selekt 5.7 SELECT * SELECT * FROM ol WHERE produsent = Rignes ; produsent Pils Rignes Dahls Rignes SELECT * FROM ol; gir alle rader og kolonner. 5.8 Omdøping av kolonner SELECT AS ol FROM ol WHERE produsent= Rignes ; Selger(bar,ol,pris,volum): SELECT bar, ol pris/volum AS literpris FROM selger; bar øl literpris Eplekneika Alko ORDER BY - sortering Selger(bar,ol,pris,volum): SELECT bar, ol pris/volum AS literpris FROM selger ORDER BY ol,literspris ASC; rekkefølgekeywords: (ASC/DESC). Leksikalsk sortering, på hvert felt Om WHERE Betingelser: settes sammen med AND,OR,NOT,... Kan ha nøsta spørringer Mønster/alltegn/LIKE % - en vilkårlig streng (*) - et vilkårlig tegn (?) Kan gjøre: attributt LIKE møsnter og atributt NOT LIKE mønster Ex Drikker(,addr, telefonnummer): SELECT AS godnabo FROM drikker WHE- RE adresse LIKE %Bakklandet% 5.13 NULL Er en spesiell attributtverdi som f.eks betyr (avhengig av hva brukeren av databasen legger i det): ukjendt vertdi, finnes ingen verdi, hemmelig verdi. Kan spørre: WHERE pris IS NULL, WHERE pris IS NOT NULL NULL *+/- attr = NULL 5.14 Unknown Kan ha boolverdien unknown, som gir 3verdilogikk. Bar(,addr,bev) kontoret tmv-kaia Øl/vin/brennevin Karl Johan Nordre øl/vin Hjørnet Dronningen NULL 17 c Frederik M.J. Vestre

18 5.18 Tuppelvariabler 5 SQL SELECT,addr FROM Bar WHERE bevillgning= Øl/Vin ; gir Karl Johan, Nordre Liker Kunde SELECT... WHERE bevilgning <> Øl/Vin ; gir Kontore, TMV-kaia SELECT... WHERE bevilgning <> Øl/Vin AR bevilgning IS NULL girkontoret, Hjørnet. Treverdilogikk: (t=true,f=false,u=unknown) x y x AND y x OR y NOT x t t t t f t u u t f t f u t u u u u f f u u f t f u f f 5.15 Multiselect (over mange tabeller) Mange tabeller i FROM-utsagn Tabell.attributt må brukes når det er flere attributter med samme. Hans Bayer Hans hjørnet Hvis en av tabellene er tomme, vil ikke WHERE-uttrykket evalueres. SELECT Liker.drikker FROM Liker, Besomer (tom) WHERE ol= Bayer; gir ingen resultat Tuppelvariabler Finn par av kunder i den samme baren (alle kombinasjoner av to kunder) Bruker bare kundetabellen: Kunde(drikker,bar) SELECT k1.drikker, k2.drikker FROM kunde AS k1, kunde AS k2 WHERE k1.bar=k2.bar AND k1.drikker < k2.drikker; (< for å bare få kombinasjonen en gang ikke først hans, grete også grete, hans) 5.19 Nøsta spørringer med enkeltverdier Litt vanskelig. Ex Hvilke øl liker kundene på hjørnet: Liker(drikker, ol), Kunde (drikker,bar) SELECT ol FROM liker,kunde WHERE Liker.drikker=kunde.drikker AND bar= ol ; 5.16 Algebrauttrykk for flertabelluttrykk π ol (σ Liker.drikker=Kunde.drikker AND bar= Hjørnet (Liker kunde)) 5.17 Utføringssemantikk En tuppelvariabel for hver tabell i FROM-uttrykket Looper over alle kombinasjoner av tubler fra tabellene. Hvis query-uttrykket er sant tas tupplet med i svaret (skrives ut) Ex Finn barer som selger Lysholmer til samme pris som Karl Johan selger Artic. Selger(bar,ol,pris,volum) SELECT bar FROM selger WHERE ol= Lysholmer AND pris = (SELECT pris FROM selger WHERE bar= Karl Johan AND ol= Arctic ); 5.20 Nøsta spørringer Finn og produsent av øl som hans liker Ol(,produsent); Liker(drikker,ol) SELECT * FROM ol WHERE NAVN in (SELECT FROM Liker WHERE drikker= Hans ); Bruker in når resultatet av subspørrina kan være en mengde. 18 c Frederik M.J. Vestre

19 5.25 Litt mer om Bagger i motsetning til mengder 5 SQL Dette kan også skrives som en vanlig join: SELECT,produsent FROM Ol,Liker 5.25 Litt mer om Bagger i motsetning til mengder WHERE drikker= Hans AND ol=; SELECT... FROM... WHERE... ; returnerer bagger kan ha duplikatrader Motsatt spørring: Navn og produsent for øl som Hans ikke liker: SELECT * FROM Ol WHERE NOT IN (SELECT Ol FROM Liker WHERE drikker= Hans ; Skrive om join-spørringa: (Feil: SELECT, produsent FROM Ol,Liker WHERE drikker <> Hans AND ol=; Finner alle øl som alle andre liker, og hvor joinen passer) 5.21 Eksists Finn ølene for produsenter som kun produserer et? Ol(,produsent) SELECT FROM Ol as o1 WHERE NOT EXISTS( SELECT * FROM Ol WHERE produsent=ol.produsent, <>o1.); Subspørringa må evalueres for hver rad i den yttre tabellen. SELECT DISTINCT... FROM... WHERE... ; returnerer mengder ikke duplikatradier 5.26 Aggregering SUM,AVG,MIN,MAX,COUNT Brukes på attributter COUNT+(*) gjelder (teller) tupler. Ex Finn gjennomsnittspris på fatøl: Selger(bar,ol,pris,volum) SELECT AVG(pris) FROM Selger WHERE ol= Fatøl ; 5.22 All Finn de dyreste ølene? Selger(bar,ol,pris,volum) SELCT ol FROM selger WHERE pris >= ALL(SELECT pris FROM selger); Alt: SELECT Ol FROM selger WHERE pris = pris (SELECT MAX(pris) FROM Selger(); 5.23 Any Finn øl som ikke er dyrest: SELECT ol FROM Selger WHERE pris < ANY( SELECT pris FROM Selger); 5.24 Mengdeoperasjoner (Subquery) UNION (Subquery) (Subquery) UNION/INTERSECT/EXCEPT (Subquery) Returnerer mengder. UNION ALL, osv returnerer bagger Ex Hvor mange øltyper finnes: SELECT COUNT(*) FROM Ol; 5.27 Gruppering Aggredering for hver gruppe (γ-operatorer) Ex Finn gjennomsnittspris fro hvert øl: SELECT ol, AVG(pris) FROM Selger GROUP By ol; (begge ol hører sammen) Alle attributter i SELECT-utsagne må være aggregerte eller opptre i group by-utsagnet Having Seleksjon av grupper. Finn gjennomsnittsprisen for øl som selges i minst tre barer Ex SELECT Ol,AVG(pris) FROM Selger GROUP BY ol HAVING COUNT(*) >=3; Javadb db.lib.derbyrun.jar connect jdbc:derby:bardb;create=true ; (create første gangen) run bardb.sql f.eks. for å kjøre spørringene. 19 c Frederik M.J. Vestre

20 5.34 DDL-operasjoner (DatabaseDefinisjons[L]språk) 5 SQL 5.29 Innsetting av rader 5.34 DDL-operasjoner (DatabaseDefinisjons[L]språk) INSERT INTO like (kolonner) VALUES ( Hans, Bayer), ( Grete, Arctic );, uoppgitte verider får null- eller defaultverdier Innsetting av queryresultat CREATE TABLE DyrtOl( CHAR(30)); INSERT INTO DyrtOl(SELECT DISTINCT ol FROM Selger WHERE pris > 60); Ex CREATE TABLE selger, bar CHAR(20), ol VARCHAR(20), pris float, volum float ); CREATE VIEW DyrtOl SELECT... ; 5.31 Sletting av mange rader DELETE FROM tabell WHERE betingelse; sletter alle rader som tilfredstiller betingelse. Grete liker ikke artic lengere. DELETE FROM Liker WHERE drikker= Grete AND ol= Arctic ; Tømme TABEL: DELETE FROM Liker; 5.32 Modifiseringsemantikk Slett alle øl hvor det finnes et annet øl fra samme produsent Ex DELETE FROM ol AS o WHERE EXISTS(SELECT FROM ol WHERE produsent=o.produsent AND <>o.); Betingelsen evalueres før noe sletting (utførelser) finner sted. Dvs at i eksempelet så sletter det alle øllene fra samme produsent der det er flere øl fra samme produsent. Sletting er farlig (assosativ, kan lett slette veldig mye) 5.33 Oppdatering Oppdatering UPDATE Bar SET bevilgning= Øl/Vin,brennevin WHERE = Kontoret ; også assosativ: UPDATE selger SET pris=50 WHERE pris>50; (etter det finnes det ikke øl over 50) CREATE INDEX... (ofte ikke standardisert mellom databaser) CREATE ASSERTION... CREATE TRIGGER... (type: statement, tabell) Sikkerhet 2 brukere, u1,u2 u1: GRANT SELECT ONT <tabell> TO <u2>; u2: SELECT * FROM u1.<tabell>; 5.35 Attributtyper INT/INTEGER (4 bytes integer) BIGINT (8 byte) REAL, FLOAT (flyttall) CHAR(n) - fast lengde og padding VARCHAR(n) - variabel lengde (lurt ved lange streneger) NUMERIC (presisjon, desimal) - størrelse, antall desimaler bak komma) DATE - tekststreng: TIME - 11: TIMESTAMP - DATE+ +TIME 20 c Frederik M.J. Vestre

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 99539963 Roger Midtstraum: 99572420

Detaljer

Databaser: Relasjonsmodellen, del I

Databaser: Relasjonsmodellen, del I LC238D http://www.aitel.hist.no/fag/_dmdb/ Databaser: Relasjonsmodellen, del I En relasjon er en matematisk mengde side 2 Egenskaper ved relasjoner side 3 Entitetsintegritet side 4-5 Referanseintegritet

Detaljer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 6 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER, ver

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Repetisjon: Normalformer og SQL

Repetisjon: Normalformer og SQL IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer

Detaljer

Oppgave 1 Datamodellering 25 %

Oppgave 1 Datamodellering 25 % Side 1 av 6 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER Eksamensdato:

Detaljer

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informatikk Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39

Detaljer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 23. mai 2013 Eksamenstid (fra-til): 09:00-13:00 Hjelpemiddelkode/Tillatte

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 7.2.2005 Ragnar Normann 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan være

Detaljer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informatikk Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39 963 Eksamensdato:

Detaljer

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995996 Roger Midtstraum:

Detaljer

DBS18 - Strategier for Query-prosessering

DBS18 - Strategier for Query-prosessering Side 1 for Databaser DBS18 - Strategier for Query-prosessering søndag 22. mai 2016 13.03 Pensum 18.1-18.4, side 655-674, unntatt 18.4.4 og 18.4.5 En spørring som blir skrevet i et høynivå-språk, må bli

Detaljer

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data SQL Structured Query Language Definere tabeller Skranker Fylle tabeller med data Lage en tabell med SQL create table R (A 1 D 1 [S 1 ],... A n D n [S n ], [liste av skranker] R er navnet på relasjonen/tabellen

Detaljer

Oppgave 1 ER- og relasjonsmodell 10 %

Oppgave 1 ER- og relasjonsmodell 10 % Side 1 av 7 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Detaljer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 7 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Detaljer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler

Detaljer

Integritetsregler i SQL. Primærnøkler

Integritetsregler i SQL. Primærnøkler Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler skranker på attributter og tupler Interrelasjonsskranker assertions Triggere INF212

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Basert på foiler av Hector Garcia-Molina, Ragnar Normann Oversikt Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basis-operasjoner Implementasjons-algoritmer

Detaljer

1. SQL datadefinisjon og manipulering

1. SQL datadefinisjon og manipulering Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 12. august 2013 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte

Detaljer

Normalisering. ER-modell

Normalisering. ER-modell Normalisering Hensikten med normalisering: En informasjonsenhet ett sted. Forhindrer anomalier Anomalier: Innsettingsanomalier. F.eks være avhengig av å sette inn flere verdi, selv om det er det er bare

Detaljer

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen Databaser Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen Tema for dagen Relasjonsmodellen Hvorfor relasjoner? Fra ER diagram til relasjoner 22.09.2008

Detaljer

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer Vers: 17.aug 2016 Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39 963 Eksamensdato:

Detaljer

Oppgave 1 Datamodellering 22 %

Oppgave 1 Datamodellering 22 % Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER Eksamensdato:

Detaljer

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer. UNIVERSITETET IOSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 22.2.2011

Detaljer

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013 INF1300 SQL Structured Query Language del 1 Stoff som blir/ble forelest i oktober 2013 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where distinct order by SQLs manipulasjonsspråk Indekser

Detaljer

Metaspråket for å beskrive grammatikk

Metaspråket for å beskrive grammatikk 1 SQL-syntaks Korrekt språkbruk bygger på et sett av regler. Eksempler: En SQL utvalgsspørring inneholder alltid ordene SELECT og FROM, mens WHERE og tilhørende betingelse er valgfri. Etter SELECT kan

Detaljer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informatikk Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer Fagleg kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39 963 Eksamensdato:

Detaljer

Repetisjonsforelesning, SQL og utover

Repetisjonsforelesning, SQL og utover Repetisjonsforelesning, SQL og utover Evgenij Thorstensen V18 Evgenij Thorstensen Repetisjon V18 1 / 23 Temaer SQL, semantikk Databasearkitektur Spørringskompilering og optimisering Indekser Transaksjonshåndtering

Detaljer

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen Databaser Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen Tema for dagen Hva er relasjonsalgebra? Seleksjon Projeksjon Produkt Indre forening Ytterforening Settoperasjoner: union, snitt, differanse

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL Institutt for Informatikk INF3100 13.2.2007 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende

Detaljer

SQL SELECT-FROM-WHERE. Skjemadefinisjon og datainnsetting i SQL. Semantikk bak ein-relasjons-spørring

SQL SELECT-FROM-WHERE. Skjemadefinisjon og datainnsetting i SQL. Semantikk bak ein-relasjons-spørring SQL Språk for Skjemadefinisjon Spørringar Database-oppdateringar Svært høgnivå: i prinsippet skriv ein kva ein vil ha som resultat, utan å spesifisere korleis Sterk grad av optimalisering effektivt Skjemadefinisjon

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 6.4.2016

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 11.2.2008 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

Detaljer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995 39 963 Roger Midtstraum: 995 72

Detaljer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 26. mai 2014 Eksamenstid (fra-til): 09:00-13:00 Hjelpemiddelkode/Tillatte

Detaljer

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1 INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1 Dagens temaer Relasjonsalgebraen Renavning Algebra Heltallsalgebra Klassisk relasjonsalgebra Mengdeoperatorer Union Snitt

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 23.3.2015

Detaljer

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER Faglig kontakt under eksamen:

Detaljer

En lett innføring i foreninger (JOINs) i SQL

En lett innføring i foreninger (JOINs) i SQL En lett innføring i foreninger (JOINs) i SQL Noen ord om forening (JOIN)! 2 JOINs til gjennomgang! 3 1. INNER JOIN! 3 Eksempel på [INNER] JOIN! 4 NATURAL JOIN! 5 Eksempel på NATURAL JOIN! 5 2. LEFT [OUTER]

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs spørrespråk: select-from-where distinct order by Indekser INF1300-15.10.2007 Ellen Munthe-Kaas 1 SQL The Intergalactic Dataspeak

Detaljer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 4. august 015 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte

Detaljer

Databasemodellering og DBMS. Oppsummering

Databasemodellering og DBMS. Oppsummering Databasemodellering og DBMS Oppsummering Alexander Nossum 2006 alexander@nossum.net 1/46 Innholdsfortegnelse Databasemodellering og DBMS...1 Oppsummering... 1 1. Modellering...5 1.1 ER vs. Relasjonsmodellen...5

Detaljer

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO SQL Structured Query Language g (forts.) Institutt for Informatikk INF3100 9.2.2009 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

Detaljer

Oppgaver Oppgave a: Sett opp mulige relasjoner

Oppgaver Oppgave a: Sett opp mulige relasjoner Løsningsforslag til øving 4: Relasjonsmodellen Kjell Toft Hansen 18.09.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgaver Oppgave a: Sett opp

Detaljer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 12. august 2013 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 1.2.2005 Ragnar Normann 1 SQL SQL Structured Query Language er et deklarativt språk for

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 21.3.2014

Detaljer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsalgebraen Oversettelse av select-from-where til relasjonsalgebra SQL: union, snitt, differanse, kartesisk produkt INF1300 22.10.2007

Detaljer

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger INF1300 Relasjonsalgebra Et matematisk fundament for å forstå SQL-setninger Innhold Relasjonsalgebraen Operatorene i relasjonsalgebraen Relasjonsalgebratolkning av select-setningen Kostbare operasjoner

Detaljer

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14. INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning mandag 14. september 2009 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where

Detaljer

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22. INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning onsdag 22. september 2010 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where

Detaljer

1. Relasjonsmodellen. 1.1. Kommentarer til læreboka

1. Relasjonsmodellen. 1.1. Kommentarer til læreboka Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Relasjonsmodellen Tore Mallaug 2.9.2013 Lærestoffet er utviklet for faget Databaser 1. Relasjonsmodellen Resymé: Denne leksjonen gir en kort

Detaljer

Spørsmålskompilering del 1

Spørsmålskompilering del 1 UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100 - V18 - Evgenij

Detaljer

Spørsmålskompilering del 1

Spørsmålskompilering del 1 UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100-11.4.2016 - Ellen

Detaljer

Effektiv eksekvering av spørsmål

Effektiv eksekvering av spørsmål UNIVERSITETET I OSLO Effektiv eksekvering av spørsmål Spørsmålshåndtering Modell for kostnadsberegning Kostnad for basisoperasjoner Implementasjonsalgoritmer Institutt for Informatikk INF3100 V18 Evgenij

Detaljer

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem Innhold Forord....................................................... 5 Innledning.................................................... 15 Databaser som basis i grunnopplæringen....................... 15

Detaljer

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et språk til å beskrive spørsmål om

Detaljer

Relasjonsalgebraen. Algebra

Relasjonsalgebraen. Algebra Relasjonsalgebraen Definerer en mengde av operasjoner på relasjoner Gir oss et språk til å beskrive spørsmål om innholdet i relasjonene Språket er prosedyralt: Vi sier hvordan svaret skal beregnes. Alternativet

Detaljer

UNIVERSITETET I OSLO. Indeksering. Hvordan finne et element raskt? Institutt for Informatikk. INF Ellen Munthe-Kaas

UNIVERSITETET I OSLO. Indeksering. Hvordan finne et element raskt? Institutt for Informatikk. INF Ellen Munthe-Kaas UNIVERSITETET I OSLO Indeksering Hvordan finne et element raskt? Institutt for Informatikk INF3100 2.3.2010 Ellen Munthe-Kaas 1 Oversikt Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 3.3.2014

Detaljer

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et språk til å beskrive spørsmål om

Detaljer

SQL 3: Opprette tabeller, datainnsetting og utsnitt

SQL 3: Opprette tabeller, datainnsetting og utsnitt SQL 3: Opprette tabeller, datainnsetting og utsnitt Læreboka kap. 4 03.11.2008 Kjell Toft Hansen 1 Datainnsetting Legg til en ny leverandor i tabellen leverandor INSERT INTO leverandor (lev_nr, lev_navn,

Detaljer

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer) Sensorveiledning for IN2090 og INF1300 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal du anta at alle begreper har en unik representasjon. Er plasseringen

Detaljer

Introduksjon til fagfeltet

Introduksjon til fagfeltet LC238D http://www.aitel.hist.no/fag/_dmdb/ Introduksjon til fagfeltet Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side

Detaljer

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 INF 329: Web-Teknologier Dataimplementasjon Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 av: Dag Viggo Lokøen (dagvl@ii.uib.no) Kent Inge F. Simonsen (kentis@ii.uib.no)

Detaljer

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language Litt tabellterminologi Definere tabeller Fylle tabeller med data Hente data fra tabeller select-from-where distinct order by Relasjoner terminologi relasjonsnavn Personale

Detaljer

EKSAMEN 6102 / 6102N DATABASER

EKSAMEN 6102 / 6102N DATABASER EKSAMEN 6102 / 6102N DATABASER 06.12.2016 Tid: 4 timer (10-14) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål / nynorsk 13 (inkludert denne) Ingen Ingen Eksempeltabeller Sensuren finner du

Detaljer

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering? LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform

Detaljer

EKSAMEN DATABASER

EKSAMEN DATABASER EKSAMEN 6102 DATABASER 30.05.2016 Tid: 4 timer (9-13) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål 7 (inkludert denne) Ingen Ingen Eksempeldata Sensuren finner du på StudentWeb. Vekting

Detaljer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995 39 963 Roger Midtstraum: 995 72

Detaljer

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk INF3100-8.2.2010 Ellen Munthe-Kaas 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et

Detaljer

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer) Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal

Detaljer

SQL: Integritetsregler, triggere og views

SQL: Integritetsregler, triggere og views UNIVERSITETET I OSLO SQL: Integritetsregler, triggere og views Institutt for Informatikk INF3100 14.2.2014 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet fremmednøkler

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF30 29.2.2016 Ellen

Detaljer

UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas

UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas UNIVERSITETET IOSLO Indeksering Hvordan finne et element raskt? Basert på foiler av Hector Garcia Molina Basert på foiler av Hector Garcia-Molina, Vera Goebel, Ellen Munthe-Kaas Oversikt Konvensjonelle

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut PHP-arkitektur Brukergrensesnitt! inn ut Dynamisk web-side bygges opp på grunnlag av spørring mot databasen Utviklingsretning Applikasjon Virkelighetsmodell Plattform Bruker

Detaljer

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering? LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform

Detaljer

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser UNIVERSITETET I OSLO Indeksering Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser Institutt for Informatikk INF3100 V18 Evgenij Thorstensen

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign Relasjonsdatabasedesign Oppdateringsanomalier Dekomponering Normalformer INF300-4..005 - Ragnar Normann Hva kjennetegner god relasjonsdatabasedesign? Skjemaene samler beslektet informasjon: Tekstlig nærhet

Detaljer

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: Emnenavn: 6102 Databaser Dato: Tid fra / til: 06.06.2017 10:00-14:00 Ansv. faglærer: Bjørn Kristoffersen Campus: Fakultet: Bø Handelshøyskolen Antall

Detaljer

INF1300 Introduksjon til databaser: SQL Structured Query Language

INF1300 Introduksjon til databaser: SQL Structured Query Language INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning mandag 14. september 2009 SQL Structured Query Language SQL Structured Query Language er

Detaljer

Miniverden og ER- modell

Miniverden og ER- modell TDT4145 Datamodellering og databasesystemer SQL- oppgave 1 Miniverden og ER- modell Vi tar utgangspunkt i en enkel modell for en pizza- restaurant, der følgende ER- diagram beskriver databasen: Relasjonsdatabase-

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs definisjonsspråk SQLs spørrespråk: select-from-where distinct order by SQLs manipulasjonsspråk Indekser Filmdatabasen INF1300

Detaljer

Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1 Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015 Tid: 10-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 13 med forside Ingen Ingen Vedlegg: Eksempeldata til oppgave 1 Eksamensresultater

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 6.desember 2010 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2009HA

Detaljer

1. Innføring i bruk av MySQL Query Browser

1. Innføring i bruk av MySQL Query Browser Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring

Detaljer

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen Faglig kontakt under eksamen: Kjell Bratbergsengen Tlf.: 906

Detaljer

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

Relasjonsalgebra Kopi av lysark om relasjonsalgebra. Vi går igjennom denne for å lage et matematisk fundament for forståelsen av hvordan

Relasjonsalgebra Kopi av lysark om relasjonsalgebra. Vi går igjennom denne for å lage et matematisk fundament for forståelsen av hvordan Relasjonsalgebra Kopi av lysark om relasjonsalgebra. Vi går igjennom denne for å lage et matematisk fundament for forståelsen av hvordan select-setningen virker. Temaer som blir tatt inn i SQL-notatet:

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Oppdateringsanomalier Dekomponering Normalformer Institutt for Informatikk INF300-9..007 Ellen Munthe-Kaas Hva kjennetegner god relasjonsdatabasedesign? Beslektet

Detaljer

UNIVERSITETET RELASJONSALGEBRA. Regning g med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET RELASJONSALGEBRA. Regning g med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO RELASJONSALGEBRA Regning g med relasjoner Institutt for Informatikk INF3100-7.2.2011 Ellen Munthe-Kaas 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss

Detaljer

Relasjoner terminologi

Relasjoner terminologi Relasjoner terminologi Kopi av lysark fra forelesningen 1. september. Dette er utdrag fra et notat som snart blir publisert. Dette notatet egner seg bedre til repetisjon og selvstudium enn disse arkene.

Detaljer

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser 1 ITGK - H2010, Matlab Dagens tema : Teori - Databaser 2 I dag Teori: Databaser Bok: 8.1 8.2 (8.1-8.4 i gamle bøker) Læringsmål Lære det grunnleggende om databaser Lære det grunnleggende om databasedesign

Detaljer

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language Mer SQL: kandidat-, primær- og fremmednøkler Definere tabeller med integritetsregler Hente data fra tabeller select-from-where distinct order by Eksempler kjøres i PostgreSQL

Detaljer