Plan wykładu Spis treści 1 Projektowanie systemu informatycznego 1 2 Modelowanie pojęciowe 4 2.1 Encja....................................... 5 2.2 Własności.................................... 6 2.3 Związki..................................... 8 2.4 Hierarchia.................................... 11 3 Podsumowanie 13 4 Źródła 13 1 Projektowanie systemu informatycznego Etapy projektowania systemu informatycznego I To, czego klient potrzebował. To, co klient zamówił. Etapy projektowania systemu informatycznego II 1
To, co analityk zrozumiał. To, co opisał projekt. Etapy projektowania systemu informatycznego III To, co wykonali programiści. To, co powstało po wdrożeniu. Etapy projektowania systemu informatycznego IV 2
To, za co klient zapłacił. Projektowania systemu informatycznego Projektowania systemu informatycznego Baza danych niewielkiej spółdzielni mieszkaniowej zawiera informacje o mieszkańcach, mieszkaniach, rachunkach itp. Faza analizy zakończyła się opisem fragmentu rzeczywistości: Spółdzielnia zarządza mieszkaniami, z których każde posiada szczegółowy adres, status, powierzchnie, oraz określone stawki za media. Niektóre z mieszkań posiadają właścicieli i są zamieszkiwane przez mieszkańców. Każdy mieszkaniec posiada dane osobowe takie jak imię, nazwisko, datę urodzenia, pesel, opcjonalnie numer dokumentu potwierdzającego tożsamość. 3
Do każdego mieszkania przypisany jest rachunek, który zawiera kwotę czynszu, datę wystawienia, termin zapłaty i ewentualne naliczone odsetki. Na rachunki wykonywane są wpłaty, które mogą się odbywać ratami. Stawki za media i czynsz określają koszt eksploatacji mieszkania, metra sześciennego wody, fundusz remontowy, wywóz nieczystości, centralne ogrzewanie i opcjonalne pomieszczenia dodatkowe. Niektórzy mieszkańcy mogli otrzymać dodatek mieszkaniowy na określony okres, w danej kwocie. 2 Modelowanie pojęciowe Modelowanie pojęciowe Modelowanie pojęciowe (konceptualne/semantyczne) Model pojęciowy to abstrakcyjny opis rzeczywistych obiektów. Pojęcie to odnosi się do procesów myślowych i wyobrażeń towarzyszących pracy nad oprogramowaniem. Język schematu pojęciowego dostarcza semantycznych i syntaktycznych elementów ściśle używanych do opisu modelu pojęciowego, aby spójnie przekazać znaczenie. Model pojęciowy opisany za pomocą języka schematu pojęciowego nazywa się schematem pojęciowym. Schematy pojęciowe Pojęciowy model danych można reprezentować przez: diagramy związków encji (ERD - entity-relationship diagrams): notacja Chena, notacja Oracle, notacja IDEF1X, notacja Bachmana, notacja Abriala, i inne; diagramy UML (Unified Modeling Language - Ujednolicony Język Modelowania). Modelowanie pojęciowe na encjach Założenia: świat składa się z obiektów - encji, encje można pogrupować w typy, każda encja ma własność służącą do jej identyfikacji, encje są między sobą powiązane. 4
Nieformalne definicje pojęcie znaczenie przykład ENCJA rozróżnialny obiekt mieszkanie, rachunek, mieszkaniec, właściciel WŁASNOŚĆ opisuje encję adres mieszkania, nazwisko mieszkańca ZWIĄZEK łączy encje zamieszkane (mieszkanie - mieszkaniec) PODTYP podtyp encji właściciel jest podtypem mieszkańca 2.1 Encja Encja Encja (ang. entity) - reprezentuje zbiór obiektów w modelowanym fragmencie rzeczywistości, które posiadają te same cechy i są na tyle istotne, by trwale przechowywać o nich informacje. Encja może być odpowiednikiem obiektów materialnych, niematerialnych, zdarzeń lub faktów. Cechy encji: każda encja posiada własności, każda encja posiada unikalny identyfikator, konkretny obiekt świata rzeczywistego jest reprezentowany jako wystąpienie encji (instancja encji), każda encja ma unikalną nazwę, dowolny obiekt jest reprezentowany wyłącznie przez jedną encję. Obiekty reprezentowane przez encje Encje mogą reprezentować: obiekty materialne (mieszkanie, mieszkaniec), obiekty niematerialne (rachunek, wpłata), zdarzenia (kupno, sprzedaż), fakty (stan magazynowy). 5
Encja słaba Encja słaba to encja, której istnienie zależy od innej encji. (Nie istnieje, jeżeli nie istnieje encja, z którą jest powiązana). Na przykład samochód należący do pracownika, a nienależący do firmy, wprowadzony do ewidencji w celu dofinansowania kosztów benzyny pracownikowi, może być słabą encją. Wraz z odejściem pracownika zostanie usunięty z bazy. Zapis encji Notacja Chena Notacja Oracle a 2.2 Własności Własności Własności określają cechy encji. Encje tego samego typu mają wspólną część własności. Każda własność przybiera wartości z odpowiedniego zbioru wartości. Typy własności: proste lub złożone, identyfikujące, jedno- lub wielowartościowe, podstawowe lub pochodne (wywiedzione). Własności identyfikujące Własności identyfikujace Każda encja posiada własność lub zbiór własności będących jej unikalnym identyfikatorem. Własności te przyjmują unikalne wartości w ramach wszystkich wystąpień encji. Typy własności identyfikujacych: proste naturalne: PESEL, NIP, ISBN, proste sztuczne: nr akt, id mieszkania, złożone: id mieszkania, PESEL. 6
Deskryptory Deskryptory - wszystkie nie unikatowe własności encji. Cechy deskryptorów: reprezentują podstawowe cechy encji, mogą być opcjonalne lub obowiązkowe. Definicja własności Definicja własności obejmuje: określenie nazwy, określenie dziedziny (typ i maksymalny rozmiar, zbiór dozwolonych wartości, zakres dozwolonych wartości), dopuszczenie/niedopuszczenie wartości pustych, opcjonalne narzucenie unikatowości. Zapis własności Notacja Chena Notacja Oracle a 7
2.3 Związki Związki Związki określają zbiór asocjacji pomiędzy instancjami encji (powiązania pomiędzy obiektami świata rzeczywistego). Encje objęte danym związkiem są uczestnikami tego związku. Liczba uczestników w związku jest nazywana jego stopniem. Typy związków: unarne, binarne, ternarne, obligatoryjne lub opcjonalne, jeden do jeden, jeden do wiele, wiele do wiele. Związki unarne Związki unarne wiążą instancję encji z instancją tej samej encji (najczęściej reprezentują rekurencyjne powiązanie hierarchiczne). Dla związków unarnych należy okreslić rolę jaką gra każda instancja encji w związku. Związki binarne Związki binarne wiążą instancje dwóch encji (najpopularniejsze). 8
Związki ternarne Związki ternarne wiążą instancje trzech encji (nie należy mylić z trzema związkami binarnymi). Typ asocjacji 1:1 Typ asocjacji określa liczbę instancji związku, w których może brać udział instancja encji Asocjacja 1:1 - każda instancja bierze udział w co najwyżej jednej instancji związku. Jedno mieszkanie może posiadać jeden dodatek, dodatek jest przypisany do jednego mieszkania. Typ asocjacji 1:N Asocjacja 1:N - instancja jednej encji bierze udział w co najwyżej jednej instancji związku, instancja drugiej w dowolnej liczbie instancji związku. 9
Pracownik pracuje na jednym wydziale, wydział zatrudnia wielu pracowników. Typ asocjacji N:M Asocjacja N:M - instancje obu encji biorą udział w dowolnej liczbie instancji związku. Mieszkanie może mieć więcej niż jednego właściciela (np. małżeństwo), właściciel może mieć wiele mieszkań. Opcjonalna przynależność do związku Opcjonalna przynależność do związku - mogą istnieć instancje encji nie biorące udziału w żadnej instancji związku Mieszkanie może nie posiadać dodatku mieszkaniowego. Obligatoryjna przynależność do związku Obligatoryjna przynależność do związku - wszystkie instancje encji muszą brać udział w instancji związku 10
Mieszkanie musi posiadać rachunek, rachunek musi być przypisany do mieszkania. Zapis związków Notacja Chena Notacja Oracle a 2.4 Hierarchia Podtypy Podtyp Encje o wspólnych zbiorach atrybutów, można generalizować używając encji nadtypu (encji generalizacji, encji nadklasy). Np.: podtypem encji pracownik może byc programista, a mieszkańca - właściciel. 11
Podtypy - wnioski Encja podtypu (podklasy) dziedziczy wszystkie atrybuty oraz związki encji nadtypu. Encje podtypu nie posiadają własnego identyfikatora, identyfikator nadtypu jest wspólny dla wszystkich jego podtypów. Semantyka związku generalizacji oznacza, że każde wystąpienie podencji JEST wystąpieniem nadencji. Związki a podtypy Związki w hierarchizacji: związki dotyczące encji podtypu, związki dotyczące encji nadtypu, związki wzajemnie wykluczające się. Specjalizacja i generalizacja Specjalizacja definiowanie zbioru podtypów na podstawie nadtypów. Generalizacja definiowanie ogólnego nadtypu na podstawie istniejącego zbioru encji, które automatycznie stają się podtypami. 12
3 Podsumowanie Podsumowanie Kroki podejmowane w trakcie modelowania pojęciowego: określenie encji, określenie własności (znalezienie własności identyfikujących, deskryptorów i własności pochodnych), określenie związków (ich stopni, typu asocjacji, przynależności), wykluczenie związków niepoprawnych, znalezienie encji słabych, nadtypów i podtypów. 4 Źródła Źródła W wykładzie wykorzystano materiały: C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 http://www.cs.put.poznan.pl/mmorzy/ http://wazniak.mimuw.edu.pl/index.php?title=bazy_danych http://bit.csc.lsu.edu/~chen/chen.html 13