HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Samankaltaiset tiedostot
Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

HELIA 1 (14) Outi Virkki Tiedonhallinta

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietohakemisto ja Transaktionkäsittely

Sovellusarkkitehtuurit

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tiedonhallinta

Näkymät ja tiedon suojaus

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Tietokannanhallintajärjestelmä (DBMS)

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietokantakurssit / TKTL

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

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

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIETOKANNAT JOHDANTO

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokanta (database)

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI ( )

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

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

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

Integrointi. Ohjelmistotekniikka kevät 2003

HELIA 1 (1) Outi Virkki Tiedonhallinta :43

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

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

Luento 3 Tietokannan tietosisällön suunnittelu

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Action Request System

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

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

FYYSINEN SUUNNITTELU

Ohjelmistoarkkitehtuurit. Kevät

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantarakenteet ja -algoritmit 6. harjoitus

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Maiju Mykkänen Susanna Sällinen

erasmartcardkortinlukijaohjelmiston

HELIA 1 (17) Outi Virkki Tiedonhallinta

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

WordPress Multisiten varmuuskopiointi

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

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

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

Fakta versio Forecast versio

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

FuturaPlan. Järjestelmävaatimukset

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Tietokantojen hallinta

Uutta Remote Support Platform 3.0 -versiossa

Fyysinen suunnittelu

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

FYYSINEN SUUNNITTELU

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

Visma Avendon asennusohje

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa


Tietokantojen perusteet

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Perinteiset asennuspaketit

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

IIO10200 Tietokantaohjelmointi (4 op)

käännös käännösvaiheessa tarkasettaan linkitys

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

TIETOKANNAN SUUNNITTELU

SQL - STRUCTURED QUERY LANGUAGE

SAP. Lasse Metso

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

HELIA TiKo-05 1 (10) Outi Virkki ICT03D Tieto ja tiedon varastointi yrityksessä

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

TK Palvelinympäristö

Transkriptio:

HELIA 1 (19) Luento 3.0 Tietokannan hajautus... 2 Haasteita... 3 Hajautusvaihtoehtoja... 4 Segmentointi... 5 Replikointi... 9 Mobiilitietokannat ja synkronointi... 10 Hajautetun tietokannan idea... 11 Paikallinen autonomisuus... 12 Alustariippumattomuus... 12 Sijainnin tuntumattomuus... 13 Hajautettu tapahtuman käsittely... 14 Hajautuksen hallinta sovelluksessa... 16 Oracle ja hajautus... 17 Tietokantojen identifiointi... 17 Linkit tietokantojen välillä... 18 Sijainnin tuntumattomuus... 19

HELIA 2 (19) Tietokannan hajautus Loogisesti yhteen kuuluvia tietoja, jotka on hajautettu eri tietokoneille / tietokantainstansseihin Ä Jokaisessa sijaintipaikassa on Autonominen tiedon prosessointi Paikallisia sovelluksia, jotka hyödyntävät paikallista tietokantaa Ainakin yksi globaali sovellus, joka tarvitsee tietoja useammasta sijaintipaikasta Ä Tietokantasuunnittelun näkökulma... Edut Ä Tietokannan rakenne vastaa organisaation rakennetta ja toimintaa Ä Hajasijoitettu yritys hajautettu tietokanta... Ä Paikallinen tieto säilytetään paikallisesti ja kaikille yhteinen data on saatavilla globaalisti Esim. pankkijärjestelmä... Å Parempi suorituskyky usein toistuvissa tehtävissä Å Parempi saavutettavuus (<- redundanssi!) Å Paikallinen autonomia Å Skaalautuvuus Haitat Ä Kompleksisuus! (ohjelmiston & hallinnoinnin) Ä Kalleus Ä Tietoliikenteen määrä minimoitava

HELIA 3 (19) Haasteita Ä Hajautetun tietokannan suunnittelu Ä Hajautettujen tapahtumien (kyselyt & päivitykset) hallinta Ä Samanaikaisuuden hallinta hajautetussa ympäristössä Ä Toipumisen hallinta hajautetussa ympäristössä Ä Käyttöjärjestelmien epäyhteensopivuus Ä Tiedonhallintajärjestelmien epäyhteensopivuus SQL Processing Directory Management Distributed DB Design Transaction management

