Obiektowe bazy danych

background image

Obiektowe bazy danych

background image

Wprowadzenie

• Era stosowania ogólnego, jednorodnego podejścia przy tworzeniu

systemów przetwarzania danych dobiega końca.

• Jest wiele różnych sposobów specyfikowania i programowania systemów.

Różne zadania mogą mieć różne charakterystyki, wymagające różnych

podejść. Wyzwanie polega na wybieraniu i łączeniu tych podejść.

• Tradycyjne podejście JEŚLI … TO, DOPÓKI WYKONUJ jest popularne w wielu

sytuacjach (nie jest jednak ani jedyne, ani najlepsze).

• Przykładowo: system stawiania diagnoz medycznych najlepiej daje się

zaprogramować za pomocą reguł i mechanizmu wnioskującego. W innej

sytuacji posłużenie się siecią neuronową lub algorytmem genetycznym

może wydajnie doprowadzić do pożądanego wyniku. Kiedy indziej logika

predykatów lub wyrażenie funkcyjne będzie najlepszą metodą określenia

programu.

• Zezwolenie twórcy na wybór tych podejść, które najlepiej rozwiązują dany

problem jest właściwe.

• We współczesnej informatyce pojęcie obiektowość ma wiele różnych

znaczeń. Termin ten był po raz pierwszy zastosowany w odniesieniu do

grupy języków programowania wywodzących się z języka będącego

odkryciem pochodzenia skandynawskiego, znanego jako Simula. Język

Simula był pierwszym językiem, który wprowadził pojęcie abstrakcyjnego

typu danych jako zintegrowanego pakietu struktur danych i procedur.

background image

Zasady podejścia

obiektowego

Obiekty
Hermetyzacja
Klasy
Dziedziczenie
Polimorfizm
Przekazywanie komunikatów

background image

Zasady podejścia

obiektowego

Obiekty – są to podstawowe elementy, z których

składa się modelowany świat rzeczywisty. Każdy

obiekt ma tożsamość, która pozwala odróżnić jeden

obiekt od drugiego. Dwa obiekty o tych samych

wartościach atrybutów są różne i rozróżnialne. W

obiektowy systemach programowania tożsamość

obiektów jest realizowana przez identyfikatory

przydzielane przez system obiektom podczas ich

tworzenia. Takie identyfikatory są niezmienne i

niepowtarzalne. Obiektowi jest przypisany typ, który

wyznacza jego budowę, oraz zachowanie, czyli zbiór

operacji (zw. metodami), które można wykonać na

obiekcie. Obiekt może być powiązany z innymi

obiektami. Obiekt zawsze znajduje się w określonym

stanie, wyznaczonym przez wartość jego atrybutów i

powiązań z innymi obiektami.

background image

Zasady podejścia

obiektowego

Hermetyzacja – oznacza, że obiekt nie ujawnia

otoczeniu swojej budowy, udostępniając jedynie

operacje zdefiniowane na swoim interfejsie.

Hermetyzacja jest przejawem modularności, czyli

oddzielenia zewnętrznych aspektów obiektu,

dostępnych dla innych obiektów, od szczegółów

jego wewnętrznej realizacji, niedostępnych z

zewnątrz

. Konsekwentne stosowanie hermetyzacji

prowadzi do uniezależnienia programu od zmian

implementacji obiektów, większej niezależności

od siebie poszczególnych części systemu, a tym

samym zwiększa odporność na błędy

powodowane w trakcie dokonywania modyfikacji.

background image

Zasady podejścia

obiektowego

Klasy

– obiekty, które mają ten sam typ i

zachowanie należą do tej samej klasy. Klasa jest

pojęciem, które pozwala analitykowi na ograniczenie

złożoności analizowanego wycinka rzeczywistości

przez rozważanie grupy podobnych do siebie

obiektów – czyli klasy – zamiast pojedynczych

obiektów. W systemach wykonawczych obiektowych

języków programowania klasa jest też generatorem

(„fabryką”) obiektów: wywołując określoną operację

klasy, potrafimy utworzyć nowy obiekt należący do

tej klasy. Klasyfikowanie obiektów jest przykładem

zastosowania bardziej ogólnej zasady abstrakcji,

przejawiającej się w ignorowaniu szczegółów,

