Metaspråket for å beskrive grammatikk

Størrelse: px
Begynne med side:

Download "Metaspråket for å beskrive grammatikk"

Transkript

1 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 det komme en liste med kolonnenavn, men det er også lov å bruke funksjoner som COUNT og AVG. GROUP BY er en forutsetning for å bruke HAVING. Slike språkregler kalles for syntaks, og lar seg beskrive presist med en grammatikk. Dette notatet inneholder grammatikken for viktige deler av SQL. Metaspråket for å beskrive grammatikk For å beskrive en grammatikk trenger vi et metaspråk, det vil si et språk for å beskrive et annet. Metaspråket vi skal bruke kalles for BNF (Backus-Naur Form), oppkalt etter John Backus og Peter Naur. BNF ble første gang brukt for å beskrive programmeringsspråket Algol 60 [Naur 1960]. En BNF-grammatikk består av et antall regler. Her er et eksempel med tre regler: <lite-tall> ::= [<fortegn>] <lite-siffer> <lite-siffer> <fortegn> ::= + - <lite-siffer> ::= Symbolene ::=,, [ og ], samt < og >, har en spesiell betydning i metaspråket. Bortsett fra disse symbolene består reglene av metasymboler og grunnsymboler. Metasymbolene er rammet inn av spissparentesene < og >. Grunnsymbolene er alle de øvrige symbolene, som i dette eksemplet er +, -, 1, 2 og 3. Grunnsymbolene utgjør alfabetet i språket vi beskriver. En lovlig setning består av bare grunnsymboler. Metasymbolene er kun hjelpesymboler for å definere strukturen til lovlige setninger. Hver regel består av en venstreside og en høyreside med symbolet ::= mellom. Venstresiden er et enkelt metasymbol, mens høyresiden består av en sekvens av symboler, der brukes for å skille alternative høyresider fra hverandre. Den andre regelen leses som <fortegn> «er på formen» + eller -. Firkantparentesene [ og ] rammer inn konstruksjoner som er valgfrie. Den første regelen sier dermed at <lite-tall> er på formen <fortegn> <lite-siffer> <lite-siffer>, eller <lite-siffer> <lite-siffer>. Merk at reglene refererer til hverandre. Høyresiden for <lite-tall> inneholder både <fortegn> og <lite-siffer>. Ved å sammenholde alle reglene kan

2 2 man slutte at <lite-tall> beskriver tall med to sifre (valgt fra 1, 2 eller 3) og eventuelt et fortegn. Metasymboler er navn på konstruksjoner som skal «ekspanderes». Ved å erstatte venstresider med høyresider kan vi «produsere» setninger. Dette kalles for en avledning. Her er to avledninger fra metasymbolet <lite-tall>: <lite-tall> <lite-siffer> <lite-siffer> 1 <lite-siffer> 13 <lite-tall> <fortegn> <lite-siffer> <lite-siffer> - <lite-siffer> <lite-siffer> - <lite-siffer> 2-32 Enhver grammatikk har et startsymbol. Hvis ikke annet er oppgitt så er startsymbolet det metasymbolet som forekommer på venstresiden av den første regelen. Et språk består av en samling setninger. Språket definert ved en grammatikk er samlingen av alle setninger (som kun består av grunnsymboler), og som kan avledes fra startsymbolet. I avledningene over så er 13 og -32 setninger. Disse kan ikke ekspanderes videre. Vår eksempelgrammatikk beskriver følgende språk: { -11, -12, -13, -21, -22, -23, -31, -32, -33, +11, +12, +13, +21, +22, +23, +31, +32, +33, 11, 12, 13, 21, 22, 23, 31, 32, 33 } De fleste interessante språk er uendelige, det vil si at de inneholder et uendelig antall lovlige setninger. Her er en meget enkel grammatikk som beskriver et uendelig språk: <enere> ::= [<enere>] 1 Det er ofte behov for å beskrive kommaseparerte lister. Hvis <x> er et metasymbol, så angir <x-liste> en ikke-tom liste med x er skilt med komma. Eksempel: <parentes> ::= ( <bin-siffer-liste> ) <bin-siffer> ::= 0 1