HELIA 4 (19) Hajautusvaihtoehtoja 1. Taulujen hajautus eri (loogiset) taulut eri tietokannoissa 2. Taulun hajautus / Segmentointi / fragmentointi samasta taulusta eri toteutukset eri tietokannoissa ts. useampi taulu toteuttaa yhden loogisen olion 3. Taulun hajautus / Replikointi tiettyjen taulujen kopiointi muihin tietokantoihin Ä Tavoitteena saavutettavuuden parantaminen maantieteellisesti hajautetussa ympäristössä Ä Fragmentointi Ä Replikointi Ä Ratkaistava yhdessä... loogista suunnittelua fyysisen tallennuksen suunnittelua Ä Huom: käsitteistö yhä epäyhtenäinen

HELIA 5 (19) Segmentointi Useampi taulu toteuttaa yhden loogisen tietokantakuvauksen olion Jakaminen minimimäärään erillisiä loogisen taulun R alitauluja, segmenttejä R 1, R 2, R 3,..., R n Segmentit yhdessä sisältävät tarpeellisen informaation alkuperäisen taulun R konstruoimiseen Loogista hajautusta Ä Ei redundanssia! Ä Käyttäjien (ohjelmoijien) todennäköisesti tiedettävä segmentoinnista... Ä Riippuu RDBMS:n tuesta mm. näkymien päivitettävyydestä Ä Voi parantaa suorituskykyä: Ä segmentoidut taulut ovat pienempiä ja siten nopeampia läpilukea Ä hajautetussa ympäristössä tietoliikenteen osuus pienenee

HELIA 6 (19) Horisontaalinen segmentointi Taulun rivien osajoukkoja Ä Rekonstruointi = union

HELIA 7 (19) Vertikaalinen segmentointi Taulun sarakkeiden osajoukkoja (dekompositio) Ä Rekonstruointi = join

HELIA 8 (19) Ä Taulu voidaan segmentoida sekä horisontaalisesti että vertikaalisesti H_ID SUKUNIMI ETUNIMI SYNT_AIKA KOTIKUNTA 4058 Sihvo Heidi 1962 Mänttä 2340 Leppilam Anu 1958 Helsinki pi 5902 Keränen Asko 1962 Helsinki 2898 Tilsa Jukka 1959 Orivesi Vertikaalinen segmentti Horisontaalinen segmentti Segmentoinnin suunnittelu Ä Keskeiset tietokannan käsittelytoimenpiteet ja niissä käytetyt valintaehdot Ä Segmenttien on oltava erillisiä ts. sama rivi ei saa esiintyä kuin yhdessä fragmentissa Ä Suurin mahdollinen segmentti on alkuperäinen taulu R pienin mahdollinen segmentti on 1 rivi Sopiva koko näiden välissä...

HELIA 9 (19) Replikointi Täysi / osittainen replikointi a) Täysi kopio koko tietokannasta kussakin (osa)tietokannassa b) Kriittiset taulut / segmentit kopioidaan Pääesiintymän / samanarvoisten replikointi a) Vain master -esiintymää voi päivittää päivitys vyörytetään muihin esiintymiin joko välittömästi, viivästetysti tai ajastetusti b) Kaikkia esiintymiä voi päivittää, päivitykset vyörytetään muihin esiintymiin Ä Redundantin tiedon hallintaongelma! Replikoinnin ajoitus a) Synkroninen replikointi Tieto kopioidaan kaikkiin sijaintipaikkoihin samassa tapahtumassa b) Asynkroninen replikointi Ensisijaisen esiintymän päivitys ei riipu sen otetaulujen saatavilla olosta (ts. tapahtuma ei peruunnu, jos päivitystä ei voida välittömästi vyöryttää) Ä Toissijaisten kopioiden RDBMS:t huolehtivat päivitysten vyörytyksestä mahdollisimman pian (synkronointi) c) Ajastettu replikointi Tieto kopioidaan ajastetusti kaikkiin sijaintipaikkoihin (pääkopiosta otetauluihin)

