260 likes | 460 Views
Objektov é črty relačných databázových systémov. Jaroslav Budi š Školiteľ: Radoslav Golian. Zadanie. Úloha. Porovnanie podpory objektov a objektovo orientovaného programovania vo vybraných databázových systémoch
E N D
Objektové črty relačných databázových systémov Jaroslav Budiš Školiteľ: Radoslav Golian
Zadanie Úloha • Porovnanie podpory objektov a objektovo orientovaného programovania vo vybraných databázových systémoch • Skúmanie praktickej využiteľnosti objektov a objektového programovania v databázovom systéme Oracle z hľadiska výkonu, prípadne ďalších vybraných aspektov Page 2
Zadanie Štruktúra • Úvod • Podpora objektových čŕt vo vybraných relačných databázovych systémoch • Praktická využiteľnosť Page 3
Zadanie Úvod • Základné dátové modely • Premostenie objektovo orientovaných jazykov a relačných databázových systémov Page 4
Dátové modely 0. generácia • Vznik externých pamätí • Dierne štítky • Magnetické pásky • Sériové načítavanie dát Page 5
Dátové modely 1. generácia • 60. roky • Zariadenia s priamym prístupom do pamäte • Jednotlivé entity sú prepojené • Prístup: • Hierarchický • Navigačný Page 6
Dátové modely Hierarchický dátový model • IBM - Information Management System (IMS) DBMS • Stromová štruktúra • Každý uzol môže mať najviac jedného otca Page 7
Dátové modely Sieťový dátový model • TurboImage • Grafová štruktúra • Každý uzol môže mať viac otcov Page 8
Dátové modely 2. generácia • Edgar Codd (1970) • Relačný model • Dáta sú prezentované v jednoduchých tabuľkových štruktúrach • Stĺpce – atribúty • Riadky – záznamy • Vzťahy sú definované primárnymi a cudzími kľúčmi • K dátam sa pristupuje pomocou SQL jazyka Page 9
Dátové modely 2. generácia • Problémy pri rozšírení OOP jazykov • Rozdielne paradigmy • Riešenie - O/R (object-relational) mapovanie Page 10
O/R mapovanie Porovnanie Page 11
O/R mapovanie Klasický prístup • Neprehľadný kód • Absencia zapuzdrenia Page 12
O/R mapovanie Pridanie koncepčnej vrstvy • Oddelenie dátového modelu od programátorského pohľadu • Zapuzdrenie Page 13
O/R mapovanie Postup • Mapovanie atribútov na stĺpce • Simulovanie dedičnosti • Simulovanie vzťahov Page 14
O/R mapovanie Mapovanie atribútov na stĺpce • Pre každý trvalý (perzistentný) atribút vytvoriť potrebný počet stĺpcov v tabuľke • Nie každý atribút je perzistentný (pomocné premenné) • Nie každý atribút sa dá zapísať do jedného stĺpca (typ record) Page 15
O/R mapovanie Simulovanie dedičnosti • Jedna tabuľka pre • Celú hierarchiu tried • Konkrétnu (nie abstraktnú) triedu • Triedu Page 16
O/R mapovanie Jedna tabuľka pre celú hierarchiu tried Page 17
O/R mapovanie Jedna tabuľka pre celú hierarchiu tried • Výhody • Jednoduchá implementácia • Úprava záznamu je jednoduchá, bez použitia JOINU • Nevýhody • Pamäťovo náročné • Potrebný atribút objectType Page 18
O/R mapovanie Jedna tabuľka pre konkrétnu triedu Page 19
O/R mapovanie Jedna tabuľka pre konkrétnu triedu • Výhody • Úprava záznamu je jednoduchá, bez použitia JOINU • Menšie pamäťové nároky ako pre celú hierarchiu • Nevýhody • Ak sa zmení atribút nadradenej triedy, menia sa atribúty všetkých potomkov • Problémy pri zmene roly Page 20
O/R mapovanie Jedna tabuľka pre triedu Page 21
O/R mapovanie Jedna tabuľka pre triedu • Výhody • Najlepšie simuluje objektovo-orientovaný koncept • Jednoduché pridávanie a modifikácia tried • Menšie pamäťové nároky • Nevýhody • Veľa tabuliek • Veľa spájaní • Zložitejšie úpravy Page 22
O/R mapovanie Simulovanie vzťahov • One-to-many • Primary, foreign keys • Many-to-many • Vytvorenie pomocnej tabuľky, ktorá udržiava tieto spojenia Page 23
O/R mapovanie Many-to-many Page 24
Dátové modely 3. generácia • Využitie objektov • Typy • objektovo-orientovaný model • objektovo-relačný model Page 25