Architektury a techniky databázových systémů 30. září 2013 Lubomír Andrle
Vyučující Přednášky Cvičení Lubomír Andrle (lubomir.andrle@unicorn.eu) Software architect – Unicorn Systems a.s. Cvičení Jiří Zechmeister (jiri.zechmeister@upce.cz) Odborný asistent - Univerzita Pardubice David Budáč (david.budac@unicorn.eu) Oracle database specialist – Unicorn Systems a.s.
Organizace předmětu Veškeré informace - http://inads.wordpress.com/ Zápočet Detailní informace v rámci cvičení Zkouška 1. část formou testu 2. část ústní Připomínky, dotazy, náměty Formou e-mailové komunikace Osobně na přednáškách, resp. cvičeních
Obsah předmětu
Cíl předmětu Rozšířit znalosti tvorby databázových systémů Vývojářský versus databázový pohled na IS Seznámit posluchače s praktickými zkušenostmi Zvládnout pokročilé metody práce s SQL databázemi
Co nás čeká Seznámení s databází Oracle (dnes) Architektura databáze Oracle Integrita dat Databázové indexy Zpracování SQL Tvorba efektivních dotazů Execution plan Wait interface a sql trace Transakční zpracování Zabezpečení a ochrana dat Porovnání Oracle s MS SQL Serverem Praktické zkušenosti „Jak to nedělat“ ;)
Úvod do architektury DB
Datová vrstva jako základ IS Základním úkolem IS je zpracování dat vytváření nových čtení a modifikace existujících Kde ukládat data In-memory – typicky operační paměť s objekty Flat file – File system, výměna mezi systémy Structured file – typicky XML Databáze
Datová vrstva jako základ IS II Třívrstvá architektura Úzká interakce s business logikou Problém soudržnosti logiky
Požadavky na databázi Způsob zpracování a množství dat závisí na typu IS OLTP (On-line Transaction Processing) Interaktivní zpracování dat, vyznačující se velkým množstvím přístupů (včetně paralelních), které ale pracují jen s relativně malým množstvím souvisejících dat (typicky může jít o zpracování údajů uživatelem ve formuláři), z typů operací převažuje čtení OLAP (On-line Analytical Processing) Zpracování může sice probíhat jen na části databáze, ale protože se jedná o interaktivní proces, nelze předpovídat, ke kterým datům bude přistupováno, navíc jich je velké množství, protože z nich typicky vznikají statistiky K datům je přistupováno v módu pouze pro čtení
DBMS DB realizovány pomocí Specifického softwarového systému tzv. DBMS (Database Management System) česky - možná nepěkně – SŘBD, Systém řízení bází dat Obecný DBMS se skládá definice modelu dat – relační, hierarchický, objektový, …, určuje typ databáze definice formátů dat na disku - tzv. metadat, katalogu typů záznamů struktur pro uložení vlastních dat - fyzická implementace, zápis/čtení do souborů dotazovacího a manipulačního jazyka nad daty - poskytujícího abstrakci od fyzického uložení mechanizmu pro podporu transakcí pro zajištění konzistence bezpečnostní politiky uživatelské účty oprávnění pro přístupy k datům nástrojů pro podporu správy databází
Typy databází – model dat
Hierarchický a síťový model Data strukturována hierarchicky Vztah reprezentován jako rodič a potomek Potomek vždy přiřazen jednomu rodiči Nejjednodušší si představit na příkladu fungování souborového systému v 70.-80. letech popsán také síťový model odstranil omezení na pouze jediného předka pro každý záznam v praxi se přiliš nerozšířil Výhody rychlost zapracovaná referenční integrita Nevýhody problém se vztahy N:M
Relační model Relační model dat vychází z matematického pojmu relace Sada dvourozměrných tabulek Datové záznamy ukládané do řádků tabulky Každý sloupec představuje jeden atribut záznamu V jedné tabulce jsou uloženy všechny záznamy jednoho typu Typ záznamu je dán seznamem pojmenovaných atributů (sloupců tabulky) datovými typy jednotlivých atributů tzv. integritními omezeními (integrity constraints) Obrovská výhoda v existenci dotazovacího a manipulačního jazyka SQL Představuje společný standard, dodržovaný nejen výrobci relačních databází, ale dokonce i u jiných typů DBMS
Objektový model Místo tabulek jsou uloženy přímo objekty se svými vlastnostmi Není nutné přemýšlet nad strukturami tabulek Nabízí využití možností vícenásobné dědičnosti, zapouzdření a polymorfizmu Implementace Mongo DB Caché … Multi-dimenzionální model
Databáze Oracle
Oracle Unikátnost Oracle Způsob zamykání dat Zámky pouze pro měněná data Zámky na úrovni řádků – neexistuje/není potřeba eskalace Všechno je podřízeno bezpečnosti dat – při dodržení všech best practices prakticky nemůže dojít ke ztrátě dat Důraz na výkon v enterprise řešeních Počítá se s nasazením na odpovídajícím HW, na udržovaném OS s kompetentním adminem ;) Není to „malá“ databáze a nikdy nebude Express edititon lze použít i na malé projekty, ale … Do budoucna se bude hlavně prodávat už dohromady s HW Oracle Exadata Oracle technologies http://www.orafaq.com/wiki/Oracle_Product_Set
Oracle verzování major.maintenance.application-server.component- specific.(platform-specific.) Např. 10.2.0.4.0 SELECT * FROM PRODUCT_COMPONENT_VERSION; Přehled verzí Oracle9i Database Release 1: 9.0.1.0–9.0.1.5 (patchset prosinec 2003) Oracle9i Database Release 2: 9.2.0.1–9.2.0.8 (patchset duben 2007) Oracle Database 10g Release 1: 10.1.0.2–10.1.0.5 (patchset únor 2006) Oracle Database 10g Release 2: 10.2.0.1–10.2.0.5 (patchset duben 2010) Oracle Database 11g Release 1: 11.1.0.6–11.1.0.7 (patchset září 2008) Oracle Database 11g Release 2: 11.2.0.1–11.2.0.3 (patchset září 2011)
Oracle Edice Oracle Edice Enterprise Edition (EE) Licenční politika podle počtu CPU, typicky 4 a více Bez paměťových limitů, Oracle RAC software Standard Edition (SE) Základní sada vlastností, bez paměťových limitů Standard Edition One (SEO) Systémy s 1-2 CPU Express Edition (XE), Volná distribuce Windows a Linux 1 CPU, 4GB paměť, 4GB uživatelská data Oracle Database Lite Mobilní zařízení, synchronizace se serverem Více http://www.orafaq.com/wiki/Oracle_Licensing
Oracle Price-list Ceny uvedeny v USD
Q&A