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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

SQL - STRUCTURED QUERY LANGUAGE

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

3. Taulujen määrittely ja muuttaminen

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

SQL-KIELEN PERUSTEET

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

TIETOKANNAT JOHDANTO

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Näkymät ja tiedon suojaus

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

Liitokset - haut useaan tauluun

CSE-A1200 Tietokannat

Tietokantakurssit / TKTL

HELIA 1 (15) Outi Virkki Tiedonhallinta

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

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

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

IIO10200 Tietokantaohjelmointi (4 op)

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

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

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

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

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

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)]

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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);

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Tietohakemisto ja Transaktionkäsittely

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

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

TIETOVARASTOJEN SUUNNITTELU

Tietovarastojen suunnittelu

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

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

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

Tietokantojen perusteet

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

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

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

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

FYYSINEN SUUNNITTELU

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

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

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

MySQL Maestro. Aleksi Korpela IST4SO Markus Lamminaho IST4SO

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

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;

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

Tietokannat II -kurssin harjoitustyö

TIETOKANNAN SUUNNITTELU

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

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 Jouni Huotari 2000-2009 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 Jouni Huotari 2000-2009 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; Jouni Huotari 2000-2009 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) Jouni Huotari 2000-2009 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 Jouni Huotari 2000-2009 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ä Jouni Huotari 2000-2009 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) Jouni Huotari 2000-2009 75

Indeksoinnin etuja: INDEKSIEN KÄYTTÖ 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 Jouni Huotari 2000-2009 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ä Jouni Huotari 2000-2009 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 Jouni Huotari 2000-2009 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 Jouni Huotari 2000-2009 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' Jouni Huotari 2000-2009 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/ Jouni Huotari 2000-2009 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.) Jouni Huotari 2000-2009 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ö SQLkannoissa Ks. Ari Hovin kirja, luku 5 Jouni Huotari 2000-2009 83