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

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

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

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ø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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Databaser & objektorientering.

Databaser & objektorientering. Databaser & objektorientering. Noen grunnbegreper innen objektorientering. Klasser og forekomster klasser beskriver strukturen for noe. Beskrivelsen inneholder: et navn attributter /egenskaper / tilstander

Detaljer

Minikompendium TDT4145 databasemod og dbsys

Minikompendium TDT4145 databasemod og dbsys Minikompendium TDT4145 databasemod og dbsys Pages og records Her er det viktig å holde tunga rett i munnen så man ikke blander begrepene. Page Den minste dataenheten databasesystemet leser og skriver til

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem Institutt for datateknikk og informasjonsvitskap Eksamensoppgåve i TDT4145 Datamodellering og databasesystem Fagleg kontakt under eksamen: Svein Erik Bratsberg: 99539963 Roger Midtstraum: 99572420 Eksamensdato:

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

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL Side 1

Detaljer

FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER... 1 11 INTRODUKSJON...

FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER... 1 11 INTRODUKSJON... Innholdsfortegnelse FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER... 1 1 INTRODUKSJON... 3 1.1 DATABASESYSTEMER... 3 1.1.1 Anvendelser... 3 1.1.2 Oppgaver

Detaljer

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner Institutt for informatikk

Detaljer

