Näkymät ja hakemistot



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

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

Näkymät ja tiedon suojaus

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

SQL - STRUCTURED QUERY LANGUAGE

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

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

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

CSE-A1200 Tietokannat

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Liitokset - haut useaan tauluun

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

Käyttövaltuushallintaa kehitetään (SAP IDM -projekti), hyödyt virastoille

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

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

Käyttöjärjestelmät: Virtuaalimuisti

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

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

HELIA 1 (15) Outi Virkki Tiedonhallinta

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

Näkymät ja tiedon suojaus

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

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

Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio

Kuvapankki Imagebank Independent

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

Tietokannat II -kurssin harjoitustyö

CSE-A1200 Tietokannat

Tutkimusdatan keräys ja hallinta. Teemu Kuulasmaa Bioinformaatikko Itä-Suomen yliopisto Sisätaudit

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

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

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

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

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

Käsiteanalyysi prosessina ja tarveanalyysi

TIETOKANNAT JOHDANTO

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

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

LINUX-HARJOITUS, MYSQL

Tietokantakurssit / TKTL

Lisää segmenttipuusta

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

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

A TIETOKANNAT, 4 op Kevät TI09

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

SQL ohjelmoijan muistilista DB2 v7

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

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

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

SELECT-lauseen perusmuoto

Opintopiiritehtävä 3: Verkkohuutokauppa

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

Tietokannat II -kurssin harjoitustyö

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

Massaeditorikoulutus KANSALLISKIRJASTO - Kirjastoverkkopalvelut

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Lue ohjeet huolellisesti ennen laitteen käyttöä.

Ohjelmiston käyttäjätunnukset ja käyttöoikeudet

Katso-tunnistautuminen. Jyrki Laitinen ja Johanna Kallio Järjestelmän koulutus syksy 2015 Suomen ympäristökeskus SYKE

Windows Live SkyDrive - esittely

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

Sonera Hosted Mail -palvelun käyttöohje

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

MYEERIKKILÄ OHJEET PELAAJALLE

Opiskeluoikeuksien maaran tiedonkeruu

2. Kirjoita sähköpostiosoitteesi sille varattuun kenttään ja paina Lähetä varmistusviesti -painiketta.

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Hae Opiskelija käyttöohje

Kyselyn yleisrakenne:

3. Taulujen määrittely ja muuttaminen

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Outlook Microsoft Outlook 2007 PIKAOHJE: SÄHKÖPOSTIN UUSI ILME. Kieliversio: suomi Materiaaliversio 1.0 päivitetty

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Aluksi Kahden muuttujan lineaarinen epäyhtälö

Transkriptio:

Näkymät ja hakemistot A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin opintomoniste Eri web-lähteet Näkymä (View) Näkymä on talletettu kysely Eräänlainen virtuaalinen taulu Helpottaa usein tehtyjen kyselyjen tekoa Ei tarvitse muistaa pitkiä kyselylausekkeita Toimivat turvallisuusmekanismina Muutetaan tiedon esitysmuotoa Luodaan "raportteja" (koostettua tietoa) Karsitaan näytettäviä sarakkeita tai rivejä 1

SQL: Näkymän luonti Syntaksi: CREATE VIEW <nimi> AS <SQL-SELECT-lause>; CREATE VIEW TI08 AS SELECT Etunimi, Sukunimi, Opintopisteet FROM Opiskelijat WHERE Ryhma = TI08 ; SQL: Näkymä Näkymää voi tämän jälkeen käyttää, kuten tavallista taulua Rajoitteita ja ehtoja voi myös lisätä Syntaksi: SELECT * FROM <view>; SELECT * FROM TI08; SELECT * FROM TI08 WHERE Opintopisteet < 80; (Huom. MySQL:ssä näkymät tulivat mukaan v. 5.01:ssä) 2

Taulun muuttaminen näkymän avulla Taulun tietoja voi myös muuttaa näkymästä Voidaan tehdä lisäyksiä, poistoja sekä muutoksia Edellyttää, että tietyt ehdot täyttyvät Näkymää voidaan päivittää, jos Näkymän muodostuksessa ei ole käytetty DISTINCT määrettä tai koosteoperaattoreita WHERE-osassa ei ole R:ään kohdistuvaa alikyselyä SELECT-osassa on riittävästi ominaisuuksia (vähintään pääavaimet ja NOT NULL-sarakkeet) Taulun muuttaminen näkymän avulla INSERT INTO TI08 VALUES( Into, Insinööri,240); Edellinen lisäys tehdään oikeasti Opiskelija-relaatioon Opiskelija_ID Etunimi Sukunimi Osoite Puhelinnro Opintopisteet Entä ominaisuudet, jotka eivät ole mukana näkymässä? Näiden arvoksi tulee NULL 3

