+ All Categories
Home > Documents > PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Date post: 24-Feb-2016
Category:
Upload: royal
View: 38 times
Download: 0 times
Share this document with a friend
Description:
PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU. Dne: 8.4.2013. Jan Trčka. Obsah. Zadání Pojmy Replikace databází Verzování Reconciling , reconcile Posting , post Scénáře při verzování v ArcSDE PostgreSQL – uzamykání Deadlock Závěr Literatura. Zadání. - PowerPoint PPT Presentation
26
PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU Jan Trčka Dne: 8.4.2013
Transcript
Page 1: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO

PŘÍSTUPU

Jan TrčkaDne: 8.4.2013

Page 2: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Obsah• Zadání• Pojmy• Replikace databází• Verzování• Reconciling, reconcile• Posting, post• Scénáře při verzování v ArcSDE• PostgreSQL – uzamykání• Deadlock• Závěr• Literatura

Page 3: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Zadání• Popsat mechanizmy pro správu víceuživatelského přístupu a

pro dlouhé transakce.• Popsat víceuživatelské přístupy v rámci ArcSDE (verzování a

replikování).• Jak se řeší víceuživatelské přístupy v různých technologiích,

zaměřit se především na prostorová data.

Page 4: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Pojmy• Databáze – jedná se o uspořádanou množinu informací uloženou

na paměťovém médiu. Můžeme ji definovat jako souhrn vázaných dat, které jsou ukládány bez tzv. redundance. Databáze obsahuje 4 základní části: hardware, software, datové prvky a uživatelé. Vkládání, mazání a změny dat jsou prováděny centrálně.

• Redundance – častý jev v databázích, kdy může dojít k duplicitě dat = zbytečně rozsáhlé databáze.

• Databázový systém – je tvořen databází a systémem řízení báze dat. Obsahuje 4 základní části: hardware, software, datové prvky a uživatelé.

• Transakce – jedná se o skupinu příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Z pohledu uživatele je to realizace jedné ucelené operace, která charakterizuje posloupnost operací nad prvky databáze.

Page 5: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Pojmy• Dlouhá transakce – jedná se o proces transakce trvající několik

desítek minut až hodin.• Verzování – umožňuje vytváření více stálých reprezentací databáze

bez zdvojení a omezujícího zamykání dat. Hlavním účelem verzování je zjednodušit proces editace dlouhých transakcí.

• Replikace – replikuji se především data, ke kterým je potřebný rychlý přístup a která jsou často aktualizována, případně mají vyšší stupeň důležitosti. Replikace databází můžeme chápat jako vytvoření a udržování více kopií stejné databáze.

• Zámky - můžeme označit jako synchronizační primitiva pro zajištění výhradního přístupu k systémovým prostředkům ve víceúlohovém prostředí, kde tak brání souběhu. Zámky jsou používány jak v případě, že dochází k cyklickém u přepínání mezi běžícími úlohami, tak při skutečně paralelním běhu úloh ve víceprocesorových systémech.

Page 6: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Replikace databází• Replikace databází může být využita v mnoha systémech řízení

báze dat, obvykle vazba mezi originálem a kopiemi bývá typu master/slave. Master zaznamenává změny, které poté posílá do slavu. Slave zpět oznámí zprávou, že update úspěšně přijal, čímž umožní odeslání (a případné opětovné posílání až do chvíle než je úspěšně aplikován) následujících updatů. Replikace zvyšuje výkon při operaci SELECT, snižuje výkon pro operaci UPDATE, DELETE, INSERT.

Page 7: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Replikace databází• Master/Slave replikaci podporuje jeden hlavní server, který

přijímá požadavky na zápis a čtení, a několik podřízených serverů, které umožňují pouze čtení (SELECT). Nejrozšířenějším volně dostupným řešením tohoto typu je Slony-l.

• Multi-master replikaci podporuje existenci několika serverů s povoleným zápisem na více replikovaných serverech. Toto řešení zvyšuje zátěž serverů, protože je nutná synchronizace serverů. Nejrozšířenějším volně dostupným řešením je PGCluste.

Page 8: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování• je jedna z funkcí prostorové databáze ArcSDE od společnosti

ESRI. Hlavním účelem verzování je zjednodušit proces editace dlouhých transakcí. Pojem verzování se tedy týká pouze jediného produktu, ale to neznamená, že podobnou strategii není možné využít i v jiných prostorových nadstavbách klasických databází.

Page 9: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Reconciling, reconcile• proces, který začlení změny z nadřazené (rodičovské) verze do