3 3 Denne siste grammatikken beskriver språket som inneholder alle mulige sekvenser av 0 og 1, skilt med komma og omsluttet av parenteser: { (0), (1), (0,0), (0,1), (1,0), (1,1), (0,0,0), (0,0,1), (0,1,0), (1,1,0,1,1,0), }. Av og til innfører vi ekstra metasymboler for å gjøre det lettere å lese reglene. For eksempel så er reglene for å navngi tabeller og utsnitt de samme, og kunne vært beskrevet med et felles metasymbol <navn>. Vi bruker likevel både <tabell-navn> og <utsnitt-navn>. Grammatikken i dette vedlegget er sterkt forenklet i forhold til den offisielle SQL-standarden, og det kan nok hende at vår grammatikk godtar visse konstruksjoner som strengt tatt ikke er lovlige. Vi har også navngitt konstruksjoner (metasymboler) på en annen måte enn i standarden, fordi hensikten er å forklare strukturen i språket SQL og hva en grammatikk er, mer enn å gi en komplett og presis definisjon av alle konstruksjoner i SQL. Etter at man har forstått hvordan en grammatikk er bygd opp, vil man være i stand til å lese selve standarden, og også grammatikken for andre programmeringsspråk. SQL-setninger Vi beskriver (en del av) språket SQL topp-ned. Det betyr at vi starter med å definere SQL-setninger 1, og jobber oss ned mot detaljene, med lovlig oppbygging av uttrykk og navn. <SQL-setning> ::= <tabell-def> <tabell-slett> <tabell-endre> <indeks-def> <indeks-slett> <utsnitt-def> <utsnitt-slett> <utvalg-spørring> <innsetting-rad> <innsetting-utvalg> <oppdatering> <sletting> <transaksjon-fullfør> <transaksjon-avbryt> <rettighet-gi> <rettighet-frata> Navn på metasymbolene er valgt med tanke på å være mest mulig selvforklarende, men likevel forholdsvis korte. 1 Vi bruker SQL-setning som det generelle begrepet som fanger inn alle typer av SQL-«kommandoer», og bruker begrepet spørring kun i forbindelse med utvalgsspørringer.

4 4 Tabellstruktur Her har vi samlet tre SQL-setninger for henholdsvis definisjon av tabeller, sletting av tabeller og endring av tabellstruktur. <tabell-def> ::= CREATE TABLE <tabell-navn> ( <tabell-def-elem-liste> ) <tabell-slett> ::= DROP TABLE <tabell-navn> <tabell-endre> ::= ALTER TABLE <tabell-navn> <tabell-endre-elem> En tabelldefinisjon inneholder et antall elementer, for definisjon av kolonner, primærnøkler, fremmednøkler og valideringsregler. <tabell-def-elem> ::= <kolonne-def> <primær-def> <fremmed-def> <regel-def> <kolonne-def> ::= <kolonne-navn> <datatype> [DEFAULT <literal>] [UNIQUE] [NOT NULL] <primær-def> ::= CONSTRAINT <regel-navn> PRIMARY KEY ( <kolonne-navn-liste> ) <fremmed-def> ::= CONSTRAINT <regel-navn> FOREIGN KEY ( <kolonne-navn-liste> ) REFERENCES <tabell-navn> [( <kolonne-navn-liste> )] [ON <hendelse> <aksjon>] <hendelse> ::= UPDATE DELETE <aksjon> ::= RESTRICT SET NULL CASCADE SET DEFAULT <regel-def> ::= CONSTRAINT <regel-navn> CHECK ( <betingelse> ) Elementer i en tabelldefinisjon kan legges til og slettes igjen, etter at tabellen er definert. <tabell-endre-elem> ::= ADD COLUMN <kolonne-def> ADD <primær-def> ADD <fremmed-def> ADD <regel-def>

5 5 DROP COLUMN <kolonne-navn> DROP CONSTRAINT <regel-navn> Hvilke datatyper som er tilgjengelige varierer fra system til system, men vil typisk inkludere følgende: <datatype> ::= CHAR( <heltall-literal> ) VARCHAR( <heltall-literal> ) CLOB( <heltall-literal> ) BLOB( <heltall-literal> ) SMALLINT INTEGER NUMERIC ( <heltall-literal>, <heltall-literal> ) DECIMAL ( <heltall-literal>, <heltall-literal> ) FLOAT( <heltall-literal> ) REAL DOUBLE DATE TIME TIMESTAMP( <heltall-literal> ) INTERVAL BOOLEAN Indekser En indeks er knyttet til en eller flere kolonner i en bestemt tabell. Indekser kan defineres og slettes. <indeks-def> ::= <indeks-slett> ::= CREATE [UNIQUE] INDEX <indeks-navn> ON <tabell-navn> ( <kolonne-navn-liste> ) DROP INDEX <indeks-navn>