Indeksi eli hakemisto (Index) Relaation kaikkien kenttien perusteella voi tehdä hakuja Hakunopeus voi kuitenkin vaihdella suuresti Indeksien tarkoituksena on varmistaa yksilöivyys nopeuttaa hakuja estää lajitteluja Indeksi eli hakemisto (Index) Taulusta erillinen tietojoukko Indeksien avulla pyritään siis tehostamaan monikoiden hakemista tauluista Voidaan luoda vain perusrelaatioille Käytetään automaattisesti (päättely WHERE ja/tai ORDER BY osissa olevien ominaisuuksien perusteella) Yksittäinen indeksi ei nopeuta kaikkia hakuja Suunnitellaan erikseen kunkin tyyppisille hauille Muodostetaan indeksiin valittujen ominaisuuksien arvoista ja niitä vastaavien rivien tietueosoitteista Ominaisuuksien järjestyksellä on indeksin määrittelyssä väliä! Sisältää viitteet varsinaisiin tauluissa oleviin monikoihin 4

Indeksi eli hakemisto (Index) Perusavaimen perusteella tehdään aina indeksi Viiteavaimet voidaan indeksoida, jotta viittaukset taulujen välillä olisivat nopeita Myös tärkeät ja usein käytetyt hakutermit kannattaa yleensä indeksoida Taulujen indeksointi vaikuttaa ainoastaan suorituskykyyn ei hakujen logiikkaan Indeksit voivat myös haitata vievät levytilaa, hidastavat päivityksiä (indeksitkin pitää päivittää) Indeksit pyritään pitämään keskusmuistissa SQL Indeksi Indeksin perustaminen: CREATE INDEX <indeksin_nimi> ON <taulu>(<ominaisuudet>); CREATE INDEX opiskelija_nimi ON Opiskelija(Sukunimi, Etunimi); Indeksin poistaminen: DROP INDEX <indeksin_nimi>; DROP INDEX opiskelija_nimi; 5

Indeksointiohjeita Mitä kannattaa (yleensä) indeksoida: useasti liitoksissa käytettävät sarakkeet (erityisesti pää ja vierasavaimet, jos tkhj ei hoida automaattisesti) useasti WHERE ja ORDER BY osissa olevat sarakkeet sarakkeet & sarakeyhdistelmät joissa on vain vähän samoja arvoja älä indeksoi (rivimäärältään) pieniä relaatioita Muista ominaisuuksien järjestys indeksissä: yhtä ominaisuutta käytetään usein hakemistossa ensimmäiseksi tiettyä ominaisuusyhdistelmää käytetään usein mahdollisesti useita hakemistoja ja kaikkein valikoivin ominaisuus ensimmäiseksi Tietokannan käyttöoikeudet Tietokannan käyttöä voidaan rajata käyttäjillä valtuuksilla näkymillä Näkymillä voidaan rajata, kuka pääsee mihinkin osaan relaatiosta kiinni (riveihin tai sarakkeisiin) Käyttäjille voidaan antaa erilaisia käyttöoikeuksia eli valtuuksia taulu- tai näkymäkohtaisesti Jos perustauluja käsitellään näkymien kautta voidaan varmistua siitä, että kukin käyttäjä pystyy käsittelemään vain niitä tietoja joita hänen kuuluukin pystyy tekemään tiedoille vain sallitut operaatiot 6

Tietokannan käyttäjätunnukset Tietokantaan on (yleensä) erilliset käyttäjätunnukset ei mitään tekemistä alla olevan käyttöjärjestelmän käyttäjätunnusten kanssa (vrt. kurssin db-palvelin) tietokannalle luodaan omat käyttäjätunnukset (ja yleensä näihin liittyvät salasanat) Käyttäjätunnuksen luonti SQL:ssä CREATE USER <user_id> IDENTIFIED BY <password>; Tietokannan käyttöoikeudet Tietokantayhteyttä avattaessa käyttäjä tunnistetaan kysytään käyttäjätunnus ja salasana Nämä voidaan antaa myös yhteydenottopyynnön parametreina (vrt. esim. php: mysqli_connect()) Tauluille ja näkymille voidaan antaa käyttäjäkohtaisia valtuuksia Oikeustasoja SELECT - Oikeus hakea tietoa INSERT (sarake) - Oikeus lisätä rivejä, voidaan määrittää sarakekohtaisesti UPDATE (sarake) - Oikeus päivittää tietoa, voidaan määrittää sarakekohtaisesti DELETE - Oikeus poistaa tietoa REFERENCES (sarake) - Oikeus käyttää taulua (tai sen saraketta) viitteissä ALL 7

Valtuuksien myöntäminen Valtuuksia voidaan myöntää SQL:ssä komennolla GRANT: GRANT { <priviledge> ALL PRIVILEGES } ON <table view)> TO { <user> PUBLIC } [ WITH GRANT OPTION ]; GRANT SELECT ON TI08 TO katselija; 8