Et objektorientert spørrespr. rrespråk: Object Query Language (OQL)
|
|
- Thea Evensen
- 7 år siden
- Visninger:
Transkript
1 INF3100 Databasesystemer Et objektorientert spørrespr rrespråk: Object Query Language (OQL) Inneholder lysark laget av Arthur M. Keller, Vera Goebel, Pål Halvorsen, Ragnar Normann
2 Oversikt OQL Spørringer (Queries/sub-queries) Returtyper Kvantorer Generering av objekter Aggregering Bruk av vertsspråk Operatorer på set- eller bag-objekter Gruppering Ragnar Normann, Ifi, UiO Ark 2 av 43
3 Object Query Language (OQL) Motivasjon: Relasjonelle språk lider av impedance mismatch når vi prøver å koble dem til konvensjonelle språk som COBOL, C, C++ eller Java Datamodellene til C og SQL er radikalt forskjellige, eksempelvis har ikke C relasjoner, set eller bag som primitive typer OQL er spørrespråket i ODMG-standarden OQL er et forsøk fra OO-samfunnet på å utvide språk som C++ med et SQL-likt, relasjon-om-gangen vokabular Som SQL, er OQL et deklarativt (og ikke prosedyralt) språk Ragnar Normann, Ifi, UiO Ark 3 av 43
4 OQL bruker ODL OQL er designet for å operere på data beskrevet i ODL: For hver klasse kan vi deklarere en extent = navn på mengden av objekter av klassen som til en hver tid måtte finnes Husk: I OQL refererer vi alltid til extent (og ikke til klassenavnet) Ragnar Normann, Ifi, UiO Ark 4 av 43
5 OQL: Objekt- og verdilikhet To objekter av samme type (instanser av samme klasse) kan ikke være like, men de kan ha de samme verdiene Eksempel: Anta at objektene O 1 og O 2 er to instanser av samme klasse OQL-uttrykket O 1 = O 2 er alltid FALSE OQL-uttrykket *O 1 = *O 2 kan være TRUE hvis de to objektene har samme state, dvs. parvis de samme verdiene i alle attributter Ragnar Normann, Ifi, UiO Ark 5 av 43
6 OQL: Beregninger Foranderlige (mutable) objekter manipuleres ved å eksekvere metoder som er definert for denne klassen Select i OQL kan ha sideeffekter, dvs. at den kan forandre databasens state I motsetning til SQL har ikke OQL noen egen update-funksjon Metoder kalles ved å navigere langs stier; det er ingen forskjell på å adressere attributter, relasjoner og metoder Ragnar Normann, Ifi, UiO Ark 6 av 43
7 OQL: Typer Basistyper: string, integer, float, boolean, character, enumerations osv. Type-konstruktører: Struct for strukturer Collection types : set, bag, list, array (MERK: dictionary er ikke tillatt i OQL) Set(Struct()) og Bag(Struct()) spiller spesielle roller (tilsvarende hva de gjør for relasjoner) Ragnar Normann, Ifi, UiO Ark 7 av 43
8 OQL: Stiuttrykk (Path Expressions) Vi aksesserer komponenter ved å bruke prikk-notasjon La x være et objekt av klassen C: Hvis a er et attributt i C, så er x.a verdien til a i objektet x Hvis r er en relasjon i C, så er x.r verdien som x er knyttet til via r, som, avhengig av typen til r, enten er et objekt eller en samling objekter Hvis m er en metode i C, så er x.m( ) resultatet av å anvende m i x Et stiuttrykk kan inneholde flere prikker, men bare det siste elementet kan være en samling) OQL tillater piler som synonymer for prikker, dvs. at xa betyr det samme som x.a, i motsetning til i eksempelvis C Ragnar Normann, Ifi, UiO Ark 8 av 43
9 ODL for Bar-Beer-Sell (BBS) eksemplet class Bar (extent Bars) { attribute string name; attribute string addr; relationship Set<Sell> beerssold inverse Sell::bar; } class Beer (extent Beers) { attribute string name; attribute string manf; relationship Set<Sell> soldby inverse Sell::beer; } class Sell (extent Sells) { attribute float price; relationship Bar bar inverse Bar::beersSold; relationship Beer beer inverse Beer::soldBy; void raise_price(float price); } Ragnar Normann, Ifi, UiO Ark 9 av 43
10 Stiuttrykk i BBS-eksemplet La s være en variabel av type Sell s.price er prisen i objektet s (et ølmerke solgt i denne baren) s.raise_price(x) øker prisen på s.beer in s.bar med x s.bar er en peker til baren som dette ølmerket selges i s.bar.addr er addressen til denne baren NB: to prikker er OK fordi s.bar er et objekt, og ikke en samling La b være en variabel av type Bar b.name er navnet på baren b.beerssold er en mengde ølmerker som denne baren selger (mengde pekere til Sell) Eksempel på ulovlig bruk av stiuttrykk: b.beerssold.price Dette er ulovlig fordi b.beerssold er en mengde av objekter Vanlig bruk: Hvis x er et objekt, kan stiuttrykket utvides (forlenges) slik s forlenges til s.beer og s.beer.name ovenfor Hvis x er en samling (som b.beerssold ovenfor) kan den brukes overalt hvor samlinger kan brukes (som i FROM-uttrykk), hvis du vil aksessere attributtene til x Ragnar Normann, Ifi, UiO Ark 10 av 43
11 OQL: Select-From-Where SQL-aktig syntaks: SELECT <liste av verdier> FROM <liste av samlinger og typiske medlemmer> WHERE <betingelse> Samlingene i FROM kan være: 1. Ekstensjoner (deklarert som extent av en klasse) 2. Uttrykk som evaluerer til en samling Etter hver samling følger navn på et typisk medlem, eventuelt med nøkkelordet AS foran Merk: Mange forskjellige spørringer kan gi samme svar Ragnar Normann, Ifi, UiO Ark 11 av 43
12 OQL BBS-eksempel eksempel: : Select-From-Where Finn menyen hos Joe s med fokus på Sells-objekter: SELECT s.beer.name, s.price FROM Sells s WHERE s.bar.name = "Joe's" Merk at OQL bruker doble anførselstegn rundt strenger (SQL bruker enkle) Finn Joe s meny, denne gang med fokus på Bar-objekter: SELECT s.beer.name, s.price FROM Bars b, b.beerssold s WHERE b.name = "Joe's" Legg merke til hvordan det typiske objektet b i den første samlingen i FROM brukes til å definere den andre samlingen (dette erstatter join) Ragnar Normann, Ifi, UiO Ark 12 av 43
13 OQL: Sammenligningsoperatorer Verdier kan sammenlignes ved bruk av operatorer: = : likhet!= : forskjellig fra < : mindre enn > : større enn <= : mindre eller lik >= : større eller lik I tillegg har vi følgende operatorer for sammenligning av tekst: IN sjekker om et tegn er i en tekststreng: <c> IN <text> LIKE sjekker om to tekster er like: <text 1 > LIKE <text 2 > <text 2 > kan inneholde spesialtegn: _ eller? : et vilkårlig tegn * eller % : en vilkårlig tekststreng Ragnar Normann, Ifi, UiO Ark 13 av 43
14 OQL BBS-eksempel eksempel: Sammenligningsoperatorer Eksempel: Finn navn og pris på alle ølmerker solgt på Joe s som starter med B og inneholder tekststrengen ud SELECT s.beer.name, s.price FROM Bars b, b.beerssold s WHERE b.name = "Joe's" AND s.beer.name LIKE "B*" AND s.beer.name LIKE "*ud*" AND Merknad 1: Navnet på baren er Joe s Merknad 2: Ølnavnet starter med B fulgt av vilkårlig mange vilkårlige tegn Merknad 3: Ølnavnet inneholder ud med vilkårlig mange vilkårlige tegn både foran og bak Ragnar Normann, Ifi, UiO Ark 14 av 43
15 OQL: Kvantorer Vi kan teste om alle medlemmer, minst ett medlem, noen medlemmer osv. tilfredsstiller en betingelse Boolske uttrykk til bruk i WHERE-betingelser: Alle: FOR ALL x IN <collection> : <condition> Minst en: EXISTS x IN <collection> : <condition> EXISTS x Bare en: UNIQUE x Noen: <collection> <comparison> SOME/ANY <condition> hvor <comparison > er <, >, <=, >=, eller = Uttrykket har verdien TRUE hvis betingelsen holder NOT gir motsatt boolsk verdi (NOT TRUE = FALSE og NOT FALSE = TRUE) Ragnar Normann, Ifi, UiO Ark 15 av 43
16 OQL BBS-eksempel eksempel: Kvantorer - I Eksempel: Finn alle barer som selger en eller annen øl for mer enn $5 SELECT b.name FROM Bars b WHERE EXISTS s IN b.beerssold : s.price > 5.00 Eksempel: Hvordan finner man barer som bare selger øl for mer enn $5? SELECT b.name FROM Bars b WHERE FOR ALL s IN b.beerssold : s.price > 5.00 Ragnar Normann, Ifi, UiO Ark 16 av 43
17 OQL BBS-eksempel eksempel: Kvantorer - II Eksempel: Finn de barene som ikke selger øl for mer enn $5 bortsett fra de som er produsert av Pete s SELECT b.name FROM Bars b WHERE FOR ALL be IN be.manf = "Pete's" Merknad 2: alle disse dyre ølmerkene må være produsert av Pete s ( SELECT s.beer FROM b.beerssold s WHERE s.price > 5.00 ) : Merknad 1: finn alle ølmerker i en bar hvor prisen er mer enn $5 Ragnar Normann, Ifi, UiO Ark 17 av 43
18 OQL: Resultattyper Normaltilfellet: bag av struct-er, feltnavnene taes fra slutten av stinavnene i SELECT-uttrykket Eksempel: Menyen hos Joe s : SELECT s.beer.name, s.price FROM Sells s WHERE s.bar.name = "Joe's" har resultattype: Bag(Struct(name: string, price: real)) Ragnar Normann, Ifi, UiO Ark 18 av 43
19 OQL: Renavning av felt Resultattypen Bag(Struct(name: string, price: real)) har muligens ikke helt passende navn på attributtene Da kan vi renavne ved å prefikse stien med ønsket navn og et kolon Eksempel: Renavning av attributtene i Joe s meny: SELECT beername: s.beer.name, s.price FROM Bars b, b.beerssold s WHERE b.name = "Joe's har type: Bag(Struct(beername: string, price: real)) Ragnar Normann, Ifi, UiO Ark 19 av 43
20 OQL: Andre samlingstyper - I En bag av struct-er (default) er ikke alltid det vi ønsker som svar på en SFW-query Bruk SELECT DISTINCT for å få et set av struct-er Eksempel: SELECT DISTINCT s.beer.name, s.price FROM Bars b, b.beerssold s WHERE b.name = "Joe's" Ragnar Normann, Ifi, UiO Ark 20 av 43
21 OQL: Andre samlingstyper - II Bruk ORDER BY for å få en liste av struct-er Eksempel: joemenu = SELECT s.beer.name, s.price FROM Bars b, b.beerssold s WHERE b.name = "Joe's" ORDER BY s.price ASC ASC = ascending (default); DESC = descending Vi kan hente informasjon fra en liste som om den var en array, f.eks. cheapest_beer = joemenu[0].name; Ragnar Normann, Ifi, UiO Ark 21 av 43
22 OQL: Subqueries Brukes når det er rimelig at et mellomresultat er en samling, det vil hovedsaklig si i FROM-leddet og med kvantorer som EXISTS, FOR ALL, osv. Eksempel: subquery i FROM: Finn produsentene av øl som serveres hos Joe's SELECT DISTINCT b.manf FROM ( SELECT s.beer FROM Sells s WHERE s.bar.name = "Joe's" ) b Ragnar Normann, Ifi, UiO Ark 22 av 43
23 OQL: Å gi verdier til vertsspråkvariable I motsetning til SQL, hvor man må flytte data mellom tupler og variable, passer OQL naturlig inn i et vertsspråk Select-From-Where lager samlinger av objekter Det er mulig å gi enhver variabel av rett type en verdi som er resultatet av en OQL-spørring Eksempel (C++ og Java-aktig): Navn på barer som bare selger øl for mer enn $5 Set<string> expensive_bars; expensive_bars = SELECT DISTINCT b.name FROM Bars b WHERE FOR ALL s IN b.beerssold : s.price > 5.00 Ragnar Normann, Ifi, UiO Ark 23 av 43
24 OQL: Henting av medlemmer i samlinger I En samling med et enkelt medlem: Ta ut medlemmet med ELEMENT Eksempel: Finn prisen Joe s tar for Bud og legg resultatet inn i variabelen p: p = ELEMENT( SELECT s.price FROM Sells s WHERE s.bar.name = "Joe's" AND s.beer.name = "Bud") Ragnar Normann, Ifi, UiO Ark 24 av 43
25 OQL: Henting av medlemmer i samlinger II Å hente alle medlemmene i en samling, en om gangen: 1. Gjør samlingen om til en liste 2. Ta ut medlemmene fra listen med <list_name>[i] Eksempel (C-aktig): Skriv ut Joe's meny, ordnet etter pris, med øl med samme pris listet alfabetisk L = SELECT s.beer.name, s.price FROM Sells s WHERE s.bar.name = "Joe's" ORDER BY s.price, s.beer.name; Merknad 1: Lag en liste printf("beer\tprice\n\n"); Merknad 2: Element nr i i L hentes fra L[i-1] Indeksen i starter på 0 for( i=0; i<=count(l); i++) printf("%s\t%f\n", L[i].name, L[i].price); Ragnar Normann, Ifi, UiO Ark 25 av 43
26 OQL: Å lage nye objekter En Select-From-Where spørring tillater oss å lage nye objekter hvis type er definert av typene returnert av SELECT-setningen Eksempel SELECT beername: s.beer.name, s.price FROM Bars b, b.beerssold s Merk: Definerer et nytt objekt WHERE b.name = "Joe's Bar" Bag<Struct( beername: string, price: integer)> Constructor-funksjoner: lager nye forekomster av en klasse eller andre definerte typer (detaljene avhenger av vertsspråket) Eksempel: legg inn et nytt ølmerke newbeer = Beer(name: "XXX", manufacturer: "YYY") Effekt: Lager et nytt Beer objekt som blir med i ekstensjonen Beers Verdien til vertsspråkvariabelen newbeer blir dette objektet Ragnar Normann, Ifi, UiO Ark 26 av 43
27 OQL: Aggregering De fem operatorene avg, sum, min, max og count kan brukes på alle samlinger så lenge operatoren har mening for elementtypen Eksempel: Finn gjennomsnittsprisem på øl hos Joe s x = AVG( SELECT s.price FROM Sells s WHERE s.bar.name = "Joe's"); Merk: Resultatet av SELECT ovenfor er teknisk sett en bag av 1-felts struct-er som identifiseres med bag-en av verdiene til feltet Ragnar Normann, Ifi, UiO Ark 27 av 43
28 OQL: Union, snitt og differanse Vi kan anvende union-, snitt- differanse-operatorer på alle objekter av Set eller Bag type Bruk henholdsvis nøkkelordene UNION, INTERSECT og EXCEPT Resultattypen er en Bag hvis (minst) en av objektene er en Bag; ellers Set Eksempel: Finn navnet på alle øltyper servert hos Joe s som ikke serveres hos Steve s ( SELECT s.beer.name FROM Sells s WHERE s.bar.name = "Joe's ) EXCEPT ( SELECT s.beer.name FROM Sells s WHERE s.bar.name = "Steve's ) Merknad 1: Finn alle øltyper servert hos Joe s Merknad 2: Finn alle øltyper servert hos Steve s Merknad 3: Fjern øltyper servert hos Steve s fra øltypene servert hos Joe s Ragnar Normann, Ifi, UiO Ark 28 av 43
29 OQL: Gruppering I OQL har med noen forskjeller samme gruppering som SQL Eksempel i SQL: Finn gjennomsnittsprisen på øl i alle barer SELECT bar.name, AVG(price) FROM Sells GROUP BY bar; Er bar-verdien navnet ( name ) på gruppen, eller den felles verdien på bar-komponenten i alle tuplene i gruppen? I SQL spiller det ingen rolle, men i OQL kan du lage grupper basert på verdiene til enhver funksjon, ikke bare attributter Følgelig identifiseres grupper av felles verdier, og ikke navn Eksempel: Grupper etter første bokstav i barnavnet (her trengs en metode) Ragnar Normann, Ifi, UiO Ark 29 av 43
30 OQL: Gruppering II Generell form: GROUP BY f 1 : e 1, f 2 : e 2,..., f n : e n I OQL er altså syntaks for gruppering: Nøkkelordene GROUP BY fulgt av en kommaseparert liste av partisjonsattributter: navn kolon uttrykk (expression) Eksempel: SELECT... FROM... GROUP BY barname: s.bar.name Ragnar Normann, Ifi, UiO Ark 30 av 43
31 OQL: Grupperingsprosessen Initiell samling: definert av FROM, WHERE Grupper etter funksjonsverdier Mellomresultatsamling: funksjonsverdier og partisjon Resultatsamlingen Presenter termene i SELECT-listen Merknad 1: De utvalgte objektene (WHERE) fra samlingen av objekter i FROM, teknisk er det en Bag av struct-er Merknad 2: Verdien som returneres fra Initiell samling når GROUP BY uttrykket utføres, er en Struct(f 1 :v 1,..., partition:p). De første feltene definerer gruppen; P er en bag av verdier som tilhører denne gruppen Merknad 3: SELECT-listen kan velge fra Mellomresultatsamling, dvs. fra f 1,f 2,..,f n og partition men verdier fra medlemmene i bag-en P kan bare refereres til via aggregatfunksjoner Ragnar Normann, Ifi, UiO Ark 31 av 43
32 OQL BBS-eksempel eksempel: Gruppering I Eksempel: Finn gjennomsnittsprisen på øl i hver bar SELECT FROM GROUP BY barname, avgprice: AVG(SELECT p.s.price FROM partition p) Sells s barname: s.bar.name Ragnar Normann, Ifi, UiO Ark 32 av 43
33 OQL BBS-eksempel eksempel: Gruppering II SELECT barname, avgprice: AVG( SELECT p.s.price FROM partition p) FROM Sells s GROUP BY barname: s.bar.name 1. Initiell samling: Sells Rent teknisk er det en bag av struct-er på formen Struct(s: s1) hvor s1 er et objekt av klassen Sell Merk at det ene feltet har navnet s. Generelt er det et felt for hvert av de typiske objektene i FROM-listen Ragnar Normann, Ifi, UiO Ark 33 av 43
34 OQL BBS-eksempel eksempel: Gruppering III SELECT barname, avgprice: AVG( FROM Sells s GROUP BY barname: s.bar.name SELECT p.s.price FROM partition p) 2. Mellomresultatsamling En funksjon: s.bar.name avbilder Sell-objekter s til verdien av navnet på baren referert til av s Mellomresultatsamling er en mengde av struct-er av type: Struct{barName:string, partition:set<struct{s:sell}>} For eksempel: Struct(barName = "Joe's",partition = {s 1,,s n }) hvor s 1,,s n er alle struct-er med ett felt, kalt s, hvis verdi er et Sell-objekt som representerer at Joe's Bar selger et ølmerke Ragnar Normann, Ifi, UiO Ark 34 av 43
35 OQL BBS-eksempel eksempel: Gruppering IV SELECT barname, avgprice: AVG( SELECT p.s.price FROM partition p) FROM Sells s GROUP BY barname: s.bar.name 3. Resultatsamling: Består av bar-gjennomsnittpris-par, en for hver struct i mellomresultatsamlingen Strukturtype i resultatet: Struct{barName: string, avgprice: real} Merk at i subquery-en i SELECT-listen refereres variablene i partisjonen via aggregatfunksjonen AVG Vi lar p variere over alle struct-er i partition. Hver av disse structene innholder et enkelt felt kalt s og har et Sell-objekt som verdi. Følgelig vil p.s.price dra ut prisen fra et av Sell-objektene som tilhører akkurat dene baren. Typisk eksempel på en resultatsamling: Struct(barName = "Joe's", avgprice = 2.83) Ragnar Normann, Ifi, UiO Ark 35 av 43
36 Et annet OQL BBS-eksempel eksempel: Gruppering I Eksempel: Finn, for hvert øl, antall barer som tar en lav pris ( 2.00) og en høy pris ( 4.00) for det ølet Strategi: Grupper med tre ting: Ølnavnet, en boolsk funksjon som er sann hvis prisen er lav, og en boolsk funksjon som er sann hvis prisen er høy SELECT beername, low, high, count: COUNT(partition) FROM Beers b, b.soldby s GROUP BY beername: b.name, low: s.price <= 2.00, high: s.price >= 4.00 Ragnar Normann, Ifi, UiO Ark 36 av 43
37 Et annet OQL BBS-eksempel eksempel: Gruppering II SELECT FROM GROUP BY bname, low, high, count: COUNT(partition) Beers b, b.soldby s bname: b.name, low: s.price <= 2.00, high: s.price >= Initiell samling: Par (b, s), hvor b er et Beer-object, og s er et Sell-object (b.soldby) som representerer at det ølet selges i en bar Typen til medlemmene i samlingen: Struct{b: Beer, s: Sell} Ragnar Normann, Ifi, UiO Ark 37 av 43
38 Et annet OQL BBS-eksempel eksempel: Gruppering III SELECT bname, low, high, count: COUNT(partition) FROM Beers b, b.soldby s GROUP BY bname: b.name, low: s.price <= 2.00, high: s.price >= Mellomresultatsamlingen: Kvadrupler som består av ølnavn, to boolske verdier som sier om denne gruppen er for høye eller lave priser, og en partition for denne gruppen partition er en mengde struct-er av type: Struct{b: Beer, s: Sell} En typisk partition-verdi: Struct(b:objekt(name="Bud"),s:et Sell-object som angår Bud) Ragnar Normann, Ifi, UiO Ark 38 av 43
39 Et annet OQL BBS-eksempel eksempel: Gruppering IV 2. Mellomresultatsamlingen (fortsatt): Kvadruplene i mellomresultatsamlingen er av følgende type: Struct{ bname: string, low: boolean, high: boolean, partition: Set<Struct{b: Beer, s:sell}>} Typiske struct-er i mellomresultatsamlingen: bname low high partition Bud TRUE FALSE S low Bud FALSE TRUE S high Bud FALSE FALSE S mid Merknad 5: Partisjonen med low = high = TRUE må være tom og vil ikke opptre Merknad 1: S X er mengdene av beer-sell par (b, s) Merknad 2: S low : prisen er lav ( 2) Merknad 3: S high : prisen er høy ( 4) Merknad 4: S mid : medium pris (mellom 2 og 4) Ragnar Normann, Ifi, UiO Ark 39 av 43
40 Et annet OQL BBS-eksempel eksempel: Gruppering V SELECT bname, low, high, count: COUNT(partition) FROM Beers b, b.soldby s GROUP BY bname: b.name, low: s.price <= 2.00, high: s.price >= Resultatsamling: De tre første komponentene i hver gruppes struct kopieres til resultatet Den siste (partition) telles Et eksempel på et resultat: bname low high count Bud TRUE FALSE 27 Bud FALSE TRUE 14 Bud FALSE FALSE 36 Ragnar Normann, Ifi, UiO Ark 40 av 43
41 OQL: Having GROUP BY kan følges av HAVING for å eliminere noen av gruppene generert av GROUP BY HAVING-betingelsen anvendes på partition-feltet i hver struktur (gruppe) i mellomresultatsamlingen Hvis betingelsen i HAVING er FALSE, vil ikke gruppen bidra til resultatsamlingen Ragnar Normann, Ifi, UiO Ark 41 av 43
42 OQL BBS Eksempel: : Having Eksempel: Finn gjennomsnittsprisen på øl i hver bar, men bare i barer hvor det dyreste ølet koster mer enn 10$ SELECT FROM barname,avgprice: AVG(SELECT p.s.price FROM partition p) Sells s GROUP BY barname: s.bar.name HAVING MAX( SELECT p.s.price FROM partition p) > 10 Merknad 1: Finner, som før, gjennomsnittsprisen på øl i en bar Merknad 2: Velg bare de gruppene hvor maksimumprisen er større enn 10 Ragnar Normann, Ifi, UiO Ark 42 av 43
43 Oppsummering OQL Queries/subqueries Select-From-Where Returtype bag-er, set eller lister Kvantorer for all, exists, osv. Objektgenerering både nye elementer og som svar på queries Aggregering count, max, min, avg, sum Bruk av vertsspråk OQL passer naturlig inn i språket Operatorer på set- eller bag-objekter union, intersect, except Gruppering med egenskaper group by with having Ragnar Normann, Ifi, UiO Ark 43 av 43
OQL Object Query Language
UNIVERSITETET I OSLO OQL Object Query Language ODMGs spørrespråk INF3100 25.2.2008 Ragnar Normann Institutt for Informatikk 1 Hva OQL er OQL er spørrespråket i ODMG-standarden OQL utvider objektorienterte
DetaljerUNIVERSITETET 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
DetaljerUNIVERSITETET 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
DetaljerAlle attributter har NULL som mulig verdi. mulige verdier for integer: NULL, 0, 1, 2, 3...
NULL verdier Alle attributter har NULL som mulig verdi mulige verdier for integer: NULL, 0, 1, 2, 3... Dog mulig å lage tabeller med attributter som forbyr NULL Ulik bruk: manglende informasjon («vet ikke
DetaljerSPARQL. Daniel Reinholdt. Trondheim Daniel Reinholdt (NTNU) SPARQL Trondheim / 17
SPARQL Daniel Reinholdt Trondheim 30.09.16 Daniel Reinholdt (NTNU) SPARQL Trondheim 30.09.16 1 / 17 Oversikt 1 SPARQL Hva er SPARQL? Fordeler med et språk som SPARQL 2 Grunnleggende informasjon Joseki
DetaljerINF1300 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
DetaljerINF1300 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
DetaljerUNIVERSITETET 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
DetaljerUNIVERSITETET 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
DetaljerSpø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
DetaljerSpø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
DetaljerRelasjonsalgebra 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:
DetaljerMetasprå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
DetaljerRepetisjon: 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
DetaljerOppgave: Finn navn og tittel på alle som har arbeidet på prosjektet «Vintersalg»
Skjema Prosjekt(PId, Pnavn, KId, Pleder, StartDato) Ansatt(AId, Navn, Tittel, Fdato, Pnr, AnsDato) Timeliste(AId, Dato, PId, Timer) Kunde(KId, Knavn, Adresse) Oppgave: Finn navn og tittel på alle som har
DetaljerINF1300 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
DetaljerINF1300 Det meste av resten av SQL. Utleggsark v. 2.0
INF1300 Det meste av resten av SQL Utleggsark v. 2.0 Dagens temaer Sammenligning med tekstmønstre Aggregeringsfunksjoner Nestede spørsmål Gruppering Relasjonssammenligninger: View JDBC exists in any all
DetaljerINF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Det meste av resten av SQL Sammenligning med tekstmønstre Aggregeringsfunksjoner Gruppering Kvantorer Nestede spørsmål View JDBC INF1300
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 6.2.2005 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) INF Ellen Munthe-Kaas 1. Institutt for Informatikk
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 5.2.2008 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk
DetaljerINF1300 Det meste av resten av
INF1300 Det meste av resten av SQL Utleggsark v. 1.0 Tekstmønstre I SQL kan vi bruke like for å sammenligne et tekst-attributt med et tekstmønster Et tekstmønster er en tekstkonstant hvor to tegn, kalt
DetaljerRelasjonsalgebraen. 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
DetaljerBeskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015
Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den
DetaljerSQL 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
DetaljerRelasjoner 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.
DetaljerSQL 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
DetaljerObjektorienterte databasesystemer (OODBS)
Objektorienterte databasesystemer (OODBS) 17.2.2004 Inneholder lysark laget av Arthur M. Keller, Vera Goebel, Pål Halvorsen og Ragnar Normann INF3100 17.2.2004 Ragnar Normann, Ifi, UiO Ark 1 av 43 Oversikt
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 2.2.2012 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
DetaljerDatabaser. 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
DetaljerINF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Det meste av resten av SQL Sammenligning med tekstmønstre Aggregeringsfunksjoner Nestede spørsmål Gruppering Relasjonssammenligninger:
DetaljerUNIVERSITETET SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO SQL Structured Query Language Institutt for Informatikk INF3100 8.2.2011 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
DetaljerDatabaser fra et logikkperspektiv
Databaser fra et logikkperspektiv Evgenij Thorstensen IFI, UiO Høst 2013 Evgenij Thorstensen (IFI, UiO) Databaser fra et logikkperspektiv Høst 2013 1 / 31 Outline 1 Logikk som verktøy 2 Relasjonsdatabaser
DetaljerSQL. 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å
DetaljerINF1300 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
DetaljerUNIVERSITETET 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
DetaljerUNIVERSITETET 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
DetaljerIntegritetsregler 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
DetaljerUNIVERSITETET 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
DetaljerIN2090 Databaser og datamodellering. 09 Aggregering og sortering
IN2090 Databaser og datamodellering 09 Aggregering og sortering Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 30 Enklere syntaks for joins Jeg lærte noe nytt forige uke! Man kan bruke
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 3.2.2015 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 10.2.2014 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerSQL, del 1 - select. Hva er SQL?
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerEnklere syntaks for joins. IN2090 Databaser og datamodellering. 09 Aggregering og sortering. Eksempel: Variable i delspørringer (1)
IN2090 Databaser og datamodellering 09 Aggregering og sortering Leif Harald Karlsen leifhka@ifi.uio.no Enklere syntaks for joins Jeg lærte noe nytt forige uke! Man kan bruke USING () fremfor ON
DetaljerIN2090 Databaser og datamodellering. 09 Aggregering og sortering
IN2090 Databaser og datamodellering 09 Aggregering og sortering Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 30 Enklere syntaks for joins Jeg lærte noe nytt forige uke! 2 / 30 Enklere
DetaljerINF1300 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
DetaljerINF1300 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
DetaljerINF1300 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
DetaljerSQL Structured Query Language. Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer
SQL Structured Query Language Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer Generelt utseende av SQL-spørsmål select [ distinct ]
DetaljerUNIVERSITETET I OSLO. Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language)
UNIVERSITETET I OSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) INF3100 19.2.2008 Ragnar Normann Institutt for Informatikk 1 Databaser vs objektorientering Det er en inherent
DetaljerIntegritetsregler 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
DetaljerObjektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål
Innhold uke 9 Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2018 uke 9 Siri Moe Jensen Referanser versus objekter (repetisjon) "Dot-notasjon" Spesielle metoder i egendefinerte
DetaljerOppgave 1 (Opprett en database og en tabell)
Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på
DetaljerINF1300 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
DetaljerUNIVERSITETET 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
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerArv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerProsedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19
Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 9.2.2010 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
DetaljerDatabaser & objektorientering.
Databaser & objektorientering. Noen grunnbegreper innen objektorientering. Klasser og forekomster klasser beskriver strukturen for noe. Beskrivelsen inneholder: et navn attributter /egenskaper / tilstander
DetaljerOversikt. 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
Detaljerclass Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerSQL: SELECT-spørringer
SQL: SELECT-spørringer Evgenij Thorstensen V19 Evgenij Thorstensen SQL: SELECT-spørringer V19 1 / 28 SQL Det intergalaktiske dataspeaket har flere del-språk: Data Query Language: SELECT-spørringer Data
DetaljerDel 3: Evaluere uttrykk
Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret
DetaljerUNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO Objektrelasjonelle DBMSer. SQL-99 Institutt for Informatikk INF3100 2.3.2009 Ellen Munthe-Kaas 1 Objektrelasjonelle DBMSer ORDBMS = Object-Relational Database Management System Motivasjon:
DetaljerObject interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.
Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører
DetaljerSensorveiledning 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerSELECT 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
DetaljerIN2090 Databaser og datamodellering. 06 Enkele joins og nestede SELECT
IN2090 Databaser og datamodellering 06 Enkele joins og nestede SELECT Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 43 Repetisjon (Enkle) SELECT-spørringer har formen: SELECT
DetaljerDBS18 - 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
DetaljerINF1300 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
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger - 3rd edition: Kapittel 8 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om Pensum Grunnleggende operasjoner på strenger Å skive/slice
DetaljerObjektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk INF3100 24.2.2009 Ellen Munthe-Kaas 1 Databaser vs objektorientering Det er en inherent
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerINF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak
LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for
DetaljerBeskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012
Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Simpila. Den dynamiske
DetaljerSQL 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
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerLø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
DetaljerSQL: SELECT-spørringer
SQL: SELECT-spørringer Evgenij Thorstensen V18 Evgenij Thorstensen SQL: SELECT-spørringer V18 1 / 29 Relasjonsalgebra, recap Tre hovedoperatorer i tillegg til mengdeoperatorer: Seleksjon σ θ Projeksjon
DetaljerUNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk INF Ellen Munthe-Kaas
UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk INF3100-3.2.2016 Ellen Munthe-Kaas 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et
DetaljerUNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk INF Ellen Munthe-Kaas
UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk INF3100-2.2.2015 Ellen Munthe-Kaas Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et
DetaljerSemantisk Analyse del III
Semantisk Analyse del III Typesjekking Kapittel 6.4 08.03.2013 1 Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem
DetaljerLøsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
DetaljerSQL, del 1 - select. Hva er SQL?
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerORDBMS og OODBMS i praksis
ORDBMS og OODBMS i praksis Lars Vidar Magnusson November 2, 2011 Lars Vidar Magnusson () Forelesning i DAS 01.11.2011 November 2, 2011 1 / 18 Eksempler på ORDBMS Flere av de store databaser i dag hevder
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
DetaljerLC238D Datamodellering og databaser SQL, del 1 - SELECT
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - SELECT Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerDatatyper og typesjekking
Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører
DetaljerSQL Structured Query Language
SQL Structured Query Language Hvorfor tabeller? Litt tabellterminologi Hente data fra tabeller select-from-where distinct order by Universe of discourse Interesseområdet Hva er vi interessert i å lagre
DetaljerRelasjoner terminologi. Kopi av lysark fra forelesningen 13. oktober. Legges ut inntil notatet som samler alt om SQL kommer...
Relasjoner terminologi Kopi av lysark fra forelesningen 13. oktober. Legges ut inntil notatet som samler alt om SQL kommer... /* Lage et view med oversikt over hvor mange funksjoner * filmarbeiderne med
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerUNIVERSITETET. Relasjonsalgebra. INF Ragnhild Kobro Runde
UNIVERSITETET IOSLO Relasjonsalgebra Regning med relasjoner 1 Annen bruk av chasealgoritmen (korrigert lysark) For å vise en FD X Y starter tabellen med to rader som er like for attributtene i X, og ulike
DetaljerIntegritetsregler 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