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

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

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

SQL-KIELEN PERUSTEET

Jouni Huotari & Tapani Äijänen Kalvot perustuvat pääosin Ari Hovin SQL-oppaaseen (Docendo 2004)

SQL-KIELEN PERUSTEET

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

SQL - STRUCTURED QUERY LANGUAGE

HELIA 1 (11) Outi Virkki Tiedonhallinta

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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, SELECT-, INSERT-, CREATE-lauseet

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

3. Taulujen määrittely ja muuttaminen

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

SQL-KIELEN PERUSTEET

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

Näkymät ja tiedon suojaus

CSE-A1200 Tietokannat

Tietokantakurssit / TKTL

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANNAT JOHDANTO

HELIA 1 (15) Outi Virkki Tiedonhallinta

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Liitokset - haut useaan tauluun

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

SQL-KIELEN PERUSTEET JOUNI HUOTARI KALVOT PERUSTUVAT PÄÄOSIN ARI HOVIN SQL-OPPAASEEN (DOCENDO 2004) 1. VERSIO: TAPANI ÄIJÄNEN

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

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

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

IIO10200 Tietokantaohjelmointi (4 op)

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

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

Näkymät ja hakemistot

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

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

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

MYSQL-TIETOKANNAN JA OBJEKTIEN LUOMINEN JA HALLINTA ERI MYSQL- TYÖKALUILLA JOUNI HUOTARI

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietohakemisto ja Transaktionkäsittely

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

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

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

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

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

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

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

OUTER JOIN se vanha kunnon kaveri

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

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

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

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

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

Tietokantojen perusteet

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

MySQL Maestro. Aleksi Korpela IST4SO Markus Lamminaho IST4SO

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

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

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

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

LINUX-HARJOITUS, MYSQL

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

Tietokannat II -kurssin harjoitustyö

TIETOVARASTOJEN SUUNNITTELU

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

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

Tietovarastojen suunnittelu

SQL-kielen perusteet. Tietokantojen perusteet

HELIA 1 (17) Outi Virkki Tiedonhallinta

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

FYYSINEN SUUNNITTELU

HELIA 1 (12) Outi Virkki Tiedonhallinta

Transkriptio:

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, ORDER BY tai COMPUTE ehtoja (useimmissa tuotteissa) Ei voi viitata väliaikaisiin tauluihin Tarvitaan SELECT-oikeus tauluihin Esim: CREATE VIEW Hinnasto AS SELECT nimi, hinta FROM tuote Käyttö: SELECT * FROM Hinnasto K2008 69

Näkymän käyttö Näkymän kautta voidaan päivittää tai lisätä tietoja, mutta yleensä vain yhteen tauluun näkymässä ei saa olla DISTINCT-määrettä, HAVINGlausetta eikä alikyselyä Näkymä poistetaan DROP VIEW -komennolla Jos näkymässä on laskettuja sarakkeita, viewmäärittelyn nimen jäljessä täytyy luetella sarakkeiden nimet: CREATE VIEW ALVhinnasto(nimi, ALVhinta) AS SELECT nimi, hinta*1.22 FROM TUOTE K2008 70

Esimerkki laskentaosasto-näkymästä CREATE VIEW Accounting AS SELECT dname, loc, empno, ename, job FROM dept INNER JOIN emp ON dept.deptno = emp.deptno WHERE dept.deptno = 10; -- 10: ACCOUNTING-osasto SELECT * FROM Accounting; DROP VIEW Accounting; K2008 71

Vinkkejä näkymien luontiin Testaa ensin kysely ja luo vasta sitten näkymä Jos taulun nimi muuttuu, luo kysely jossa on alkuperäisen taulun kentät; tällä tavoin sinun ei tarvitse muuttaa olemassa olevia SELECT- ym. käskyjä Näkymillä voit suojata tietoja käyttäjäryhmittäin Voit rakentaa näkymän toisen näkymän päälle, mutta se voi vaikeuttaa ymmärtämistä Joissakin tuotteissa nk. Materialized view (eli indexed view), jossa näkymä tallennettu levylle (ikään kuin tauluksi) K2008 72

Synonyymit (ei kuulu standardiin) Helpottavat viittaamista tauluun antamalla tauluviittaukselle jokin kuvaava nimi Esim. jos toinen käyttäjä (Pekka) on antanut SELECT-oikeuden omaan tauluunsa (kurssi), voidaan tiedot hakea komennolla SELECT * FROM Pekka.kurssi Luomalla synonyymi (CREATE SYNONYM kurssit FOR Pekka.kurssi) voidaan em. kysely tehdä käskyllä SELECT * FROM kurssit Tarkista tuki synonyymille omasta tuotteestasi K2008 73

Valtuudet Tavoitteena tietojen suojaus Tiedot voidaan suojata käyttäjä- ja taulukohtaisesti Käyttäjiä luodaan useimmissa tuotteissa CREATE USER -käskyllä ja salasana määritetään samalla, esim. CREATE USER jouni IDENTIFIED BY jh1 Joissain tuotteissa salasana luodaan CREATE PASSWORD -käskyllä Käyttöoikeudet voidaan niputtaa nk. rooliin (voi olla myös yksittäinen henkilö) ja luoda CREATE ROLE -käskyllä, esim. CREATE ROLE opettaja Valtuudet myönnetään GRANT-käskyllä, esim. GRANT SELECT ON kirjat TO jouni tai kaikki oikeudet GRANT ALL PRIVILEDGES -käskyllä Valtuudet poistetaan REVOKE-käskyllä ja käyttäjä DROP USER tai DROP ROLE -käskyllä K2008 74