6 6 Utsnitt Et utsnitt blir definert ved en utvalgsspørring. Utsnitt kan også slettes. <utsnitt-def> ::= <utsnitt-slett> ::= CREATE VIEW <utsnitt-navn> ( <kolonne-navn-liste> ) AS <utvalg-spørring> DROP VIEW <utsnitt-navn> Merk at utvalgsspørringen som definerer utsnittet ikke kan inneholde ORDER BY. Vi kunne introdusert et eget metasymbol <utvalg-spørringuten-sortering> og fanget inn regelen i selve grammatikken, men har altså i stedet valgt å kommentere denne restriksjonen i fritekst her. Utvalgsspørringer Den vanligste formen for utvalgsspørringer er SELECT-FROM-WHERE, eventuelt utvidet med gruppering og sortering. Slike «enkle» spørringer kan kombineres ved hjelp av mengdeoperatorene UNION, INTERSECT og MINUS. Merk at en utvalgsspørring kan inneholde andre utvalgsspørringer både i SELECT-delen, FROM-delen og WHERE-delen. Syntaksreglene for uttrykk blir beskrevet i et eget avsnitt. <utvalg-spørring> ::= <enkel-spørring> <utvalg-spørring> <mengde-oper> [ALL] <utvalg-spørring> <enkel-spørring> ::= SELECT <utvalg-modus> <utvalg-uttrykk-liste> FROM <tabell-uttrykk-liste> [WHERE <betingelse>] [GROUP BY <kolonne-ref-liste> [HAVING <betingelse>]] [ORDER BY <sortering-elem-liste>] <utvalg-modus> ::= ALL DISTINCT <utvalg-uttrykk> ::= <uttrykk> [AS <kolonne-alias>] <sortering-elem> ::= <uttrykk> [ASC] <uttrykk> [DESC] <mengde-oper> ::= UNION INTERSECT MINUS En utvalgsspørring gir et spørreresultat som er på «tabellform». Spørreresultater og utsnitt kan dermed kobles på lik linje med (lagrede) tabeller. Alle

7 7 tabell-uttrykk, fra enkle navn på tabeller og utsnitt, til kompliserte koblingsuttrykk, kan brukes i FROM-delen. <tabell-uttrykk> ::= <tabell-ref> <utvalg-spørring> <tabell-uttrykk> <koblingstype> <tabell-uttrykk> ON <betingelse> <tabell-uttrykk> AS <tabell-alias> ( <tabell-uttrykk> ) <tabell-ref> ::= <tabell-navn> <utsnitt-navn> <tabell-alias> <koblingstype> ::= [INNER] JOIN NATURAL JOIN LEFT [OUTER] JOIN RIGHT [OUTER] JOIN FULL [OUTER] JOIN Ajourhold av tabellinnhold Ajourhold av tabeller gjøres med kommandoene INSERT, UPDATE og DELETE for henholdsvis innsetting, oppdatering og sletting av rader. INSERT kommer i to varianter, avhengig av om man skal sette inn en enkelt rad, eller overføre mange rader ved hjelp av en utvalgsspørring. <innsetting-rad> ::= INSERT INTO <tabell-navn> [( <kolonne-navn-liste> )] VALUES ( <uttrykk-liste> ) <innsetting-utvalg> ::= INSERT INTO <tabell-navn> [( <kolonne-navn-liste> )] <utvalg-spørring> <oppdatering> ::= UPDATE <tabell-navn> SET <kolonne-tilordning-liste> [WHERE <betingelse>] <kolonne-tilordning> ::= <kolonne-ref> = <uttrykk> <sletting> ::= DELETE FROM <tabell-navn> [WHERE <betingelse>]

