ZSBD-2st-1.2-w5.tresc-1.1-Slajd11

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Definiowanie nowych typów danych

Definiowanie nowych typów danych


Obiektowo-relacyjny model danych umożliwia definiowanie użytkownikom bazy danych nowych typów danych, czyli odpowiednika klas w systemach czysto obiektowych. Definicja typu danych obejmuje definicję interfejsu typu oraz jego implementację. Interfejsem typu danych jest zbiór atrybutów oraz składnia operacji dostępnych dla danego typu. Implementacja typu danych jest implementacją operacji typu danych. Operacje są implementowane za pomocą proceduralnych języków bazy danych. Współczesne relacyjne bazy danych oferują proceduralne rozszerzenia dla języka SQL, stosowane do implementacji operacji typów danych oraz do implementacji niezależnych funkcji i procedur składowanych w bazie danych. W systemie Oracle proceduralnym językiem bazy danych jest język PL/SQL, w systemie DB2 jest to język o nazwie DB2 SQL.

Zdefiniowane przez użytkowników bazy danych nowe typy danych mogą być wykorzystywane do definicji atrybutów innych złożonych typów danych lub do definicji atrybutów schematów relacji. Ten typ danych jest nazywany typem atrybutowym. Wystąpieniami typów atrybutowych nie są pełnoprawne obiekty, gdyż nie posiadają one tożsamości i mogą być przechowywane w bazie danych tylko jako obiekty składowe.

Na slajdzie przedstawiono przykład definicji typu danych „Punkt w systemie obiektowo-relacyjnej bazy danych Oracle. Pierwsza konstrukcja przedstawiona na slajdzie definiuje interfejs typu, który obejmuje atrybuty „x i „y reprezentujące współrzędne punktu oraz składnię operacji „przesuń realizującej przesunięcie punktu na płaszczyźnie o dany wektor. Następna konstrukcja zawiera implementację procedury realizującej operację przesuwania punktów. Ostania, trzecia konstrukcja pokazuje zastosowanie zdefiniowanego typu „Punkt do definicji innego typu „Koło ”. Typ „Punkt został wykorzystany do definicji środka „Koła ”.


<< Poprzedni slajd | Spis treści | Następny slajd >>