Objektový přístup v databázích Objektová identita (místo primárních klíčů) –Reference (místo cizích klíčů) Objektový přístup k návrhu – objekty stejného.

Slides:



Advertisements
Podobné prezentace
Základy jazyka SQL Jan Tichava
Advertisements

Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
Základy databázových systémů
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Přednáška č. 5 Proces návrhu databáze
Fakulta elektrotechniky a informatiky
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Temporální databáze a TSQL
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
A4B33DS & X33MIS Zdeněk Kouba
Databáze Jiří Kalousek.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databázové systémy Štěpán Šípal.
Databáze Úvod.
Databáze výhody a nevýhody Ing. Emilie Šeptáková
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Konceptuální návrh databáze
Databázové modelování
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
Databáze velké množství dat pevně dané struktury
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
TEMPORÁLNÍ DATABÁZE A TSQL2
XML data na disku jako databáze Kamil Toman
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Databázové systémy Zabezpečení DBS. Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost - informace by neměly.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Perzistence XML dat Kamil Toman
DATABÁZE.
Dynamická webová aplikace Autor:Ondřej Soukup Třída:I3.
Databáze MS ACCESS 2010.
Databázové systémy přednáška 8 – Transakce
Dotazovací jazyk SQL I.
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
A5M33IZS – Informační a znalostní systémy
Optimalizace SQL dotazů
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Přednáška 9 Triggery.
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Objektový přístup v databázích Objektová identita (místo primárních klíčů) –Reference (místo cizích klíčů) Objektový přístup k návrhu – objekty stejného typu mají stejné chování a stejnou množinu stavů : –Metody, (funkce, uložené procedury, triggery v SQL ) –Složité struktury datové Seznamy, pole, (multi)množiny, strukturované hodnoty Hnízděné tabulky v SQL –Abstraktní datové typy Objektově orientovaná tvorba aplikací –Objektové přizpůsobení DML SQL OQL, binding k programovacím jazykům

Objektová identita Záznamy mají/mohou mít OID –v relační db mohou být použity „jako primární klíče“ k odkazům z jiných záznamů V jiných záznamech : atribut typu REF – odkaz, ukazatel –jeho obsahem je OID nějakého záznamu nelze s ním manipulovat jako s hodnotou, ale jako s odkazem

Reference a dereference v SQL navigační dotazování Tabulka Ucty má pole Vlastnik typu REF do tabulky Klient, tabulka Klient má pole Jmeno a pole Adresa strukturovaného typu: SELECT U.Vlastnik.Jmeno FROM Ucty U WHERE U.Vlastnik.Adresa.Mesto=”Pardubice“ AND U.Zustatek>100000;

OID, REF a referenční integrita? INSERT… –integritu zajišťuje vkládání reference na konkrétní objekt UPDATE… –OID nelze měnit –aktualizace REFu se provádí referencí na konkrétní objekt DELETE… –se buď vůbec neprovádí –nebo může eventuelně proběhnout, ale volné odkazy zkontrolujeme v neděli večer –nebo potřebuje zajistit integritu  definujeme omezení FOREIGN KEY

ODMG, OMG (ODBT WG od ) ODMG 3.0 norma (2001): –objektový model (~OMG) objekt, typ/třída - objekty stejné třídy mají mít stejné chování a stejnou množinu stavů metody, atributy, vztahy (=vazby na jiný objekt) –ODL –OQL jazyk manipulace dat? –„binding“ pro objektově orientované prog. jazyky

ODL CLASS Person {SRING Name, DATE Birthdate, … INT Age, REF Lives_in INVERSE Apartment::IS_used_by } jiné konstrukty SET, BAG, ARRAY, STRUCT, LIST SET > Referenční vztahy, integrita 1:1 1:n, n:m také metody, konstruktor

OQL SELECT c.Lives_in.Building.Address FROM p IN Person, c IN p.Children …výsledkem je Bag SELECT STRUCT( me:p.Name, my_address:p.lives_in.building.address) FROM p IN Person WHERE … …výsledkem je struktura Do SELECT možno i zahnízďování struktur, i metody… Porušení zapouzdření možno v ad-hoc dotazech. porušení zapouzdření

Objektové databáze aplikac e Inženýrské úlohy Prostorové databáze Telekomunikace, sítě Data vědeckých výzkumů (fyzika, biologie) Finanční služby

Objekty v SQL databázi Většinou dynamicky jako výsledek SELECTů, –některé typované jako VIEW Chování objektů? –Uložené procedury, triggery

Objektové typy v SQL databázi Složité objekty možno použít jako řádkový typ při CREATE nové tabulky, lineitems mohou být logicky dostupné v „nested table“ (ORACLE) id contact lineitems namephone itemqtyunit_price

