MODELOWANIE DANYCH
Modele związków encji
Normalną rzeczą w każdej organizacji jest fakt, iż dane zmieniają się na bieżąco. Jednak rodzaje zbieranych, przechowywanych i przetwarzanych danych pozostają stabilne w dłuższej perspektywie czasu. Poprzez uogólnienie ich typów, cech i zależności między nimi można tworzyć modele danych.
Modelowanie danych jest techniką organizowania i dokumentowania danych, przy czym należy podkreślić, iż inne są oczekiwania obrazu danych firmy dla jej kierownictwa a inne np. pracowników działu informatyki, odpowiedzialnych za wdrożenie bazy danych, obsługującej procesy gospodarcze firmy. Toteż najczęściej wyróżnia się dwa modele danych:
Podstawowe (zwane konceptualnymi bądź logicznymi)
Wdrożeniowe
Pierwszy rodzaj modeli stanowi ukierunkowany na potrzeby użytkownika opis dziedziny przedmiotowej, niezależny od technicznego sposobu jego wdrożenia. Z kolei model wdrożeniowy opisuje nie tylko to, co system wykonuje, ale również, jak należy model danych wdrożyć. Do ważniejszych powodów różnicowania modeli i tworzenia modeli podstawowych należą: ograniczenie ryzyka utraty kompletnego opisu fikcjonalnego dziedziny przedmiotowej, poprzez pominiecie kwestii wdrożeniowych oraz stworzenie możliwości komunikowania się kierownictwa, użytkowników i informatyków, we wspólnym, zrozumiałym języku, bez uciekania się do technicznej terminologii informatyki.
Opracowano szereg formalizmów podstawowych modeli danych, spośród których należy wymienić:
- modelowanie związków encji,
- modelowanie binarne,
- rachunek predykatów,
- abstrakcyjne modele danych,
- modelowanie infologiczne,
- modelowanie autonomiczne.
Z kolei modele wdrożeniowe, znane w technologii baz danych, to modele:
- prerelacyjne, czyli hierarchiczne i sieciowe,
- relacyjne,
- postrelacyjne, czyli głównie obiektowe.
Największe uznanie spośród wymienionych podstawowych formalizmów modelowania danych zdobył model związków encji mimo licznych, podejmowanych w latach osiemdziesiątych prób jego zastąpienia.
Model związków encji (ang. entity / relationship), od momentu jego zaproponowania przez Chena, stał się najbardziej popularnym formalizmem modelowania danych na poziomie konceptualnym, początkowo w odniesieniu do baz danych a następnie również innych klas systemów informatycznych. W krajowej literaturze przedmiotu można znaleźć różne nazwy tego podejścia, np. obiekt-atrybut-związek czy relacje bytów.
Podstawowymi pojęciami modelowania związków encji, są:
encja,
atrybut,
związek.
W celu zilustrowania zależności pomiędzy encją, związkiem, atrybutem, wartością i jej dziedziną posłużę się rysunkiem opisującym związek MAGAZYN-PRACOWNIK jest poniższy rysunek.
Przyjmuje się, iż encją (ang. entity) jest jednoznacznie identyfikowalny składnik badanej rzeczywistości (dziedziny przedmiotowej), o którym informacja jest, lub może być, zbierana i przechowywana. Spotyka się poglądy, że encją jest każdy składnik badanej dziedziny przedmiotowej, który można nazwać a więc osoba, miejsce, rzecz, zdarzenie, stan, plan czy pojęcie. Tak więc encjami są: PRACOWNIK, MAGAZYN, KLIENT, DOSTAWCA, FAKTURA, PRZECENA, KONTO itd. Wystąpieniami encji PRACOWNIK są KOWALSKI, NOWAK, TRZECIAK itd.
Innymi słowy, encja - oznacza interesujący nas obiekt, coś, co istnieje i jest rozróżnialne od innych obiektów tego samego typu. Przyjmuje się, że encja jest dalej nierozbieralna. Obiekt w zależności od poziomu abstrakcji można traktować jako encję lub zbiór encji. Każdej encji winny być przyporządkowane minimum dwa jej wystąpienia. Wyróżnia się encje rzeczywiste, np. PRACOWNIK, MATERIAŁ oraz abstrakcyjne, np. PROGNOZA, KONTO. Istnieje tez podział na encje regularne - określane przez własne klucze (ZAMÓWIENIE) oraz słabe, identyfikowane przez klucze obiektów regularnych POZYCJA ASORTYMENTOWA, która jest składnikiem ZAMÓWIENIA. Wyróżniamy następujące rodzaje encji opisujących:
- role pełnione w organizacji lub systemie przez osoby, komórki organizacyjne bądź instytucje, np. KLIENT, DOSTAWCA, DZIAŁ, PRACOWNIK, KIEROWNIK,
- rzeczy, np. MASZYNA, MATERIAŁ, CZĘŚĆ, WYRÓB, USŁUGA,
- zdarzenia, np. UMOWA, PROGNOZA, PROJEKT ZAMÓWIENIE,
- miejsca, np. DZIAŁ, MAGAZYN, FILIA.
Z kolei atrybut stanowi cechę, element charakteryzujący encje i związki w badanej dziedzinie przedmiotowej. Zestaw atrybutów, który jednoznacznie opisuje encję nazywa się wiązką atrybutów. Wiązka winna składać się z co najmniej dwu atrybutów opisujących daną encję. W danym modelu konceptualnym należy używać różnych nazw dla tych samych lub podobnych atrybutów, przypisanych różnym encjom. Dla przykładu atrybut adres przypisany KLIENTOWI, DOSTAWCY i PRACOWNIKOWI można nazwać: k-adres, d-adres i p-adres.
W podziale rodzajowym, określającym zależność atrybutu encji lub związków od innych ich atrybutów, wyróżnia się atrybuty:
pierwotne
pochodne.
Atrybuty pierwotne to podstawowe cechy w danej encji lub związku. Nie oblicza się ich, czy wyprowadza, na podstawie wartości innych atrybutów. Jest to natomiast właściwością atrybutów pochodnych, włączanych do wiązki atrybutów danej encji czy związku, w nawiązaniu do wymagań konkretnych funkcji realizowanych w danej organizacji. Ze względu na rolę atrybutów w procedurach przetwarzania informacji wyróżniamy atrybuty:
- selekcyjne, służące identyfikacji encji i związków,
- opisowe, charakteryzujące werbalnie encje i związki,
- proceduralne, stanowiące cechy ilościowo-wartościowe, wykorzystywane
w obliczeniach.
Przykłady atrybutów encji ZAMÓWIENIE i SKLEP wraz z określeniem ich rodzaju zawiera tablica:
L.p. |
Encja |
Atrybut |
Rodzaj atrybutu |
1. |
ZAMÓWIENIE Nr |
Zamówienia |
pierwotny, selekcyjny |
2. |
SKLEP |
Nr sklepu |
pierwotny, selekcyjny |
Encje i rodzaje ich atrybutów
Szczególną rolę w zakresie podstawowych atrybutów encji pełni klucz, zwany identyfikatorem. Pozwala on na jednoznaczne określenie wystąpienia encji w danej encji. Jeśli używa się jednego atrybutu dla określenia encji, mamy do czynienia z identyfikatorem prostym. Natomiast, jeśli w tym celu ukrywa się więcej aniżeli jednego atrybutu, z identyfikatorem złożonym. Z każdym atrybutem związana jest dziedzina atrybutu, stanowiąca zbiór wartości danego atrybutu, które są jemu przyporządkowane. Atrybut jest wiec funkcją, wiążącą encję lub związki z dziedzinami wartości. Dana dziedzina może przybrać postać przedziału wartości (np. przedziału liczb rzeczywistych), skończonego zestawu wartości (np. rozmiarów odzieży: S, M, L, LX), lub wartości binarnych (T lub N, 0 lub 1). Każdemu atrybutowi w danym wystąpieniu encji lub związku przyporządkowana jest tylko jedna wartość z jego dziedziny. Jeśli dziedzina obejmuje tylko jedną wartość, mamy do czynienia nie z atrybutem a stałą.
Zestaw atrybutów jednoznacznie opisujący daną encję lub związek nazywa się wiązką atrybutów. Z kwestią wiązki atrybutów wiąże się hierarchiczność encji.. Wyróżnić można nadencje (superencje) oraz podencje (subencje). Tak np. encja STUDENT-DZIENNY i STUDENT-ZAOCZNY (każdy o innym zakresie i trybie studiów) tworzy encję STUDENT. Nadencja może zatem być podzielona na podencje. Każda z nich ma inną wiązkę atrybutów, lecz posiada wspólną część tej wiązki, identyczną z pełną wiązką nadencji. Subencja jak gdyby dziedziczy więc wiązkę atrybutów nadencji i uzupełnia o atrybuty unikanie dla tej właśnie podencji.
Wreszcie związek stanowi naturalne powiązanie pomiędzy dwu lub więcej encjami w badanej dziedzinie przedmiotowej. Istnieje duża różnorodność związków w opisywanych dziedzinach przedmiotowych. Najogólniej można je podzielić na binarne i wielorakie. Najczęściej występują związki binarne opisujące podstawowe zależności między encjami. Przykładem jest tu związek MAGAZYN-PRACOWNIK. Związek wielokrotny obejmuje więcej niż dwie encję, toteż wyróżnia się encje trzykrotne, czterokrotne itd. W identyfikowaniu i modelowaniu związków należy brać pod uwagę następujące ich cechy:
- stopień związku (albo liczebność),
- opcyjność.
Pierwsza z cech, tj. stopień związku, oznacza stosunek ilościowy pomiędzy liczebnościami wystąpień encji, uczestniczących w danym związku. Stopień związku mówi zatem o tym, ile wystąpień encji jednego rodzaju jest powiązanych z iloma wystąpieniami encji innego rodzaju. Istnieją następujące stopnie związku:
- jeden do jednego - 1:1, np. KIEROWNIK - DZIAŁ,
- jeden do wielu - 1:N, np. WYDZIAŁ- PRACOWNIK,
- wiele do wielu - N:M, np. MASZYNA - DETAL.
Stopień związków 1:1 oznacza, iż każde wystąpienie encji KIEROWNIK jest powiązane z tylko jednym wystąpieniem encji DZIAŁ. Inaczej - jeden KIEROWNIK kieruje jednym DZIAŁEM. W drugim przypadku - każde wystąpienie encji WYDZIAŁ powiązane jest z jednym lub wieloma wystąpieniami encji PRACOWNIK, przy czym każde wystąpienie encji PRACOWNIK powiązane jest z tylko jednym wystąpieniem encji WYDZIAŁ. A zatem WYDZIAŁ zatrudnia wielu PRACOWNIKÓW, natomiast PRACOWNIK zatrudniony jest wyłącznie na jednym WYDZIALE. Trzecia z kolei opcja oznacza, iż każde wystąpienie encji MASZYNA jest powiązane z jednym lub wieloma wystąpieniami encji DETAL i odwrotnie każde wystąpienie encji DETAL powiązane jest z wieloma wystąpieniami encji MASZYNA. Jest to uogólnienie praktycznej sytuacji, w której na każdej MASZYNIE obrabia się jeden lub wiele DETALI a każdy DETAL jest obrabiany na jednej lub wielu MASZYNACH. Ilustracją związków o różnych stopniach, z uzupełnieniem o odpowiednią interpretację semantyczną, jest rysunek:
Analiza sytuacji rzeczywistych, występujących w danej dziedzinie przedmiotowej, wykazuje, że poza obligatoryjnymi, istnieją opcyjne związki pomiędzy encjami. Związki opcyjne opisuje słowo ,,może". W powyższym przykładzie KLIENT pozostaje potencjalnym KLIENTEM, nawet jeżeli nie złożył nigdy ZAMÓWIENIA. Właściwszym określeniem tej sytuacji byłoby więc zdanie: ,,Każdy KLIENT może złożyć zero, jedno lub wiele ZAMÓWIEŃ"'. Tak wiec dokonanie opisu werbalnego danej dziedziny przedmiotowej jest podstawą poprawnego diagramu związków encji. Scharakteryzowano dotąd przede wszystkim binarne związki obligatoryjne opcyjne. Analiza rzeczywistych powiązań w dziedzinie przedmiotowej wskazuje na znacznie większą złożoność powiązań. Warto zwrócić uwagę w tym kontekście na związki zwrotne, rozłączne i łączne. Z pierwszym typem związku mamy do czynienia, kiedy dana encja jest powiązana z sobą. Przykładem jest tu związek KIERUJE w odniesieniu do encji PRACOWNIK, oznaczający, że PRACOWNIK, będący kierownikiem, kieruje zespołem PRACOWNIKÓW. Dwa związki danej encji traktowane są jako łączne, jeśli zaistnienie jednego jest uwarunkowane równoległym istnieniem drugiego związku. Tak więc związek PRZESYŁA pomiędzy MAGAZYNEM a SKLEPEM może zaistnieć tylko wtedy, jeśli zaistnieje związek ZAMAWIA. Związki danej encji są traktowane jako rozłączne, jeśli nie mogą zaistnieć równolegle dla tej encji. Encja może uczestniczyć w dowolnym, ale nie więcej niż w jednym, z wyodrębnionych związków w danym momencie. Dla oznaczenia związku łącznego używa się w diagramach związków encji operatora logicznego koniunkcji a w przypadku związków rozłącznych, operatora logicznego alternatywy.
Modelowanie związków encji, tworzenie ich diagramów jest techniką przystępną, zrozumiałą dla menedżerów i użytkowników nie mających specjalistycznego przygotowania informatycznego. Jakkolwiek kategorie pojęciowe modelowania związków encji są stosunkowo proste, to sam proces modelowania jest procedurą twórczą, wymagającą dużej znajomości dziedziny przedmiotowej. Problemem jest też utrzymanie spójności konstruowanego obrazu danych. O ile modelowanie procesów może podlegać dekompozycji, pozwalającej utrzymywać zależności hierarchiczne, a przez to zmniejszenie stopnia złożoności opisu, to modelowanie danych jest bardziej całościowe. Opracowany model związków encji dotyczy całej dziedziny przedmiotowej i wymaga opanowania wszystkich zależności między elementami składowymi modeli. Bez użytkowania pakietów CASE byłoby to niemożliwe w odniesieniu do bardziej złożonych dziedzin przedmiotowych.
Modelowanie związków encji jest procesem twórczym, realizowanym w sposób iteracyjny. Istnieją dwie główne strategie modelowania związków encji: zstępująca i wstępująca. Proces modelowania związków encji należy rozpocząć od identyfikacji encji. Definicja tego pojęcia umożliwia szeroki zakres interpretacyjny, Co również nie ułatwia zadania. Najczęściej zalecaną metodą jest warsztat, dyskusja z kierownictwem firmy, czy użytkownikami przyszłego systemu. Spośród zaleconych metod, wymienia się scharakteryzowane w rozdziale na temat planowania SI heurystyczne metody analizy sytuacyjnej, jak JAD, SWOT czy sesje Meta Planu. Ich użytkowanie związane jest z analizą i planowaniem strategicznym, wyznaczaniem celów i określaniem zagrożeń firmy oraz wyznaczaniem funkcji, których informatyzacja ma decydujące znaczenie dla rozwoju firmy. W sesjach tych uczestniczy zazwyczaj kierownictwo firmy i potencjalni użytkownicy. Na podstawie dyskusji i raportów pisemnych analityk może wyodrębnić słowa kluczowe, które są kandydatami encji. Podobny rezultat dają wywiady i opisy słowne dziedziny przedmiotowej. Z prostego opisu werbalnego można przejść do standaryzowane-go poprzez podporządkowanie każdego zdania pewnemu wzorcowi. Dla przykładu zdania rzeczownik - czasownik - rzeczownik odpowiadają wzorcowi encja - związek - encja. Przykłady takich zdań to: KIEROWNIK kieruje DZIAŁEM, czy KLIENT składa ZAMÓWIENIE. Określone rzeczowniki są pierwszymi kandydatami na encje.
Wykonana w pierwszej fazie identyfikacja kandydatów na encje oraz związki pozwala na opracowanie pierwszego szkicu modelu związków encji zwanego wstępnym, ogólnym modelem danych lub modelem przedsiębiorstwa. Jest on przygotowany przy współudziale uczestników warsztatów z pierwszej fazy analizy sytuacyjnej. Właściwą metodą opracowania tego modelu jest prototypowanie umożliwiające opis statyki dziedziny przedmiotowej w kategoriach diagramów związków encji, począwszy od stosunkowo prostego modelu do obejmującego główne encje wycinka rzeczywistości oraz związki miedzy nimi. Wstępny, ogólny model nie zawiera opisów związków, określania identyfikatorów, atrybutów, podencji. W tej postaci jest on zrozumiały i akceptowany przez kierownictwo firmy i stanowi podstawę prac nad pełnym modelem danych.
Wstępny konceptualny moduł danych, opracowany w pierwszej fazie umożliwia podjecie pełnego zakresu prac analitycznych zwanych również analizą danych. Chodzi tu przede wszystkim o:
- identyfikację atrybutów,
- przyporządkowanie ich poszczególnym encjom,
- przeprowadzenie hierarchizacji encji, czyli zaproponowanie nadencji i podencji,
- określenie identyfikatorów,
- dokonany na bazie analizy semantycznej opis związków pomiędzy encjami.
Dla realizacji tych zadań wykorzystuje się wyniki poprzedniej fazy. Jednak podstawą skutecznego przeprowadzenia tego etapu jest analiza dokumentów, raportów, kartotek, formatek. Analiza dokumentów pozwala na identyfikację pełnego zakresu atrybutów w modelu danych oraz przyporządkowanie ich poszczególnym encjom i związkom. Nie jest to bynajmniej czynność mechaniczna. Wymaga ona analizy wzajemnych zależności pomiędzy atrybutami. Prowadzi to do modyfikacji ogólnego modelu danych, polegającego na wyodrębnieniu nowych encji, integracji niektórych encji z modelu ogólnego, wyodrębnieniu podencji i nadencji, określeniu identyfikatorów encji. Pomocniczym narzędziem do realizacji tych czynności może być omówiona w niniejszym rozdziale normalizacja relacyjnych modeli danych. Trudniejszą czynnością jest opis związków miedzy encjami. Można tu posłużyć się dwoma równolegle realizowanymi metodami: macierzami encji oraz regułami działania (ang. business rules). Macierze wynikają ze specyfikacji encji w poprzednich fazach.
Z kolei reguły działania wynikają przede wszystkim z uproszczonych opisów dziedziny przedmiotowej typu encja - związek - encja, zrealizowanych w pierwszej fazie. Mogą one teraz być wzbogacone o wyniki wywiadów, analizy dokumentów i szczegółowej analizy danych. Reguły działania są sformalizowanym opisem funkcjonowania danej dziedziny przedmiotowej albo zasad, na których ma ona funkcjonować. Wyrażać je można w języku użytkowników - ekspertów w specyfice analizowanej działalności gospodarczej lub administracyjnej. Wiele sformułowań reguł działania zawierają interpretacje diagramów związków encji. Ostatni etap oznacza wykonanie głównej pracy związanej z modelowaniem danych. Tu właśnie pełną przydatność wykazują pakiety CASE.
Etap ostatni to właściwie synteza dotychczasowych prac. Powstaje pełny diagram związków encji zawierający specyfikacje:
- encji,
- podencji i nadencji,
- związków,
- atrybutów,
- identyfikatorów.
Pełny, rozbudowany diagram związków encji przedstawiono na poniższym rysunku:
Alternatywną wobec powyżej zarysowanej jest metoda wstępująca. Decydujący jest tu kierunek modelowania, bowiem same techniki są podobne. Podstawowe czynności w ramach metody wstępującej modelowania danych to:
- identyfikacja atrybutów na podstawie analizy danych zawartych w dokumentach, formatkach, kartotekach itd.,
- przeprowadzenie normalizacji, która pozwala na typowanie encji i związków,
- opracowanie pełnego diagramu związków encji.
Słowniki danych
Dla określenia zawartości przyszłej bazy danych dziedziny przedmiotowej niezbędne jest podanie ich struktury wewnętrznej.
Słownik danych pozwala na podanie struktury encji, przepływu danych czy składnicy danych w postaci ciągu składników danych i związanych z nimi operatorów relacyjnych. Składniki danych stają się polami danych w bazach danych. Składniki powiązane są czterema rodzajami operatorów: sekwencji, selekcji, opcyjności i iteracji.
Ich interpretację przedstawiono w tablicy poniżej
Nazwa operatora |
Oznaczenie |
Interpelacje |
Przykład |
|
1. Sekwencja |
+ |
Suma pewnej liczby składników danych |
ADRES = |
KOD-POCZTOWY+ MIEJSCOWOŚĆ+ ULICA+NR-KODU |
2. Selekcja |
[|] |
Wybór jednej spośród szeregu wystąpień składnika danych |
TYTUŁ= |
[MGR|DR|PROF.] |
3. Opcyjność |
( ) |
Wystąpienie określonego składnika danych 0 lub 1 raz |
ADRES KLIENTA= |
ADRES-WYSYŁKI+(ADRES-ROZRACHUNKU) |
Iteracja |
{ } |
Wystąpienie określonego składnika danych 1 lub więcej razy |
ZAMÓWIENIE= |
{DATA-ZAMÓWIENIA+ NAZWA-KLIENTA+ ADRES-WYSYŁKI+ POZYCJA-ASOTYMENTOWA} |
Przepływ danych oraz składnice danych są najczęściej odpowiednikami dokumentów występujących w danej organizacji gospodarczej. Przykładem może tu być zamówienie towarów.
Poprzez wyodrębnienie składników danych oraz określenie operatorów relacyjnych między nimi następuje zdefiniowanie słownika danych w układzie:
ZAMÓWIENIE=
NR-ZAMÓWIENIA+
DATA-ZAMÓWIENIA+
(KOD-DOSTAWCY)+
ADRES+
{KOD-TOWARU+
NAZWA-TOWARU+
ILOŚĆ-ZAMÓWIONA+
CENA-TOWARU+
WARTOŚĆ-TOWARU}+
WARTOŚĆ-OGÓŁEM
W ten sposób można opisywać wszystkie dokumenty występujące w analizowanej i projektowanej dziedzinie przedmiotowej. Pozwala to na wyspecyfikowanie atrybutów encji występujących w module związków encji. Porównanie atrybutów pozwala na uniknięcie redundancji poprzez wyeliminowanie powtarzających się składników danych. Słownik danych umożliwia określenie zawartości bazy danych poprzez zdefiniowanie struktur danych. Ma to szczególne znaczenie w przypadku relacyjnych baz danych.
Przy opracowywaniu materiału wykorzystano następujące pozycje wydawnicze:
Stanisław Wrycza - "Projektowanie systemów informatycznych"
[c] 1997 Wydawnictwo Uniwersytetu Gdańskiego.
Jerzy Roszkowski - "Analiza i projektowanie strukturalne"
[c] 1998 Wydawnictwo HELION
Inne źródła:
Wykłady dr. E. Ziemby
7