Yleinen SQL. Yleinen SQL. SQL:n kehitys

Koko: px
Aloita esitys sivulta:

Download "Yleinen SQL. Yleinen SQL. SQL:n kehitys"

Transkriptio

1 .ppt Yleinen sivu 1 Yleinen :n kehitys sivu 2... kokeiluja 1970 E F Codd: A Relational Model of Data for Large Shared Data Banks - Relational View on Data, relaatioalgebra, normalisointi Berkeley Ingress (QUEL), IBM System R (Sequel) (Stonebraker,..) (Chamberlin,...) 1979 Oracle 1981 IBM /DS 1983 IBM DB2 Esvel, IDMS/, Tandem NonStop, HP (Allbase/), ANSI : 1 -standardi 1987 IBM SAA 1988 X/Open (Unix) 1989 ANSI + ISO: -89 -standardi (=1 + viite-eheys) 1989 Järjestelmätoimittajat perustivat Access Groupin SAG (Client-Server RDA/CLI) mikrojen RDBMS-boomi ISO: -92 -standardi (työnimi 2) 1993 Microsoft: ODBC 1999 ISO: :1999 -standardi (työnimi 3) 2003 :2003 lisätty /XML 2008 :2008

2 .ppt Yleinen Relaatiomalli: - Relational View on Data sivu 3 arvojoukot (domains) Relaatio: kunnat nimet Hur... Vantaa Espoo... Helsinki osastot D01 D02 D03 palkat käsitemalli nimetyt attribuutit NIMI KUNTA OSNO PALKKA yksilötyyppi ominaisuudet monikko (tuple) monikoilla ei ole määriteltyä järjestystä Hurvinen H. Kurvinen K Vahvanen V. Viininen V. Helsinki D Espoo D Vantaa D Helsinki? ominaisuuksien arvot ovat jakamattomia (atomic) puuttuva arvo NULL Yksilöivä perusavain? (primary key) - yksi tai useampi ominaisuus yhdessä Relaatiomalli ja sivu 4 Relaatio: - taulu tt_nrot nimetyt attribuutit - sarakkeet arvojoukot (domains) ~ tietotyypit + CHECK ehto nimet kunnat osastot Hur... Vantaa D01 D02 Espoo... Helsinki D03 TT_# NIMI KUNTA OSNO PALKKA 200 Hurvinen H. Helsinki D palkat käsitemalli yksilötyyppi monikot (tuples) - rivit Kurvinen K Vahvanen V. Espoo D Vantaa D Viininen V. Helsinki? Yksilöivä perusavain (primary key) - usein keinotekoinen avain puuttuva arvo NULL

3 .ppt Yleinen Käsitemalli sivu 5 yksilötyyppi (entity, relation) yksilötyyppien väliset riippuvuudet kuvataan yhteystyypeillä (relationship) joiden aste kuvaa yhteyden yksilöesiintymien lukumääriä 1 : 1 1 : N N : M Osasto kuuluu omaa Taito johtaa Tyontekija Yhteystyypin kummmankin yksilötyypin osalta määritetään sen ehdollissuus (0) tai pakollisuus ( ) toista yksilötyypistä katsottuna Työvaiheet sivu 6 Tietotarveanalyysi: Tietotarpeet Käsiteanalyysi: Käsitemalli Tietosuunnittelu - normalisointi Relaatiokaavat Viite-eheys ja -määritykset: -taulut

4 .ppt Yleinen Yhteyden toteutus sivu 7 Kaikki käsitemallissa esiintyvät M:N-yhteydet on syytä purkaa 1:N-yhteyksiksi uuden yhteysyksilötyypin avulla: M:N 1:N 1:M Jokainen yhteys liittää nyt johtotyyppiin (master, parent, isä ) jäsentyypin (detail,child, lapsi ). Jäsenyksilöitä voi olla useita. Yhteys totetetaan viiteavaimella (foreign key), joka muodostetaan siten että jäsentyypin tietoihin täydennetään (ellei ole jo ennestään) johtotyypin perusavainta vastaavat tiedot (sarakkeet). Jäsentyyppi on yhteyden kannalta viittaava ja johtotyyppi viitattu yksilötyyppi. Harjoitusympäristö: HH-taulut sivu 8 OSASTOT OS_NO NIMI OS_PAAL OS_BUDJ D01 Valmistus D02 Markkinointi D03 Hallinto TYONTEK TT_NO NIMI KUNTA OS_NO PALKKA Hurvinen H. Helsinki D Kurvinen K. Espoo D Jämerä J. Helsinki D Vahvanen V. Vantaa D Pamppu P. Kerava D Viininen V. Helsinki? Hirmu H. Sipoo D TAIDOT TT_NO TAITO C 110 COBOL 200 FORTRAN 400 COBOL 200 Tehtävä: Ratkaise taulujen perusavaimet ja viiteavaimet

