slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Objektový přístup v databázích PowerPoint Presentation
Download Presentation
Objektový přístup v databázích

Loading in 2 Seconds...

play fullscreen
1 / 32

Objektový přístup v databázích - PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on

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é

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Objektový přístup v databázích' - sanura


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
objektov p stup v datab z ch
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
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
Reference a dereference v SQLnavigač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.JmenoFROM Ucty UWHERE U.Vlastnik.Adresa.Mesto=”Pardubice“ AND U.Zustatek>100000;

oid ref a referen n integrita
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 2 2006
ODMG, OMG (ODBT WG od 2.2006)
  • 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
slide7
ODL

také metody,konstruktor

CLASS Person{ SRING Name, DATE Birthdate, …

INT Age, REF <Apartment> Lives_in INVERSE Apartment::IS_used_by}

  • jiné konstrukty SET, BAG, ARRAY, STRUCT, LIST

SET<REF<Apartment>>

Referenční vztahy, integrita

1:1

1:n, n:m

slide8
OQL

SELECT c.Lives_in.Building.AddressFROM 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 PersonWHERE …

…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í

porušení zapouzdření

objektov datab ze aplikac e
Objektové databázeaplikace
  • 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
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
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)

objektov typy v sql datab zi1
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 CtenarWHERE Vek(Ctenar)>=40

Optimalizace?!

datov typy v sql
Základní datové typy:

číslo

textový údaj

datum a čas

ano/ne (logický)

Nové datové typy…

bitové řetězce

volný text

obrázky, audio, multimedia

prostorová data

časové intervaly

Datové typy v SQL

operace (=„co s nimi mohu dělat“) patří k typu (=„záleží na typu“)

+ „uživatelsky“ definované typy

udts and udfs
UDTs and UDFs…
  • DataBlades
  • Cartridges
  • Extenders

Indexace

Balíky, které je možno koupit

odli uj c typy v sql
Odlišující typy v SQL
  • Emulace domén
    • Strong typing
chov n dat v sql datab zi aktivn datab ze
Chování dat v SQL databáziaktivní databáze
  • databanka =
    • databáze

+

    • aplikace datům vlastní

triggery

uložené procedury

triggery
Triggery

CREATE TRIGGER …

událost INSERT|UPDATE|DELETE

před/po BEFORE/AFTER

tabulka… (u UPDATE výběr polí)

…jméno pro referenci na vkládaný/měněný/mazaný řádek

podmínka …

akce …

pro FOR EACH ROW |STATEMENT

triggery1
Triggery

Účel:

  • Integritní omezení
  • Odvozené datové objekty
    • Repliky, archivy, vypočtená pole
  • Akce ven
    • E-mail, zaslání objednávky…
integritn omezen triggerem p klad
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
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 kladu1
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 kladu2
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 kladu3
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

triggery2
Triggery
  • Množství možných triggerů na jednu tabulku je omezené !
ulo en procedury
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 procedury1
Uložené procedury
  • Zatěžují DB server
  • Vhodné jsou „datově intenzivní procesy“
ulo en procedur y
Uložené procedury

Užití:

  • Jednotlivé typové SELECTy
    • (…nebezpečí neoptimalizovaných SELECTů)
  • Těla triggerů
  • Údržbové procedury
ulo en procedury2
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
slide29

dotaz na „SQLcode“

databáze,schemata,tabulky,indexy,constraints,views

triggery

aplikační server

SQL

tenký klient

data

tlustý klient

SŘBD

DATA

SQL

data

uložené procedury

datovétypyfunkce

embedded SQL

předkompilátor

API vrstvy

connectbegin (transaction)insert,update,deleteselect…commit/rollbackdisconnect

recordset

ODBC

level1,2,3

o r mapping
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
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
Trendy v DBS
  • Prostorová data
  • XML databáze
  • Temporární databáze, verzování