SLUTTPRØVE 5602 DATABASER I 5.12.2008. 17 (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

SLUTTPRØVE 5602 DATABASER I 5.12.2008. 17 (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4 Høgskolen i Telemark SLUTTPRØVE 5602 DATABASER I 5.12.2008 Tid: 9-14 Målform: Sidetal: Hjelpemiddel: Merknader: Bokmål og nynorsk 17 (inkludert vedlegg og denne forsida) Ingen Ingen Vedlegg: A: Eksempeldata

Detaljer

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9 Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå prinsippene for, og kunne bruke i praksis Mengder (sets)

Detaljer

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Fredag 2. desember 2011, kl. 0900-1300 Oppgaven er utarbeidet av faglærer Kjell Bratbergsengen og kvalitetssikrer Svein-Olaf Hvasshovd

Detaljer

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner LC238D http://www.aitel.hist.no/fag/_dmdb/ Transaksjoner og flerbrukerproblematikk Transaksjoner side 2-4 Låseteknikker side 5 Isolasjonsnivåer side 6-7 Flerbrukerproblemer i fbm utførelse av transaksjoner

Detaljer

Relasjonsalgebra. Hva?

Relasjonsalgebra. Hva? Relasjonsalgebra. Hva? Relasjonsalgebra består av et sett med høynivås operatorer som kan brukes til å manipulere med relasjoner (slå sammen to tabeller, selektere data etc.). Tankegangen er viktig å kjenne

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 9. juni 2008 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF3100 Databasesystemer

Detaljer

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015 svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015 Dato: 11/5-2015. Tid: 4 timer, skriftlig, ingen hjelpemidler. Oppgave 1 (80 %) Vi skal lage et sterkt forenklet system for Sjøfartsdirektoratet som

Detaljer

1. Datamodellering. 1.1. Kommentarer til læreboka

1. Datamodellering. 1.1. Kommentarer til læreboka Tore Mallaug 20.10.2009 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Datamodellering Resymé: Denne leksjonen viser et par eksempler på ER-modellering

Detaljer

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Lørdag 18. mai 2013, kl. 0900-1300 Oppgaven er utarbeidet av faglærer Kjell Bratbergsengen og kvalitetssikrer Svein-Olaf Hvasshovd Kontaktperson

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG AVDELING FOR TEKNOLOGI Institutt for databehandling Kandidat nr.: Eksamensdato: 09.05.2005 Varighet: 0900-1200 (3 timer) Fagnummer: LO323D Fagnavn: Databaser Klasse(r): NETT 2006V

Detaljer

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring: Kjell Toft Hansen 02.10.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgave 1 1. Spørring: SELECT oh.*, delnr, kvantum FROM ordrehode oh, ordredetalj

Detaljer

SQL. SQL-standarder. Flere standarder: ANSI SQL SQL2 (SQL-92) SQL3 (SQL-99) = SQL2 + objekt-relasjonelle egenskaper mm

SQL. SQL-standarder. Flere standarder: ANSI SQL SQL2 (SQL-92) SQL3 (SQL-99) = SQL2 + objekt-relasjonelle egenskaper mm SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser Uttrykkskraften er omtrent som den i relasjonsalgebraen utvidet med tilleggsoperatorene SQL inneholder også

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

Andre sett obligatoriske oppgaver i INF3100 V2013

Andre sett obligatoriske oppgaver i INF3100 V2013 Andre sett obligatoriske oppgaver i INF3100 V2013 Oppgavesettet skal i utgangspunktet løses av grupper på to og to studenter som leverer felles besvarelse. Vi godkjenner også individuelle besvarelser,

Detaljer

SQL Introduksjonskurs. Oversikt

SQL Introduksjonskurs. Oversikt SQL Introduksjonskurs Oversikt Oversikt 2/7 Introduksjon til datamodellering Normalisering Logisk skjema til Database Strukturelle operasjoner Operasjoner mot data Kontrolloperasjoner Aggregering og indekser

Detaljer

9. ASP med databasekopling, del II

9. ASP med databasekopling, del II Else Lervik 23.03.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LV192D Web-programmering med ASP 9. Resymé: I forrige leksjon så vi hvordan ASP kunne brukes til å vise

Detaljer

Øving 5: Transaksjonshåndtering, logging og normalisering

Øving 5: Transaksjonshåndtering, logging og normalisering Øving 5: Transaksjonshåndtering, logging og normalisering Lars Kirkholt Melhus Oppgave 1 a) ACID Atomic En transaksjon er en minste enhet. Alle ledd i transaksjonen må gå feilfritt for at transaksjonen

Detaljer

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER...1 1 INTRODUKSJON...

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER...1 1 INTRODUKSJON... FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER...1 1 INTRODUKSJON... 3 1.1 DATABASESYSTEMER...3 1.1.1 Anvendelser...3 1.1.2 Oppgaver og arkitektur...4 1.1.3

Detaljer

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen. Fredag 17. august 2012, kl. 0900-1300 Oppgaven er utarbeidet av faglærer Kjell Bratbergsengen. Kontaktperson under

Detaljer

5602 DATABASER 02.12.2010. Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.

5602 DATABASER 02.12.2010. Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb. Høgskolen i Telemark EKSAMEN 5602 DATABASER 02.12.2010 Tid: 9-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 17 (inkludert denne forsiden) Ingen Ingen Vedlegg: A: Eksempeldata og B: Svarark

Detaljer

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

Dagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,

Detaljer

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner LC238D http://www.aitel.hist.no/fag/_dmdb/ Transaksjoner og flerbrukerproblematikk Transaksjoner side 2-4 Låseteknikker side 5 Isolasjonsnivåer side 6-7 Flerbrukerproblemer i fbm utførelse av transaksjoner

Detaljer

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models LC238D Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models Oppsummering: Å oversette fra ER- til relasjonsmodell

Detaljer

Datamodellering 101 En tenkt høgskoledatabase

Datamodellering 101 En tenkt høgskoledatabase Datamodellering 101 En tenkt høgskoledatabase Spesifikasjoner for databasen vi skal modellere: Oversikt over studenter med: Fullt navn Klasse Studium Avdeling Brukernavn Fødselsdag Adresse Telefonnummer

Detaljer

Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL Side 1

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-25.1.2016 Ellen Munthe-Kaas 1 Normalformer Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon

Detaljer

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no Database security Kapittel 14 Building Secure Software Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no Kort introduksjon Database er en organisert samling av data. SQL(Structured Query Language)

Detaljer

Tabeller og enkle spørringer

Tabeller og enkle spørringer Tabeller og enkle spørringer Database, relasjonsdatabase Databasehåndteringssystem (DBHS) Databasesystem Tabell, kolonne, rad, datatype, verdi, primærnøkkel Utvalgsspørringer i SQL Velge ut rader Velge

Detaljer

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Ordliste. Obligatorisk oppgave 1 - Inf 1020 Ordliste. Obligatorisk oppgave 1 - Inf 1020 I denne oppgaven skal vi tenke oss at vi vil holde et register over alle norske ord (med alle bøyninger), og at vi skal lage operasjoner som kan brukes til f.

Detaljer

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller LC238D http://www.aitel.hist.no/fag/_dmdb/ Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller ER-modellen, intro.

Detaljer

OM DATABASER DATABASESYSTEMER

OM DATABASER DATABASESYSTEMER OM DATABASER DATABASESYSTEMER Begrepet database brukes på flere måter, og det er ikke uvanlig å bruke det for å angi en total samling av data (i dette tilfellet lagrede opplysninger) uavhengig av hvordan

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 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 13.des 2011 Faglig

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF3100/INF4100 Databasesystemer Eksamensdag : Tirsdag 8. juni 2004 Tid for eksamen : 09.00-12.00 Oppgavesettet er på : 5 sider

Detaljer

1. SQL spørringer mot flere tabeller

1. SQL spørringer mot flere tabeller 1. SQL spørringer mot flere tabeller Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL spørringer mot flere tabeller Tore Mallaug 29.9.2008 Lærestoffet er utviklet for faget Databaser

Detaljer

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN 2 INNLEDNING TEMA I SAS Enterprise Guide versjon 5.1 (februar 2012) kom det et nytt datautforskingsverktøy,

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1300 Introduksjon til databaser Eksamensdag: 1. desember 2014 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner Typer av systemer, Arkitektur og Databaser Arne Maus, Ifi med takk til Dag Lorås(Visma) og Ian Sommerville for delvis lån av gamle foiler Dagens forelesning. Ulike typer systemer Satsvise, interaktive,

Detaljer

INFO122 Innføring i databaser. Oblig 2. av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik

INFO122 Innføring i databaser. Oblig 2. av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik INFO122 Innføring i databaser Oblig 2 av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik a) For at en relasjonsmodell skal være på en viss normalform, må alle relasjoner oppfylle minst denne