HELIA 10 (19) Mobiilitietokannat ja synkronointi Käyttöliittymä Sovelluslogiikka DBMS Käyttöliittymä Sovelluslogiikka DBMS lite DB kiinteä DB Perinteinen Sovellusrakenne Mobiili Sovellusrakenne Ä Mobiilitietokantaan vain tarvittava osa isäntäsovelluksen Tietokannasta Toiminnallisuudesta Ä Synkronointi Asynkroninen replikointi molempiin suuntiin Virhetilanteiden käsittely Konfliktien käsittely

HELIA 11 (19) Hajautetun tietokannan idea 1. Kukin tietokanta on oma itsenäinen kokonaisuutensa 2. Tietokannat toimivat yhteistyössä se. käyttäjä voi käsitellä etätietokannan tietoja ikään kuin ne olisivat paikallisessa / keskitetyssä tietokannassa Ä Tietokannat voivat sijaita myös samassa koneessa... (esim. testi- ja tuotantokanta) Virtuaalinen tietokanta Sovellus näkee tiedot samalla tavalla ts. riippumatta niiden fyysisestä sijainnista Ä Ts. sovellus toimii samoin kuin jos kaikki data sijaitsisi yhdessä fyysisessä koneessa ja yhdessä tietokannassa Ä Tietokantatuotteiden tuki vaihteleva...

HELIA 12 (19) Paikallinen autonomisuus Operaatiot hallitaan ja toteutetaan paikallisesti (suojausten, eheyden valvonta, tilankäyttö,...) Data kuuluu aina johonkin fyysiseen tietokantaan, vaikka voikin olla tavoitettavissa toisesta tietokannasta Toiminta ei riipu minkään muun tietokannan toiminnasta Ä Ei täydellistä itsenäisyyttä, vaan mahdollisimman suuri Päätietokanta vrs. samanarvoiset tietokannat? a) Keskitetty kyselyn ja tapahtuman hallinta sekä tietohakemiston ylläpito b) Tietokannat keskenään tasa-arvoisia; ei päätietokantaa Alustariippumattomuus Käyttöjärjestelmäriippumattomuus Tietoliikenneriippumattomuus DBMS -riippumattomuus Tiedonhallintajärjestelmien tuettava samaa rajapintaa esim. standardi-sql:ää GATEWAY a) Standardi API (JDBC, ODBC) b) Toimittajakohtainen rajapinta joka saa RDBMS-A:n näyttämään RDBMS-B:ltä

HELIA 13 (19) Sijainnin tuntumattomuus Location transparency / independency Käyttäjän / sovellusohjelmoijan ei tarvitse tietää, missä tieto fyysisesti sijaitsee Käyttäjä / sovellusohjelmoija voi toimia ikään kuin kaikki käsiteltävä data olisi paikallista Ä Yksinkertaistaa ohjelmointityötä Ä Uusien tietokantojen lisääminen / olemassa olevien siirtäminen ei vaadi koskemista sovellusohjelmistoon Segmentoinnin tuntumattomuus Segmentation / Fragmentation independency / transparency Saman taulun eri rivit eri fyysisissä tietokannoissa tarkoituksenmukaisen sijoittelun vuoksi Ä esim. NY:n työntekijät NY:n tietokannassa ja LA:n LA:n tietokannassa jne. Käyttäjä / sovellusohjelmoija voi toimia suhteessa loogiseen tauluun Otetaulujen tuntumattomuus Replication independence / transparency Tietyn relaation tai sen osan (segmentin) fyysinen kopio Käyttäjä / sovellusohjelmoija voi toimia suhteessa loogiseen tauluun Otetaulut voitava pudottaa ja luoda uudelleen ilman että toiminta häiritsee sovelluksen käyttöä

HELIA 14 (19) Hajautettu tapahtuman käsittely Tapahtuma Joukko tietokannan käsittelytoimenpiteitä, (kyselyjä, lisäyksiä, muutoksia, poistoja) jotka muodostavat loogisen kokonaisuuden Yhdestä tai useammasta tietokantaoperaatiosta koostuva kokonaisuus, jolle voidaan taata jakamattomuus, pysyvyys, erillisyys ja oikeellisuus Ä Tapahtumaan kuuluvat toimenpiteet joko suoritetaan kokonaisuudessaan tai hylätään kokonaisuudessaan COMMIT TRANSACTION ROLLBACK TRANSACTION aloita tapahtuma vahvistus ONNISTUNUT VAHVISTETTU päätä tapahtuma AKTIIVINEN virhe peruutus PÄÄTTYNYT luku kirjoitus EPÄ- ONNISTUNUT PERUUTETTU Ä Samanaikaisuuden hallinta (Concurrency Control) Ä Toipuminen (Recovery)