8 8 Transaksjoner SQL-setninger for transaksjonshåndtering er syntaktisk svært enkle: <transaksjon-fullfør> ::= COMMIT <transaksjon-avbryt> ::= ROLLBACK Noen DBHS innfører en egen kommando for å starte en transaksjon. Hvis en slik kommando ikke finnes, starter en transaksjon der den forrige ble avsluttet med enten COMMIT eller ROLLBACK. Brukeradministrasjon I sin enkleste form innebærer brukeradministrasjon å tildele eller frata bestemte brukere bestemte rettigheter på bestemte objekter. Et objekt er en samlebetegnelse på det vi kan lagre i en database, som for eksempel tabeller, utsnitt og programmer. De fleste DBHS gir mulighet for å definere brukergrupper eller roller for å forenkle brukeradministrasjon. I så fall må <brukernavn> erstattes av <bruker-eller-gruppe-navn> i syntaksreglene. <rettighet-gi> ::= GRANT <rettighet-liste> ON <objekt-navn> TO <bruker-navn> [WITH GRANT OPTION] <rettighet-frata> ::= REVOKE <rettighet-liste> ON <objekt-navn> FROM <bruker-navn> I et konkret system vil det finnes en omfattende liste av rettigheter, og man skiller gjerne mellom objektrettigheter og systemrettigheter. Objektrettigheter er rettigheter på et bestemt objekt, for eksempel en tabell, mens systemrettigheter er mer generelle rettigheter, for eksempel retten til å lage nye tabeller. <rettighet> ::= SELECT DELETE INSERT UPDATE ALL

9 9 Uttrykk Uttrykk kan forekomme i flere sammenhenger, for eksempel som WHEREdelen av en utvalgsspørring, eller på høyresiden av en kolonnetilordning i en oppdatering. Resultatet av å evaluere et uttrykk er en verdi. En betingelse er et uttrykk som gir en boolsk verdi, det vil si true eller false. <uttrykk> ::= NULL <literal> <kolonne-ref> <funksjons-app> <uttrykk> <binær-oper> <uttrykk> <unær-oper> <uttrykk> <kolonne-ref> BETWEEN <uttrykk> AND <uttrykk> <kolonne-ref> IS [NOT] NULL <uttrykk> <binær-oper-rel> <kvantor> ( <utvalg-spørring> ) EXISTS ( <utvalg-spørring> ) ( <uttrykk> ) <betingelse> ::= <uttrykk> <kvantor> ::= ALL ANY SOME En funksjonsapplikasjon er en anvendelse av en bestemt funksjon. Enten man bruker en «vanlig» funksjon, eller en mengdefunksjon, så er syntaksen den samme. Vi velger likevel å beskrive mengdefunksjonene som en del av grammatikken fordi de ikke kan brukes overalt. <funksjons-app> ::= <funksjons-navn> ( <uttrykk-liste> ) <mengdefunk-navn> ( <kolonne-ref> ) <mengdefunk-navn> ::= AVG MAX MIN SUM COUNT Et operatoruttrykk er bygd opp fra operatorer og operander, der operandene er uttrykk (og tilsvarer argumentlisten til en funksjonsapplikasjon). Vi skiller mellom unære operatorer som skal ha en enkelt operand og binære operatorer som skal ha to operander.

10 10 <unær-oper> ::= <unær-oper-arit> <unær-oper-logisk> <unær-oper-arit> ::= + - <unær-oper-logisk> ::= NOT <binær-oper> ::= <binær-oper-arit> <binær-oper-rel> <binær-oper-logisk> <binær-oper-arit> ::= + - * / <binær-oper-rel> ::= < > <= >= <> = LIKE <binær-oper-logisk> ::= AND OR En kolonnereferanse er et uttrykk som peker på en enkelt kolonne, eller en liste av kolonner. <kolonne-ref> ::= [<tabell-ref>.] <kolonne-navn> [<tabell-ref>.] * <kolonne-alias> Leksikalske elementer SQL er som andre formelle dataspråk satt sammen av enkle byggeklosser som tall, reserverte ord, brukerdefinerte navn, spesielle symboler som punktum, parenteser og semikolon. Disse kalles for leksikalske elementer. Det er fullt mulig å definere syntaksen til de leksikalske elementene med BNF. Vi velger imidlertid å beskrive denne delen av språket mer uformelt, og gir i tillegg noen eksempler. <navn> er en sekvens av bokstaver, sifre og noen spesialtegn som _. Navn må starte med en bokstav, og kan ikke være et reservert ord. Eksempler: etnavn, et_navn, navn_2. I grammatikken blir følgende metasymboler benyttet som synonymer for <navn>: <tabell-navn>, <kolonne-navn>, <regel-navn>, <utsnitt-navn>, <indeks-navn>, <bruker-navn>, <objekt-navn>, <tabell-alias>, <kolonnealias>, <funksjons-navn>. Alle ord skrevet med store bokstaver i reglene er reserverte ord, men det finnes også flere (fordi vi kun gir regler for en del av SQL). Eksempel: SELECT, FROM, WHERE. En literal er en bestemt måte å skrive konkrete verdier på, og varierer med hva slags datatype det er snakk om.