którymi różnią się obiekty, na rzecz wydobywania

istotnych dla danej aplikacji podobieństw.

background image

Zasady podejścia

obiektowego

Dziedziczenie

– klasy tworzą hierarchie

dziedziczenia, w których klasy podrzędne, zw.

podklasami przejmują (czyli dziedziczą)

wszystkie właściwości (atrybuty i operacje)

klas nadrzędnych, zw. nadklasami, a ponadto

mają właściwości specyficzne dla siebie,

których nie mają nadklasy. Każdy obiekt

należący do danej klasy (a więc generowany

przez daną klasę) może pełnić rolę obiektu

(jest wystąpieniem) każdej nadklasy tej klasy,

gdyż ma wszystkie cechy (budowę i

zachowanie) obiektu nadklasy.

background image

Zasady podejścia

obiektowego

Polimorfizm

– w systemie obiektowym

ta sama nazwa

może oznaczać różne elementy systemu, w zależności

od tego, do jakiego obiektu się odnosi

. Polimorfizm

(czyli wielopostaciowość) może w zależności od

kontekstu odnosić się zarówno do atrybutów, jak i

(częściej) do metod. Przykładowo operacja wyświetl()

może być zrealizowana przez różne obiekty. To obiekt

„wie”, jak wykonać konkretną, adresowaną do niego

operację wyświetl(). W programie napisanym w

obiektowym języku programowania nie zawsze z góry