5 .ppt Yleinen Relationaalisuuden 12 sääntöä (Codd) sivu 9 1. Rakenteen kuvattavuus tekstimuodossa kannan systeemitauluissa (System Catalog) 2. Tiedon taattu löytyvyys relaation nimen, monikon perusavaimen arvon ja tiedon attribuuttinimen perusteella 3. Puuttuvan tiedon (NULL) systemaattinen käsiteltävyys 4. Kannan kuvaustietojen käsiteltävyys tietokantakielellä 5. Yhtenäinen, kattava tietokantakieli - tietomääritykset, - näkymät, - eheysrajoitteet, - oikeudet, - relaatioalgebran mukaiset kyselyt, - tapahtumarajat, - ohjelmallisesti tai vuorovaikutteisesti... Relationaalisuuden 12 sääntöä (Codd) sivu Päivitettävyys näkymien kautta, jos teoriassa mahdollista 7. Lisäys, muutos tai poisto yhdellä lauseella 8. Fyysinen tietoriippumattomuus 9. Looginen tietoriippumattomuus 10. Eheysrajoitteet - perusavain, - viite-eheys ja - omat rajoitesäännöt (business policy) voitava kuvata säännön 5 kielellä 11. Hajautusriippumattomuus 12. Rajoitusten ohittamattomuus mahdollisilla muilla käsittelymenetelmillä

6 .ppt Yleinen Relaatioalgebra sivu 11 valinta projektio yhdiste leikkaus erotus a b c x y tulo a a b b c c x y x y x y a1 a2 a3 b1 b1 b2 b1 b2 b3 c1 c2 c3 (luonn.) liitos a1 a2 a3 b1 b1 b2 c1 c1 c2 a a a b b c x y z x y y x y jako a b Tietokantakieli sivu 12 -DDL CREATE Table View Index ALTER Table DROP Table View Index -DML SELECT -DCL INSERT UPDATE DELETE GRANT REVOKE

7 .ppt Yleinen Tietokantaympäristö sivu 13 kuvaukset Systeemitaulusto (System Catalog) Table Index Column View... Create DB / Start DBE.. NEW SysAdm DBA Grant DBA Tietokanta(ympäristö) Grant resource hakemistot tiedot index table view Create table index view Revoke Select Insert Update Delete User/Creator Grant select, update,... with grant option User/Group User Grant... Rakenneosat (objects) sivu 14 - Tietokanta ("omistaja") -Taulut - sarakkeet ja arvojoukot - rajoitteet - Hakemistot - Näkymät - Proseduurit ja triggerit - Käyttäjät / ryhmät l. roolit -... Tunnistenimet: kirjaimet numerot 0..9 alleviivat - keskellä A..Z _ alettava kirjaimella max 18 merkkiä

8 .ppt Yleinen Create Table sivu 15 CREATE TABLE [omistaja.] taulu ( sarakenimi tietotyyppi [ DEFAULT vakio systeemimuuttuja ] [ NOT NULL ] [ [ CONSTRAINT rajoitenimi ] CHECK ( sarake-ehto ) ] [, sarakemäärityksiä... ] [, [ CONSTRAINT rajoitenimi ] PRIMARY KEY ( sarakelista ) ] [, [ CONSTRAINT rajoitenimi ] UNIQUE ( sarakelista ) ] [, avainehdokkaiden yksilöivyyden UNIQUE-valvontamäärityksiä... ] [, [ CONSTRAINT rajoitenimi ] FOREIGN KEY ( sarakelista ) REFERENCES [omistaja.] perustaulu [ ( sarakelista) ] [ MATCH { PARTIAL FULL } ] [ ON UPDATE oletus: NO ACTION l. RESTRICT CASCADE SET NULL SET DEFAULT ] [ ON DELETE oletus: NO ACTION l. RESTRICT CASCADE SET NULL SET DEFAULT ] ] [, viiteavainmäärityksiä... ] [, [ CONSTRAINT rajoitenimi ] CHECK ( riviehto ) ] [, CHECK-määrityksiä... ] ) [ säilytysrakenteen tietoja ] Tietotyypit sivu muita CHARACTER ( n ) VARCHARACTER ( max ) DECIMAL ( p [, q ] ) INTEGER SMALLINT FLOAT ( r ) REAL DOUBLE PRECISION DATE TIME TIMESTAMP DATETIME INTERVAL BIT [VARYING] GRAPHIC VARGRAPHIC BLOB-tyypit LOGICAL Esim. Nimi char (35) Memo varchar (3000) Palkka dec (9,2) AsukasLuku int LomaPaivat smallint PlaneetanHalk float (7) Proj_AlkPv LahtoAika AikaLeima Kesto date time timestamp interval NimiKirj Video LONG varchar ( )

9 .ppt Yleinen Lausekkeet sivu 17 Valinnoissa, lisäyksissä, muutoksissa ja tulossarakkeilla: Aritmeettiset lausekkeet operaattorit: + - * / ( ) operandit: sarakkeet, literaalit, muuttujat, funktiot Koostefunktiot COUNT, SUM, AVG, MIN, MAX Aikalausekkeet ja muunnokset current_date, current_time date - date = interval, date +- interval = date,... EXCTRACT (kenttä FROM aikalauseke) (-92) Merkkijonofunktiot SUBSTRING UPPER LOWER CONVERT Numeeriset funktiot CHAR_LENGTH POS -DML sivu 18 -DDL CREATE Table View Index ALTER Table DROP Table View Index -DML SELECT INSERT UPDATE DELETE -DCL GRANT REVOKE

10 .ppt Yleinen INSERT - rivi sivu 19 syntaksi: INSERT INTO taulu [ ( sarake [, sarake... ] ) ] VALUES ( arvo [, arvo... ] ) Lisää yhden rivin Sarakeluettelo suositeltava tietoriippumattomuuden kannalta Sarakkeen arvo aina vastinpaikalla Merkkimuotoinen arvo 'hipsujen' sisään Numeerinen arvo ilman hipsuja esimerkki: Insert into tyontek (tt_no, nimi, kunta, os_no, palkka) values ( 600, 'Huuhanen H', 'Hyvinkää','D02', 9000 ); INSERT - rivijoukko sivu 20 syntaksi: INSERT INTO taulu [ ( sarake [, sarake... ] ) ] SELECT-lause Kohdetaulu ei saa esiintyä SELECT-lauseessa Sarakeluettelo suositeltava tietoriippumattomuuden kannalta ja SELECT-lauseen tulostaulun vastattava sarakeluetteloa Komento lisää kohdetauluun SELECT-lauseen tulostaulun rivit