verze, která je editována.• reconciling je náročná operace, která automaticky vloží, smaže

a aktualizuje mnoho prvků editované verze. Odtud plyne možnost vzniku konfliktů, úkolem reconcile je všechny tyto konflikty vyřešit.

• reconcile provádíme na editované verzi vzhledem k její libovolné nadřazené verzi, nemůže být provedena vzhledem k verzi na stejné nebo nižší úrovni. Jako jiné operace může být vrácena do původního stavu, tzn. existuje zpětná operace.

Page 10: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Posting, post• proces, který posílá změny z následníka na předka.• operaci post musí bezprostředně předcházet operace reconcile

ke stejné cílové verzi. Pokud mezi operací reconcile a post jiný uživatel změní cílovou verzi databáze, musí být proces reconcile proveden znovu. Díky tomuto opatření během procesu posting nemůže dojít k žádnému konfliktu (vše vyřeší reconcile). Změny provedené operací post jsou nevratné.

Page 11: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Operace reconcile a post

Page 12: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEpřímé editování standardní databáze:• každý uživatel edituje automaticky vytvořenou, nepojmenovanou,

dočasnou verzi - nemusí zvlášť vytvářet verzi vlastní. Po dokončení editace nebo po uložení změn jsou na dočasné verzi automaticky provedeny operace reconcile a post vzhledem k DEFAULT verzi.

• když nastane konflikt, editor musí rozhodnout, které změny uloží. Přímé editování verze DEFAULT se uplatní tam, kde jednotlivé transakce nejsou časově náročné.

Page 13: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEdvouvrstvá verze:• odděluje práce spojené s jedním konkrétním projektem. • je vhodný pro dlouhé transakce - po dobu editování se změny

ukládají do vlastní vytvořené verze databáze, která znamená novou dlouhou transakci, na které může pracovat více uživatelů. Když je projekt dokončen provedou se operace reconcile a post vzhledem k DEFAULT verzi. Po té může být verze projekt smazána nebo uchována pro archivaci.

Page 14: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEdvouvrstvá verze:• v tomto přístupu jsou uživatelská práva k hlavní databázi omezena

pouze na čtení, což donutí editory založit si vlastní verzi databáze. Výhodou dvouvrstvého verzování je logické uspořádání prací na projektu a větší ochrana hlavní databáze. Každý editor může vyvinout vlastní návrh bez ovlivnění původní databáze.

Page 15: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEnáhradník verze DEFAULT:• v tomto přístupu jsou uživatelská práva k hlavní databázi omezena

pouze na čtení, což donutí editory založit si vlastní verzi databáze.• výhodou je logické uspořádání prací na projektu a větší ochrana

hlavní databáze. Každý editor může vyvinout vlastní návrh bez ovlivnění původní databáze.

Page 16: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEvícevrstvá verze:• použití u složitějších projektů• komplexnější projekt zahrnuje mnoho editorů často pracujících v

různých týmech na samostatných úkolech. Efektní způsob organizace práce za takovýchto podmínek spočívá v tom, že týmy pracující na různých částech projektu si vytvoří vlastní verzi, do které editují změny. Po dokončení projektu je verze operacemi reconcile a post aktualizována do hlavní databáze.

Page 17: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEcyklická verze:• každá dlouhá transakce z předchozích scénářů může být rozdělena

podle fází pracovního procesu. Například návrh, schválení a realizace představují tři fáze jednoho projektu a zároveň tři verze databáze.

• nová verze je vytvořena po dokončení předchozí a obsahuje všechny její změny. Operace reconcile a post proto stačí provést jen na poslední verzi v pracovním schématu. Tím se výrazně šetří čas, který by byl nutný, pokud by proces reconcile a post probíhal po skončení každé fáze. Při archivaci jednotlivých vývojových částí projektu můžeme snadno zjistit, co bylo navrhnuto, co schváleno a co realizováno.

Page 18: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEcyklická verze:

Page 19: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEspráva historických verzí:• klíčovým požadavkem mnoha projektů je zachycení historie vývoje

v čase pro archivaci a pozdější kontrolu. • je možné využít verzování a zaznamenat tak časové změny

Uchovávání historických verzí je založeno na událostech při změně databáze (change events). Událost je vyvolána po každé změně stavu databáze. Na základě požadavků projektu nastavíme, v jakých intervalech se mají vytvářet nové verze.

