Transcript Wykład 5
Modelowanie struktur danych Dr inż. Marek Miłosz Wykład 5 Plan © M.Miłosz Diagramy związków encji (ERD) Metodyka budowy diagramów ERD Podstawy technologii baz danych Relacyjny model danych Mapowanie modelu ERD na relacyjny model implementacyjny PSI-6 2/90 Modelowanie struktur danych Model danych = struktura informacyjna SI Cele: ścisłe określenie potrzeb informacyjnych obiektu rzeczywistego (firmy, działu itp.) identyfikowanie rzeczy ważnych w analizowanym systemie (encji, obiektów), własności tych rzeczy (atrybutów) i sposobów jakimi te encje są ze sobą powiązane (związków) dostarczenie modelu niezależnego od sposobu przechowywania danych i od metod dostępu do nich © M.Miłosz PSI-6 3/90 Diagram związków encji ERD - Entity Relationship Diagram Diagram prezentujący dane i związki logiczne pomiędzy nimi Na diagramie występują: encje o określonych właściwościach (atrybutach) związki (relacje, odniesienia) Różne notacje i nazwy (ale te same zasady) LDS - Logical Data Structure SSADM - Structured System Analysis and Design Method © M.Miłosz PSI-6 4/90 Klient Encje - zasady ENCJA - rzecz lub obiekt (grupa, klasa, kategoria a nie konkretny) mający dla nas znaczenie, rzeczywisty bądź wyobrażony, o którym informacje muszą być znane lub przechowywane każda encja musi być jednoznacznie identyfikowalna (nazwa w liczbie pojedynczej) każda instancja (wystąpienie) encji musi być wyraźnie odróżnialna od wszystkich innych instancji encji tego samego typu (identyfikator, klucz główny) © M.Miłosz PSI-6 5/90 Encje - przykłady © M.Miłosz Klient Rower Bilet Rewers Faktura Płatność PSI-6 6/90 Związki encji Związek - istotne (i nazwane) powiązanie pomiędzy dwiema (lub więcej) encjami; dwustronny Charakterystyka związku (dla każdego końca): nazwa (jednoznaczna) stopień, liczność, moc - (jeden, wiele, wcale lub wiele oznaczenia: 1:1;1:n;n:m) opcjonalność (wymagany/opcjonalny) Różne notacje: kółka, strzałki, kurze łapki © M.Miłosz PSI-6 7/90 Istota i liczność związku Faktura ?n 1? ma Klient Faktura nr 67/01 Faktura nr 69/01 Faktura nr 99/01 © M.Miłosz PSI-6 8/90 Przykłady Faktura Klient Klient © M.Miłosz występuje Towar ma Dowód tożsamości ma Dowód tożsamości PSI-6 9/90 Związki rekurencyjne (unarne) Pracownik ma kierownika ma kierownika ma kierownika ma kierownika Pracownik Pracownik © M.Miłosz PSI-6 10/90 Związki encji - przykłady M:N (opcjonalnie) 1:1 OSOBA PASZPORT KSIĄŻKA 1:N 1:N ZAMÓWIENIE © M.Miłosz CZYTELNIK (opcjonalnie) POZYCJA KATALOG PLIK KATALOG PLIK PSI-6 11/90 Związki encji - niepoprawne © M.Miłosz PSI-6 12/90 Związki wielokrotne Faktura ALBO Gotówka © M.Miłosz Przelew Karta kredytowa PSI-6 13/90 LDS - konwencje SSADM - Structured System Analysis and Design Method jeden wiele wcale lub wiele wykluczanie się wzajemne Typ związku: wymagany opcjonalny opcjonalnie-wymagany © M.Miłosz PSI-6 14/90 Atrybut encji dowolny szczegół służący do kwalifikowania, identyfikowania, klasyfikowania, określania ilości lub wyrażania stanu encji dowolny opis mający znaczenie dla encji funkcja przypisująca obiektowi wartość cechy ze zbioru wartości tej cechy (dziedziny) Właściwości atrybutów: atomiczność, jednoznaczność, zależność tylko od instancji encji (klucza głównego), domena, format, inne warunki © M.Miłosz PSI-6 15/90 Atrybuty Atrybut = element danych Atrybut kluczowy = identyfikator instancji encji © M.Miłosz PSI-6 16/90 Atrybuty - przykłady Klient Nazwisko Imię Kod_pocztowy Miejscowość Ulica Numer @PESEL Data_urodzenia © M.Miłosz Rower @Numer_roweru Typ_roweru Data_zakupu Cena_zakupu Kolor Status Data_statusu PSI-6 17/90 Algorytm budowy ERD (1) Lista: 1) identyfikacja klient (PESEL), (wydzielenie) zbioru rower (Nr), typ obiektów (encji) w systemie wraz z roweru (Kod), ich atrybutami wypożyczenie (Nr), kluczowymi cennik (Pozycja) 2) identyfikacja powiązań Klient Rower Typ roweru Wypożyczenie Cennik Klient X bezpośrednich Rower X X między encjami X (tablica krzyżowa) Typ roweru oraz ich rodzaju Wypożyczenie Cennik © M.Miłosz PSI-6 18/90 Algorytm budowy ERD (2) 3) przekształcenie tablicy krzyżowej powiązań w logiczny model danych i identyfikacja pozostałych atrybutów encji 4) przekształcenie każdego z powiązań typu M:N na dwa powiązania typu 1:N i identyfikacja dodatkowych atrybutów charakterystycznych dla nowo powstałych obiektów (encje kojarzące, łączące) © M.Miłosz 5) sprawdzenie poprawności otrzymanej struktury poprzez porównanie z wymaganiami systemu 6) weryfikacja DFD względem ERD (tak by był sprzęg: encja(-cje)składnica(-e) danych) PSI-6 19/90 ERD - przekształcenie powiązań typu M:N Faktura Faktura składa się występuje Pozycja Towar występuje Towar Encja pośrednicząca (łącząca) © M.Miłosz PSI-6 20/90 Problem przekształcenia Słuchacz uczestniczy dokonuje Kurs dotyczy Płatność Słuchacz jest na liście Pozycja listy dotyczy Kurs Płatność dotyczy Płatność © M.Miłosz PSI-6 21/90 Model danych w SI „SzyB” Rower Klient Typ roweru Cennik Rower Klient Typ roweru Cennik Rower wypożycza Klient ma Typ roweru © M.Miłosz jest związany Cennik PSI-6 22/90 SzyB - ERD Typ roweru ma Rower jest Wypozyczenie Klient ma jest zwiazany Cennik Model konceptualny © M.Miłosz PSI-6 23/90 ERD z atrybutami Typ roweru Kod typu Nazwa typu roweru jest zwiazany ma Rower Numer roweru Kolor Rok produkcji Status roweru jest Wypozyczenie Numer wypozyczenia Data wypozyczenia Data planowana zwrotu Data zwrotu Status ma Klienci PESEL Nazwisko klienta Imie klienta Data urodzenia Nr dowodu tozsamosci Rodzaj dowodu tozsamosci Kod pocztowy Miasto Ulica Numer domu/mieszkania Telefon staly Telefon komorkowy Cennik Pozycja cennika Cena za godz. Cena stala © M.Miłosz PSI-6 24/90 Podstawy technologii baz danych Dane w programach Dane wewnątrz programów (we/wy, wykorzystanie przez jednego użytkownika i w trakcie pojedynczej sesji) - nietrwałe, niedostępne dla wielu użytkowników Program We Wy Dane © M.Miłosz PSI-6 26/90 Dane - potrzeby aplikacji Dużo danych Dane wspólne dla: wielu programów wielu użytkowników tego samego programu Trwałość danych : długi czas życia We Program A Wy We Program B Wy We Program A Wy Dane © M.Miłosz PSI-6 27/90 Rozwiązanie: DANE w PLIKACH Dane w plikach - problemy Współdzielenie danych - efektywność i konflikty Rozwiązanie (warstwa pośrednia): System Zarządzania Bazą Danych - SZBD We Program A Wy SZBD © M.Miłosz Baza danych PSI-6 28/90 Co to jest BD? Zorganizowany zbiór danych przechowywany w zewnętrznej pamięci komputera Odzwierciedlenie fragmentu rzeczywistości Cechy: trwałość zgodność © M.Miłosz z rzeczywistością PSI-6 29/90 BD - struktura Dane: 28,5 Znaczenie: wiek pracownika Część intensjonalna: schemat BD, definicja struktury i zasad poprawności Część ekstensjonalna: same dane, zawartość faktograficzna © M.Miłosz PSI-6 30/90 BD - pożądane właściwości © M.Miłosz Współdzielenie danych Brak redundancji Integralność Spójność Bezpieczeństwo danych Poufność danych Abstrakcyjność danych Niezależność danych od programów Niezawodność dostępu PSI-6 31/90 BD - poziomy odwzorowania danych Zewnętrzny Konceptualny Wewnętrzny: Model ANSI/SPARC American National Standards Institute Standards Planning and Requirements Committee Implementacyjny Fizyczny APLIKACJA APLIKACJA APLIKACJA SCHEMAT KONCEPTUALNY SCHEMAT IMPLEMENTACYJNY © M.Miłosz BAZA DANYCH PSI-6 32/90 SZBD - zadania Organizacja struktury BD (definiowanie schematu BD) Konstruowanie BD (system plików) Przetwarzanie danych: aktualizacja danych (wprowadzanie, poprawianie, usunięcie) wyszukiwanie danych (zapytania do BD) Administracja BD Zapewnienie właściwości BD w praktyce © M.Miłosz PSI-6 33/90 SZBD - specjalne cechy Transakcyjność przetwarzań Optymalizacja przetwarzań Blokowanie zasobów (rozwiązanie konfliktów dostępu) Przeciwdziałanie zakleszczeniom System kont i uprawnień dostępu Monitorowanie BD © M.Miłosz PSI-6 34/90 Języki baz danych Język definiowania danych (Data Definition Language - DDL) - definiuje schemat implementacyjny Język manipulowania danymi (Data Manipulation Language - DML) Język zapytań (Query Language) Język sterowania danymi (Data Control Language - DCL) - sterowanie transakcjami © M.Miłosz PSI-6 35/90 SZBD - architektura Architektura jednopoziomowa Dwupoziomowa: klient-serwer Trójpoziomowa: serwer WWW-serwer aplikacji - serwer BD Architektura rozproszona (wiele serwerów BD, problem: utrzymanie integralności i aktualności; replikacja BD) © M.Miłosz PSI-6 36/90 Architektury sieciowe BD Serwer BD BAZA DANYCH SERWER PLIKÓW OPROGRA MOWANIE BAZA DANYCH SERWER PLIKÓW OPROGRA MOWANIE SZBD SIEĆ SIEĆ SZBD APLIKACJA © M.Miłosz APLIKACJA Klient Klient PSI-6 37/90 Serwer aplikacji SERWER OPROGRA MOWANIE BAZA DANYCH APLIKACJA SZBD Serwer WWW SIEĆ Interfejs © M.Miłosz Klient Podział aplikacji na dwie części: transakcyjną (obliczeniową) i interfejs użytkownika Chudy (słaby, tani) klient Uniezależnienie aplikacji od SZDB (uniwersalna, otwarta architektura aplikacji) PSI-6 38/90 Przetwarzanie rozproszone SERWER BD TOM A BD TOM B SZBD SZBD SIEĆ Klient © M.Miłosz Przezroczystość dla klienta Szybkość Wielkość BD Niezawodność Problemy: łączność, transakcyjność, integralność PSI-6 39/90 Własności współczesnych BD Niezależność aplikacji i danych Abstrakcyjna reprezentacja danych, wykorzystywanych przez aplikacje Różnorodność widzenia danych przez różnych użytkowników (filtry, perspektywy itp.) Fizyczna i logiczna niezależność (wieloplatformowość SZBD) © M.Miłosz PSI-6 40/90 Model implementacyjny - typy © M.Miłosz Zespół Hierarchiczny Sieciowy Kartotekowy Relacyjny Obiektowo-relacyjny Obiektowy Hypertekst Część 1 Część 2 Element A Element B Element C Tytuł Część 3 Element A Element D Autor Wydawnictwo Rok PSI-6 41/90 Model relacyjny - historia Dr E.F.Codd, IBM (1970) - A Relational Model for Large Shared Data Banks Lata 70.: IBM (System/R); INGRES (Uniwersytet Kalifornijski w Berkeley) Lata 80.: mainframe: DB2, Oracle minikomputery (Unix): Informix, Sybase, Progress mikrokomputery: dBase, FoxPro, Clipper, Paradox, R:BASE Lata 90.: © M.Miłosz dowsizing dużych systemów mikrokomputery: MS SQL Server Linuxowe: MySQL, Postgres PSI-6 42/90 RBD - pojęcia podstawowe Tablica, plik Atrybut, pole, kolumna Rekord, wiersz tablicy Typ danych Domena, dziedzina Wartość null Związki wartościowe (referencje) © M.Miłosz Książki Nr książki Tytuł Autor Wydawnictwo Wypożyczenia Nr książki Id Data Czytelnicy Id Imię Nazwisko Miasto PSI-6 43/90 RDB - zasady Każda tablica w BD ma jednoznaczną nazwę Każde pole (kolumna) na jednoznaczną nazwę w tablicy Wszystkie wartości w kolumnie są tego samego typu Porządek kolumn i wierszy nie jest istotny Każdy wiersz musi być różny (wartościowo) Pola muszą zawierać wartości atomowe © M.Miłosz PSI-6 44/90 Klucze • Klucz główny Czytelnicy Id Imię Nazwisko (Primary Key) 1 Jan Kowal grupa kolumn 2 Staś Marciniak o nie powtarzających 3 Marek Miłosz się danych • Klucz obcy (Foreign Key) - grupa kolumn z jednej tablicy, których wartości odpowiadają kluczowi głównemu innej tablicy (powiązanie) © M.Miłosz Miasto Lublin Świdnik Lublin Wypożyczenia Nr książki 12 15 18 Id 3 3 5 Data 00-12-01 00-12-01 00-12-08 PSI-6 45/90 Integralność Poziom pól (dziedzina wartości) Poziom tablic (klucz główny) Integralność referencyjna: obowiązkowość związku ograniczone usuwanie usuwanie kaskadowe wstawianie null Integralność dynamiczna © M.Miłosz PSI-6 46/90 Porządkowanie wierszy Wiersze w tablicach - porządek historyczny Znaczenie dla interfejsu Fizyczne sortowanie - b. pracochłonna operacja z wykorzystaniem roboczych plików dyskowych; “trwałość” rezultatu Sortowanie logiczne (indeksowanie) tworzenie i wykorzystywanie tablic indeksowych; operacja dynamiczna © M.Miłosz PSI-6 47/90 Dostęp do danych Sekwencyjny (rekordy w pliku, który musi być przeglądany od początku) Bezpośredni (możliwość natychmiastowego odnalezienia potrzebnego rekordu w pliku) Indeksowany (wykorzystuje tablicęindeks do odszukania miejsca przechowywania rekordu) © M.Miłosz PSI-6 48/90 Transakcje na BD SI zapis Operacje Stany zmiana stanu © M.Miłosz Zestawienie stanów i obrotów PSI-6 49/90 Transakcje Zmiana stanu BD Logiczna jednostka pracy w BD W trakcie trwania transakcji - BD nie jest spójna (narusza się integralność) Właściwości transakcji: niepodzielność, spójność, izolacja i trwałość Blokowanie - podstawa realizacji transakcji w środowisku współbieżnym © M.Miłosz PSI-6 50/90 Transakcje a awaria BD Transakcje zatwierdzone - mają być odtworzone Transakcje niezatwierdzone - wycofane Metody osiągnięcia: dzienniki transakcji redundancja © M.Miłosz PSI-6 51/90 4GL Języki czwartej generacji oparte na formularzach Proceduralne SQL - podzbiór Języki: ORACLE PL/SQL Progress 4GL Informix 4GL © M.Miłosz PSI-6 52/90 Mapowanie modelu konceptualnego na implementacyjny Konceptualny (logiczny) a implementacyjny model danych Konceptualny (niezależny od SZBD, języka programowania, modelu bazy danych) - ERD Implementacyjny - fizyczny (w konkretnym modelu bazy danych i SZBD) Model implementacyjny służy do wygenerowania skryptu do tworzenia BD wraz z więzami integralności (Słownik BD) © M.Miłosz PSI-6 54/90 Pojęcia relacyjnego modelu implementacyjnego Tabela (odpowiednik encji, nazwa l.mnoga) Kolumna-Pole (odpowiednik atrybutu) Dziedzina (konkretny typ danych i jego parametry) Rekord (wystąpienie) Indeks © M.Miłosz Klucz główny (indeks unikalny, klucze sztuczne) Klucz obcy (indeks nieunikalny) Odniesienie (klucz główny-obcy; więzy integralności referencyjnej) Klucz alternatywny (indeks unikalny lub nie) PSI-6 55/90 Inne elementy modelu implementacyjnego Atrybuty rozszerzone (nie SQL-owe) specyficzne dla danego SZBD: dodatkowe typy, opisy, etykiety, elementy wyświetlane na ekranie (komunikaty, helpy) wartości domyślne rozróżnialność (lub nie) wielkości znaków procedury walidacyjne (trigery) typ indeksu (np. słowny), opis, sposób konstrukcji indeksu sekwencje © M.Miłosz PSI-6 56/90 Tworzenie modelu implementacyjnego Generowanie z modelu konceptualnego (mapowanie modelu konceptualnego na implementacyjny) Rewers ze schematu istniejącej BD Różne wersje modelu implementacyjnego Dane istniejące w BD © M.Miłosz PSI-6 57/90 Problemy mapowania Nazewnictwo (identyfikatory, sposób ich tworzenia, nazwy typów, dziedziny) Ograniczenia ilościowe (np. na liczbę pól w rekordzie) Brak wielowartościowości pól (płaski model) Brak zmiennej struktury rekordu (wiersza) © M.Miłosz PSI-6 58/90 Mapowanie proste encja tabela atrybut pole unikalny identyfikator klucz główny związki klucze obce (dodawane do encji) Typy kod_typu Character (1) Check P-cen <FK1> Character (2) nazwa_typ Character (15) Not Null © M.Miłosz jest zwiazany ma Rowery nr_row Character (4) kod_typu <FK1> Character (1) Check Kolor Character (12) r_prod] Date St_r Character (1) Not Null PSI-6 59/90 Mapowanie - przykład ma Rower jest Wypozyczenie ma Klient azany ERD © M.Miłosz PSI-6 60/90 Mapowanie - przykład ma Rower Numer roweru Kolor Rok produkcji Status roweru jest Wypozyczenie Numer wypozyczenia Data wypozyczenia Data planowana zwrotu Data zwrotu Status ma Klienci PESEL Nazwisko klienta Imie klienta Data urodzenia Nr dowodu tozsamosci Rodzaj dowodu tozsamosci Kod pocztowy Miasto Ulica Numer domu/mieszkania Telefon staly Telefon komorkowy ERD z atrybutami © M.Miłosz PSI-6 61/90 Mapowanie - przykład Rowery nr_row Character (4) kod_typu <FK1> Character (1) Check Kolor Character (12) r_prod] Date St_r Character (1) Not Null jest Wypoz Nr-wyp Integer PESEL <FK1> Character (11) Check nr_row <FK2> Character (4) d_wyp DateTime d_zw_pl DateTime d_zw DateTime Status Character (1) ma Klienci PESEL Character (11) Check Name Character (20) Not Null imie Character (12) Not Null d_ur Date Not Null nr-dow Character (8) R_DT Character (1) Not Null Kod_p Character (5) Not Null Miasto Character (12) Ulica Character (15) nr_m Character (6) tel_d Character (15) tel_m Character (15) Tabele relacyjnej BD © M.Miłosz PSI-6 62/90 Mapowanie proste - problemy Faktura Faktury nr_fakt Data Name imie Kod_p sklada sie składa się Pozycje nr_fakt <FK1> id_tow <FK2> Ilosc Pozycja wystepuje występuje Towar Towary id_tow Nazwa_t j_m Kolejność na liście pozycji Faktury nr_fakt Data Name imie Kod_p © M.Miłosz sklada sie Pozycje nr_fakt <FK1> LP id_tow <FK2> Ilosc wystepuje Towary id_tow Nazwa_t j_m PSI-6 63/90 Mapowanie złożone (1) Mapowanie złożone nieoczywiste (związki wielu encji): Mapowanie na pojedynczą tabelę (kodowanie) Mapowanie na oddzielne tabele Mapowanie związków wykluczających się © M.Miłosz PSI-6 64/90 Mapowanie złożone (2) Pojedyncza tabela TYP = [K|P] LUDZIE nr_osoby TY P Nazwisko Imie Miasto Ulica NIP Data_zatrud Stanowisko Wy nagrodzenie © M.Miłosz Dwie tabele KLIENCI nr_klienta Nazwisko Imie Miasto Ulica NIP PRACOWNICY nr_pracownika Nazwisko Imie Miasto Ulica Data_zatrud Stanowisko Wy nagrodzenie PSI-6 Zalety i wady 65/90 Mapowanie złożone (3) PRACOWNICY nr_pracownika Nazwisko Imie Miasto Ulica Data_zatrud Stanowisko Wy nagrodzenie Kierownik <FK1> © M.Miłosz PSI-6 66/90 Mapowanie złożone (4) KLIENCI nr_klienta nr_osoby <FK1> NIP OSOBY nr_osoby Nazwisko Imie Miasto Ulica PRACOWNICY nr_pracownika nr_osoby <FK1> Data_zatrud Stanowisko Wy nagrodzenie Dodatkowe więzy integralności (wykluczenie identyczności kluczy obcych w dwóch tabelach) © M.Miłosz PSI-6 67/90 Atrybuty złożone Wartość atrybutu jest złożeniem kilku bardziej prostych wartości, np. adres Tylko atrybuty elementarne Ewentualne, nieformalne grupowanie w nazwie (przedrostek): AdresUlica (adres_ulica) AdresMiasto (adres_miasto) AdresKodPocztowy (adres_kod_pocztowy) © M.Miłosz PSI-6 68/90 Atrybuty wielowartościowe Wiele wartości dla instancji encji Np. ocena z IO lub stanowiska pracy Mapowanie na dodatkową encję Pracownik Id_pracownika nazwisko numery telefoniczne © M.Miłosz Pracownik Id_pracownika nazwisko Telefon numer posiada PSI-6 69/90 Atrybuty o znanej liczbie wartości Związki o znanej liczności (mocy) Znana z góry liczność związku (np. 1:3) Przykład: 3 języki obce, 3 lata studiów Student Identyfikator studenta Nazwisko Imiê Srednia za 1 rok Srednia za 2 rok Srednia za 3 rok student Identyfikator studenta Nazwisko Imiê ma Srednie Identyfikator studenta <FK1> Rok Srednia Komplikacja przetwarzań Zmiana w systemie rzeczywistym © M.Miłosz PSI-6 70/90 Klucze Każda encja ma może mieć wiele unikalnych identyfikatorów - są to klucze kandydujące Spośród kluczy kandydujących wybiera się główny Jeśli brak klucza kandydującego tworzy się klucz sztuczny (generowany automatycznie) © M.Miłosz PSI-6 71/90 Klucze - przykład Pracownik Nazwisko Data_ur PESEL Nr_prac 1. Nazwisko + Data_ur 2. PESEL 3. Nr_prac © M.Miłosz ? PSI-6 72/90 Wybór klucza - zalecenia Klucz główny powinien być jednym atrybutem (jak najkrótszym) Klucz główny nie powinien mieć znaczenia w dziedzinie przedmiotowej (nawet małe zmiany w dziedzinie biznesu spowodują istotne zmiany w BD) Klucz główny raczej powinien być generowany automatycznie (RecID, OID) Dostęp, wyszukiwanie, porządkowanie wg atrybutów kluczowych – indeksy (klucze alternatywne) © M.Miłosz PSI-6 73/90 Modelowanie czasu - dane Dane ponadczasowe (marki samochodów, miasta) – statyczne Dane opisujące stan aktualny (cena, koszt, znajomość języków obcych, ocena) – charakter dynamiczny, ale nie związany z czasem Dane opisujące zdarzenia nieregularne/regularne (sprzedaż, wypożyczenie, spłata raty kredytu) – opis zdarzenia zawiera datę/moment Dane opisujące okresy czasu nieregularne/regularne (urlop, limit roczny) – opis i momenty rozpoczęcia/zakończenia lub czasookres (np. kwartał) © M.Miłosz PSI-6 74/90 Wersjonowanie danych Dane historyczne -> dodatkowe encje ze stemplem czasowym jako atrybutem Wersjonowanie atrybutów: Pracownik Id_pracownika Nazwisko Imiê Wynagrodzenie © M.Miłosz Pracownik Id_pracownika Nazwisko Imiê Aktualne wynagrodzenie mial Wynagrodzenia Id pracownika <FK1> Do_dnia Wynagrodzenie PSI-6 75/90 Wersjonowanie związków Pracownik Id_pracownika Nazwisko Imiê Nazwa stanowiska <FK1> Aktualne wynagrodzenie zajmuje Stanowisko Nazwa stanowiska P³aca min P³aca max Pracownik Id_pracownika Nazwisko Imiê Nazwa stanowiska <FK1> Aktualne wynagrodzenie zajmuje Stanowisko Nazwa stanowiska P³aca min P³aca max zajmowal Poprzednie stanowisko Id pracownika <FK1> Do_dnia Nazwa stanowiska <FK2> Od dnia © M.Miłosz PSI-6 76/90 Ilościowe aspekty danych Informacje charakteryzujące ilość danych: zajętość pamięci (liczba wystąpień w BD) zmienność (prognozowany przyrost w czasie) wypełnienie pól wartościami Informacje charakteryzujące dostęp: wymagana szybkość dostępu zakres przetwarzań (najczęściej wykorzystywane atrybuty) © M.Miłosz PSI-6 77/90 Analiza ilościowa (przykład) Konto klienta 15000 + 100 mies. Częste operacje: - dodanie operacji - zmiana stanu konta - zapytanie o stan konta © M.Miłosz Operacja 1 mln. + 100 tys. mies. Rzadkie operacje: - zmiana danych adresowych klienta PSI-6 78/90 Mapowanie (proste) Konto Konto klienta klienta Numer konta Stan konta Imie klienta Nazwisko klienta PESEL Kod pocztowy Miasto Ulica Konta Opis Operacje nr_k Character (12) Stan Money Imie Character (12) Name Character (20) PESEL Character (11) Kod_p Character (5) Miasto Character (12) Ulica Character (15) Opis Character (2000) © M.Miłosz Operacje Identyfikator operacji Numer konta Kwota Data operacji Operacje Id_op Character (15) nr_k <FK1> Character (12) Kwota Money Data Date PSI-6 79/90 Mapowanie (rozsądne) Konto klienta Numer konta Stan konta Imie klienta Nazwisko klienta PESEL Kod pocztowy Konta Miasto nr_k Character (12) Ulica Stan Money Opis Operacje Identyfikator operacji Numer konta Kwota Data operacji Operacje Imie Character (12) Name Character (20) Id_op Character (15) nr_k <FK1> Character (12) Kwota Money Data Date St_dane nr_k <FK1> Character (12) Kod_p Character (5) Miasto Character (12) Ulica Character (15) Opis Character (2000) © M.Miłosz PSI-6 80/90 Analiza wartości pustych Pracownik IdPrac Nazwisko NazwiskoPanieńskie GrupaKrwi DataBadaniaGrKrwi Pracownicy IdPrac Nazwisko © M.Miłosz BD w 50% pusta Zapełnione w 25% przypadków } Mężatki IdPrac NazwiskoPanieńskie BadaniaKrwi IdPrac GrupaKrwi DataBadaniaGrKrwi Zapełnione w 10% przypadków + zmniejszenie objętości BD - spadek wydajności PSI-6 81/90 Słownik danych Data Dictionary Słownik danych zawiera opis zawartości magazynów, przepływów danych i encji Szczegóły związków pomiędzy encjami Opis struktury danych: dane elementarne i ich typy operatory - symbole (notacja BNF Backus-Naur’a) Automatyczne generowanie słownika (BD, sekwencje SQL) © M.Miłosz PSI-6 82/90 Generowanie struktury BD CREATE DATABASE BIBL; CREATE TABLE KSIEG (ID-KSIEGARNI KOD_P MIASTO ULICA NUMER-D NIP PRIMARY KEY (ID-KSIEGARNI)); CHAR CHAR CHAR CHAR CHAR CHAR (4) NOT NULL, (5) CHECK, (12), (15), (8), (13), CREATE UNIQUE INDEX KSIEG ON KSIEG (ID-KSIEGARNI); CREATE TABLE DOSTAWA (ID-DOSTAWY CHAR (4) NOT NULL, ID-KSIEGARNI CHAR (4) NOT NULL, DATA CHAR (8), PRIMARY KEY (ID-DOSTAWY), FOREIGN KEY (ID-KSIEGARNI) REFERENCES KSIEG); CREATE UNIQUE INDEX DOSTAWA ON DOSTAWA (ID-DOSTAWY); CREATE TABLE REWERS (ID-CZYT CHAR (12), ID-KSIAZKI CHAR (12) NOT NULL, TERMIN CHAR (6) NOT NULL, PRIMARY KEY (ID-CZYT,ID-KSIAZKI), FOREIGN KEY (ID-KSIAZKI) REFERENCES KSIAZKA, FOREIGN KEY (ID-CZYT) REFERENCES CZYTELNIK); © M.Miłosz PSI-6 83/90 Podsumowanie Model danych jest podstawą do ich przetwarzania Technika ERD pozwala budować modele konceptualne Systemy baz danych w większości wypadków wykorzystują model relacyjny Istnieje możliwość mapowania ERD na model relacyjny © M.Miłosz PSI-6 84/90 Ćwiczenie Modelowanie danych na podstawie wymagań użytkownika Model konceptualny Modyfikacje modelu Model implementacyjny - samodzielnie © M.Miłosz PSI-6 85/90 Opis wymagań W powstającym obok PL ogrodzie zoologicznym potrzebny jest SI. Powinny się w nim znaleźć informacje o zwierzętach, o ich pożywieniu i o ich opiekunach, którymi będą wybrani studenci i wykładowcy. Każde zwierzę ma swoją klatkę. Każde zwierzę ma dokładnie jednego opiekuna. Jeden opiekun ma pod swoją opieką jedno lub wiele zwierząt. Każde zwierzę jest karmione raz dziennie i spożywa jedno lub więcej pożywień dostarczanych przez swojego opiekuna. Jedno pożywienie może być podawane wielu zwierzętom. System ma ewidencjonować dostawy i zużycie pożywienia. © M.Miłosz PSI-6 86/90 1. Wydzielenie encji i ich atrybutów kluczowych © M.Miłosz Opiekun Zwierzę Klatka Pożywienie Racja żywnościowa Dostawca Dostawa Identyfikator opiekuna Id zwierzęcia Numer klatki Indeks materiałowy Numer racji NIP Numer dostawy PSI-6 87/90 2. Tablica krzyżowa (związki bezpośrednie) Dostawca pożywienia Opiekun Zwierzę Klatka Pożywienie Racja żywn. Dostawca Dostawa Opiekun Zwierzę Klatka Pożywienie Racja żywn. Dostawca Dostawa 3. ERD Klatka Dostawa ma Opiekun ma Dostawca sklada sie Racja zywnosciowa Zwierze zjada © M.Miłosz ma Pozywienie sklada sie PSI-6 88/90 4./5. Model konceptualny Dostawa ma Dostawca dotyczy Lista dostawy jest na Opiekun ma Racja zywnosciowa Zwierze dotyczy S klad racji sklada sie Pozywienie zjada © M.Miłosz PSI-6 89/90 Modyfikacje - samodzielnie Wprowadzenie pojęcia Jadłospis (tj. ustalony zbiór pożywień, wielokrotnie wykorzystywany i identyfikowany) Wprowadzenie konieczności przypisania zwierzęcia do gatunku, grupy itd. Wprowadzenie słowników: jednostek miar, trybu zatrudnienia pracowników, klasyfikacji dostawców na grupy © M.Miłosz PSI-6 90/90