Definicja obiektowego modelu danych: struktura i zachowanie

Podobne dokumenty
SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

Paweł Kurzawa, Delfina Kongo

BAZY DANYCH model obiektowy. Opracował: dr inż. Piotr Suchomski

Systemy baz danych. Notatki z wykładu

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Modelowanie konceptualne model EER

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Implementacja schematów i statycznej kontroli typów w systemie JLoXiM

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Klasyczny rachunek predykatów

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Technologie baz danych

Wykład 2. Relacyjny model danych

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Obiektowe bazy danych

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

1. Mapowanie diagramu klas na model relacyjny.

Tadeusz Pankowski Definicja. Definicja

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Oracle PL/SQL. Paweł Rajba.

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Przykładowy dokument XML

Post-relacyjne bazy danych

FUNKCJE. (odwzorowania) Funkcje 1

Obiektowe bazy danych

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

1 Wstęp do modelu relacyjnego

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

MATERIAŁY DO ZAJĘĆ II

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Projektowanie bazy danych przykład

Bazy danych. Andrzej Łachwa, UJ, /14

Model relacyjny. Wykład II

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Programowanie obiektowe

java.util.* :Kolekcje Tomasz Borzyszkowski

Typy sparametryzowane

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Projekt małej Bazy Danych.

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Modelowanie obiektowe

Bazy danych Wykład zerowy. P. F. Góra

Dziedziczenie. Ogólna postać dziedziczenia klas:

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Relacyjny model baz danych, model związków encji, normalizacje

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Technologie baz danych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Dokumentacja do API Javy.

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Model relacyjny. Wykład II