(tzn. na etapie kompilacji wiadomo, do obiektu jakiej

klasy będzie adresowana dana operacja. W związku z

tym polimorfizm metod wymaga stosowania późnego

wiązania, czyli mechanizmu kojarzenia wywołania

metody z odpowiednim fragmentem programu

(procedurą) na etapie wykonywania programu, a nie

na etapie kompilacji programu.

background image

Zasady podejścia

obiektowego

Przekazywanie komunikatów

– w podejściu

obiektowym system informatyczny traktujemy

jako zbiór niezależnie od siebie istniejących

obiektów, które porozumiewają się ze sobą za

pośrednictwem komunikatów.

Komunikat jest

wyrażeniem językowym skierowanym do obiektu i

wywołującym jedną z metod, które są związane z

obiektem

. Komunikat zwykle niesie ze sobą dane,

które stają się parametrami wywoływanej przezeń

metody obiektu. Komunikaty mogą być

synchroniczne lub asynchroniczne. Po wysłaniu

komunikatu asynchronicznego obiekt nie czeka na

odpowiedź, lecz kontynuuje działanie.

background image

Zasady podejścia

obiektowego

Tworzenie SI zgodnie z paradygmatem
obiektowym polega na

utworzeniu

szeregu modeli wizualnych na
diagramach UML

. Modele te dotyczą:

wymiaru funkcjonalnego – model

przypadków użycia,

wymiaru strukturalnego – model

statyczny,

wymiaru dynamicznego – model

behawioralny.

background image

Obiektowość w systemach

komputerowych

• Obiektowość jest jednym ze

sposobów osiągnięcia spójności

. Jest to

technika organizowania

i jako taka jest bardzo

użytecznym narzędziem

integrującym

.

• W szerokim rozumieniu obiektowość oznacza sposób organizowania naszych

sądów o naszym świecie. To organizowanie bazuje na typach rzeczy – lub

typach obiektowych – w naszym świecie. W ten sposób

możemy definiować

atrybuty tych typów obiektowych, operacje przeprowadzane na

typach obiektowych, reguły oparte na typach obiektowych,

maszynowe uczenie się oparte na typach obiektowych

itp. Zamiast

pojedynczej fizycznej jednostki zawierającej zmienne i metody, ogólniejsze

podejście obiektowe dostarcza metody organizowania naszej wiedzy na

poziomie koncepcyjnym.

• Obiektowość zatem

dostarcza skorowidza dla naszej wiedzy

-niezależnie

od tego, czy ta wiedza jest wyrażona w kategoriach reguł, logiki, funkcji,

języków relacyjnych, sieci neuronowych itd.

• Obiektowość można używać jako podejścia do

organizowania i łączenia

wielu różnych technik programistycznych

, włączając w to bazy wiedzy,

obliczenia równoległe, restrukturyzację procesów przedsiębiorstwa i szybkie

tworzenie programów.

• Obiektowość

nie ogranicza się do systemów informatycznych

.

background image

Obiektowość systemów w

ogólności

• Obiektowość powstała z potrzeby

łatwiejszego

sposobu symulowania systemów

– nie tylko

symulowania systemów informatycznych, lecz
dowolnych rodzajów systemów.

• Obiektowość dostarcza

metodę do tworzenia

dowolnych systemów

– niezależnie od tego,

jak te systemy będą implementowane. Ponadto
tej samej obiektowej specyfikacji można użyć w
wielu innych dziedzinach, niezależnie od tego
czy dotyczą one ludzi, maszyn lub komputerów.

background image

Podejście obiektowe

• Podejście obiektowe

modeluje sposób w jaki ludzie

rozumieją i przetwarzają rzeczywistość

(podkreśla się

rolę ludzi, ponieważ to oni tworzą systemy).

• Jeśli chcemy budować systemy działające poprawnie i

spójnie, nasze

specyfikacje powinny być jasne, zwięzłe

i jednoznaczne

. Takie specyfikacje są możliwe jedynie

wówczas, gdy używa się formalnych podstaw. Te

reprezentacje mogą mieć postać tekstową lub graficzną.

Mogą pod

określić strukturę i zachowanie systemu

względem koncepcyjnym lub implementacyjnym. Mogą być

implementacjami wyrażonymi w językach programowania,

językach definiowania baz danych (DDL) i językami

manipulowania danymi (DML). Takie implementacje można

by jeszcze rozszerzyć tak, by zawierały inne

zautomatyzowane podejścia, takie jak jednostki sterujące,

robotykę i układy komputerowe.

background image

Pojęcia i rzeczywistość

• Tworzenie pojęć ułatwia nam porządkowanie

naszego życia.

Pojęcie jest wyobrażeniem lub oznaczeniem,

które stosujemy do rzeczy lub obiektów w naszej

świadomości.

• Wiemy, że posiedliśmy pojęcie, kiedy możemy je

z powodzeniem zastosować do rzeczy wokół nas.

• Pojęcia są środkiem służącym do

rozpoznawania.

• Używane przez nas pojęcia mogą być bardzo

różnorodne, ponieważ sami je wybieramy.

background image

Przykłady pojęć

Materialne

Niematerialne Role

Opinie

Osoba
Ołówek
Samochód

Czas
Jakość
Firma

Doktor
Pacjent
Właściciel

Wydajna
praca
Wysoka
zapłata
Dobry

przykład

Relacyjne

Zdarzenia

Inne typy pojęć

Małżeństwo
Partnerstwo
Posiadanie

Sprzedaż
Zakup
Załamanie

rynku

Zestaw
Liczba
Ikona

Obraz
Sygnał
Proces

background image

Intensja i ekstensja

Intensja jest

pełną definicją

pojęcia

i testu określającego, czy to

pojęcie odnosi się do danego obiektu.

Ekstensja jest

zbiorem wszystkich

obiektów

, do których stosuje się to

pojęcie.

Intensja i ekstensja są dwiema

stronami tej samej monety – termin

„pojęcie” zawiera obie.

background image

Pojęcie Instrument muzyczny można traktować jako
jednostkowy element mający instensje i ekstensje

Instrument

muzyczny

Dowolne urządzenie
zdolne do
wydawania
melodyjnych i
harmonijnych
dźwięków

background image

Symbolizowanie intensji i

ekstensji

Symbole

zwięzłym sposobem odwoływania się

do obiektów

. Są szczególnie pomocne wtedy, gdy

chcemy przekazywać informacje o pojęciach nie

używając ich definicji. Symbolem pojęcia

instrument muzyczny jest prostokąt z etykietą

instrument muzyczny.

• Na kolejnym slajdzie pojęcie jest symbolizowane

słowami Instrument muzyczny zawartymi w

prostokącie. Jego intensja jest wyrażona przez opisową

definicję, a jego ekstensją jest zbiór egzemplarzy

Instrumentów muzycznych. W ten sposób,

kiedykolwiek pojęcie zostanie zidentyfikowane podczas

analizy, może zostać przedyskutowane w kategoriach

nazwy, definicji i obiektów do których się stosuje.

background image

Instrument

muzyczny

(Ekstensja)

Pojęcie

(Symbolizuje)

Instrument muzyczny

Dowolne urządzenie
zdolne do
wydawania
melodyjnych i
harmonijnych
dźwięków

(Intensja)

Trójka pojęciowa dla

Instrumentu muzycznego

Wzięte razem, dwustronna natura pojęcia i jego symboliczna reprezentacja,
wspomagają analityka obiektowego w rozumieniu i przekazywaniu pojęć związanych z
dziedziną zastosowań.

Trójka pojęciowa

z rysunku ilustruje sposób myślenia o tych

trzech aspektach. Na samej górze jest

symbol

pojęcia. Lewa strona przedstawia

intensję, definicję, pomysł

lub

wytłumaczenie

pojęcia. Prawa strona przedstawia

przykłady elementów

ekstensji

lub

zbioru obiektów

, do których stosuje się to

pojęcie.

background image

Brak

Prowizja od zakupu,
sprzedaży lub
dostarczania
towarów lub usług

Niepełna trójka pojęciowa, w które pojęcie nie ma ani nazwy, ani

symbolu

Używanie trójki pojęciowej jest ważne podczas analizy obiektowej. Pod pewnymi

warunkami można pominąć jeden lub więcej aspektów trójki pojęciowej. Przykładowo

ktoś może zdefiniować pojęcie bez symbolizującej je nazwy. Pojęcia i odpowiadające

im obiekty nie wymagają istnienia nazw. Jednak ludzie wydajniej się porozumiewają,

używając nazw do wyrażania pojęć. Odwoływanie się wyłącznie do definicji pojęcia

spowalnia proces komunikowania się (ciągłe cytowanie definicji byłoby długie i nudne.

Wybranie symbolu takiego jak np. Zamówienie do oznaczenia pojęcia umożliwia

wprowadzanie skrótów do porozumiewania się.

48291

Pojęcia bez nazwy

background image

Sabotażyst

a w

korporacji

Osoba niszcząca
własność z intencją
zaszkodzenia
korporacji

Niepełna trójka pojęciowa, w które pojęcie nie ma żadnych

egzemplarzy

Przykład niepełnej trójki, z symbolem pojęcia i definicją, lecz bez obiektów w zbiorze

egzemplarzy. Możemy mieć np. pojęcie Sabotażysty w korporacji, lecz

jednocześnie mieć nadzieję, iż unikniemy jego egzemplarzy. Wprowadzenie pojęcia

Sabotażysty w korporacji pozwoliłoby tej organizacji wykryć rzeczy

niespodziewane. Bez tego pojęcia wykrycie nie byłoby możliwe.
Idealny produkt mógłby być następnym przykładem pojęcia nie mającego

egzemplarzy. Jednak jak można by oceniać produkty bez pojęcia produktu idealnego.

Nowa firma może mieć pojęcie Zamówienia i Klienta, lecz jeszcze nie mieć żadnych

klientów ani zamówień.

Pojęcia bez egzemplarzy

Brak

background image

P-CD-X99

Brak

Niepełna trójka pojęciowa, w które pojęcie nie ma definicji

Uwaga: Należy wystrzegać się sytuacji, w której nie można ustalić żadnej definicji

pojęcia, a wydaje się jednak, że udało się określić odpowiadający mu zbiór obiektów.

Przykładowo przedstawiono zbiór zawierający „X17”, „Z42”, … i nie mający żadnej

udokumentowanej definicji odnoszącego się do tych obiektów pojęcia P-CD-X99. Ten

rodzaj problemów jest widoczny w organizacjach, które budują systemy bez

dokumentacji. Analityk powinien zadbać o zdefiniowanie definicji każdego pojęcia w

systemie. Pojęcie bez definicji nie jest pojęciem. Jest dosłownie bez znaczenia.

Pojęcia bez definicji

„X17”,
„Z42”.

background image

Klient, Interesant

Osoba lub
organizacja
kupująca dobra lub
usługi

Zdarzają się sytuacje, w których dla danego pojęcia występuje więcej niż jeden

symbol lub definicja. Przykładowo Klient i Interesant mogłyby być dwiema nazwami

tego samego pojęcia. Czyli pojęcie może mieć jedną definicję i kilka nazw. To zjawisko

jest czasami nazywane synonimem lub aliasem. Sprawia ono kłopot wielu

administratorom danych, ponieważ chcieliby mieć proste i uporządkowane

środowisko, w którym wszystko ma jedną standardową nazwę. O ile standaryzacja

jest użyteczna, o tyle wymuszanie jednej nazwy jest niepraktyczne. W jednej firmie

może istnieć kilka standardowych nazw jakiegoś pojęcia.

Pojęcia z synonimami

„IBM”,

„Jan Kowalski”

background image

Sfinalizowana sprzedaż

Sprzedaż
zatwierdzona
podaniem rąk

Zdarzają się sytuacje, w których trójka z homonimem ma, zamiast definicji z wieloma

nazwami, nazwę z wieloma definicjami. Przykładowo większość firm ma dwie różne

definicje Sformalizowanej sprzedaży. Dla sprzedawcy sprzedaż jest potwierdzana

podaniem rąk i potwierdzającym skinieniem głowy. Dla księgowości sprzedaż istnieje

dopiero po zatwierdzeniu i podpisaniu kontraktu sprzedaży. Wprawdzie jest możliwe,

że ten sam obiekt jest egzemplarzem spełniającym obie definicje, jednak podstawowy

problem pojawia się wtedy, kiedy te dwa zbiory są różne.
Większość repozytoriów nie potrafi efektywnie obsługiwać homonimów. Obecnie ten

kto rejestruje nazwę pojęcia jako pierwszy dostaje pełne prawa do tego słowa. W ten

sposób, jeśli księgowość jako pierwsza użyje nazwy Sprzedaż, to dział sprzedaży

będzie musiał wybrać inne słowo.

Pojęcia z homonimami

48291

48291

Sprzedaż
zatwierdzona
podpisaniem
kontraktu

background image

Dziedziny

Dziedzina jest wybranym obszarem zainteresowań, który zawiera

kolekcje obiektów będących egzemplarzami specyfikacji dziedziny.

Specyfikacja dziedziny jest kolekcją pojęć odnoszących się do

dziedziny.

• Dziedziny mogą być konkretne, tak jak zapas części, abstrakcyjne jak

zamówienie lub złożone, w których nie zachodzi żadne przetwarzanie.

Jednak systemy zwykle mają zarówno składniki strukturalne, jak i

odnoszące się do zachowań.

• Dziedzina jest „sferą … aktywności i oddziaływania”, umożliwiającą

zdefiniowanie perspektywy lub kontekstu.

• Bez perspektywy czy kontekstu nasze umysły mogą źle zrozumieć

zawartość przekazu. Dla analityka oznacza to, że może być zagrożona

koncepcyjna ścisłość.

Dziedziny określają zakres, który formalnie ogranicza i koncentruje

nasze wysiłki związane ze specyfikowaniem. Ograniczenie naszych

wysiłków pomaga nam koncentrować się na tym co jest naszym obszarem

zainteresowań. Zatem zdefiniowanie dziedziny wspomaga analityka przez

umożliwienie mu dotarcia do sedna analizowanych zagadnień.

• Dziedzina systemu jest analizowanym przez analityka rzeczywistym

światem; specyfikacja dziedziny jest produktem analizy systemu.

Specyfikacja dziedziny zatem definiuje zbiór pojęć (tak strukturalnych, jak

i odnoszących się do zachowań) dla konkretnej dziedziny.

background image

Obiekt

Obiekt jest to coś, do czego da się zastosować jakieś pojęcie. Obiekt

jest egzemplarzem pojęcia.

• Terminy obiekt i egzemplarz można stosować wymiennie.

• Większość obiektów istnieje tylko przez pewien okres. Dla tych

obiektów można sensownie zdefiniować momenty początkowy i

końcowy.

• O ile obiekty są pojedynczymi, niezależnymi egzemplarzami, to

zbiór jest pewną kolekcją (klasą) obiektów. Należenie do zbioru

jest całkowicie określone przez pełną definicję (instensję) związanego

z nim pojęcia. Ta definicja działa jak filtr, który przesiewa wszystkie

obiekty, przepuszczając do zbioru tylko te, które przejdą test

należenia do zbioru. Zbiór jest inną nazwą ekstensji pojęcia.

• Zbiór może zawierać wiele obiektów, a każdy obiekt może być

elementem wielu zbiorów. Każdy zbiór jest kolekcją tych obiektów,

które pomyślnie przeszły test przynależności określony przez pojęcie.

• Gdy stwierdzamy, że pojęcie stosuje się do konkretnego obiektu, ten

obiekt jest sklasyfikowany jako element pewnego zbioru.

• Obiekt może w dowolnym momencie należeć do wielu zbiorów. To

zjawisko nazywamy wielokrotną klasyfikacją. Ponadto, wraz z

upływem czasu, obiekt może należeć do różnych zbiorów – to zjawisko

nazywamy dynamiczną klasyfikacją.

background image

Pojęcie a typ obiektowy

Typ obiektowy jest powszechnie

stosowanym terminem na określenie
pojęcia w środowisku osób
zajmujących się standardami analizy
obiektowej (niektórzy używają
terminu klasa).

background image

Ewa

Jan

Kobieta

Mężczyzna

Pracownik

O ile obiekty są pojedynczymi, niezależnymi egzemplarzami, to
zbiór jest pewną kolekcją (klasą) obiektów. Zbiór może zawierać
wiele obiektów, a każdy obiekt może być elementem wielu
zbiorów.

Na rysunku pokazano trzy pojęcia: Kobieta, Mężczyzna i Pracownik.
Obiekt Ewa należy jednocześnie do dwu zbiorów: Kobieta i
Pracownik. Oczywiście może należeć także do innych zbiorów
takich jak: Żona, Matka, Dobry przyjaciel.

background image

Powiązanie obiektów

• Powiązania umożliwiają łączenie w

sensowny sposób obiektów różnych
typów (dwa typy obiektowe
Organizacja i Osoba są ze sobą
powiązane).

background image

Powiązanie dwóch typów obiektowych
(klas)

Typy obiektowe są oznaczone prostokątnymi węzłami, linia
oznacza powiązanie.

Węzły są użytecznym mechanizmem prezentacji, gdyż graficznie
odróżniają typy obiektowe od związanych z nimi struktur.

O ile typy obiektowe dotyczą zbiorów obiektów, o tyle powiązania
dotyczą połączeń obiektów między zbiorami.

class pracownicy

Osoba

Organizacja

Folder

Plik

*

zatrudnia

zawiera

*

background image

Model statyczny

Model obrazujący wymiar strukturalny systemu, przedstawiany

jest na diagramach klas i diagramach obiektów. Podstawowe

elementy występujące na diagramach klas to klasy (class) i

związki (association).

W klasie zdefiniowana jest struktura obiektów

(wyznaczona

przez typ klasy)

i ich zachowanie

(wyznaczone przez zbiór

operacji (metod) klasy). Atrybuty i operacje nazywamy

właściwościami klasy i jej obiektów. Zazwyczaj każda właściwość

klasy występuje we wszystkich obiektach należących do tej klasy.

Mówimy, że taka właściwość ma zasięg lokalny: odnosi się

zawsze do jednego, konkretnego obiektu. Klasa może mieć

również właściwości o zasięgu globalnym, czyli takie, które

dotyczą wszystkich obiektów należących do tej klasy, a nie są

bezpośrednio właściwościami żadnego z tych obiektów.

Przykładem atrybutu globalnego może być liczba obiektów

należących do danej klasy. Przykładem metody globalnej może być

metoda podająca liczbę obiektów należących do klasy.

Przechowywanie atrybutów globalnych w każdym obiekcie klasy

byłoby niecelowe i bardzo kosztowne, w związku z czym są one

zazwyczaj przechowywane w wyróżnionym obiekcie

reprezentującym klasę jako całość (tzw. obiekcie kontenerowym).

background image

class Domain Objects

Osoba

- pesel: int
- nazwisko: char
- adres: char
- liczebność: int

+ podaj_opis() : void
+ podaj_liczebność() : void

Samochód

- nr_rejestracyjny: int
- rok_produkcji: int
- marka: char
- liczenność: int

+ podaj_opis() : void
+ podaj_liczebność() : void
+ podaj_średni_wiek() : void

jest_właścicielem

*

Rysunek przedstawia prosty diagram klas dla systemu przechowującego
informacje o samochodach i ich właścicielach. Występują na nim dwie klasy: Osoba
i Samochód.

Klasa Osoba, poza atrybutami o zasięgu obiektu (pesel, nazwisko i adres), ma też
atrybut liczebność, o zasięgu klasy. Ma jedną metodę o zasięgu obiektu,
podaj_opis() oraz jedną metodę o zasięgu klasy, podaj_liczebność(). Właściwości
globalne są podkreślone.

Klasa Samochód ma również właściwości lokalne: nr_rej, rok_produkcji, marka,
podaj_opis() oraz globalne: liczebność, podaj_liczebność(), podaj_średni_wiek().

Klasy Osoba i Samochód nie są od siebie niezależne; są powiązane ze sobą
związkiem o nazwie jest właścicielem.

Prosty diagram klas: Samochody i ich właściciele

background image

object model statyczny

J an:Osoba

-

671212:

-

J AN KOWALSKI:

-

GDAŃSK, MOKRA 6:

bmw:Samochód

-

GD 12345:

-

1999:

-

BMW 315i:

fiacik:Samochód

-

GDKM1234:

-

1984: int

-

FIAT 126p:

jest_właścicielem

jest_właścicielem

Na rysunku zamieszczono diagram obiektów będący jednym z
niezliczonych możliwych wystąpień diagramu klas. Z tego diagramu
wynika, że wymieniona na nim osoba (Jan Kowalski z Gdańska) jest
właścicielem dwóch samochodów, których szczegóły podano jako
wartości ich atrybutów. Obiekty klas Osoba i Samochód zostały tu
wyróżnione poprzez ich nazwy (identyfikatory) poprzedzające nazwę
klasy. Użycie nazwy obiektu jest nieobowiązkowe; konieczne jest
natomiast umieszczenie (po znaku dwukropka) nazwy klasy, do której
należy dany obiekt.

Przykładowe wystąpienie diagramu klas

background image

class pracownicy

Osoba

- nazwisko:

Firma

- nazwa:

Zatrudnienie

- okres_umowy: int
- stanowisko:
- płaca:

+ zawrzyj_umowę() : void
+ awansuj() : void
+ rozwiąż_umowę() : void

+pracuje_w

1..*

+zatrudnia

1..*

Związek jako klasa

Mamy tu 3 klasy: Osoba, Firma i Zatrudnienie. Związek pomiędzy klasą Osoba i
klasą Firma reprezentuje powiązania pomiędzy poszczególnymi osobami i firmami, w
których te osoby pracują. Ten związek nie został na diagramie nazwany; zamiast tego
przy ikonach reprezentujących klasy umieszczono nazwy ról, jakie pełnią obiekty
danej klasy w tym związku. I tak każda osoba pełni rolę „pracuje_w”, a każda firma
rolę „zatrudnia”. Z umieszczonych na diagramie oznaczeń liczebności wynika, że
każda osoba może pracować w jednej lub więcej firmach, a każda firma może
zatrudniać jedną lub więcej osób. Z uwagi na przyjętą liczność związku ważne
informacje dotyczące zatrudnienia danej osoby w danej firmie, takie jak: stanowisko,
okres umowy, płaca itp., nie są atrybutami ani osoby, ani firmy, ale atrybutami pary
(osoba, firma), a więc atrybutami powiązań pomiędzy konkretnymi obiektami klasy
Osoba i Firma.

Celowe jest utworzenie klasy
reprezentującej ten związek,
czyli klasy Zatrudnienie. Klasa
ta zawiera również metody
potrzebne do zarządzania
związkiem, np. metodę
umożliwiającą zmianę
stanowiska czy zmianę płacy. W
takim rozwiązaniu nie ma
potrzeby przechowywania w
strukturze obiektu informacji o
jego powiązaniach z innymi
obiektami, gdyż wszystkie
informacje mogą być
przechowywane w obiektach
reprezentujących te powiązania.

background image

class pracownicy

Wykładowca

- nazwisko:

Student

- nr_albumu:

Przedmiot

- nazwisko:

nauka

*

*

*

Związek stopnia 3 pomiędzy wykładowcami, studentami i

przedmiotami

Stopień (degree lub arity) związku jest to liczba klas, pomiędzy którymi
zachodzi dany związek. W związku podwójnym obiekty związanych ze sobą
klas są powiązane ze sobą w pary, w związku potrójnym w trójki itp.

Na diagramie przedstawiono przykład związku potrójnego, zachodzącego
pomiędzy przedmiotami, wykładowcami i studentami pewnej szkoły.
Przyjmijmy założenie, że wszystkie podwójne między parami (Wykładowca,
Przedmiot), (Wykładowca, Student), (Przedmiot, Student) mają liczebność typu
„wiele do wielu”. Aby dowiedzieć się, do którego wykładowcy dany student
uczęszczał na dany przedmiot, nie wystarczy żaden zestaw par (w,s), (w,p) i
(s,p). Musimy mieć do dyspozycji trójki (w,s,p). Potrzebne są więc wystąpienia
związku potrójnego zachodzącego pomiędzy tymi klasami, nazwanego tu
nauka.

background image

class model statyczny

Student

Pracownik

Osoba

Profesor

Wykład

Kurs

1

prowadzi

*

1..*

zawiera

1

1..*

zapisany na

1..*

+poprzedza 0..1

+następuje po *

Zadanie
Przedstaw diagram klas odpowiadający następującym wymaganiom
:
System ma za zadanie przechowywać informacje o pracownikach (w tym profesorach), studentach
oraz przeprowadzonych kursach. Kurs może być poprzedzony innym kursem; sam także może
poprzedzać inne kursy. Każdy kurs składa się z co najmniej jednego wykładu. Wykład wchodzi w
skład tylko jednego kursu. Należy pamiętać informacje o tym, na które wykłady był zapisany każdy
ze studentów. Student może być zapisany na wiele wykładów (co najmniej jeden). Na jeden
wykład może być zapisanych wielu studentów (co najmniej jeden). Wykład jest prowadzony przez
jednego profesora. Profesor może prowadzić wiele wykładów; może też nie prowadzić żadnego
wykładu.

background image

Przykład agregacji:

Zadanie: W skład grupy wchodzi od jednego do piętnastu
studentów, przy czym student może należeć do dowolnej liczby
grup; dla każdego studenta przechowywana jest informacja o
tym, w jakim okresie należał do danej grupy.

class model statyczny

Grupa

- plan:

+ zmień_plan() : void

Student

- plan:

+ zmiań_plan() : void

Termin

- do:
- od:

*

1..15

background image

class Plan zajęć

Rejestracja na

semestry::

SemestrAkademicki

- poraRoku:
- rok_rozpoczęcia:
- status:

Rejestracja na

semestry::

Przedmiot

OgólnyPlanZajęć

GrupaStudencka

Przedmioty, sprawdziany, oceny::

Zajęcia

- czas_trwania: int
- dzień_tygodnia: dni
- godzina_rozpoczęcia: godziny

PracownikDydaktyczny

PlanZajęć

ParametryUdostępnianiaOglnegoPlanuZajęć

- filtr_grup_dziekańskicj: char
- filtr_pracowników_dydaktycznych: char
- sposób_pokazywania: boolean = G/L

ParametryUdostępnianiaPlanuZajęć

- sposób_pokazywania: boolean = L/T

«system»

«system»

-plany semestralne

0..*

-grupa

1

-lista zajęć 1..*

1

0..1

1

-plany dla grup

1..*

1

-prowadzący

1

-przedmioty_prowadzone

0..*

0..*

1

-zarządzający

1

-przedmioty_zarządzane

0..*


Document Outline


Wyszukiwarka

Podobne podstrony:
R. 6-2 Struktura OBD-przyklad 1, Uczelniane, Semestr 2, Zaawansowane Systemy Baz Danych, WYKŁ [OZaik
Obiektowe bazy danych rozproszenie
Obiektowe bazy danych
głowacki,bazy danych, Obiektowe Bazy Danych
OBIEKTOWE BAZY DANYCH KACHEL CZECH
13 Bazy danych obiektowość wykładid 14617
13 Bazy danych obiektowość wykład
10 Bazy danych obiektowość wykład
Bazy Danych relacyjne czy obiektowe
13 Bazy danych obiektowość wykładid 14617
Obiektowe i polstrukturalne bazy danych

więcej podobnych podstron