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

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

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

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

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

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

SELECT-lauseen perusmuoto

SQL - STRUCTURED QUERY LANGUAGE

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Näkymät ja hakemistot

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

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

CSE-A1200 Tietokannat

Näkymät ja tiedon suojaus

Tietokannat II -kurssin harjoitustyö

OUTER JOIN se vanha kunnon kaveri

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

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

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

Liitokset - haut useaan tauluun

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

3. Taulujen määrittely ja muuttaminen

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Opiskeluoikeuksien maaran tiedonkeruu

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

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

TIETOKANNAT JOHDANTO

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

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

SQL:N PERUSTEET MARKKU SUNI

Kyselyn yleisrakenne:

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

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

Makrojen mystinen maailma lyhyt oppimäärä

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

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Tietokantakurssit / TKTL

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Relaatiomalli ja -tietokanta

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Ohjelmoinnin perusteet Y Python

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

Tietokannat II -kurssin harjoitustyö

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

2. Käsiteanalyysi ja relaatiomalli

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

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

Tietohakemisto ja Transaktionkäsittely

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

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

EXEC SQL BEGIN DECLARE SECTION

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

CS-A1150 Tietokannat

Ohjelmoinnin perusteet Y Python

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Transkriptio:

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 kaikkien sarakkeiden perusteella voi tehdä hakuja Taulun rivit ovat (yleensä) epäjärjestyksessä Rivimäärän kasvaessa haut hidastuvat Hakuja voidaan nopeuttaa perustamalla sarakkeille indeksejä Indeksi on tauluun liittyvä aputietorakenne, jota käytetään samaan tapaan kuin kirjan hakemistoa, joka kertoo millä sivuilla haettu termi mainitaan Indeksistä on suora viittaus vastaavalle riville taulussa Indekseillä on kaksi päätarkoitusta: 1. Indeksi takaa sarakke(id)en arvo(je)n yksikäsitteisyyden (UNIQUE INDEX) 2. Indeksi nopeuttaa kyselyitä Indeksin haittapuolia Vievät levytilaa Hidastavat lisäys- ja päivitysoperaatioita Hannu Markkanen Metropolia Ammattikorkeakoulu 3

Indeksin käyttö Indeksi perustetaan aina pääavaimelle (yksilöivä indeksi, UNIQUE INDEX) yleensä viiteavaimille (yhdiste-operaatioiden nopeuttaminen) lisäksi niille tietokannan kentille, jotka toistuvat usein haku- tai lajitteluehdoissa. Jos taululle on määritelty perusavain, useimmat järjestelmät luovat automaattisesti sitä vastaavan indeksin Indeksi voidaan määritellä käyttäen yhtä tai useampaa saraketta Indeksin voi perustaa vaikka tauluun olisi jo ehditty tallettaa rivejä Indeksi vaikuttaa vain suorituskykyyn, ei kyselyjen logiikkaan Hannu Markkanen Metropolia Ammattikorkeakoulu 4

Indeksit SQL:ssä CREATE [UNIQUE] INDEX indeksin_nimi ON taulun_nimi(sarake_lista) DROP INDEX indeksin_nimi Perustetaan nimille indeksi henkilo tauluun: CREATE INDEX henkilo_nimi ON henkilo(snimi, enimi) Poistetaan yllä tehty indeksi (MySQL): DROP INDEX henkilo_nimi ON henkilo Hannu Markkanen Metropolia Ammattikorkeakoulu 5

Näkymät

Näkymät Talletettuja kyselyjä Toimivat ikään kuin ikkunoina tietokannan tauluihin Voi käyttää kuin taulua, mutta ne ovat virtuaalisia (eli tietoja ei talleteta fyysisesti uudestaan vaan ne sijaitsevat oikeissa tauluissa) CREATE VIEW <näkymän nimi> AS <SELECT-lause>; Esimerkki: henkilo (htun, enimi, snimi, kunta, ostun) Luo näkymä tamperelainen, josta löytyy kaikkien tamperelaisten työntekijöiden tiedot. CREATE VIEW tamperelainen AS SELECT htun, enimi, snimi, ostun FROM henkilo WHERE kunta = "Tampere"; SELECT * FROM tamperelainen; SELECT snimi, enimi FROM tamperelainen INNER JOIN osasto ON tamperelainen.ostun = osasto.ostun WHERE osnimi = "Tietohallinto ; Hannu Markkanen Metropolia Ammattikorkeakoulu 7

