Databáze II 1. přednáška Helena Palovská palovska@vse.cz
Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva
Úvod
Co je databáze Mnoho dat Organizovaných používá se model uspořádání Řízený přístup k datům přijímá požadavky v jazyce modelu umožňuje sdílení dat ochraňuje data
Přístup k datům Sdílení dat aplikacemi, paralelní přístup aplikace aplikace DATA DATA aplikace aplikace Vrstva odstiňující aplikace od zapisování dat a čtení dat systém řízení báze dat (SŘBD)
SŘBD Přístup k jednotlivým datovým položkám záznamů, nikoli k celému souboru názvy pro různé objekty databázové struktury na strukturu je možno se dotázat... Specifická přístupová práva k jednotlivým typům záznamů pro různé uživatele v rámci OS má k datovému souboru přístup pouze SŘBD
SŘBD Zajišťování integrity a konzistence dat Validace vstupu Obnova po poruchách až k poslednímu konzistentnímu stavu Efektivní správa velkého objemu dat
Model uspořádání dat možnosti databázové modely 1960 SŘBD síťový, hierarchický relační 1970 1980 síťové, hierarchické relační objektový 1990 multidimenzionální objektově-relační 2000 skupina NoSQL 2010 objektověrelační objektové datové sklady klíč-hodnota dokument. sklady rodiny sloupců grafové
SQL jazyk relačního modelu Standardizovaný jazyk pro vyjádření požadavků postupně vydávány verze ISO standardu Jednotlivé SŘBD mají své dialekty http://en.wikibooks.org/wiki/sql_dialects_reference v základech nejsou příliš velké odlišnosti
SQL co znáte: SELECT INSERT, UPDATE, DELETE BEGIN, COMMIT, ROLLBACK {CREATE ALTER DROP} {TABLE VIEW} datové typy FOREIGN KEY
Relační databázové schéma co znáte: 1., 2., 3. normální formy další normální formy... Postup návrhu databáze: konceptuální model relační dat. schéma Denormalizace
Třívrstvá architektura a O-R mapování
Třívrstvá architektura
SŘBD (DBMS) systém řízení báze dat (database management system) tzv. databázový server např. IBM DB2, Oracle, Informix, MS SQL Server, Sybase,, MySQL, PostgreSQL, Firebird
Tenký klient : např. web browser Aplikační server: např. Apache s PHP Databázový server: např. MySQL
Aplikační logika je v tlustém klientovi: programován v C, Javě, nebo v proprietárním prostředí příslušném k db serveru, nebo to může být i např. aplikace v MS Access. Databázový server může být např. Oracle
Klientská databáze např. MS Access, Paradox, DBase
O-R mapping databázová vrstva aplikační vrstva DATA SQL odpověď, data ORM OO aplikace Účel je zapouzdřit databázi před objekty aplikace. Podrobně viz http://www.agiledata.org/essays/mappingobjects.html.
O-R mapping Vrstvy mezi OO aplikací a SQL databází myšlení v objektech ev. cache objektů, zodpovědné za persistenci Co potřebujeme: uložit objekt, odstranit objekt dotaz=nalézt objekt(y) Typový dotaz Navigační na malém počtu objektů Přehledový (lépe SQL přímo) Ad-hoc (lépe SQL přímo)
Spolupráce RDBMS a OO aplikace Relační db výkon na tradičních datech, výkon na rozsáhlých dotazech, robustní, jsou všude O-R mapping programátorské pohodlí, rychlý, udržitelný vývoj aplikací
Zabezpečení přístupu k datům
Možnosti umístění zabezpečení
Umístění zabezpečení dat V databázi prolomitelné zjištěním hesla odposlouchání po komunikační síti odpozorování či sledování zadávání hesla V aplikaci, když používá součet práv do DB extrémní závislost na zabezpečení jediného účtu přečtení ze zdrojového kódu aplikace riziko SQL injection aplikační uživatelské účty a hesla uloženy v DB? V prezentačním klientovi?
Role a přístupová práva
pokročilý uživatel Role v architektuře aplikační programátoři běžný uživatel aplikační programátoři běžná uživatelka správce databáze
Další role Dle kvalifikace administrátoři úkolů správy databáze důvěryhodní SQL programátoři... Dle mandátu od vlastníka dat povoluje se jen to, co je nutné k výkonu činností
Přidělování přístupových práv Shora dolů: Existují systémové role k úkolům správy Příslušný správce přiděluje práva vytvářet objekty, dle typů Vlastník (tvůrce) objektu má k němu všechna práva Vlastník práv může tato práva dále přidělovat Co není výslovně přiděleno, je zakázáno
SQL a přístupová práva Práva k objektům: GRANT, REVOKE k tabulkám, pohledům, procedurám,... SELECT, INSERT, UPDATE, DELETE,... EXECUTE Podrobně pro Oracle: http://docs.oracle.com/cd/e11882_01/timesten.112/e21642/privileges.htm
Konec