Dr Michał Tanaś(

Wykład 5: Klasy cz. 3

Programowanie obiektowe

Projektowanie relacyjnych baz danych

Definiowanie typów dokumentów Część 3. XML Schema

Programowanie i projektowanie obiektowe

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Programowanie obiektowe

Rysunek 1: Przykłady graficznej prezentacji klas.

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Semantyka rachunku predykatów

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Bazy danych Algebra relacji Wykład dla studentów matematyki

Programowanie obiektowe

Literatura. Bazy danych s.1-1

Obiektowe bazy danych

Podejście obiektowe - podstawowe pojęcia

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Bazy danych. Andrzej Łachwa, UJ, /15

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie obiektowe. Wykład 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Modelowanie danych, projektowanie systemu informatycznego

Abstrakcyjny typ danych

Matematyka na poziomie GIMNAZJUM wersja β

Podstawy projektowania systemów komputerowych

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Algorytmy i struktury danych. wykład 1

Wykład 8: klasy cz. 4

Matematyka dyskretna. 1. Relacje

Podstawy Programowania Obiektowego

Struktury formalne, czyli elementy Teorii Modeli

Transkrypt:

Definicja obiektowego modelu danych: struktura i zachowanie Podziękowania Dla Grzegorza Enzo Dołęgowskiego za wpisanie moich notatek do komputera. Relacyjna baza danych (przypomnienie) Pojęcia pierwotne A zbiór nazw atrybutów D zbiór wartości atomowych (napisy, liczby, daty, wartości logiczne) E zbiór typów atomowych (integer, float, string, boolean, date) zbiór nazw relacji (potem będzie to zbiór klas) Schemat tabel (relacji) kol : P fin (A) typ : Α E Schemat bazy relacyjnej SCH rel = (, kol, typ) rotka relacji (nazwie relacji przyporządkowujemy skończone zbiory nazw kolumn) (nazwie relacji i nazwie atrybutu przyporządkowujemy typ elementarny) Jeśli R, to krotka o schemacie R jest funkcją przypisującą wartości nazwom kolumn: t : kol(r) D dla A kol(r), t(a) D typ(r,a) W zbiór wszystkich możliwych krotek Egzemplarz relacji Jeśli R, to relacja o nazwie R jest skończonym zbiorem krotek o schemacie R. Egzemplarz relacyjnej bazy danych Funkcja val, która przypisuje nazwom relacji egzemplarze relacji: INST rel = (val) val : P fin (W) Poprawność relacyjnej bazy danych SCH rel = (, kol, typ) INST rel = (val) Dla każdego R i dla każdej krotki t val(r), t ma schemat R.

Obiektowa baza danych Pojęcia pierwotne A zbiór nazw atrybutów O zbiór identyfikatorów obiektów (OID) D wartości atomowe (napisy, liczby, wartości logiczne) zbiór nazw klas i IsA częściowy porządek na E zbiór typów atomowych (integer, float, string, boolean, date) Wartości złożone (W) W to najmniejszy zbiór o następujących właściwościach: 1. D W (skalar) 2. O W (referencja) 3. Jeśli A 1, A 2,..., A n A (A i A j dla i j) oraz w 1, w 2,..., w n W, to [A 1 :w 1, A 2 :w 2,..., A n :w n ] W (krotka) 4. Jeśli w 1, w 2,...,w m W (w i w j dla i j), to {w 1, w 2,...,w m } W (zbiór) Obiekt Para (o, w) przy czym o O, w W. Typy (T) T to najmniejszy zbiór o następujących właściwościach: 1. E T (typ elementarny) 2. T (typ referencyjny) 3. Jeśli T T, to {T} T (typ zbiorowy) 4. Jeśli A 1, A 2,..., A n A (A i A j dla i j) oraz T 1, T 2,..., T n T, to [A 1 :T 1, A 2 :T 2,..., A n :T n ] T (typ krotkowy) Hierarchia typów częściowy porządek na T (podtyp nadtyp) jest najmniejszym częściowym porządkiem o następujących właściwościach: 1. Jeśli IsA L, to L [Pracownik IsA Osoba, więc Pracownik Osoba] 2. Jeśli T = [A 1 :T 1, A 2 :T 2,..., A n :T n ] T i U = [B 1 :U 1, B 2 :U 2,..., B m :U m ] T oraz n m i dla każdego i = 1, 2,..., n istnieje j takie, że A i = B j i U j T i, to U T. 3. Jeśli T U, to {T} {U}. Schemat struktury SCH struct = (, IsA, typ) typ : T musi spełniać warunek: IsA L typ() typ(l)

Rozszerzenie bazowe Zbiór obiektów klasy inst : P fin (O) dla każdego, L, L zachodzi inst() inst(l) = Rozszerzenie Zbiór obiektów klasy i jej podklas inst* : P fin (O) inst*() = inst(l) L L IsA Dziedzina (typu) dom : T P(W) 1. dom(integer) = zbiór liczb całkowitych 2. dom() = inst*() dla 3. Jeśli T = [A 1 :T 1, A 2 :T 2,..., A n :T n ] T, to dom(t) = {[A 1 :w 1, A 2 :w 2,..., A n :w n ] : dla i = 1, 2,..., n w i dom(t i )} 4. Jeśli T = {U}, to dom(t) = P fin (dom(u)) Egzemplarz bazy danych (struktura) Jeśli SCH struct = (, IsA, typ) jest schematem struktury, to INST struct = (inst, val) jest egzemplarzem schematu SCH struct o ile spełnione są następujące warunki: (1) inst jest bazowym rozszerzeniem inst : P fin (O) (2) val jest wartościowaniem val : O W (3) o inst(), val(o) dom(typ()) klasy typ T typy inst dom obiekty O val W wartości

Dziedziczenie struktury Niech SCH struct = (, IsA, typ) będzie schematem struktury. Jeśli typ() jest krotkowy, to typ*() zawiera wszystkie składowe typ() oraz wszystkie A:T takie, że A:T jest składową L taką, że IsA L i nie istnieje M różne od i L takie, że A jest składową M i IsA M i M IsA L. SCH struct jest poprawny o ile: 1. przekształcenie typ* istnieje, oraz 2. IsA L typ*() typ*(l) Wartości domyślne atrybutów val st : W krotkowe Musi być spełniać warunek jeśli i A:w jest składową val st (), to typ*() zawiera składową A. Niech T będzie typem A w typ*(). Wówczas musi być prawdą, że w dom(t). Schemat struktury z wartościami domyślnymi SCH struct = (, IsA, typ, val st ) Wartościowanie z wartościami domyślnymi val*: O W val*(o) jest najuboższą wartością krotkową, która zawiera val(o) i spełnia poniższy warunek: Jeśli 1. typ*() jest krotkowy i ma składową A:T, 2. istnieje klasa L taka, że A:w jest składową val st (L) i IsA L 3. nie istnieje klasa M, taka że val st (M) ma składową A oraz IsA M i M IsA L [nie istnieje klasa pośrednia między i L, która definiowałaby wartość domyślną dla A], 4. val(o) nie ma składowej A, to: 5. o inst(), 6. A:w jest składową val*(o). Egzemplarz bazy danych z dziedziczeniem i wartościami domyślnymi INST struct = (inst, val) jest egzemplarzem SCH struct = (, IsA, typ, val st ), o ile spelnione są następujące warunki: 1. Przekształcenie typ* istnieje. 2. Przekształcenie val* istnieje. 3. o inst(), val*(o) dom(typ*()) klasy typ* T typy inst dom obiekty O val* W wartości

Brak konfliktów dziedziczenia SCH struct = (, IsA, typ, val st ) jest wolny od konfliktów dziedziczenia, wtw. dla każdej trójki, L, M takich, że M IsA, M IsA L zachodzi 1. Jeśli typ() i typ(l) zawiera składową A, ale typ(m) jej nie zawiera, to istnieje klasa J, taka że typ(j) zawiera A oraz J IsA, J IsA L, M IsA J. 2. Dokładnie to samo odnosi się do val st. L J M Model zachowania M zbiór nazw metod Sygnatura M : T 1... T k T M M; ; T 1, T 2,..., T k T Schemat zachowania SCH zach = (, IsA, S) S to skończony zbiór sygnatur metod o następującej właściwości Jeśli (M : T 1... T k T) S i M : U 1... U m U), to k = m, U T i dla i = 1, 2,..., k T i U i Egzemplarz schematu zachowania SCH zach = (, IsA, S) INST zach = (inst, impl) impl : S Implementacje metod impl(( M : T 1... T k T)) = I I : dom() dom(t 1 )... dom(t k ) dom(t) Pojedyncza dyspozycja = wybór metody tylko zależy tylko pierwszego argumentu. Wielokrotna dyspozycja = wybór metody tylko zależy od wszystkich argumentów. (funkcja częściowa) Diagram modelu formalnego IsA dom W T typ val inst O sygn S impl realizacja

Schemat i egzemplarz obiektowej bazy danych SCH struct = (, IsA, typ, val st ) schemat struktury SCH zach = (, IsA, S) schemat zachowania SCH = (, IsA, typ, val st, S) schemat bazy obiektów INST struct = (inst, val) egzemplarz schematu struktury INST zach = (inst, impl) egzemplarz schematu zachowania INST = (inst, val, impl) egzemplarz bazy obiektów