Näkymät Mihin näkymiä tarvitaan? Kyselylauseista tulee lyhyempiä Helpottaa usein toistuvien kyselyjen tekemistä Tiedon koostaminen ja karsiminen ( raporttien luominen) Näkymien käytössä huomioitava: Näkymä voi perustua toiseen näkymään ORDER BY-lausetta ei saa käyttää näkymän määrittelyssä Näkymiä ei voi indeksoida Näkymälle ei ole ALTER-lausetta rakenteen muuttamiseksi Taulujen tietoihin voi tehdä lisäyksiä (INSERT), poistoja (DELETE) sekä muutoksia (UPDATE) näkymän avulla, mutta siihen liittyy rajoituksia, kuten: Näkymä on muodostettu yhdestä taulusta Näkymässä on vähintään pääavaimet ja NOT NULL-sarakkeet Näkymän muodostuksessa ei ole käytetty DISTINCT määrettä, koosteoperaattoreita tai GROUP BY -määrettä Hannu Markkanen Metropolia Ammattikorkeakoulu 8

Näkymät esimerkki tietojen päivityksestä INSERT INTO tamperelainen(htun, enimi, snimi, ostun) VALUES (3548, "Heikki", "Huttunen", 1); Huomaa että tamperelainen-näkymään kuulumattomien henkilo-taulun attribuuttien arvoksi tulee NULL Voit käyttää SELECT-lausetta apuna osastotunnuksen hakemisessa osaston nimen perusteella: INSERT INTO tamperelainen(htun, enimi, snimi, ostun) SELECT 3549, "Sari", "Sormunen", ostun FROM osasto WHERE osnimi = "Markkinointi"; Hannu Markkanen Metropolia Ammattikorkeakoulu 9

Oikeudet Tietojen katsominen, lisääminen tai muuttaminen voidaan sallia tai estää käyttäjäkohtaisesti Käyttäjän oikeudet määritellään taulu-, näkymä- tai sarakekohtaisesti ja eri operaatiolle (SELECT, CREATE, DELETE, INSERT) Oikeudet annetaan GRANT-komennolla ja poistetaan REVOKE-komennolla GRANT <operaatiot> ON <objekti> TO <käyttäjät> REVOKE <operaatiot> ON <objekti> FROM <käyttäjät> Esimerkkejä GRANT SELECT ON asiakas TO Pekka, Paavo GRANT SELECT ON asiakas TO PUBLIC GRANT INSERT,UPDATE ON asiakas TO Pekka GRANT UPDATE(alennus) ON asiakas TO Paavo REVOKE ALL ON asiakas FROM Pekka, Paavo Sallitaan haku asiakas-taulusta Pekalle ja Paavolle Sallitaan kaikille haku asiakas-taulusta. Sallitaan asiakas-taulun rivien lisäys ja päivitys Pekalle Vain Paavo saa määritellä asiakkaiden alennuksia Poistetaan Pekan ja Paavon kaikki valtuudet Hannu Markkanen Metropolia Ammattikorkeakoulu 10

Talletetut proseduurit Talletettu proseduuri on yhden tai useampia SQL-käskyjä sisältävä ohjelma, jota ohjelmoija voi kutsua eri parametriarvoilla Talletettuja proseduureja käytetään asiakas-palvelinjärjestelmissä vähentämään verkkoliikennettä Voi määritellä myös talletettuja funktion, joka palauttaa arvon sitä kutsuttaessa Esimerkki: Proseduuri, joka laskee kuinka monta henkilöä tietystä parametrin määräämästä kunnasta. DELIMITER // CREATE PROCEDURE henkiloston_maara(out lukum INT) SELECT COUNT(*) INTO lukum FROM henkilo; // DELIMITER ; CALL henkiloston_maara(@henkilo_summa); SELECT @henkilo_summa AS "Henkilöstömäärä"; Huomioitavaa MySQL:n syntaksista DELIMITER vaihtaa komennon päättävän merkin toiseksi (vaihto tehtävä koska proseduurin määrittelyssä pitää käyttää puolipistettä) @-syntaksilla luodaan käyttäjän määrittelemä muuttuja Hannu Markkanen Metropolia Ammattikorkeakoulu 11

Herätin (Trigger) Herätin on tietokantaan tallennettu pieni ohjelma, joka liitetään johonkin tietokannan tauluun Herätin määritellään suoritettavaksi ennen tai jälkeen jonkun seuraavista tietokantaoperaatioista: INSERT, UPDATE, DELETE Herättimiä käytetään yleisimmin huolehtimaan tietokannan eheydestä Verrattuna vastaavien operaatioiden suorittamiseen sovellusohjelmassa, herättimen etuna on nopeus Esimerkki: Herätin, joka poistaa henkilön tiedot projektihenkilö taulusta, jos henkilö poistetaan henkilo-taulusta. henkilo (htun, enimi, snimi, ostun) proj_henk (ptun, htun, tunnit) -- htun on viiteavain henkilo-tauluun CREATE TRIGGER henkilon_poisto ON henkilo BEFORE DELETE FOR EACH ROW BEGIN DELETE FROM proj_henk WHERE proj_henk.htun = OLD.htun; END OLD on MySQL:n tarjoama tunniste, jonka avulla voi viitata poistettavaan tauluun Hannu Markkanen Metropolia Ammattikorkeakoulu 12