Objektové typy v SQL databázi Metody příslušného objektového typu v definici typu –Těla metod v uložených procedurách a funkcích SELECT Formalni(Jmeno) FROM Ctenar WHERE Vek(Ctenar)>=40 Optimalizace?!

Datové typy v SQL Základní datové typy: –číslo –textový údaj –datum a čas –ano/ne (logický) operace (=„co s nimi mohu dělat“) patří k typu (=„záleží na typu“) Nové datové typy… –bitové řetězce –volný text –obrázky, audio, multimedia –prostorová data –časové intervaly + „uživatelsky“ definované typy

UDTs and UDFs… DataBlades Cartridges Extenders … Indexace Balíky, které je možno koupit

Odlišující typy v SQL Emulace domén –Strong typing

Chování dat v SQL databázi aktivní databáze databanka = –databáze + –aplikace datům vlastní triggeryuložené procedury

Triggery CREATE TRIGGER … událostINSERT|UPDATE|DELETE před/poBEFORE/AFTER tabulka… (u UPDATE výběr polí) …jméno pro referenci na vkládaný/měněný/mazaný řádek podmínka… akce… proFOR EACH ROW | STATEMENT

Triggery Účel: Integritní omezení Odvozené datové objekty –Repliky, archivy, vypočtená pole Akce ven – , zaslání objednávky…

Integritní omezení triggerem - příklad Titul (ISBN, název, …) Svazek (signatura, titul→Titul.ISBN,…, umístění) Vypujcka (ctenar, svazek, od, do) Rezervace (ctenar, titul, od, do) Titul není možno rezervovat, když existuje volný svazek tohoto titulu.

pokračování příkladu událost:insert do tabulky Rezervace podmínka: „existuje volný svazek“ EXISTS SELECT * FROM Vypujcka v JOIN Svazek s ON (v.svazek=s.signatura) WHERE s.titul=Rezervace.titul AND v.do IS NOT NULL akce: „nepovolit“ ukončit transakci, poslat hlasku …málo efektivní

pokračování příkladu Svazek (signatura, titul→Titul.ISBN,…, umístění, je_volný:A/N) podmínka: „existuje volný svazek“ EXISTS SELECT * FROM Svazek s WHERE s.titul=Rezervace.titul AND s.je_volný …trigger na údržbu odvozeného pole je_volný

pokračování příkladu událost: UPDATE pole do v tabulce Vypujcky podmínka: - akce: „u toho svazku napiš, že je volný“ UPDATE Svazek SET je_volny=T WHERE Svazek.signatura=Vypujcky.svazek

pokračování příkladu událost: INSERT do tabulky Vypujcky podmínka: - akce: „u toho svazku napiš, že není volný“ UPDATE Svazek SET je_volny=F WHERE Svazek.signatura=Vypujcky.svazek

Triggery Množství možných triggerů na jednu tabulku je omezené !

Uložené procedury Spravované db serverem –Přístupová práva Zkompilované, prováděné db serverem –Rychlost, sdílení paměti Logika aplikace na jediném místě –Snadná údržba (opravy, aktualizace) –Může programovat nejlepší programátor, jednou Lze omezit přístupová práva k datovým objektům –Bezpečnost, spolehlivost přístupu

Uložené procedury Zatěžují DB server Vhodné jsou „datově intenzivní procesy“

Uložené procedury Užití: Jednotlivé typové SELECTy –(…nebezpečí neoptimalizovaných SELECTů) Těla triggerů Údržbové procedury

Uložené procedury Napsané v SQL –Od verze 1999 je SQL úplný programovací jazyk –Proměnné… Napsané v jiném programovacím jazyce –Db server musí mít kompilátor toho jazyka

DATA databáze, schemata, tabulky, indexy, constraints, views triggery uložené procedury datové typy funkce aplikační server  SQL data  tenký klient tlustý klient ODBC API vrstvy embedded SQL předkompilátor recordset level1,2,3 connect begin (transaction) insert,update,delete select… commit/rollback disconnect dotaz na „SQLcode“

O-R mapping Vrstvy mezi OO aplikací a SQL databází –myšlení v objektech –ev. cashe objektů, zodpovědné za persistenci Co potřebjeme: –INSERT,UPDATE,DELETE –SELECT Typový –Navigační na malém počtu objektů –Přehledový (lépe SQL přímo) Ad-hoc… (lépe SQL přímo)

Porovnání R,OO,O-R Relační db – výkon na tradičních datech, výkon na rozsáhlých dotazech O-R mapping – – programátorské pohodlí, rychlý, udržitelný vývoj aplikací OO db – výkon na netradičních datech – slabší v „databázových“ rysech

Trendy v DBS Prostorová data XML databáze Temporární databáze, verzování