• takovýto přístup podporuje dotazy typu: "Jaký byl stav databáze v určitý čas?", "Jak se změnil určitý objekt během daného období?". Přesnost odpovědi závisí na frekvenci ukládání verzí. U složitějších projektů je tak ukládáno velké množství informací.

Page 20: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Verzování v ArcSDEspráva historických verzí:

Page 21: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

PostgreSQL - uzamykání• PgSQL server při transakčním zpracování dat provádí

automatické zamykání řádků a tabulek, což napomáhá k integritě, především v případě, kdy několik transakcí požaduje přístup k jednomu zdroji. Nastartovaná transakce zamkne řádky tabulek, na nichž probíhají aktivní operace, jako například UPDATE a DELETE, po dobu svého trvání, aby dvě se konkurenční operace nepokoušely měnit data v tabulce, přičemž jedna z nich by aktualizovala data, která již nejsou platná.

Page 22: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

PostgreSQL - uzamykání• u zamykání máme několik módů, které se liší tím, co dovolují a co

nikoliv, klíčovými slovy jsou:

EXCLUSIVE - Výlučný zámek, který nedovoluje zamknout kterékoliv jiné transakci, jinému příkazu, tabulku, nebo řádek. Tento mód zámku je dafaultní, tzn. není li uvedeno EXCLUSIVE, nebo SHARE, je použit tento druh zámku. SHARE - Další příkazy/transakce mohou sdílet tento zámek. Je-li tabulka/řádek zamknuta tímto zámkem, není možné jej "přebít" pomocí zámku EXCLUSIVE. ROW - Uzamčení řádk(u/ů) tabulky. TABLE - Uzamčení celé tabulky, nejvíce restriktivní, pokud jej PostgreSQL serveru nepřikážeme explicitně, tak ta jej použije jen velmi vyjímečně. ACCESS - Zamčení schématu tabulky, tzn. že není možné měnit její strukturu

Page 23: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Deadlock• V případě velkého provozu na databázi (například při souběžném

připojení velikého počtu klientských aplikací) lze narazit na stav, kdy dvě transakce budou vzájemně čekat na výsledek té druhé (1. transakce ke svému dokončení potřebuje výsledek z první a naopak), který se označuje jako Deadlock.

• Systém automaticky jednu z těchto transakcí vrátí (ROLLBACK), protože tyto by jinak mohli čekat do nekonečna. Tomuto stavu lze předejít díky zámkům. PgSQL server má většinu zámků u konkurenčních databází konfliktních, což znamená, že zamkne-li se z aplikace tabulka, nebo řádek, a z jiného klienta je použit zámek, který je konfliktní s tím současným, je tato transakce odmítnuta.

• Pouhým pohledem do tabulky módů zámků lze najít autokonfliktní zámky (tj. jsou v konfliktu sami se sebou), což znamená, že je výhodné je použít. Pokud není možné použít zamčení na stejný typ zámků, bylo by výhodné zajistit, aby nejdříve byly uplatněny ty nejpřísnější zámky z požadovaných.

Page 24: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Závěr• Práce popisuje problematiku víceuživatelských přístupů.

Analyzuje především přístup k databázím v programu ArcSDE a PostgreSQL.

Page 25: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

LiteraturaReplikace databází, Wikipedie, [online]. [cit. 2013-15-03]. Dostupné na WWW: <http://cs.wikipedia.org/wiki/Replikace_databází>

Replikace v PostgreSQL. CSPUG, Praha [online]. [cit. 2013-25-03] Dostupné na WWW: < http://www.cspug.cz/files/cspug-2011-04-19-vondra-replikace.pdf>

Šilhavý, J., Versioning a víceuživatelská editace databáze. Západočeská univerzitav Plzni, FAV. [online]. [cit. 2013-18-03] Dostupné na WWW:<http://gis.zcu.cz/studium/pdb/referaty/2007/Silhavy_VerzovaniGDB/index.html#middleware

Manual Oracle [online]. [cit. 2013-29-03]. Dostupné na WWW:<http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/biee/r1013/mude/mude.htm>

PostgreSQL:Documentations:Manuals:Concurrency Control [online]. [cit. 2013-04-04]. Dostupné na: <http://www.postgresql.org/docs/7.4/static/mvcc.html>

PostgreSQL [online]. [cit. 2013-06-04]. Dostupné na: <http://www.linuxsoft.cz/article.php?id_article=966>

Page 26: PROSTOROVÉ DATABÁZE – MECHANIZMY PRO SPRÁVU VÍCEUŽIVATELSKÉHO PŘÍSTUPU

Děkuji za pozornost


Recommended