11 11 <literal> ::= <heltall-literal> <kommatall-literal> <tekststreng-literal> <tidspunkt-literal> <heltall-literal> er en sekvens av sifre, eventuelt med fortegn foran. Eksempler: 30, +12, <kommatall-literal> starter med en heltallsliteral, eventuelt etterfulgt av et punktum og en ikke-tom sekvens av sifre, eventuelt igjen etterfulgt av symbolet E (eller e), et valgfritt fortegn, og en ikke-tom sekvens av sifre. Eksempler: 30, +12, -123, , , 1.23E2, E-02, e-09. <tekststreng-literal> er en sekvens av tegn rammet inn av enkle apostrofer. Teksten kan ikke inneholde enkle apostrofer, men en enkel apostrof kan kodes ved å skrive to etterfølgende apostrofer. Eksempler: 'God dag!', 'Tallet 3', 'Bob''s Cafe'. <tidspunkt-literal> består av en dato og/eller et klokkeslett rammet inn av enkle apostrofer. Dato-eksempler: ' ', '2003/12/24', '24-DEC-2004'. Klokkeslett-eksempler: '14:56:07', '2.56 PM', '07.56 AM'. Tidspunkt-eksempel: ' :56:07'. Reglene for å skrive literaler varierer noe fra system til system. For eksempel så godtar Access doble apostrofer rundt tekstliteraler og # rundt datoer, og i Oracle blir datoer og klokkeslett skrevet som tekstliteraler, men man kan styre oppsettet med et brukerdefinert format og en egen funksjon TO_DATE.

1. SQL datadefinisjon og manipulering

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

Detaljer

Datamodellering og databaser 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

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

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

Detaljer

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

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

Detaljer

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

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

Detaljer

Datamodellering og databaser SQL, del 2

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

Detaljer

Datamodellering og databaser SQL, del 2

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

Detaljer

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

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

Integritetsregler i SQL. Primærnøkler

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

Detaljer

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

Integritetsregler i SQL

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

Detaljer

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

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

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

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

Integritetsregler i SQL

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

Detaljer

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

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

Detaljer

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

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

Detaljer

SQL, del 1 - select. Hva er SQL?

SQL, 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

Detaljer

En liten rekap. Spørrespråk. I dag SELECT

En liten rekap. Spørrespråk. I dag SELECT [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 06/11-15 Databaser høsten 2015 En liten rekap ER-diagram - vi modellerer dataene våre til danne best mulig grunnlag for informasjonen

Detaljer

Oppgave: Finn navn og tittel på alle som har arbeidet på prosjektet «Vintersalg»

Oppgave: 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

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

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Dagens tema Syntaks (kapittel 2.1 + Komp. 47, kap. 1 og 2) 1/19 Forelesning 6 1.10.2003 Litt om kompilering og interpretering En kompilator oversetter et program til et annet språk, for eksempel maskinspråk.

Detaljer

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk Litt om kompilering og interpretering Dagens tema Syntaks (kapittel 2. + Komp. 47, kap. og 2) En kompilator oversetter et program til et annet språk, for eksempel maskinspråk. Et program interpreteres

Detaljer

SQL, del 1 - select. Hva er SQL?

SQL, 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

Detaljer

LC238D Datamodellering og databaser SQL, del 1 - SELECT

LC238D 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

Detaljer

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

UNIVERSITETET 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

Detaljer

SQL Structured Query Language

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

Detaljer

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

UNIVERSITETET 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

Detaljer

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

UNIVERSITETET 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

Detaljer

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

UNIVERSITETET 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

Detaljer

Relasjoner terminologi

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

Detaljer

EKSAMEN 6102 / 6102N DATABASER

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

Detaljer

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

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

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

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 - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

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

ORDBMS og OODBMS i praksis

ORDBMS 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

Detaljer

SQL: Integritetsregler, triggere og views

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

Detaljer

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

INF1300 Introduksjon til databaser

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

Detaljer

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

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

UNIVERSITETET 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

Detaljer

Applikasjonsutvikling med databaser

Applikasjonsutvikling med databaser Applikasjonsutvikling med databaser Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 10.10.2011 October 12, 2011 1 / 24 Applikasjonsutvikling med databaser Databaser tilbyr

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

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

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

UNIVERSITETET 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. 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

Detaljer

SQL Structured Query Language

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

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. 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

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

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

INF130 INF130. INF130:Repetisjon 05.05.15. INF130:Repetisjon 1. Tabeller og enkle spørringer. Repetisjon

INF130 INF130. INF130:Repetisjon 05.05.15. INF130:Repetisjon 1. Tabeller og enkle spørringer. Repetisjon INF130 Tabeller og enkle spørringer INF130 Repetisjon Tabeller og enkle spørringer Database, relasjonsdatabase Databasehåndteringssystem (DBHS) Databasesystem Tabell, kolonne, rad, datatype, verdi, primærnøkkel

Detaljer

Systemutvikling fra kjernen og ut, fra skallet og inn

Systemutvikling fra kjernen og ut, fra skallet og inn Systemutvikling fra kjernen og ut, fra skallet og inn Løsninger til oppgaver i kap A.10 i Appendiks A - SQL Legg merke til at oppgave 22 er blitt noe presisert. 1. Hvor mange innbyggere er det i Norge?

Detaljer

Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012)

Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012) UNIVERSITETET I OSLO Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012) Institutt for Informatikk INF3100 17.4.2012 Ellen Munthe-Kaas 1 UDTer Distinkt UDT i Postgres: create domain

