Miniverden og ER- modell



Like dokumenter
1. SQL datadefinisjon og manipulering

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

Oppgaver Oppgave a: Sett opp mulige relasjoner

SQL 3: Opprette tabeller, datainnsetting og utsnitt

HØGSKOLEN I SØR-TRØNDELAG

Databaser: Relasjonsmodellen, del I

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

Datamodellering og databaser SQL, del 2

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

Metaspråket for å beskrive grammatikk

HØGSKOLEN I SØR-TRØNDELAG

1. Innføring i bruk av MySQL Query Browser

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Repetisjon: Normalformer og SQL

Datamodellering og databaser SQL, del 2

Datamodellering og databaser SQL, del 2

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

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

Fag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL

Eksamen i IBE Databaser H 2008

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag matoppskrifter modellering

Tilkobling og Triggere

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

Integritetsregler i SQL. Primærnøkler

Integritetsregler i SQL

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Databaser & objektorientering.

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

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

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

HØGSKOLEN I SØR-TRØNDELAG

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

Integritetsregler i SQL

Utvikling fra kjernen og ut

Oppgave 1 (Opprett en database og en tabell)

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

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Databaser kort intro. Tom Heine Nätt

Øvingsoppgave uke 3. Fanger i fengsel

Eksamen i IBE102 Webutvikling Våren 2017.

Skranker og avledninger

IN2090 Databaser og datamodellering 07 Datamanipulering

student s104111, s107911, s122357

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

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

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

SQL Structured Query Language

ORDBMS og OODBMS i praksis

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

IN2090 Introduksjon til databaser

Funksjonsbeskrivelse

Tabelldefinisjon og datamanipulering

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

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015

Eksamen i emne TDT4165 PROGRAMMERINGSSPRÅK

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

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

>>21 Datamodellering i MySQL Workbench

Utvikling fra kjernen og ut

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene.

INF1300 Introduksjon til databaser

Systemutvikling fra kjernen og ut, fra skallet og inn

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

Søknad på stilling i Bjugn kommune

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

Videregående programmering 6

IN2090 Databaser og datamodellering 07 Datamanipulering

Hvordan registrere et nytt medlem

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

Løsningsforlag for oblig 1, databaser 2010

INF1300 Introduksjon til databaser

HTML og relasjonsdatabaser med PHP

Integrasjon mellom Logistra PartLink og eksterne systemer.

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Komplisert eksempel. IN2090 Databaser og datamodellering 07 Datamanipulering. Flere eksempler: Kombinere aggregater. Komplisert eksempel med WITH

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut

EKSAMEN 6102 / 6102N DATABASER

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

Ekvivalente stier (Equivalence of Path, EOP) i storm

INF130: Datahåndtering og analyse

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser: SQL Structured Query Language

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

1. Relasjonsmodellen Kommentarer til læreboka

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

SQL: Integritetsregler, triggere og views

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Databaser noen temaer.

SQL Introduksjonskurs. Oversikt

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

Datamodellering med E/R

Transkript:

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- skjema En tilsvarende modell i relasjonsdatabase- utgave: Kunde(kid, navn, adresse, postnr, telefonnr, kreditgrense) - - der postnr er fremmednøkkel mot Poststeder- tabellen. Poststeder(postnr, poststed) Pizzatyper(pid, navn, pris) Ordre(ordrenr, dato, status, total, kunde) - - der kunde er fremmednøkkel mot Kunde- tabellen. Ordrelinje(ordrenr, linjenr, pizza, antall, delsum) Side 1 av 5

- - der ordrenr er fremmednøkkel mot Ordre- tabellen, og - - der pizza er fremmednøkkel mot Pizzatyper- tabellen. SQL- versjon Et SQL- skript for å opprette en kjørbar relasjonsdatabase: -- oppretter tabeller create table poststeder ( postnr char(4), poststed varchar(30) not null, constraint poststeder_pk primary key (postnr) ); create table kunde ( kid integer, navn varchar(30) not null, adresse varchar(30), postnr char(4), tlfnr char(8) not null, kreditgrense integer, constraint kunde_pk primary key (kid), constraint kunde_fk1 foreign key (postnr) references poststeder(postnr) on delete set null ); create table pizzatyper ( pid integer, navn varchar(30) not null, pris integer not null, constraint pizza_pk primary key (pid) ); create table ordre ( ordrenr integer, dato date, status varchar(10), total integer, kunde integer, constraint ordre_pk primary key (ordrenr), constraint ordre_fk1 foreign key (kunde) references kunde(kid) on delete cascade); create table ordrelinje ( ordrenr integer, linjenr integer, pizza integer not null, antall integer not null, delsum integer not null, constraint ordrelinje_pk primary key (ordrenr, linjenr), constraint ordrelinje_fk1 foreign key (ordrenr) references ordre(ordrenr) on delete cascade, constraint ordrelinje_fk2 foreign key (pizzanr) references pizzatyper(pid) on delete restrict ); Side 2 av 5