11 .ppt Yleinen UPDATE sivu 21 syntaksi: UPDATE taulu SET sarake = lauseke [, sarake = lauseke... ] [ WHERE hakuehto ] Päivittää SET-määreen mukaiset muutokset kaikille niille kohdetaulun riveille, joille hakuehto on tosi, tai WHERE-määreen puuttuessa taulun kaikille riveille SET-määreen lausekkeissa esiintyvät sarakenimet edustavat kukin rivillä nimetyssä sarakkeessa ennen päivitystä ollutta arvoa Merkkimuotoinen arvo 'hipsujen' sisään Numeerinen arvo ilman hipsuja esimerkki: Update tyontek set palkka = palkka * 1.1, os_no = 'D01' where tt_no = 300 ; DELETE sivu 22 syntaksi: DELETE FROM taulu WHERE hakuehto Poistaa kohdetaulusta kaikki ne rivit, joille hakuehto on tosi Huom: viite-eheyden vaikutukset esimerkki: a) Delete from taidot where tt_no = 300 ; b) Delete from tyontek where tt_no = 300 ;

12 .ppt Yleinen HH-harj: Insert, Update, Delete sivu 23 1) 2) Laadi -komennot, joilla TYONTEK-tauluun lisätään henkilön nro 500 tiedot: nimi: Lurvinen L. kunta: Lahti osasto: D03 palkka: ja TAIDOT-tauluun ko. henkilön taidot Konekirj. Neuvottelu 3) 4) 5) Laadi -komento, jolla kaikkien osastojen budjetteihin lisätään 10 %. Laadi -komento, jolla osaston 'D01' budjetin arvoksi korjataan mk. Laadi -komennot, joilla Viinisen (tt_no = 300) tiedot poistetaan tietokannasta. SELECT sivu 24 * SELECT [ DISTINCT ] lauseke [,... ] FROM taulu [viite] [,... ] [ WHERE hakuehto ] [ GROUP BY sarake [,... ] ] [ HAVING ryhmäehto ] [ ORDER BY sarake [ ASC DESC] [,... ] ] Huom. tuloslausekkeena on yleensä viite.sarake * tulostaa kaikki sarakkeet

13 .ppt Yleinen Select - projektio sivu 25 TYONTEK TT_NO NIMI KUNTA OS_NO PALKKA Hurvinen H. Helsinki D Kurvinen K. Espoo D Jämerä J. Helsinki D Vahvanen V. Vantaa D Pamppu P. Kerava D Viininen V. Helsinki? Hirmu H. Sipoo D SELECT OS_NO, KUNTA FROM TYONTEK ; SELECT DISTINCT OS_NO, KUNTA FROM TYONTEK ; tulostaulu: OS_NO KUNTA D01 Helsinki D03 Espoo D01 Helsinki D01 Vantaa D02 Kerava? Helsinki D03 Sipoo tulostaulu: OS_NO KUNTA D01 Helsinki D03 Espoo D01 Vantaa D02 Kerava? Helsinki D03 Sipoo Select - valinta sivu 26 tulostaulu: TYONTEK TT_NO NIMI KUNTA OS_NO PALKKA Hurvinen H. Helsinki D Kurvinen K. Espoo D Jämerä J. Helsinki D Vahvanen V. Vantaa D Pamppu P. Kerava D Viininen V. Helsinki? Hirmu H. Sipoo D SELECT * FROM TYONTEK WHERE OS_NO = 'D01'; TT_NO NIMI KUNTA OS_NO PALKKA Hurvinen H. Helsinki D Jämerä J. Helsinki D Vahvanen V. Vantaa D vertailupredikaatti tulostaulu? SELECT * FROM TYONTEK WHERE OS_NO <> 'D01';

14 .ppt Yleinen Hakuehto sivu 27 Hakuehto on ehtolauseke, joka muodostuu yhdestä tai useammasta ehdosta l. predikaatista ja näitä kytkevistä konnektiiveista: NOT negaatio eli EI (vert. aritm. miinus-etumerkki) AND konjunktio eli JA (vert. kertomerkki) OR disjunktio eli TAI (vert. plus-merkki) Konnektiivit määräävät ehtolausekkeen totuusarvon laskentajärjestyksen kuten vastaavat aritmeettiset operaattorit ja samoin laskentajärjestystä voidaan muuttaa käyttämällä sulkeita. - Sulkeet selventävät aina! Esimerkkejä: WHERE os_no = 'D01' AND kunta = 'Helsinki' OR kunta = 'Vantaa'' WHERE os_no = 'D01' AND (kunta = 'Helsinki' OR kunta = 'Vantaa') WHERE os_no = 'D01' AND NOT (kunta = 'Helsinki' OR kunta = 'Vantaa') Totuustaulut sivu 28 predikaatti (s,..) = T tosi? tuntematon (jos s on NULL) F epätosi Hakuehto voi muodostua yhdestä tai useammasta predikaatista ja näiden välisistä NOT, AND, OR-konnektiiveista. Totuusarvon laskentajärjestystä voidaan ohjata sulkein ( ). Näin muodostettujen loogisten lausekkeiden totuusarvot noudattavat seuraavaa 3-arvologiikkaa: AND T? F OR T? F NOT T T? F T T T T T F??? F? T???? F F F F F T? F F T

15 .ppt Yleinen NULL-arvot sivu 29 aritmeettisen lausekkeen arvo NULL, jos joku operandi on NULL predikaatin totuusarvo - jos vertailu, between, in, like tai määräpredikaatin jonkin argumentin arvona on NULL, on predikaatin totuusarvo tuntematon - NULL-arvon tutkimista varten on käytettävissä NULL-predikaatin muodot: IS NULL ja IS NOT NULL loogiset operaatiot NOT, AND, OR ks totuustaulut koostefunktiot: COUNT, SUM, AVG, MIN, MAX jos sarakkeella NULL, niin rivi ohitetaan, paitsi COUNT (*) jos tyhjä joukko, eli ei yhtään riviä, palautetaan NULL, paitsi COUNT(*):n arvoksi 0 kahta NULL-arvoa pidetään samoina seuraavissa lajittelussa (ORDER BY) kaksosten eliminoinnissa (DISTINCT ja UNION) ryhmittelyssä (GROUP BY) Koostefunktiot (aggregate functions) sivu 30 - Käytettävissä vain ryhmätasolla tai loppusummatasolla! COUNT ( * ) COUNT ( s ) COUNT ( DISTINCT s ) SUM ( s ) AVG ( s ) MIN ( s ) MAX ( s ) rivien lukumäärä rivien lukumäärä, joilla s ei ole NULL sarakkeella esiintyneiden eri arvojen lukumäärä sarakkeella s esiintyneiden kaikkien arvojen summa sarakkeella s esiintyneiden kaikkien arvojen keskiarvo pienin sarakkeella s esiintynyt arvo suurin sarakkeella s esiintynyt arvo

16 .ppt Yleinen SELECT-lauseen tulostaulutyypit sivu 31 yksikkörivit: välisummat: loppusummat: SELECT s1, r1, s2+s3 SELECT g1, SUM(s1), AVG(s2)... GROUP BY g1 g - vrt raportin osat SELECT SUM(s1), AVG(s2) 1xx 1xx... 1xx 2xx 2xx sum avg 2xx sum avg... 9xx 9xx 9xx sum avg sum avg SELECT-lauseen toimintamalli sivu 32 Rick van der Lans: FROM valitsee kohdetaulut... WHERE poimii rivit työtauluun GROUP BY ryhmittelee työtaulun rivit HAVING poimii ehdon täyttävät ryhmät SELECT poimii/laskee tulastaulun sarakkeet ORDER BY lajittelee tulostaulun rivit tulostaulu:

17 .ppt Yleinen Liitos sivu 33 - Tulostetaan lapsitaulun rivien tietoja täydennettynä vastaavien isärivien tiedoilla. Tietomalli: Ilmentymä: Isätaulu perusavain isätaulu Liitosta käyttävä kysely (-89): lapsitaulu laps_perusavain viiteavain SELECT... FROM lapsitaulu C, isätaulu F WHERE C.viiteavain = F.perusavain Tyypillinen liitospredikaatti lapsitaulu Viiteavaimen arvona on vastaavan "isärivin" avaimen arvo Huom -92 tuntee FROM-määreessä erityisen JOIN operaattorin Select FROM - liitokset sivu 34 Syntaksi: FromMääre ::= TauluMääre ( FromMääre ) INNER FromMääre NATURAL LEFT [OUTER] RIGHT [OUTER] JOIN TauluMääre ( FromMääre ) INNER FromMääre LEFT [OUTER] RIGHT [OUTER] JOIN TauluMääre ON hakuehto ( FromMääre ) USING (sarakelista) Esimerkki: SELECT... FROM lapsitaulu NATURAL JOIN isätaulu - jos avaimet samannimiset ja ei muita samannimisiä sarakkeita! SELECT... FROM lapsitaulu JOIN isätaulu USING (avain) - jos avaimet samannimiset!

18 .ppt Yleinen Ulkoliitokset sivu 35 lapsitaulu LEFT OUTER JOIN isätaulu => liitos + lapset joilla ei isää (isän tiedoissa NULL-arvot) lapsitaulu RIGHT OUTER JOIN isätaulu => liitos + isät joilla ei lapsia (lasten tiedoissa NULL-arvot) Liitospolku sivu 36 Kaikkien niiden taulujen kesken, joiden tietoja tarvitaan tulostauluun, voidaan tehdä liitokset. Ensin ratkaistaan mistä taulusta saadaan tulostaulun yksikkörivit. Tästä taulusta rakennetaan hakuehtoon liitospolut jokaiseen muuhun tauluun käyttäen liitospredikaattia ja käyttäen AND konnektiivia predikaattien välissä D A C C.d=D.d B.a=A.a B B.c=C.c (Liitosviuhkan juuri ) SELECT B.b, A.n, C.k, D.z,... FROM B, A, C, D WHERE B.a = A.a AND B.c = C.c AND C.d = D.d

19 .ppt Yleinen Korrelaationimet sivu 37 Jos sama taulu esiintyy liitospoluilla eri rooleissa, on taulun kullekin roolille annettava ns. korrelaationimi (viitenimi, aliasnimi) SELECT-lauseen FROM-määreessä ja taulusta saa käyttää SELECT-lauseen muissa osissa vain näitä korrelaationimiä. D A.d=D2.d A C C.d=D1.d B.a=A.a B B.c=C.c (Liitosviuhkan juuri ) SELECT B.b, A.n, D2.m, C.k, D1.m FROM B, A, C, D D1, D D2 WHERE B.a = A.a AND A.d = D2.d AND B.c = C.c AND C.d = D1.d Indeksit sivu 38 Syntaksi: CREATE [ UNIQUE ] [ CLUSTERING CLUSTERED ] INDEX hakemistonimi ON perustaulu ( sarake [ASC DESC ] [,... ] ) Indeksi (hakemisto) nopeuttaa hakua avaimella. Luodaan aina perusavaimella ja viiteavaimille (eheyden tarkistus, liitokset). Perusavaimelle UNIQUE-indeksi yleensä automaattisesti. UNIQUE ja CLUSTERING -hakemisto luodaan ennen rivien kirjoittamista. Huom ALLABSE/:ssä Clustering hakemisto kannattaa luoda vasta kun lajitellut rivit on ladattu tauluun.

20 .ppt Yleinen (Non-clustering) INDEX sivu 39 hakemistosivut ja avaimet juuri Matching index scan Range scan: lehtitaso Non-matching index scan taulutilan sivut ja taulun rivit serial scan Clustering INDEX sivu 40 hakemistosivut ja avaimet juuri lehtitaso taulutilan sivut ja taulun rivit

21 .ppt Yleinen Clustered INDEX sivu 41 hakemistosivut ja avaimet juuri Lehtitason muodostavat taulun sivut! taulutilan sivut ja taulun rivit... Predikaatit sivu 42 Hakuehto on siis yhdestä yhdestä tai useammasta ehdosta eli predikaatista konnektiiveilla NOT, AND ja OR sekä mahdollisesti sulkeilla yhdistetty looginen lauseke. -standardi tuntee seuraavat predikaatit: Vertailupredikaatti: <, <=, =, >=, >, <> BETWEEN-predikaatti: BETWEEN alaraja AND yläraja IN-predikaatti: IN (arvo, arvo,... ) LIKE-predikaatti: LIKE malli NULL-predikaatti: IS NULL Ei siis: = NULL Määräpredikaatti: vertailu ALL, ANY, SOME ( ) EXISTS-predikaatti: on olemassa ( )

22 .ppt Yleinen Predikaatit: syntaksien raidekaavio sivu 43 lauseke vert.op. lauseke sisäkysely lauseke lauseke sarake sarake lauseke EXISTS BETWEEN lauseke AND lauseke NOT IN sisäkysely NOT,, ( arvovakio ) lauseke LIKE malli NOT ESCAPE merkki IS NULL NOT vert.op. ALL sisäkysely ANY SOME sisäkysely BETWEEN-predikaatti sivu 44 BETWEEN-predikaatti on tyypillisesti muotoa sarake BETWEEN alaraja AND yläraja ja sillä tutkitaan onko sarakkeen arvo annetulla arvovälillä, arvovälin rajat mukaan lukien. Syntaksin mukaan sarakkeen, alarajan tai ylärajan paikalla voi olla myös aritmeettinen lauseke. Predikaatti on yhtäpitävä seuraavan loogisen lausekkeen kanssa: sarake >= alaraja AND sarake <= yläraja Predikaatin komplementtimuoto on sarake NOT BETWEEN alaraja AND yläraja

23 .ppt Yleinen IN-predikaatti sivu 45 IN-predikaatilla tutkitaan onko sarakkeen (yleistäen: lausekkeen) arvoja jokin suluissa luetelluista arvoista eli arvojoukon arvoista. Vertailun arvojoukko voidaan määrittää 1. luettelemalla arvojoukon alkiot eksplisiittisesti esim. Sarake IN (1, 3, 5, 9) 2. käyttämällä sisäkyselyä, jonka yksisarakkeinen tulostaulu tuottaa vertailun arvojoukon dynaamisesti tietokannan tietojen perusteella esim. tt_no IN (select tt_no from taidot where taito='c') 3. käyttämällä arvojoukon paikalla lauseketta (tämä vastaa vertailupredikaatin muotoa: sarake = lauseke) LIKE-predikaatti sivu 46 sarake LIKE malli [ESCAPE vaihtomerkki] mallissa voidaan käyttää seuraavia jokerimerkkejä _ täsmää mihin tahansa yhteen merkkiin % täsmää mihin tahansa merkkijonoon vaihtomerkki jokerimerkin edessä tekee siitä tarkan merkin, johon sarakkeen vastaavan merkin on täsmättävä. Kaikki muut ovatkin tarkkoja merkkejä. Esimerkkejä: Select nimi from hh.tyontek where nimi LIKE '_ur%'; Select asno, alennus from tilkas.asiakas where alennus LIKE '!%%' escape!;

24 .ppt Yleinen NULL-predikaatti sivu 47 Sarakkeen puuttuvaa arvoa sanotaan NULL-arvoksi. NULL-arvoinen sarake tuottaa vertailupredikaatille ja sen johdannaisille (BETWEEN, IN ja määräpredikaatit) totuusarvon tuntematon. Jos halutaan ottaa myös NULL-arvon mahdollisuus huomioon, tätä ei voi testata vertailupredikaatilla sarake = NULL vaan on käytettävä NULL-predikaatin muotoa: sarake IS NULL esim. Sarake IN (1, 3, 5, 7) OR sarake IS NULL Sisäkysely sivu 48 SELECT, UPDATE tai DELETE-komennon hakuehdon sisällä tietyissä predikaateissa voi esiintyä sulkeissa SELECT-lause. Tätä kutsutaan sisäkyselyksi (subquery, alikysely) ja sen tulostaulu toimii siis ulomman lauseen (komennon) rivien valintaperusteena. Sisäkyselyn tuloksia ei siis tulosteta ulommassa lauseessa. Esim. Select tt_no, tt_nimi from tyontek where tt_no IN (select tt_no from taidot where taito='c'); Sisäkysely voidaan usein korvata liitoksella, joka voi olla myös suorituksen kannalta tehokkaampi Select T.tt_no, tt_nimi from tyontek T, taidot D where taito = 'C' and D.tt=no = T.tt_no;

25 .ppt Yleinen... Sisäkyselyn tulostaulutyyppi sivu 49 Predikaatista riippuen tulostaulu on muotoa a) alkio (vertailupredikaatti) b) sarake, jonka eri riveille tulostuvat arvot muodostavat arvojoukon (IN, ALL, ANY, SOME) c) taulu, jonka olemassaoloa testataan EXISTS-predikaatissa Select... From A, B Where... (Select...) From A B Where A. B. työrivi: arvo: (Select... ) tulostaulu? arvojoukko Määräpredikaatti sivu 50 vertailuoperaattori: < <= = >= > <> Verrataan sarakkeen arvoa sisäkyselyllä muodostetun arvojoukon arvoihin ALL sarake ANY (sisäkysely) SOME ANY ja SOME ovat synonyymejä s ALL (a, b,... ) <=> s a AND s b AND... s ANY (a, b,... ) <=> s a OR s b OR... s <> ALL (... ) <=> s NOT IN (... ) s = ANY (... ) <=> s IN (... )

26 .ppt Yleinen määräpredikaatit, esimerkkejä sivu 51 Oletetaan, että sisäkysely tuottaa arvojoukon: ( 10, 20, 30 ) S = ANY (10, 20, 30) S < ANY (10, 20, 30) S > ANY (10, 20, 30) S = ALL (10, 20, 30) S < ALL (10, 20, 30) S > ALL (10, 20, 30) Jos S on 10, niin tosi Jos S on 5, niin epätosi Jos S < 30, niin tosi Jos S >= 30, niin epätosi Jos S > 10, niin tosi Jos S <= 10, niin epätosi Jos joukossa eri suuria alkioita, niin epätosi Jos S < 10, niin tosi Jos S >= 10, niin epätosi Jos S > 30, niin tosi Jos S <= 30, niin epätosi Sisäkkäisiä kyselyitä sivu 52 Kysymys Kenen johtamalla osastolla on C-kielen taitoisia? voidaan ratkaista esimerkiksi seuraavalla monitasoisella kyselyllä Select tt_nimi from tyontek where tt_no IN (select os_paal from osastot where os_no IN (select os_no from tyontek where tt_no IN (select tt_no from taidot where taito = 'C') ) ) ; Sisäkkäisiä kyselytasoja voi järjestelmästä riippuen olla jopa 15

27 .ppt Yleinen Korreloitu sisäkysely sivu 53 Ulomman kyselyn taulujen näkyvyysalue (scope) ulottuu sisäkyselyihin.. Jos ulomman kyselyn taulun saraketta käytetään sisäkyselyn hakuehdossa, sanotaan sisäkyselyä korreloiduksi. Esim. C-taitoiset henkilöt voitaisiin selvittää seuraavalla korreloitua sisäkyselyä käyttävällä kyselyllä Select tt_no, tt_nimi from tyontek where 'C' = SOME (select taito from taidot where tyontek.tt_no =taidot.tt_no); EXISTS-predikaatti sivu 54 Tutkitaan tuottaako sisäkysely tulostaulun (jolloin predikaatin totuusarvo on TRUE) vai ei (jolloin totuusarvo on FALSE) EXISTS (sisäkysely) Sisäkysely on tässä yleensä korreloitu ja sillä selvitetään esimerkiksi - onko isällä ehdon täyttäviä lapsia, tai - onko lapsella ehdon täyttävä isä Esim. Select tt_no, tt_nimi from tyontek T where EXISTS (select * from taidot S where taito= C and S.tt_no = T.tt_no);

28 .ppt Yleinen Korrelaationimi sisäkyselyssä sivu 55 Esim Jos korreloitu sisäkysely kohdistuu samaan tauluun kuin ulompi kysely, on näille taulun rooleille annettava omat korrelaationimet Select nimi, palkka from tyontek A where palkka > (select AVG(palkka) from tyontek B where A.os_no = B.os_no); TYONTEK (Select AVG(palkka)... Select.. from A where palkka from B os_no palkka os_no where A.os_no = B.os_no > AVG(palkka) Yhdiste, Leikkaus, Erotus sivu 56 Relaatioalgebran mukainen yhdiste toteutetaan seuraavasti (ilman UNION-operaattorin ALL-määrettä): -87: UNION SELECT... UNION [ ALL ] [ ORDER BY... ] SELECT : UNION INTERSECT EXCEPT Oracle: MINUS - oltava saman rakenteisia

29 .ppt Yleinen View sivu 57 View eli näkymä (johdettu taulu, johdos) on a) osa perustaulusta - voi olla päivittävä b) muunnos - välisumma, summa, liitos, yhdiste,... - ei päivittävä Näkymien avulla toteutetaan ohjelmien looginen tietoriippumattomuus - perustaulun muutos ei aina edellytä ohjelmamuutoksia, säästyy ylläpitotyötä - käsittelyä ulos ohjelmista - tietotarkastuksia - tulostaulun kokoaminen -> ohjelmat yksinkertaistuvat - suojauskeino Päivitys näkymän kautta sivu 58 nakyma K L Select perustaulu A B C D E Create View nakyma ( K, L) as Select B, D From perustaulu Insert Update Delete Where B between 100 and 200 With Check Option ; 1:1

30 .ppt Yleinen Rakenneosien käyttöoikeudet sivu 59 Rakenneosien käyttöoikeuksien myöntäminen GRANT ALL PRIVILEGES SELECT INSERT DELETE [,... ] UPDATE [ (sarakelista ) ] REFERENCES [ (sarakelista)] ON [kanta.] taulu TO käyttäjä [,... ] [ WITH GRANT OPTION ] Käyttöoikeuksien peruminen REVOKE valtuusluettelo ON [kanta.] taulu FROM käyttäjä [,...] käyttäjä tark. käyttäjätunnus rooli PUBLIC

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Relaatiomalli ja -tietokanta

Relaatiomalli ja -tietokanta Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla

Lisätiedot

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN 3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

Liitokset - haut useaan tauluun

Liitokset - haut useaan tauluun Liitokset Liitokset - haut useaan tauluun Tavallisin liitos on valintaliitos ehtona =,!=, yhtäläisyysliitos (=) yleisin (vrt. Inner join) taulut liitetään toisiinsa yleensä avaimilla (perus-

Lisätiedot

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

Kyselyn yleisrakenne:

Kyselyn yleisrakenne: SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

Lisätiedot

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli tietokantakieli :llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön

Lisätiedot

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli SQL tietokantakieli Relaatiomalliin pohjautuvat tietokannat Perustana relaatiomallin mukainen näkemys tietojen rakenteesta ja käsittelystä Tietokantojen rakenteen määrittelyssä ja käsittelymahdollisuuksissa

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman

Lisätiedot

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman

Lisätiedot

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)] Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään

Lisätiedot

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

Lisätiedot

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely Harjoitustehtävä 1 Puutarha Puutarhatunnus omistaja sijainti Vastuualue puutarhatunnus aluenumero maaperä, kosteus valaistus sijainti vastuutonttu Tonttu Tonttutunnus Istutus istutuspäivä paikka_alueella

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

Relaation tyhjyyden testaaminen

Relaation tyhjyyden testaaminen Tulostaulun tyhjyyden testaaminen Luettele ne asiakkaat, joilla on sekä talletus että laina -konttorissa. (Leikkaus!) useita mahdollisia toteutustapoja INTERSECT sisäkysely sisäkysely + tulostaulun tyhjyyden

Lisätiedot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne

Lisätiedot

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Muita tietokantaobjekteja Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Näkymät Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008 SQL-kielen perusteet Tietokantojen perusteet 4.4.2008 Sisällys Tietokannan käsittely ja ylläpito SQL tiedonmäärittelykielenä Tietokantataulun ja sen osien määrittely SQL tiedonkäsittelykielenä SQL-kysely

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta Luku 4 SQL 4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta ITKA204 kevät 2016 1 4.1 Yleistä SQL:stä Structured

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien Monen taulun kyselyt FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: SELECT FROM Tuloksena on taululistassa lueteltujen taulujen rivien karteesinen

Lisätiedot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos Harjoitustehtävän 1 ratkaisu Tonttu( tonttutunnus, nimi) Puutarha( puutarhatunnus, omistaja, sijainti ) Vastuualue ( puutarhatunnus->puutarha, aluenumero, maaperä, kosteus, valaistus, sijainti, vastuutonttu

Lisätiedot

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus) ) ; CREATE

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu HELIA 1 (15) Luento 2.6 Käyttöoikeuksista ja suojauksesta... 2 Suojausten suunnittelu... 3 Käyttäjätunnukset... 4 Tunnuksen luominen... 5 Tunnuksen muuttaminen... 6 Tunnuksen poistaminen... 6 Oikeudet

Lisätiedot

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. DO NOT PRINTTHIS DOCUMENT SQL -valintaehto SQL-valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus)

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

Yhdiste, leikkaus, erotus ym.

Yhdiste, leikkaus, erotus ym. Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).

Lisätiedot

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,

Lisätiedot

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa: Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm

Lisätiedot

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)

Lisätiedot

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001 HELIA 1 (19) Luento 11 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Arvojoukkoeheyssäännöt... 5 Null-arvoista... 6 Viite-eheyssäännöt... 7 Emorelaation päivitys...

Lisätiedot

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi SQL SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön tehdä

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

Lisätiedot

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin

Lisätiedot

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

Lisätiedot

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho HAAGA-HELIA TIKO - Heti09 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n keskeiset tietotyypit... 8

Lisätiedot

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa: FUNKTIOT Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT -- lukumäärä KOOSTEFUNKTIOT Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC; Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan,

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta HELIA 1 (11) Luento Käyttöoikeuksista ja tiedon suojauksesta... 2 Käyttäjätunnukset... 3 Tunnuksen luominen... 4 Oikeudet / Valtuudet... 5 Oikeuksien hallinta SQL:ssa... 6 Suojaustarkkuus?... 7 Roolit...

Lisätiedot

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

7.11.2006. Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1 perusteita - relaatiokalkyylit perusteita - relaatiokalkyylit Relaatioalgebra on luonteeltaan proseduraalinen tapa käsitellä tietoa. Tiedon haetaan sarjaksi järjestettyjen operaatioiden avulla. Edellä

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Denormalisointia turvallisesti. Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso

Denormalisointia turvallisesti. Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso Denormalisointia turvallisesti Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso Timo Raitalaakso Senior Database Specialist Solita Oy 2001- - 2001 Tampereen Teknillinen korkeakoulu Tietokannat

Lisätiedot

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

Näkymät ja tiedon suojaus

Näkymät ja tiedon suojaus HELIA TIKO-05 1 (23) Näkymät ja tiedon suojaus Näkymät...2 Eri tyyppisiä relaatioita...2 Taulu - Tallennettu relaatio...2 Tulosrelaatio - Kyselyn tulos...2 Työtaulut - Väliaikaisiksi luodut taulut...2

Lisätiedot

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

OUTER JOIN se vanha kunnon kaveri

OUTER JOIN se vanha kunnon kaveri OUTER JOIN se vanha kunnon kaveri Ulkoliitoksia on kolmenlaisia Left -> vasemmasta taulusta otetaan ehdot täyttävät rivit ja yhdistetään oikeanpuoleiseen tauluun jos rivi löytyy - nested loop join Right

Lisätiedot

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli HAAGA-HELIA heti09 1 (27) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Arvojoukkoeheyssääntö... 8 Pääavain ja yksilön eheyssääntö...

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra 14.9.2000. Harri Laine 1. Relaatioalgebra DO NOT PRINT THIS DOCUMENT operaatiot, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran operaatioita projektio,

Lisätiedot

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu HELIA 1 (13) Luento 2.9 Tietohakemistot 2 2 Coddin 12 säännöstä RDBMS:lle... 3 Oraclen tietohakemistonäkymät (osa) 4 Yleiset 4 Taulut 4 Säännöt 4 Näkymät 4 Synonyymit 5 Talletetut rutiinit 5 Käyttöoikeudet

Lisätiedot

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36 TIETOKANTOJEN PERUSTEET, OPETUSMONISTE OSA 2 SQL- TIETOKANNAN RAKENNE JA MÄÄRITTELYT Harri Laine 4.3 SQL TIETOKANTAKIELI... 33 4.3.1 SQL tietokanta... 34 4.3.2 SQL:n kirjoitusasu... 36 4.3.3 SQL määrittelykielenä...

Lisätiedot

HELIA TIKO-05 1 ( 12) ICT03D Tieto ja tiedon varastointi Martti Laiho 15.11.2005

HELIA TIKO-05 1 ( 12) ICT03D Tieto ja tiedon varastointi Martti Laiho 15.11.2005 HELIA TIKO-05 1 ( 12) Suorituskyky DBMS-järjestelmien keskeisiä laatuvaatimuksia ovat Tiedon luotettavuus (kattaen seuraavat: tietoturva, tiedon eheys, tiedon säilyvyys) Tiedon saatavuus (kattaen myös

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu. RATKAISUJA PULMAILMOITUKSIIN ASTERIOHJELMIEN SQLKYSELYISSÄ Virhe kyselyssä: Microsoft Jet tietokantamoduuli ei löydä syötetaulukkoa tai kyselyä Laskut. Varmista, että se on luotu ja että kirjoitit nimen

Lisätiedot

5 SQL TIETOKANTAKIELI...33

5 SQL TIETOKANTAKIELI...33 5 SQL TIETOKANTAKIELI...33 5.1 SQL TIETOKANTA...34 5.2 SQL:N KIRJOITUSASU...36 5.3 SQL MÄÄRITTELYKIELENÄ...36 5.3.1 Käyttäjät...36 5.3.2 Oikeudet...37 5.3.3 Kaaviot ja taulut...38 5.3.4 Taulujen rakenteen

Lisätiedot

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki 12.10.2006

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki 12.10.2006 HELIA TIKO-05 1 (22) SQL / DML SQL / DML...2 Tiedon haku eli -lause...4 Distinct-määre...7 Lasketut sarakkeet...8 Sarakkeen uudelleen nimeäminen...9 SQL:n funktioita... 10 Merkkijonofunktiot... 10 Päivämääräfunktiot...

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

4.3.4 SQL kyselyt... 45

4.3.4 SQL kyselyt... 45 TIETOKANTOJEN PERUSTEET, OPETUSMONISTE OSA 3 SQL- KYSELYT Harri Laine 4.3.4 SQL kyselyt... 45 4.3.4.1 Tulostietomäärittely... 46 4.3.4.2 Viittaukset tauluihin ja sarakkeisiin... 49 4.3.4.3 Toistuvat tulosrivit...

Lisätiedot

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt Käyttö 6. Relaatioalgebra (EI TENTTIIN!) Select, Project, Union, Difference, Join 7. (E)ER-mallin muuntaminen relaatioiksi Kaava Mikä on tietomalli? Malli,

Lisätiedot

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi!

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi! Harjoitustyö CSE-A1200 Tietokannat Jasse Lahdenperä 345396 killedwhale@kapsi.fi Henri Nurmi 345545 henri.nurmi@kapsi.fi 1 Ensimmäisen vaiheen ratkaisu ER-Kaavio 2 Relaatiomalli: Loanable(Id, MaximumLoanTime)

Lisätiedot