Detaljer

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1 UNIVERSITETET IOSLO SQL: Integritetsregler, triggere og views Institutt for Informatikk INF3100 28.2.2012 Arne Maus 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet fremmednøkler

Detaljer

MySQL. Historikk. Nedlasting og installasjon

MySQL. Historikk. Nedlasting og installasjon 1 MySQL MySQL kan lastes ned gratis fra Internett (dev.mysql.com/doc). Vi forklarer hvordan man laster ned og installerer verktøyet, og også hvordan man kommer i gang med å lage databaser i MySQL. Historikk

Detaljer

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

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

Detaljer

Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer

Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer Avansert bruk av SQL Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer Begrensninger ved SQL Pensum: Kapittel 5 Databaser Leksjon

Detaljer

INF1300 Det meste av resten av SQL. Utleggsark v. 2.0

INF1300 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

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

Indre select-setninger Nestede select-setninger

Indre select-setninger Nestede select-setninger Indre select-setninger Nestede select-setninger Setninger som beregner en tabell med kun én verdi select avg(lonn) from Ansatt where avd = 'marketing ; select avg(lonn)from Ansatt where avd = 'marketing

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

Syntax/semantics - I INF 3110/ /29/2005 1

Syntax/semantics - I INF 3110/ /29/2005 1 Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program

Detaljer

Databaser kort intro. Tom Heine Nätt

Databaser kort intro. Tom Heine Nätt Databaser kort intro Tom Heine Nätt Agenda Hva er en database? Hva er SQL? Hente ut data fra en database SELECT Behandle data i en database (kort) CREATE TABLE, INSERT, UPDATE, DELETE Databaser med flere

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

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

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet DBMS Database Management System (repetisjon) Spesialisert SW Karakteristika: Persistens Transaksjonshåndtering A tomicity C onsistency I solation D urability Programmeringsgrensesnitt INF212 v2003 1 Serialiserbarhet

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

Detaljer

Begynnerhåndbok for SQL

Begynnerhåndbok for SQL IBM DB2 Universal Database Begynnerhåndbok for SQL Versjon 7 SA15-4773-00 IBM DB2 Universal Database Begynnerhåndbok for SQL Versjon 7 SA15-4773-00 Før du bruker opplysningene i denne boken og det produktet

Detaljer

>>12 Arbeide med MySQL

>>12 Arbeide med MySQL 106 Snarveien til MySQL og Dreamweaver CS5 >>12 Arbeide med MySQL I dette kapittelet vil du lære hvordan du installerer MySQL Workbench å opprette prosjekter å lage tabeller hvordan du ser på innholdet

Detaljer

Join. Intuitivt: Skjøte sammen to relasjoner. Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C

Join. Intuitivt: Skjøte sammen to relasjoner. Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C Join Intuitivt: Skjøte sammen to relasjoner R S C Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C Join Bistro bn mkat A kosher A vegetabilsk B uten melk B hallal B

Detaljer