Indeksit Tauluille voidaan perustaa sarakekohtaisia hakemistoja eli indeksejä, esim. CREATE INDEX i_postinro ON henkilo(postinro) Indeksien käytön tarkoituksena on mm. nopeuttaa tietokantaan tapahtuvia hakuja Yksilöivä (unique) indeksi voi toimia myös perusavaimena CREATE UNIQUE INDEX i_sarake ON taulu(sarake) K2008 75

Indeksien käyttö Indeksoinnin etuja: hakujen, liitosten, ryhmittelyjen ja lajittelujen nopeutuminen pakottaa yksilöimään rivit Kannattaa indeksoida: perusavaimet ja viiteavaimet (jokainen viiteavain erikseen!) sarakkeet, joita haetaan tai järjestetään usein (ja joissa on paljon tietoa eli rivejä on tuhansia tai miljoonia) Indeksointi vie levytilaa ja aikaa luotaessa ja muutoksissa Ei kannata indeksoida: harvoin haussa käytettäviä sarakkeita sarakkeita, joiden selektiivisyys on huono K2008 76

Peukalosääntö indeksin luomiselle (nk. 3 tähden indeksi) 1. Ota kaikki WHERE-kohdassa mainitut sarakkeet 2. Lisää ORDER BY kohdassa mainitut sarakkeet 3. Laita loppuun SELECT-lauseessa olevat sarakenimet Esim. sopiva indeksi SELECT a, b, c FROM t WHERE d = x ORDER BY b käskylle olisi CREATE INDEX i_dbac ON t(d,b,a,c) Jos kaikki SELECTissä mainitut sarakkeet on mukana indeksissä, kyse on paksusta indeksistä Indeksi poistetaan DROP INDEX -käskyllä K2008 77

Tietokannan ja tietokantakaavan ( skeeman ) perustaminen + systeemihakemisto Tietokanta luodaan monissa tuotteissa CREATE DATABASE -käskyllä, esim. CREATE DATABASE kirjat Tietokantakaava (schema) on kokoelma tietokantaobjekteja (taulut, näkymät jne.), se vastaa siis käsitettä tietokanta; kaava luodaan käskyllä CREATE SCHEMA Tieto eri tietokantaobjekteista on nk. tieto- eli systeemihakemistossa (catalog, data dictionary, schemata); sen nimi standardin mukaan: INFORMATION_SCHEMA Tietokantakaavan omistaa aina yksi henkilö (rooli) Tietokanta otetaan käyttöön eri tuotteissa eri tavoilla: USE-käskyllä (MS SQL-Server, MySQL) Connect käskyllä (Oracle, Ocelot) Standardissa on käsky SET SCHEMA K2008 78

Haut systeemihakemistosta Käskyt vaihtelevat tuotteittain Lista (käyttäjän) tauluista saadaan eri tuotteissa seuraavilla käskyillä: SHOW TABLES (MySQL) SELECT table_name from user_tables (Oracle) SELECT tname FROM tab (Oracle) SELECT table_name FROM information_schema.tables (SQL Server) Lista tietohakemiston sisältämistä tietokannoista ja niiden omistajista (Ocelot): SELECT catalog_name, schema_name, schema_owner FROM information_schema.schemata K2008 79

Taulun sarakkeiden kuvaus Useissa tuotteissa (Oracle, DB2, MySQL) on käsky DESCRIBE, joka kertoo tietoa sarakkeista ja niiden tietotyypeistä, esim. mysql> DESCRIBE city; +------------+----------+------+-----+---------+----------------+ Field Type Null Key Default Extra +------------+----------+------+-----+---------+----------------+ Id int(11) NO PRI NULL auto_increment Name char(35) NO Standardin mukaan: SELECT column_name, data_type, column_default, is_nullable FROM information_schema.tables AS t JOIN information_schema.columns AS c ON t.table_catalog = c.table_catalog AND t.table_schema = c.table_schema AND t.table_name = c.table_name WHERE t.table_name = 'TABLE-NAME' K2008 80

Lisätietoa Relaatiotietokantasanasto: http://www.cs.helsinki.fi/~laine/relaatiosanasto/ Historiaa ym.: http://en.wikipedia.org/wiki/sql Suomeksi: http://fi.wikipedia.org/wiki/sql Yhteenveto: http://www.ocelot.ca/glossary.htm SQL-kurssi: http://sqlcourse.com ja http://sqlcourse2.com SQL-standardeista: http://www.jcc.com/sql.htm Tuotteiden erosta: http://troels.arvin.dk/db/rdbms/ K2008 81

Yhteenveto perus-sql-käskyistä DML: tietojen ylläpitoon INSERT INTO, UPDATE SET ja DELETE ja hakuihin SELECT FROM DDL: CREATE, ALTER JA DROP Valtuuksien käsittelyyn GRANT ja REVOKE Tapahtumankäsittelyn ohjaamiseen BEGIN [TRANSACTION] ja END, SET TRANSACTION ISOLATION LEVEL, COMMIT ja ROLLBACK Tietokantarajapinnat (toteutus pitkälti tuotekoht.) K2008 82

Mitä seuraavaksi? SQL-kielen ohjelmointikäyttö Proseduurit, herättimet (eli triggerit) ja omat funktiot API-liittymät Muut SQL:n erityispiirteet kuten XML:n käyttö SQL-kannoissa Ks. Ari Hovin kirja, luku 5 K2008 83