14 - Objektově-relační databáze (charakteristika, porovnání s relačními, podpora v SQL:1999 a SQL:2003) Flashcards

1
Q

Vlastnosti, nevýhody, model dat a jazyk relačních db

A

Relační databáze
Od 80.let získaly převahu nad síťovými a hierarchickými.
Vlastnosti:
• standardizovány - SQL (od roku 1986)
• relační model dat, formálně zavedeno od Codda
• představovány tabulkami obsahujícími relace
• podpora výrobců DB produktů

Nevýhody:
• velmi omezená množina datových typů hodnot
• pro vztahy M:M je nutná vazební tabulka
• žádné reference či ukazatele

Model dat: 
	• relační 
	• kolekce tabulek 
	• vztahy tabulek vyjádřeny pomocí cizích a kandidátních klíčů 
	• navigace po tabulkách pomocí kurzoru

Dotazovací jazyk:
• SQL
• neprocedurální, deklarativní

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Objektové databáze

A
  • Umožňují modelování a vytváření perzistentních dat jako objektů. Čistě objektové systémy nebyly standardizovány a proto se nerozšířily.
    • Na konci 80.let vliv paradigmatu OO programování -> vznik OO DB (tj. perzistentního uložení objektů).
    • ADT (abstraktní datový typ) je datový typ zapouzdřující možné hodnoty a operace nad nimi.

Vlastnosti:
• modelování a vytváření perzistentních dat jako objektů
• nenahrazují, nýbrž doplňují relační (kombinace obou se nazývá objektově-relační DB)
Výhody:
• vztahy M:M lze vytvářet přímo
• navigace po objektové struktuře pomocí referencí prostřednictvím OID
• atributy objektů mohou být jiné objekty → složité typy (ADT - abstraktní datové typy)

Model dat:
• objektový
• neexistuje všeobecně přijatý standard obdobný SQL (ODMG-93 byl pokusem)
• jednoznačný OID (objektový identifikátor) pro každý perzistentní objekt
• podpora abstraktních datových typů (ADT), zapouzdření a polymorfismu
• atributy objektů mohou být jiné objekty → složité typy
• vztahy objektů pomocí referencí
Dotazovací jazyk:
• většinou běžné objektové jazyky
• snaha o standardizaci (jazyk OQL od ODMG)

V objektové databázi by SŘBD neměl povolit: pokud výsledek jedné z operací je objekt s parametry, který nelze v daném SŘBD uložit (výsledek operace nelze popsat objekty v DB).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Objektově relační DB

A

Nejsou plně objektové (nemodelují objekty a vztahy mezi nimi přímo), ale jsou v nejnižší vrstvě relační a objekty nad nimi jsou simulovány pomocí SŘBD.

  • Standardizace (SQL 1999) a podpora výrobců relačních systémů
  • Uživatelské datové typy (ADT)
  • Data reprezentována objekty (které mají OO vlastnosti)
  • Jednoznačná identifikace objektu – OID
  • OID umožňuje tvorbu trvalých vztahů a zjednodušuje indexaci
  • Vztahy (1:1, 1:N, N:N) jsou součástí definice dat a né v algoritmu
  • Vnořené struktury (např. adresa) a tabulky
  • Kolekce (řetězec, posloupnost, seznam, soubor) a kurzor

Cílem je spojit výhody relačního a objektového modelu.
Model dat:
• Tabulky nemusejí být normalizované (porušují první normální formu)
• obecnější (vnořené) relace(nested relational model)
• data stále v tabulkách, ale hodnoty mohou mít bohatší strukturu (ADT)
• ADT zapouzdřuje data i operace
• zavedeno OID umožňující definovat nové typy vztahů mezi tabulkami
• navigace pomocí kurzoru i pomocí referencí
Dotazovací jazyk:
• ve standardu SQL-1999 (viz dále)
Výhody:
• snaha o obohacení tabulek o objektovou orientaci
• navigace po tabulkách pomocí kurzoru i pomocí referencí

Objektově-relační mapování je technika, kdy se objekty OOP jazyka mapují na čistě relační DB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Standardy OR databází - SQL-1999

A

Relační rysy:
• Regulární výrazy – WHERE x SIMILAR TO regexp
• nové datové typy (LOB (Large Objects) – BLOB (Binary LOB), CLOB (Character LOB), ROW)
• rekurzivní dotaz
• SAVEPOINT – pro částečný návrat transakce
• Databázové triggery - podpora aktivních prvků db
• ROW – možnost definování složeného sloupce
CREATE TABLE Osoba (jmeno ROW(krestni VARCHAR(20), prijmeni VARCHAR(30),), …)
SELECT O.jmeno.krestni FROM Osoba O

Objektové rysy:
• uživatelem definované typy (UDT)
○ obdoba třídy
○ atributy, metody
○ jednoduchá dědičnost
• typ sloupce tabulky může být UDT (je to třída a řádky jsou objekty)
○ v tomto případě nemají OID - odkazuje se na atributy tečkovou notací Zam.plat
• odkaz na atributy přes funkce nebo tečkovou notací (.)
○ WHERE zam.plat > 20000
• typové tabulky
○ tabulka s řádky nesoucími hodnoty strukturovaného UDT
○ každý řádek má OID (hodnota typu REF)
○ typ REF
§ odkazy na řádky v typové tabulce
§ mají vždy rozsah (scope)
§ umožňují zpřístupnit atributy hodnoty strukturovaného typu, kterou identifikují

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Standard SQL-2003

A
  • Nově podpora multimnožin: typ MultiSet je odvozen od typu Collection
    • Podpora pokročilých Multimnožin: pomocí operátoru Porovnávání, SET, UNION,INTERSECTION a pod.
    • Definuje 2 nové typy kolekcí: Array a Multiset
    • Změna u UDT: Může být FINAL nebo NOT FINAL pro zákaz dědění resp. možnost dědění
How well did you know this?
1
Not at all
2
3
4
5
Perfectly