HELIA 15 (19) 2-vaiheinen vahvistus (2-phase commit) Joko kaikki etätietokannat vahvistavat (commitoivat) tai kaikki peruvat Vaihe1 1. Koordinoiva RDBMS vaatii osallistuvat RDBMS:t valmiustilaan vahvistusta tai peruutusta varten. 2. Osallistuvat RDBMS:t kirjoittavat fyysisen lokitiedon tehdyistä muutoksista ja raportoivat koordinoivalle RDBMS:lle ok (tai ei Ok). Vaihe 2 3. Koordinoiva RDBMS kirjoittaa päätöksen fyysiseen lokiin; commit jos kaikki osallistuvat RDBMS:t vastasivat ok ja rollback jos jokin vastasi ei ok tai vastaus puuttui. 4. Koordinoiva RDBMS viestii päätöksestään osallistuville RDBMS:lle, joiden on tehtävä paikallinen commit / rollback koordinoivan RDBMS:n ohjeen mukaisesti. Ä Hajautetun tietokannan transaktion hallinta on loogisesti mahdotonta tehdä pitäväksi!

HELIA 16 (19) Hajautuksen hallinta sovelluksessa Esim. ODBC:n yli yhteys useampaan myös. eri toimittajan tietokantaan Ä Transaktion hallinta rakennettava sovellukseen (tietokantaohjelmointia...) Sovelluspalvelimet Autentikointi ja auktorisointi - tietoturva Tilan ja istunnon hallinta Tapahtumien (transaktioiden) käsittely Yhteydet moniin tietovarastoihin Sovelluslogiikka erilleen järjestelmäratkaisuista Eri komponenttiarkkitehtuurien yhdistäminen (EJB, CORBA, (Active X?)) Skaalautuvuus Toimintavarmuus 'carefree' Internet Ä Työnjako sovelluspalvelimen ja RDBMS:n välillä?

HELIA 17 (19) Oracle ja hajautus 1. SQL*Net ajurit kuhunkin tietokantapalvelimeen 2. Kullekin tietokannalle yksilöivä nimi 3. Kuhunkin tietokantaan luodaan database_link objekti kullekin muulle tietokannalle Ä Tietokantaversioiden välillä voi olla yhteensopivuusongelmia Ä Oraclessa alemmasta versiosta ei pysty päivittämään ylemmässä versiossa olevia tietoja Tietokantojen identifiointi Kullekin verkon tietokannalle yksilöivä nimi: 1. DB_DOMAIN Verkkodomain-nimi + 2. DB_NAME Tietokantainstanssin nimi Esim: DB_NAME = TEST DB_DOMAIN = MYY.HELIA.FI Í TEST.MYY.HELIA.FI Ä Nimen muuttaminen myöhemmin in hankalaa... Ä Tallennetaan tietohakemistoon GLOBAL_NAME -näkymään

HELIA 18 (19) Linkit tietokantojen välillä Ä Kuhunkin tietokantaan luodaan database_link objekti kullekin muulle tietokannalle CREATE PUBLIC DATABASE LINK <database_name> USING <connect_string> CREATE DATABASE LINK <database_name> CONNECT TO <user> IDENTIFIED BY <password> Ä Tallennetaan tietohakemistoon näkymiin USER_DB_LINKS ALL_DB_LINKS DBA_DB_LINKS DROP PUBLIC DATABASE LINK <database_name>

HELIA 19 (19) Sijainnin tuntumattomuus a) Paikallinen näkymä CREATE VIEW W_emp AS SELECT empno,... FROM scott.emp@guest.oracle.com; b) Paikallinen synonyymi CREATE SYNONYM emp FOR scott.emp@guest.oracle.com; Segmentoinnin tuntumattomuus Ä Horisontaalinen segmentointi - UNION näkymä Ä Vertikaalinen segmentointi - JOIN näkymä + synonyymi Ä Näkymien päivitettävyys todennäköinen ongelma Otetaulujen tuntumattomuus Ä Otetauluja ei voi käyttää päivitysoperaatioissa