Detaljer

Databaser noen temaer.

Databaser noen temaer. Databaser noen temaer. Dette er en oversikt over en del sentrale temaer innen databaser, på til bruk som plastikkforedrag. Opplegget er kun ment som støtte til forelesninger og lærebok. Vennligst ikke

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: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering

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: 73550382 Eksamensdato: 12. august 2013

Detaljer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

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

Detaljer

9-14. Tid: Målform: Sidetall: Hjelpemidler: Ingen. Merknader: Vedlegg: en lapp og. Avdeling

9-14. Tid: Målform: Sidetall: Hjelpemidler: Ingen. Merknader: Vedlegg: en lapp og. Avdeling Høgskolen i Telemark SLUTTPRØVE 5602 DATABASER 01.12.2009 Tid: Målform: Sidetall: Hjelpemidler: 9-14 Bokmål og nynorsk 17 (inkludert vedleggg og dennee forsiden) Ingen Merknader: Ingen Vedlegg: A: Eksempeldata

Detaljer

EKSAMEN. Emnekode: ITF10306. Emne: Databaser. Dato: 13.05.13 Eksamenstid: 09.00-13.00. Hjelpemidler: Syntaksoversikt (vedlagt oppgaven)

EKSAMEN. Emnekode: ITF10306. Emne: Databaser. Dato: 13.05.13 Eksamenstid: 09.00-13.00. Hjelpemidler: Syntaksoversikt (vedlagt oppgaven) EKSAMEN Emnekode: ITF10306 Emne: Databaser Dato: 13.05.13 Eksamenstid: 09.00-13.00. Hjelpemidler: Syntaksoversikt (vedlagt oppgaven) Faglærer: Edgar Bostrøm Oppgavesettet består av 4 sider inklusiv denne

Detaljer

TDT4102 - Prosedyre- og objektorientert programmering

