Plan wykładu: Etapy projektowania bazy danych. Modelowanie danych za pomocą diagramów związków encji: podstawowe pojęcia: encja, atrybut, związek, rodzaje atrybutów, liczebność związków, związki wieloargumentowe, role w związkach, atrybuty związków, przekształcenie związku wieloargumentowego na związki binarne, wskazówki, słabe zbiory encji.
Projektowanie baz danych zbieranie informacji Zgromadzenie i analiza wymagań etap ten wymaga od projektanta bazy danych przeprowadzenia szczegółowych wywiadów z użytkownikami końcowymi projektowanego systemu, aby dokładnie zrozumieć i udokumentować ich wymagania. Wynikiem jest zwięźle udokumentowany zbiór wymagań użytkowników. Wymagania funkcjonalne określane równolegle z wymaganiami danych, powinny składać się z określonych przez przyszłych użytkowników operacji ewentualnie trasakcji, które będą wykonywane na bazie danych. Dotyczy zarówno operacji związanych z odczytywaniem danych jak i ich aktualizacją.
Schemat koncepcyjny Projektowanie koncepcyjne po zgromadzeniu wymagań i przeanalizowaniu danych kolejnym etapem projektowania nowej bazy danych jest stworzenie schematu koncepcyjnego bazy danych w oparciu o wysokopoziomowy język modelowania danych. Schemat koncepcyjny jest zwięzłym opisem zgłoszonych przez docelowych użytkowników wymagań danych i zwiera szczegółowe opisy encji, związków pomiędzy nimi i ograniczeń. Etap ten nie obejmuje szczegółów implementacji, dzięki czemu zrozumienie schematu koncepcyjnego jest łatwiejsze i może być wykorzystane do komunikacji z użytkownikami nie posiadającymi przygotowania technicznego.
Implementacja bazy Po wykonaniu projektu koncepcyjnego bazy danych, kolejnym etapemjestjużimplementacjabazywoparciuojedenz komercyjnych systemów zarządzania bazami danych. Etap ten nazywany jest często projektowaniem logicznym lub odwzorowaniem modelu danych. Istotne jest również poznanie algorytmu w jaki sposób stworzyć schemat danych na podstawie projektu koncepcyjnego. Projekt koncepcyjny przygotujemy w oparciu o diagram związków encji (E/R).
Diagramy związków encji Projekt koncepcyjny bazy danych będziemy tworzyć za pomocą diagramów związków encji(e/r). Jest to metoda graficzna pozwalająca w sformalizowany sposób przedstawić koncepcyjny schemat bazy danych. Diagramy te za pomocą prostokątów, rombów, strzałek i elips opisują model danych tworzonej bazy. id_prod nazwa typ id_kl imie nazwisko PRODUKTY ilosc KLIENCI adres cena ilosc Zawiera data Sklada email ZAMOWIENIA
Encje, atrybuty, związki ENCJA byt świata rzeczywistego, niezależny od innych elementów. Może być fizycznie istniejącym obiektem np.: konkretną osobą, samochodem, domem, pracownikiem, bądź obiektem o charakterze koncepcyjnym np.: firmą, pracą lub przedmiotem. ATRYBUTY szczegóły opisujące właściwości encji. Dla encji PRACOWNIK atrybutami mogą być imię, nazwisko, wiek, pesel, adres, wysokość pensji. każda encja posiada po jednej wartości dla każdego z atrybutów, wartości atrybutów opisujące poszczególne encje są główną częścią danych składowanych w bazie danych. ZWIĄZKI opisują połączenia pomiędzy dwoma lub większą liczbą zbiorów encji.
Typy encji i zbiory encji Typ encji definiuje zbiór encji o tych samych atrybutach. Opisany jest za pomocą jego nazwy i atrybutów, np. PRACOWNIK imię, nazwisko, wiek, pensja. Zbiór encji wszystkie encje danego typu znajdujące się w bazie danych w określonej chwili np. {(Jan, Kowalski,34,3600), (Jan, Winnicki,55,5000), (Józef, Balcerek,67,2400)} Zbiór encji nazywany jest tak jak typ encji.
Oznaczenia graficzne zbiór encji NAZWA atrybut nazwa atrybutu Nazwa związek imie nazwisko adres przykład UZYTKOWNICY
Atrybuty Atrybuty można podzielić na proste i złożone, jednowartościowe i wielowartościowe oraz stałe i pochodne. atrybuty proste(atomowe) niepodzielne atrybuty np.: nr domu, numer mieszkania atrybuty złożone można je podzielić na mniejsze podgrupy reprezentujące prostsze atrybuty, których znaczenia są niezależne. Przykładem może być Adres encji pracownika, gdyż można podzielić go na ulice, numer domu, numer mieszkania, miasto i kod pocztowy. Uwaga. Atrybuty złożone są przydatne w sytuacjach, gdy pojedynczy użytkownik odwołuje się od czasu do czasu do danych złożonych jako pojedynczego atrybutu i traktuje je jako całość, a w pozostałych przypadkach operuje na poszczególnych jego składnikach.
Atrybuty c.d. Atrybuty jednowartościowe najczęściej atrybut reprezentuje pojedynczą wartość dla danej encji np.: wiek jest jednoznacznie określony dla encji osoba. Atrybut wielowartościowy atrybut może mieć cały zbiór wartości dla tej samej encji np.: kolor samochodu. Atrybuty pochodne i stałe. Atrybuty mogą zależeć od siebie i wartość jednego z nich można wyznaczyć na podstawie innych. Wówczas atrybut ten nazywany jest atrybutem pochodnym, np.: wiek wyznaczamy na podstawie daty urodzenia. Atrybuty na podstawie, których wywiedzony został atrybut pochodny nazywamy atrybutami stałymi.
Atrybuty null W przypadku pewnych atrybutów konkretnej encji można dopuścić brak ich wartości. Przykładem może być np. numer mieszkania jeśli mamy na myśli jednorodzinny dom, bądź innym przykładem może być data zwrotu książki jeśli ta nie została jeszcze zwrócona. W tego typu sytuacjach tworzy się specjalną wartość pustą(null value). Wartość pusta może być również użyta w przypadku encji, dla których nie znane są wartości pewnego atrybutu. Mogą tu zaistnieć dwa przypadki: pierwszy- gdy nie posiadamy danych np. nie znamy numeru telefonu użytkownika, ale wiemy, że ten użytkownik posiadatelefonamynieznamygo;drugi-gdyniewiemyczy wartość danego atrybutu w ogóle istnieje dla konkretnej encji np. nie wiemy czy dany użytkownik posiada telefon.
Atrybuty klucza Ważnym ograniczeniem nakładanym na encje jednego typu jest ograniczenie unikalności dla wskazanych atrybutów(tzw. kluczy). W przypadku, gdy klucz składa się z jednego atrybutu to wartości tego atrybutu są różne dla każdej z encji danego zbioru. Wartości klucza można wykorzystać do jednoznacznego identyfikowania poszczególnych encji. Zdarza się, że klucz tworzy kilka połączonych atrybutów, wówczas kombinacja wartości tych atrybutów musi być unikalna dla każdej encji. Zdarza się, że typ encji nie posiada żadnego klucza i wówczas nazywany jest słabym typem encji. atrybut klucza
Związki i ich liczebność W praktyce zawsze, gdy atrybut jednego typu encji odwołuje się do innego typu encji między taką parą musi istnieć związek. Związek może dotyczyć większej liczby encji. Najczęściej spotykamy związki dwuargumentowe nazywane związkami binarnymi. Liczebność związków encji: jeden do jeden(1:1) z każdą encją pierwszego typu związana jest dokładnie jedna encja drugiego typu, DZIEKANI Kieruje WYDZIALY wiele do jeden(n:1) z każdą encją pierwszego typu związana jest dokładnie jedna encja typu drugiego, ale z encją drugiego typu może być związanych wiele encji typu pierwszego, DZIECI Urodzenie MATKI wiele do wielu(n:m) z każdą encją pierwszego typu związanych jest wiele encji typu drugiego i odwrotnie. PRACOWNICY Wykonuje ZADANIA
Przykład tytul rok nazwisko adres FILMY Gra GWIAZDY dlugosc typtasmy nazwa Posiada STUDIA adres
Wizualizacja związków encji Często przydatne jest reprezentowanie związków encji przez tabelę, w której każdy wiersz oznacza parę encji objętych związkiem. Na przykład związek Gra można przedstawić w następujący sposób: FILM GWIAZDA Terminator Arnold Schwarzenegger Alternatywy 4 Janusz Gajos Dzień świra Marek Kondrat Alternatywnie związek encji można przedstawić jako zbiór krotek, których elementami są poszczególne zbiory encji. Np.(Alternatywy 4, Janusz Gajos).
Związki wieloargumentowe Związek ten oznacza, że studio zawarło z danym aktorem kontrakt nadanyfilm.ozwiązkumożnamyślećwtymprzypadkujako zbiorze krotek, którego składowe są encjami objętymi związkiem. Stąd związek kontrakt można opisać jako trójkę postaci: (studio,gwiazda,film). Strzałka oznacza, że wskazany zbiór encji(studio) zawiera jedyną wartość odpowiadającą wybranym wartościom z pozostałych zbiorów. Dla każdej pary składającej się z gwiazdy i filmu może istnieć jedno studio, które podpisało kontrakt z gwiazdą na występ w tym określonym filmie. GWIAZDY Kontrakty FILMY STUDIA
Role w związkach Może się zdarzyć, że jeden zbiór encji występuje w danym związku więcej niż jeden raz. Należy narysować tyle krawędzi między zbioremencjiizwiązkiemilerazytenzbiórpojawisięwzwiązku. Każda krawędź odgrywa inną rolę, jaką odgrywa dany zbiór w związku. Krawędziom nadaje się etykiety z nazwą, po to by odróżnić poszczególne role w związku. Początek Przełożony Odcinek FILM Kieruje PRACOWNICY Kolejny Podwładny
Atrybuty związków Czasami zamiast wiązać atrybut z encją, jest wygodniej wiązać go ze związkiem między encjami. Dla związku kontrakt łączącego film gwiazdę i studio, trzeba pamiętać wysokość wynagrodzenia. Nie można wynagrodzenia potraktować jako atrybut gwiazdy, gdyż gwiazda może otrzymywać różne sumy za różne filmy, nie można wysokości płac wiązać ze studiem, gdyż kontrakty są indywidualne. Podobnie w danym filmie grają różni aktorzy na indywidualnych kontraktach. Jedynym rozwiązaniem jest przypisanie atrybutu związkowi. tytul rok wynagrodzenie nazwisko adres FILMY Kontrakty GWIAZDY typtasmy dlugosc STUDIA nazwa adres
Przekształcenie związku wieloargumentowego w binarny Każdy związek łączący więcej niż dwa zbiory encji można przekształcić bez utraty informacji w zbiór związków wiele do jeden. W modelu związku encji tworzy się dodatkowy zbiór encji, którego elementy traktuje się tak samo jak krotki związków dla zbioru wieloargumentowego. Taki zbiór encji nazywamy łącznym. Następnie tworzymy związki jeden do wielu z każdym zbiorem encji wchodzącym w skład pierwotnego związku wieloargumentowego.
Przekształcenie związku wieloargumentowego w binarny przykład GWIAZDY FILMY KONTRAKTY STUDIA
Wskazówki Dokładność projekt powinien dokładnie odzwierciedlać specyfikację. Encje powinny odzwierciedlać rzeczywistość. Każdy element dodany do projektu musi odzwierciedlać pewną wiedzę o jakieś części modelowanego świata rzeczywistego. Unikanie redundancji należy unikać powtórzeń, gdyż: zwielokrotnione dane zajmują więcej miejsca, modyfikacja zwielokrotnionych danych wymaga modyfikacji w więcej niż jednym miejscu, a to może prowadzić do utraty spójności danych w bazie. Prostota należy unikać wprowadzania do projektu więcej elementów niż naprawdę potrzeba. Dobór właściwych elementów czasami sytuacja pozwala na wybór typu elementu odpowiadającego elementowi ze świata rzeczywistego. Z reguły jest do wyboru zbiór encji, atrybut czy związek. Najłatwiej zaimplementować atrybut, ale określenie wszystkiego jako atrybuty powoduje kłopoty. Uwaga: Jeśli z pewnym elementem oprócz nazwy związane są dodatkowe dane to najlepiej zdefiniować go jako zbiór encji. W przypadku, gdy w schemacie ma wystąpić tylko nazwa to najlepiej potraktować ten obiekt jako atrybut. W bazie musi być rejestrowany czas pracy jaki pracownik poświęca danemu projektowi.
Przykład BIBLIOTEKA 1 Biblioteka zawiera katalog książek, które posiadają unikatowy numer katalogowy, numer ISBN, tytuł, autorów, roczniki oraz wydawnictwo. 2 Biblioteka zarejestrowani są użytkownicy, którzy rejestrując się w bibliotece muszą podać: imię, nazwisko, adres zamieszkania, email, nr telefonu. Każdemu użytkownikowi nadany zostaje unikalny numer identyfikacyjny. 3 W przypadku użytkowników nieletnich musi być podana osoba pełnoletnia, która ponosi odpowiedzialność w przypadku zniszczenia książki. 4 Każdy użytkownik ma możliwość wypożyczenia dostępnych w bibliotece książek, przy czym ilość wypożyczonych przez jednego użytkownika książek nie może w jednym czasie być większa od 5. 5 Katalog biblioteczny został podzielony na kategorie co powoduje, że każda książka należy do jednego z określonych typów. Typ określa gatunek książki, język w którym została napisana oraz przeznaczenie(dziecięca, dla dorosłych, lektura szkolna).
Przykład PROGRAM TELEWIZYJNY 1 Program telewizyjny dotyczy jednego tygodnia, podzielonego na kolejne dni. 2 Program zawiera wiele knałów telewizyjnych, które posiadają określoną nazwę, platformę na której są dostępne oraz częstotliwość na której są nadawane. Ponadto określone jest czy kanał jest ogólnodostępny czy kodowany. 3 Program zawiera programy telewizyjne, które emitowane są na konkretnym kanale, konkretnego dnia o ustalonej porze. Dla każdego programu określony jest jego rodzaj tzn.: film, wiadomości, show itp. Wymaga się, aby program zawierał informację o minimalnym wieku odbiorcy.
Przykład FIRMA 1 Firma jest podzielona na działy. Każdy dział posiada unikatową nazwę i unikatowy numer oraz jest przydzielony pracownik, który nim kieruje. W bazie danych należy utrzymać datę początkową, od której pracownik kieruje działem. Każdy dział może być rozproszony i znajdować się w wielu miejscach. 2 Dział kontroluje wiele projektów, z których każdy ma unikatowy numer oraz jedno miejsce realizacji. 3 W bazie danych należy przechowywać dane o każdym pracowniku: imię, nazwisko, adres, wysokość pensji, płeć datę urodzenia. Pracownik musi być przypisany do jednego działu, ale może pracować nad wieloma projektami, które niekoniecznie muszą być kontrolowanie przez ten sam dział. Dla każdego pracownika musi być informacja o bezpośrednim zwierzchniku.
Przykład FIRMA Typy encji:
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur.
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji:
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji: Zarządza: PRACOWNIK Zarządza DZIAŁEM(1:1)- atrybut od kiedy
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji: Zarządza: PRACOWNIK Zarządza DZIAŁEM(1:1)- atrybut od kiedy Kontroluje: DZIAŁ Kontroluje PROJEKTEM(1:n)
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji: Zarządza: PRACOWNIK Zarządza DZIAŁEM(1:1)- atrybut od kiedy Kontroluje: DZIAŁ Kontroluje PROJEKTEM(1:n) Pracuje w: PRACOWNIK Pracuje w DZIALE(n:1)
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji: Zarządza: PRACOWNIK Zarządza DZIAŁEM(1:1)- atrybut od kiedy Kontroluje: DZIAŁ Kontroluje PROJEKTEM(1:n) Pracuje w: PRACOWNIK Pracuje w DZIALE(n:1) Pracuje nad: PRACOWNIK Pracuje nad PROJEKTEM(n:m) -atrybut godziny
Przykład FIRMA Typy encji: DZIAŁY nazwa, numer, lokalizacja PROJEKTY numer, lokalizacja PRACOWNICY imię, nazwisko, adres, pensja, płeć, data ur. Związki encji: Zarządza: PRACOWNIK Zarządza DZIAŁEM(1:1)- atrybut od kiedy Kontroluje: DZIAŁ Kontroluje PROJEKTEM(1:n) Pracuje w: PRACOWNIK Pracuje w DZIALE(n:1) Pracuje nad: PRACOWNIK Pracuje nad PROJEKTEM(n:m) -atrybut godziny Kieruje: PRACOWNIK kieruje PRACOWNIKIEM
Zbiory słabych encji Zbiór słabych encji to taki, że niektóre a nawet wszystkie atrybuty klucza wybiera się z innego zbioru encji. Przyczyna pierwsza: Zbiory encji układają się herarchicznie, tzn. encje ze zbioru E są podzbiorami encji ze zbioru F, wówczas może się okazać, że nazwy zezbiorueniesąjednoznaczneinależyjeidentyfikowaćłączniez nazwązbiorufnp.:firmaskładasięzdziałów,któresą ponumerowane kolejno 1,2,3 itd. inna firma może podobnie numerować swoje działy. Jednoznaczna identyfikacja działu wymaga nie tylko podania jego numeru, ale również nazwy firmy. numer nazwa adres DZIALY sklada sie FIRMY
Zbiory słabych encji Przyczyna druga: Zawsze kiedy związek wieloargumentowy zastępujemy łącznym zbiorem encji połączonym związkami binarnymi z każdym tworzącym pierwotny związek zbiorem encji, stworzony nowy zbiór encji jest słabym zbiorem encji. Ich klucz powstaje z atrybutów tworzących klucze encji powiązanych ze zbierm łączny. wynagrodzenie KONTRAKTY Gwiazda-czego Studio-w Film-w GWIAZDY STUDIA FILMY dlugosc typtasmy nazwisko adres nazwa adres tytul rok
Wymagania dla zbiorów słabych encji JeśliEjestzbioremsłabychencjitokażdaencjazbioruF,która dostarczaatrybutówkluczadoemusipozostawaćzewpewnym związku R. Muszą być spełnione warunki: związekrmusibyćbinarnywieledojedenzedof, atrybutypochodzącezfawchodzącewskładkluczae muszą być częścią klucza F, jeżeli F jest również słabym zbiorem encji to kluczowe atrybutyzfwchodzącedokluczawemogąpochodzićz innego zbioru encji, z którym F jest powiązany w relacji wiele do jeden, jeśli między zbiorami E i F istnieje wiele związków typu wiele dojedentodowolnyznichmożesłużyćdoprzekazaniakopii atrybutukluczazezbiorufdoe.
Notacja zbiorów słabych encji 1 Zbiór słabych encji oznaczony jest prostokątem o podwójnych krawędziach. 2 Związkitypuwieledojedenłączącesłabyzbiórencjizinnym zbiorem lub innymi zbiorami, które dostarczają swoich atrybutów jako kluczy oznacza się rombami o podwójnej krawędzi. 3 Nazwy atrybutów należących do klucza są podkreślone. Podsumowując: Klucz słabego zbioru encji składa się ze swoich atrybutów klucza, które są na diagramie podkreślone(nie musi ich posiadać) oraz z atrybutów kluczy wszystkich zbiorów encji, które są połączone z tym zbiorem związkami o liczebności jeden do wielu i zaznaczone za pomocą rombu o podwójnej krawędzi.