NOTAT. TITTEL NOTATNR. DATO Frå virksomheitsmodell til vev tilrettelegging av databasar for internett 2. utgåve 2002

NOTAT. TITTEL NOTATNR. DATO Frå virksomheitsmodell til vev tilrettelegging av databasar for internett 2. utgåve 2002 NOTAT Postboks 133, 6851 SOGNDAL telefon 57676000 telefaks 57676100 TITTEL NOTATNR. DATO Frå virksomheitsmodell til vev tilrettelegging av databasar for internett 2. utgåve 2002 12/02 4.10.02 PROSJEKTTITTEL

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

Spørringer mot flere tabeller

Spørringer mot flere tabeller Spørringer mot flere tabeller Kartesisk produkt / kryssprodukt/krysskobling Likekoblinger INNER JOIN syntaks Generelle koblinger Egenkoblinger Ytre koblinger Union, snitt og differanse Mer om gruppering

Detaljer

10. ASP og SQL Innledning Recordset-objektet. Innhold. Referanse til læreboka Kapittel Se detaljer nedenfor.

10. ASP og SQL Innledning Recordset-objektet. Innhold. Referanse til læreboka Kapittel Se detaljer nedenfor. Else Lervik 29.03.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LV192D Web-programmering med ASP 10. Resymé: Vi begynner med å inspisere Recordset-objektet. Deretter

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

Spørsmålskompilering del 1

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

Detaljer

Relasjoner 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... 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

Detaljer

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks. SQL og Mengdelære Oracle, MySQL, Access, bruker forskjellige syntaks. Kan vi beskrive, hva SQL er og hva man kan gjøre med SQL, uavhengig av konkret syntaks!!! Hvilke universale formelle språk har vi til

Detaljer

1. Innføring i bruk av MySQL Query Browser

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

Detaljer

1. Introduksjon til Oracle Express Edition

1. Introduksjon til Oracle Express Edition Kjell Toft Hansen 22.06.2010 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO177D Databaseprogrammering med PL/SQL 1. Dette notatet skal gi deg en kort innføring i bruken av Oracle

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: 99539963 Roger Midtstraum: 99572420

Detaljer

Løsningsforslag matoppskrifter modellering

Løsningsforslag matoppskrifter modellering Løsningsforslag matoppskrifter modellering Oppgave 1 Det beste er å ha et felles løpenummer på alle oppskrifter, uavhengig av hvor de stammer fra, og heller ha ekstraopplysninger som avhenger av om oppskriften

Detaljer

Beskrivelse av programmeringsspråket Simpila INF5110 - Kompilatorteknikk Våren 2012

Beskrivelse 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

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse 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

Detaljer

Tabelldefinisjon og datamanipulering

Tabelldefinisjon og datamanipulering Tabelldefinisjon og datamanipulering Tabelldefinisjon med SQL og i utformingsvisning Datatyper Primærnøkler og fremmednøkler Entitetsintegritet og referanseintegritet Nullmerker, repetisjoner, standardverdier

Detaljer

Samtidighetsfenomener og anomalier i eksekveringsplaner. INF Ellen Munthe-Kaas 1

Samtidighetsfenomener og anomalier i eksekveringsplaner. INF Ellen Munthe-Kaas 1 Samtidighetsfenomener og anomalier i eksekveringsplaner INF3100 15.3.2012 Ellen Munthe-Kaas 1 Liste over fenomener og anomalier P0 Skitten skriv w 1 (x)..w 2 (x)..(c 1 eller a 1 ) P1 Skitten les w 1 (x)..r

Detaljer

Øvingsoppgave uke 3. Fanger i fengsel

Øvingsoppgave uke 3. Fanger i fengsel Øvingsoppgave uke 3 Fanger i fengsel I enden av Justisveien i Berg, ikke langt fra svenskegrensa ligger Halden Fengsel. Fengselet har flere celler med plass til fanger. En database er opprettet for å lagre

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 11. Sept. Noen oppstartsproblemer

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

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 2011 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2010HA

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

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

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

INF1300 Introduksjon til databaser

INF1300 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:

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

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB? 1 2 Java Database Connectivity (JDBC) Norvald H. Ryeng ryeng@idi.ntnu.no 3 4 Denne forelesningen Hva er Derby og Java DB? Hva er Derby og Java DB? Hva er JDBC? Slik fungerer det Slik gjør dere det (kokebok)

Detaljer