Modele koncepcyjne Związki encji Modele koncepcyjne Związki encji Bazy danych (BD) zajmują się modelowaniem otaczającego nas świata. Dowolny fragment rzeczywistości możemy próbować opisać. Dane w bazie traktowane są więc jako reprezentacja faktów, wiedzy ze świata rzeczywistego. Mamy zatem pewien model za pomocą którego przedstawiamy w komputerze wycinek świata. Każda dziedzina może być objęta bazą danych pod warunkiem, że da się dobrze ustruktualizować czyli, że uda się opisać jej elementy, znaleźć między nimi związki itd. ŚWIAT MODEL KOMPUTER OBIEKTY W BD przechowujemy wypowiedziane przez człowieka zdania, słowa o jakichś obiektach. Ludzkie zdania w komputerze przechowujemy za pomocą rekordów. Czy BD to dobra metoda reprezentacji świata? Świat zewnętrzny lepiej można reprezentować za pomocą sztucznej inteligencji. Metody sztucznej inteligencji lepiej wykorzystują wiedzę. www.wkuwanko.pl 1 Modele koncepcyjne Związki encji Rozróżniamy dwie metody reprezentacji wiedzy: Baza danych Baza wiedzy W bazach danych informacje o obiektach przedstawiane są tylko w postaci faktów (wyjątkiem są aktywne bazy danych). Możemy np. stworzyć BD dotyczącą studentów. Mogą się w niej znajdować rekordy zawierające np. takie pola: nazwisko studenta data urodzenia miejsce zamieszkania itd. Znajdują się tu wyłącznie informacje o studentach. Natomiast w bazach wiedzy oprucz faktów przekazywane są mechanizmy wnioskowania. Mamy tu zatem: bazę faktów bazę regół Czyli z jednych faktów dzięki regułom możemy wnioskować o innych faktach. Terminologia używana w BD pochodzi od Chena. Chen wprowadził pojęcie encji (ang. entity). Encja mówi o jakimś obiekcie: o czymś co istnieje i co możemy rozróżnić. Jeśli nie potrafimy rozróżnić jakichś obiektów to nie są to encje. Przykładami obiektów nie dających się rozróżnić są np. cząsteczki wody, mrówki itd. – czyli obiekty przeważnie małe, występujące w dużych ilościach. W sensie BD obiekty takie nas nie interesują. Każda encja opisana jest zestawem atrybutów, a każdy atrybut należy do jakiejś dziedziny (np. miesiąc ma dni). Atrybuty mogą być różnego typu np. tekstowe, liczbowe itd. Gdyby interesowały nas same obiekty to taka baza byłaby bazą płaską, kartotekową. Przykładem są chociażby katalogi biblioteczne. W takiej bazie kartotekowej mamy w zasadzie informacje tylko o obiektach. Pomiędzy elementami w zbiorach mogą zachodzić pewne zależności. Zależnościami w BD nazywamy wszystkie możliwe rodzaje powiązań między rekordami. Z matematycznego punktu widzenia są równoważne pojęciu odwzorowania jednego zbioru encji w inny. Wyróżniamy trzy rodzaje związków: jednoznaczne 1:1 jednoznaczne 1:N wieloznaczne N:M www.wkuwanko.pl 2 Modele koncepcyjne Związki encji Przykład związku jednoznacznego 1:1 przedstawiony jest na poniższym rysunku: ZBIÓR A ZBIÓR B Każdemu elementowi ze zbioru A przyporządkowany jest jeden element ze zbioru B i odwrotnie. Elementami zbioru A mogą być np. nazwiska i PESEL w dowodzie osobistym. Nie mogą dwie osoby mieć tego samego numeru i odwrotnie – każdy numer przyporządkowany jest tylko jednej osobie. Najczęściej stosuje się zależności jednoznaczne 1:N (rysunek poniżej). Zamówienie Klient 1 1 Klient 2 Zamówienie 2 Klient 3 www.wkuwanko.pl Zamówienie 3 3 Modele koncepcyjne Związki encji Klient może złożyć kilka zamówień (na rysunku Klient 1 składa Zamówienie 1 i 3). Natomiast każde zamówienie przyporządkowane jest tylko jednemu klientowi. Trzecim rodzajem związków są związki wieloznaczne N:M. DOSTAWA TOWAR DOSTAWA 1 TOWAR 1 TOWAR 2 DOSTAWA 2 TOWAR 3 DOSTAWA 3 TOWAR 4 www.wkuwanko.pl 4 Modele koncepcyjne Związki encji Każda dostawa może składać się z wielu towarów, a każdy towar może znaleźć się w różnych dostawach. W rzeczywistości bazy wieloznaczne zamieniane są na jednoznaczne typu 1:N poprzez wprowadzenie dodatkowego obiektu. Na poniższym rysunku zastąpiono zależność N-M dwiema zależnościami 1-N poprzez wstawienie dodatkowego obiektu FAKTURA. DOSTAWA FAKTURA TOWAR FAK.1 FAK.2 FAK.3 DOSTAWA 1 DOSTAWA 2 FAK.4 FAK.5 FAK.6 TOWAR 1 TOWAR 2 TOWAR 3 TOWAR 4 DOSTAWA 3 Każda dostawa może być wpisana na wiele faktur, ale faktura może dotyczyć tylko jednej dostawy. Tak samo każda faktura może odnosić się tylko do jednego towaru, ale „Towar 3” został wpisany do dwóch faktur: „Fak. 4 i 5”. Zatem otrzymaliśmy związki jednoznaczne. www.wkuwanko.pl 5 Modele koncepcyjne Związki encji Poprzednio pokazywaliśmy związki zachodzące między dwoma zbiorami encji. Takich zbiorów może być więcej, a więc zależności mogą być bardziej skomplikowane. Mówimy wówczas o stopniu zależności. Na poniższym rysunku stopień zależności k=3. SKLEP PRODUCENT DOSTARCZA SKLEP 1 PRODUCEN T1 PRODUCEN T2 PRODUCEN T3 TOWAR SKLEP 2 SKLEP 3 O SKLEP 4 O O O O TOWAR 1 TOWAR 2 TOWAR 3 Z istnienia trzech zależności w rodzaju (Producent1,Towar1), (Producent1,Sklep1), (Towar1,Sklep1) nie wynika bezpośrednio, iż istnieje zależność (Producent1,Towar1,Sklep1). Zależności dowolnego stopnia można sprowadzić do kilku zależności binarnych, wprowadzając nową tabelę. W naszym przykładzie może to być tabela o nazwie Dostawa zawierająca co najmniej trzy atrybuty: identyfikator producenta, towaru oraz sklepu. Zależność trzeciego stopnia (Producent,Towar,Skep) zastąpimy wówczas trzema zależnościami binarnymi: (Producent,Dostawa), (Towar,Dostawa) oraz (Sklep,Dostawa): www.wkuwanko.pl 6 Modele koncepcyjne Związki encji PRODUCENT NR PRODUCENTA ... ... ... DOSTAWA SKLEP NR DOSTAWY NR PRODUCENTA NR TOWARU NR SKLEPU ... ... TOWAR NR SKLEPU ... ... ... NR TOWARU ... ... ... Podstawowym narzędziem do modelowania zależności między zbiorami encji jest model ERD (ang. Entity Relationship Diagram). Model zależności ERD to pewnego rodzaju graf, w którym występuje kilka rodzajów elementów. W prostokątach występują encje, w owalach (elipsach) atrybuty opisujące te encje, romby oznaczają zależności miedzy encjami. Linie (łuki, gałęzie) łączą poszczególne elementy ze sobą, przy czym połączenia mogą być skierowane (strzałki) tzn że zależności występują w kierunku strzałki, ale w drugą stronę nie. Poniżej podany został przykład bazy danych Towarzystwa Ubezpieczeniowego. PRAC # www.wkuwanko.pl Nazwis ko Wynagrodze nie 7 Modele koncepcyjne Związki encji AGEN T PRACOWNI CY jest KIERUJ E Sprzedan e POLIS Y P# NAZW A BENEFICIA NT KWOT A Każdy pracownik opisany jest trzema atrybutami: #PRAC, NAZWISKO, WYNAGRODZENIE. Wśród pracowników mogą być KIEROWNICY. Podobnie polisy mają swoje atrybuty: P#, NAZWA, BENEFICIANT, KWOTA. Możemy poruszać się po tym modelu i wypowiadać pewne zdania np.: „Każdy pracownik ma swój numer” „Agent jest pracownikiem” W ten sposób dostajemy sieć, która pozwala nam wnioskować co z czego wynika. Jeśli rzeczywistość jest bardziej skomplikowana to i model ulega komplikacji i składa się z większej liczby elementów. Z biegiem lat modele Chena zaczęto udoskonalać. Do grafu dodano nowe elementy: KUPIONY PRZEZ www.wkuwanko.pl 8 Modele koncepcyjne Związki encji TOWAR KLIENT Nowe elementy to: różne rodzaje linii: >linia przerywana wskazuje na związek opcjonalny: „coś może być” >linia ciągła oznacza że „coś musi być” zakończenie linii: >„kurza łapka” oznacza „jeden albo wiele” > normalne zakończenie oznacza „dla jednego” Zatem można tworzyć nowe zdania: „Każdy klient może być nabywcą jednego lub wielu towarów” „Każdy towar musi być kupiony przez jednego lub wielu klientów” Zatem diagramy związków encji służą do modelowania danych i podają sposób widzenia ich struktury. W zależnościach takich też mogą występować związki wieloznaczne, które należy wyeliminować dążąc do jednoznaczności. Wieloznaczność komplikuje BD. Powoduje, że poruszanie się (nawigowanie) po bazie jest utrudnione. Zatem należy dążyć do jednoznaczności, aby bez nieporozumień dojść do poszukiwanej informacji (istnieją specjalne języki ułatwiające nawigacje). Do reprezentacji zadań jakiejś organizacji, które reprezentujemy w BD służą hierarchie funkcji. Funkcje najwyższego poziomu określają nam cel organizacji (czyli do czego dana firma jest powołana). Funkcje niższego poziomu zawierają zadania, które są potrzebne do spełnienia jakichś przedsięwzięć. www.wkuwanko.pl 9 Modele koncepcyjne Związki encji Diagramy przepływu danych (inaczej diagramy DFD) jest to model pokazujący w jaki sposób dane przepływają między funkcjami i jak są przez nie używane. Model ten przedstawiany jest w postaci grafu. W grafie DFD mamy następujące elementy: procesy odpowiadające funkcjom hierarchi – za ich pomocą przedstawia się sposób przetwarzania danych wejściowych na wyjściowe encje zewnętrzne – dostarczają systemowi danych wejściowych i odbierają dane wyjściowe (czasami nazywane źródłami lub odpływami) magazyny danych – służą one do czasowego przechowywania informacji (krótkotrwałe pamięci) przepływy (połączenia) czyli łuki gałęzie rysowane w postaci strzałek – pokazują ruch danych Diagramy DFD buduje się poziomami. Najwyższy poziom zwany poziomem kontekstu mówi do czego służą Rozbicie procesu DFD odpowiada dekompozycji funkcji w hierarchii funkcji. Istnieje oprogramowanie, które służy do zautomatyzowania tworzenia BD. Tworzy się model zasadniczy, który składa się z czterech modeli: model środowiska model danych (ERD) model zachowań (DFD) hierarchia funkcji. Podstawowe wzorce modelu środowiska, danych i zachowań obejmują następujące czynności: analiza i specyfikacja potrzeb użytkownika szacowanie wielkości BD dobór BD do potrzeb użytkownika Pomiędzy ludźmi, którzy projektują a kierownictwem, które ma wiedzę i żądania o BD wytwarza się współpraca. Mamy zatem sześć etapów projektowania i wdrażania systemu BD. strategia analiza projektowanie budowa – dokumentacja www.wkuwanko.pl 10 Modele koncepcyjne Związki encji wdrożenie utrzymanie i rozwój. www.wkuwanko.pl 11