TDT4102 - Prosedyre- og objektorientert programmering Eksamensoppgave i TDT4102 - Prosedyre- og objektorientert programmering Lørdag 6. juni 2009 Kontaktperson under eksamen: Trond Aalberg (97631088) Eksamensoppgaven er utarbeidet av Trond Aalberg og kvalitetssikret

Detaljer

Arne Maus, Ifi. delvis lån av gamle foiler

Arne Maus, Ifi. delvis lån av gamle foiler Typer av systemer, Arkitektur og Databaser Arne Maus, Ifi med takk til Dag Lorås(Visma) og Ian Sommerville for delvis lån av gamle foiler INF 1050 Systemutvikling v2010 1 Dagens forelesning 1. Ulike typer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF3100/INF4100 Databasesystemer Eksamensdag : Onsdag 8. juni 2005 Tid for eksamen : 14.30 17.30 Oppgavesettet er på : 5 sider

Detaljer

1. Introduksjon og bakgrunn

1. Introduksjon og bakgrunn Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Introduksjon til Databaser 2 Tore Mallaug 28.8.2012 Lærestoffet er utviklet for faget Databaser 2 1. Introduksjon og bakgrunn Resymé: I denne

Detaljer

Del 1: ER-modellering og databaseteori

Del 1: ER-modellering og databaseteori Del 1: ER-modellering og databaseteori (a) ER-modellering Oppgavens del 1a er delt i tre deler. I første del skal det lages et ER-diagram for databasen til firmaet Sjokoladeland. Deretter skal det lages

Detaljer

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler Plan for dagen Vprg 4 LC191D Videregående programmering Høgskolen i Sør-Trøndelag Avdeling for informatikk og e-læring Anette Wrålsen Del: Intro til tekstfiler Del II: Mer om tekstfiler, Scanner-klassen

Detaljer

Obbligatorisk oppgave 2 Slektsdatabase

Obbligatorisk oppgave 2 Slektsdatabase Obbligatorisk oppgave 2 Slektsdatabase 5602 Databaser Gruppenavn LEK Lars- Martin Hejll Eirik Simensen Krister Moen 113495 113452 113055 H2011 Oppgave 1 Begrepsmessig datamodell (E/R- diagram) E/R- Diagram

Detaljer

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv

Detaljer

INF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003

INF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003 INF1000 HashMap Marit Nybakken marnybak@ifi.uio.no 2. november 2003 Dette dokumentet skal tas med en klype salt og forfatteren sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet

Detaljer

SELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program

SELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 10/11-15 DISTINCT Pregnante navn på kolonner Boolske operatorer: OR, NOT Beregningsfunksjoner og Gruppering NULL-verdier Maria

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008 Prosjektoppgave: Bildedatabase TDT4145 Datamodellering og Databasesystemer Våren 2008 NB! Kun for de som ikke tar fellesprosjektet. Innledning I løpet av de siste årene har det blitt stadig mer vanlig

Detaljer

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre Repetisjon, del 2 TDT 4110 IT Grunnkurs Professor Guttorm Sindre Premieutdeling Kahoot Vinnere av enkeltrunder: Datamaskinens historie: mr.oyster (7311) Variable, aritmetiske op., etc.: Sha-ra (6155) if-setn.,

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: 7.desember 2009 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2008HA

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 7

PG4200 Algoritmer og datastrukturer Forelesning 7 PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse

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 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig

Detaljer

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Eksamen i TDT4190 Distribuerte systemer Faglig kontakt under eksamen: Norvald Ryeng Tlf.: 97 17 49 80 Eksamensdato: Fredag 6. juni 2014

Detaljer

Løsningsforlag for oblig 1, databaser 2010

Løsningsforlag for oblig 1, databaser 2010 Løsningsforlag for oblig 1, databaser 2010 Oppgave 1 a) Hvilke supernøkler finnes i de to tabellene? Tabellen klasse har følgende supernøkler: (klasseid, klassebetegnelse) (klasseid) Tabellen renndeltager

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer