HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Näkymät ja tiedon suojaus

Näkymät ja tiedon suojaus

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

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

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

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

SQL - STRUCTURED QUERY LANGUAGE

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Liitokset - haut useaan tauluun

Kyselyn yleisrakenne:

SELECT-lauseen perusmuoto

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

CSE-A1200 Tietokannat

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

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

CSE-A1200 Tietokannat

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Opiskeluoikeuksien maaran tiedonkeruu

SQL:N PERUSTEET MARKKU SUNI

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

Yhdiste, leikkaus, erotus ym.

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

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

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

Virta_Latausraportti - Tarkistukset

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 5 Pasi Ranne

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Tietokannat II -kurssin harjoitustyö

Tietokantakurssit / TKTL

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

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

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

OUTER JOIN se vanha kunnon kaveri

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

Kuva 7.2 vastaustaulu harjoitukseen 7.2

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

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

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

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

Makrojen mystinen maailma lyhyt oppimäärä

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

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Tietokanta (database)

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

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Hohde Consulting 2004

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

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

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Relaatiomalli ja -tietokanta

SQL-kielen perusteet. Tietokantojen perusteet

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

CSE-A1200 Tietokannat

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Transkriptio:

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... 4 Työtaulut - Väliaikaisiksi luodut taulut... 4 Näkymien määrittely... 5 Ominaisuuksien uudelleen nimeäminen... 6 Näkymien poisto... 7 Näkymien käsittely... 8 Päivitettävyys / SQL-92... 9 Hyödyt... 10 Vaarat... 13 Suositus... 14

HELIA 2 (14) Näkymät Relaatiotyypit 1. Taulut Table 2. Näkymät View 3. Tulosrelaatiot Query result 4. Otetaulut Snapshot 5. Työtaulut Temporary table

HELIA 3 (14) Taulu - Tallennettu relaatio Nimetty Itsenäinen Fyysisesti olemassa, ts. RDBMS tallentaa taulut ja niiden sisällön johonkin fyysiseen paikkaan levyllä. Tietojen olemassaolo riippuu taulun olemassaolosta Määritellään CREATE TABLE lauseella Näkymä - Virtuaalirelaatio Nimetty Johdettu kyselyn avulla Ei fyysisesti olemassa Tietojen olemassaolo ei riipu näkymän olemassaolosta Näyttää tietosisällön ajantasaisesti Määritellään CREATE VIEW lauseella Tulosrelaatio - Kyselyn tulos Tietyn kyselyn tulos Määritellään SELECT lauseella

HELIA 4 (14) Otetaulut - Tauluun tallennettu kyselyn tulos Tilannevedos, snapshot Nimetty Johdettu kyselyn avulla On fyysisesti olemassa Vain luku sallittu Virkistetään (refresh) määräajoin Ei SQL-92 standardissa! Työtaulut - Väliaikaisiksi luodut taulut Temporary table Nimetty Tuhotaan automaattisesti määriteltynä hetkenä esim. commit:n yhteydessä

HELIA 5 (14) Näkymien määrittely SQL-92 syntaksi CREATE VIEW <view_name> [ <left paren> <view column list> <right paren>] AS <query expression> CREATE VIEW v_lehtori AS SELECT opettajanro, sukunimi, etunimi, puh FROM Opettaja WHERE nimike = LEHTORI Ä Kaikenlaiset SQL-lauseet kelpaavat: (toimittajakohtaisia rajoituksia voi olla...) Laskutoimitukset ( col1 + col2 ) * 1,22 Funktiot NVL( col1, 0 ) Valintalauseet WHERE col5 > 10 Ryhmitys GROUP BY Liitokset FROM table1 JOIN table2 Joukko-operaatiot UNION / INTERSECT /... Alikyselyt Duplikaattien karsinta DISTINCT Ä Order by määritystä ei voi antaa!

HELIA 6 (14) Ominaisuuksien uudelleen nimeäminen Kyselyssä poimitut ominaisuudet voidaan nimetä uudelleen Ä Etenkin johdetut kentät (esim. laskutoimitukset) kannattaa nimetä Standardin mukaan nimeäminen tehdään a) määrittelemällä sarakenimien lista (kaikki) suluissa näkymän nimen jälkeen CREATE VIEW v_esim (sukupuoli) AS SELECT DISTINCT sp FROM henkilo b) antamalla itse kyselyssä kentälle toinen nimi as -lausekkeella CREATE VIEW v_esim AS SELECT DISTINCT sp AS sukupuoli FROM henkilo Ä Tietokantatoimittajilla on (myös) standardista poikkeavia kenttien uudelleennimeämistapoja

HELIA 7 (14) Näkymien poisto DROP VIEW <view_name>; Vain määrittely poistetaan; dataan ei kosketa

HELIA 8 (14) Näkymien käsittely Näkymät voivat olla myös uusien kyselyjen (ja näkymien) lähtökohtana aivan kuten taulut SELECT sukunimi, etunimi puh FROM v_lehtori WHERE puh = 300 Näkymät eivät aseta rajoituksia kyselyille Näkymät asettavat rajoituksia päivitettävyydelle (erilaisia eri tietokantatuotteissa)

HELIA 9 (14) Päivitettävyys / SQL-92 1. Kysely kohdistuu vain 1 tauluun 2. Distinct määrettä ei saa käyttää 3. Group by ei saa olla käytössä 4. Where-ehdossa ei saa olla alikyselyä 5. Kyselyssä valittavien kenttien tulee kattaa kaikki ko. relaation not null määritetyt kentät joille ei ole määritelty oletusarvoa Ä Päivitettävyyden ehdot vaihtelevat eri RDBMS:ssä

HELIA 10 (14) Hyödyt Käyttäjä(ryhmä)kohtainen näkökulma Eri käyttäjät voivat nähdä saman datan sovitettuna omaan näkökulmaansa Tietoriippumattomuuden lisääminen Mikäli tietokantaan joudutaan tekemään muutoksia, näkymän avulla voidaan käyttäjälle / Ohjelmille tarjota entisenkaltainen rajapinta tietoon. Ts. muutokset tietokannan tauluissa eivät välttämättä aseta muutosvaatimuksia sovellusohjelmille / käyttäjien kyselyille

HELIA 11 (14) Tietorakenteen yksinkertaistaminen Eri tauluihin kootut tiedot voidaan yhdistää näkymässä ts. purkaa tietokannan monimutkaisuutta tiedon luotettavuuden (ristiriidattomuuden) kärsimättä Ä (keskeinen osassa Data Warehouse tuotteita, esim. Business Objects) Monimutkaisten kyselyjen tallentaminen näkymiksi a) vähentää virhemahdollisuuksia b) parantaa hallittavuutta modulaarisempi rakenne! + SQL:n rajoitusten kiertäminen (tyypillisesti ryhmäfunktioiden yhteydessä) Tietosuojan rakentaminen Näkymien avulla voidaan rajata a) Kenttiä b) Tietueita Jotka ovat eri käyttäjäryhmien nähtävissä / päivitettävissä (...tähän palataan tarkemmin myöhemmin...)

HELIA 12 (14) Esim. 1: Rakenteen yksinkertaistaminen TUOTERYHMÄ (tuoteryhma#, tuoteryhman_nimi) TUOTE (tuote#, tuotteen_nimi, tuoteryhma#) CREATE VIEW W_TUOTTEET (tuoteno, nimi, ryhma) AS SELECT t.tuote#,, t.tuotteen_nimi, tr.tuoteryhman_nimi FROM tuote t LEHT JOIN tuoteryhma tr ON t.tuoteryhma# = tr.tuoteryhma# ; Esim. 2: Koodiston avaaminen HENKILO (hetu, nimi, osoite, sukupuoli) CREATE VIEW W_HENKILOT (hetu, nimi, osoite, sukupuoli) AS SELECT hetu,, nimi, osoite, case sp when 'N' then 'nainen' when 'M' then 'mies' else 'muu' end FROM henkilo ;

HELIA 13 (14) Vaarat Hallittavuuden katoaminen Näkymien luonti kevytmielisesti jokaiseen tarpeeseen kasvattaa näkymien määrän kontrolloimattomaksi Näkymien kenttien nimeäminen toisistaan ja tietokannan tauluista poikkeavasti voi johtaa sekavuuteen Tehottomuus Kysely saattaa muodostua monesta päällekkäisestä kyselystä, joita RDBMS:n optimoijan voi olla vaikea optimoida Päivitettävyyden rajoitukset Näkymien suunnittelussa otettava huomioon päivitystarpeet ja valitun RDBMS:n tarjoamat mahdollisuudet

HELIA 14 (14) Suositus Tavoittele tietoriippumattomuutta! Ä Älä viittaa ohjelmissa koskaan suoraan tauluihin! Ä Käytä välissä näkymää