Databáze II 1. přednáška
Helena Palovská
[email protected]
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
SŘBD
1960
síťový, hierarchický relační
síťové, hierarchické 1970
relační 1980
objektové
1990
objektový multidimenzionální objektově-relační 2000 skupina NoSQL 2010
datové sklady objektověrelační
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
o
QL ta→ S a ← ,d ď ě ov p d
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
Role v architektuře pokročilý uživatel
běžný uživatel
aplikační programátoři
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