Innlegging av data SQL- kode for å legge inn data i databasen: -- legger inn data -- poststeder insert into poststeder values (7000, 'Trondheim'); insert into poststeder values (8000, 'Bodø'); insert into poststeder values (9000, 'Tromsø'); insert into poststeder values (9090, 'Kirkenes'); insert into poststeder values (7046, 'Trondheim'); -- kunder values (1, 'Ola', 'Kirkegata 1', 7000, 12341234, 10000); values (2, 'Kari', 'Elgesetergate 12', 7000, 12344321, 10000); values (3, 'Per', 'Munkegata 10', 7000, 11223344, 5000); values (4, 'Ola', 'Kongens gate 12', 8000, 88667755, 5000); -- pizzaer insert into pizzatyper values (1, 'Cheese & Tomato', 170); insert into pizzatyper values (2, 'The Tropical', 228); insert into pizzatyper values (3, 'Pepper Steak', 228); insert into pizzatyper values (4, 'Thai Chicken', 254); insert into pizzatyper values (5, 'Heavy Heaven', 258); -- ordrer insert into ordre values (1, '2014-01-10', 'Levert', 170, 1); insert into ordre values (2, '2014-01-10', 'Levert', 568, 2); insert into ordre values (3, '2014-01-11', 'Levert', 710, 3); insert into ordre values (4, '2014-01-11', 'Levert', 254, 3); insert into ordre values (5, '2014-01-12', 'Levert', 482, 2); -- ordrelinje insert into ordrelinje values(1, 1, 1, 1, 170); insert into ordrelinje values(2, 1, 1, 2, 340); insert into ordrelinje values(2, 2, 2, 1, 228); insert into ordrelinje values(3, 1, 2, 1, 228); insert into ordrelinje values(3, 2, 3, 1, 228); insert into ordrelinje values(3, 3, 4, 1, 254); insert into ordrelinje values(4, 1, 4, 1, 254); insert into ordrelinje values(5, 1, 4, 1, 254); insert into ordrelinje values(5, 2, 3, 1, 228); I filen pizzadb.sql finner du SQL- koden som oppretter databasen og legger inn data. Side 3 av 5

Spørringer Spørring 1 Finn kunder på postnummer 7000. Ta med navn og adresse. Spørring 2 Hvor mange kunder er det i databasen? I resultatet skal kolonnen ha navnet Antall kunder. Spørring 3 Finn alle poststeder. Hver poststed skal være med bare en gang, og resultatet skal sorteres alfabetisk. Spørring 4 Skriv ut kid, navn, adresse, postnummer og poststed for alle kunder. Spørring 5 Hvor mange Thai Chicken er solgt og for hvor mange kroner til sammen? Spørring 6 Finn alle pizzatyper som noen har kjøpt. Unngår å gjenta pizzanavn i resultatet og sorter resultatet alfabetisk. Spørring 7 Finn kid, navn og adresse for alle personer som bor på adresser som inneholder gata. Spørring 8 Finn alle pizzatyper som kunden Kari ikke har kjøpt ennå. Spørring 9 Finn alle navn som enten er brukt på en kunde eller på en pizzatype. Spørring 10 Ta ut postnr, poststed og antall personer som bor på et postnummer. I resultatet skal alle postnumre være med, og det skal sorteres etter synkende antall kunder. Spørring 11 Finn alle personer (kid og navn) som ikke har kjøpt Thai Chicken. Side 4 av 5

Innsetting, oppdatering og sletting Oppgave 1 Kunde nummer 2, Kari, bestiller i dag (30. januar 2014) 1 Pepper Steak og 3 Thai chicken. Legg inn denne bestillingen. Oppgave 2 Øk prisen på alle pizzatyper med 10 %. Oppgave 3 Prøv å slette pizzatypen Thai Chicken. Hva skjer? Hvorfor? Hva må du evt. gjøre for å få slettet denne pizzatypen? Roger Midtstraum, 30.12.2014 Side 5 av 5