Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Modelowanie struktur danych

Podobne prezentacje


Prezentacja na temat: "Modelowanie struktur danych"— Zapis prezentacji:

1 Modelowanie struktur danych
Dr inż. Marek Miłosz Wykład 5

2 Plan 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 © M.Miłosz

3 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

4 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

5 Encje - zasady Klient 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

6 Encje - przykłady Klient Rower Bilet Rewers Faktura Płatność
© M.Miłosz

7 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

8 Istota i liczność związku
Faktura Klient ? ma n 1 Faktura nr 67/01 Faktura nr 67/01 Faktura nr 69/01 Faktura nr 99/01 © M.Miłosz

9 Przykłady Cel SI Faktura Towar Klient Dowód tożsamości Klient Dowód
występuje Cel SI Klient Dowód tożsamości ma Klient Dowód tożsamości ma © M.Miłosz

10 Związki rekurencyjne (unarne)
Pracownik ma kierownika ma kierownika ma kierownika ma kierownika Pracownik Pracownik © M.Miłosz

11 Związki encji - przykłady
© M.Miłosz

12 Związki encji - niepoprawne
© M.Miłosz

13 Związki wielokrotne Faktura Gotówka Przelew Karta kredytowa ALBO
© M.Miłosz

14 LDS - konwencje SSADM - Structured System Analysis and Design Method
© M.Miłosz

15 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

16 Atrybut = element danych
Atrybuty Atrybut = element danych Atrybut kluczowy = identyfikator instancji encji © M.Miłosz

17 Atrybuty - przykłady Klient Nazwisko Imię Kod_pocztowy Miejscowość
Ulica Numer @PESEL Data_urodzenia Rower @Numer_roweru Typ_roweru Data_zakupu Cena_zakupu Kolor Status Data_statusu © M.Miłosz

18 Algorytm budowy ERD (1) Lista: klient (PESEL), rower (Nr), typ roweru (Kod), wypożyczenie (Nr), cennik (Pozycja) 1) identyfikacja (wydzielenie) zbioru obiektów (encji) w systemie wraz z ich atrybutami kluczowymi 2) identyfikacja powiązań bezpośrednich między encjami (tablica krzyżowa) oraz ich rodzaju © M.Miłosz

19 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) 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) © M.Miłosz

20 ERD - przekształcenie powiązań typu M:N
Faktura Towar występuje Faktura Towar składa się Pozycja występuje Encja pośrednicząca (łącząca) © M.Miłosz

21 Problem przekształcenia
Słuchacz Kurs uczestniczy dotyczy dokonuje Płatność Słuchacz Kurs dotyczy Pozycja listy jest na liście Płatność Płatność dotyczy © M.Miłosz

22 Model danych w SI „SzyB”
Rower wypożycza Klient ma Cennik Typ roweru jest związany © M.Miłosz

23 SzyB - ERD Model konceptualny © M.Miłosz

24 ERD z atrybutami © M.Miłosz

25 Podstawy technologii baz danych

26 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

27 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 Program A We Wy Program B We Wy Program A We Wy Dane Rozwiązanie: DANE w PLIKACH © M.Miłosz

28 Dane w plikach - problemy
Współdzielenie danych - efektywność i konflikty Rozwiązanie (warstwa pośrednia): System Zarządzania Bazą Danych - SZBD Program A We Wy SZBD Baza danych © M.Miłosz

29 Co to jest BD? Zorganizowany zbiór danych przechowywany w zewnętrznej pamięci komputera Odzwierciedlenie fragmentu rzeczywistości Cechy: trwałość zgodność z rzeczywistością © M.Miłosz

30 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

31 BD - pożądane właściwości
Współdzielenie danych Brak redundancji Integralność Spójność Bezpieczeństwo danych Poufność danych Abstrakcyjność danych Niezależność danych od programów Niezawodność dostępu © M.Miłosz

32 BD - poziomy odwzorowania danych
Zewnętrzny Konceptualny Wewnętrzny: Implementacyjny Fizyczny Model ANSI/SPARC American National Standards Institute Standards Planning and Requirements Committee Trzy modele - warstwy © M.Miłosz

33 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

34 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

35 Języki baz danych SQL 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

36 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

37 Architektury sieciowe BD
Serwer BD © M.Miłosz

38 Serwer aplikacji 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) Serwer WWW © M.Miłosz

39 Przetwarzanie rozproszone
Przezroczystość dla klienta Szybkość Wielkość BD Niezawodność Problemy: łączność, transakcyjność, integralność © M.Miłosz

40 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

41 Model implementacyjny - typy
Hierarchiczny Sieciowy Kartotekowy Relacyjny Obiektowo-relacyjny Obiektowy Hypertekst © M.Miłosz

42 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.: dowsizing dużych systemów mikrokomputery: MS SQL Server Linuxowe: MySQL, Postgres © M.Miłosz

43 RBD - pojęcia podstawowe
Książki Tablica, plik Atrybut, pole, kolumna Rekord, wiersz tablicy Typ danych Domena, dziedzina Wartość null Związki wartościowe (referencje) Wypożyczenia Czytelnicy © M.Miłosz

44 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

45 Klucze Klucz główny (Primary Key) - grupa kolumn o nie powtarzających się danych Czytelnicy Klucz obcy (Foreign Key) - grupa kolumn z jednej tablicy, których wartości odpowiadają kluczowi głównemu innej tablicy (powiązanie) Wypożyczenia © M.Miłosz

46 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

47 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

48 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

49 Transakcje na BD SI zapis Operacje Zestawienie stanów i obrotów Stany
zmiana stanu © M.Miłosz

50 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

51 Transakcje a awaria BD Transakcje zatwierdzone - mają być odtworzone
Transakcje niezatwierdzone - wycofane Metody osiągnięcia: dzienniki transakcji redundancja © M.Miłosz

52 4GL Języki czwartej generacji oparte na formularzach Proceduralne
SQL - podzbiór Języki: ORACLE PL/SQL Progress 4GL Informix 4GL © M.Miłosz

53 Mapowanie modelu konceptualnego na implementacyjny

54 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

55 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 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) © M.Miłosz

56 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

57 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

58 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

59 Mapowanie proste encja  tabela atrybut  pole
unikalny identyfikator  klucz główny związki  klucze obce (dodawane do encji) © M.Miłosz

60 Mapowanie - przykład ERD © M.Miłosz

61 Mapowanie - przykład ERD z atrybutami © M.Miłosz

62 Mapowanie - przykład Tabele relacyjnej BD © M.Miłosz

63 Mapowanie proste - problemy
Faktura Towar występuje Pozycja składa się Kolejność na liście pozycji Pozycje nr_fakt <FK1> id_tow <FK2> LP Ilosc Faktury nr_fakt Data Name imie Kod_p Towary id_tow Nazwa_t j_m sklada sie wystepuje © M.Miłosz

64 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

65 Mapowanie złożone (2) Pojedyncza tabela TYP = [K|P] Dwie tabele
© M.Miłosz Zalety i wady

66 Mapowanie złożone (3) © M.Miłosz

67 Mapowanie złożone (4) Dodatkowe więzy integralności
(wykluczenie identyczności kluczy obcych w dwóch tabelach) © M.Miłosz

68 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

69 Atrybuty wielowartościowe
Wiele wartości dla instancji encji Np. ocena z IO lub stanowiska pracy Mapowanie na dodatkową encję © M.Miłosz

70 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 Komplikacja przetwarzań Zmiana w systemie rzeczywistym © M.Miłosz

71 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

72 ? Klucze - przykład Pracownik Nazwisko Data_ur 1. Nazwisko + Data_ur
PESEL Nr_prac 1. Nazwisko + Data_ur ? 2. PESEL 3. Nr_prac © M.Miłosz

73 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

74 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

75 Wersjonowanie danych Dane historyczne -> dodatkowe encje ze stemplem czasowym jako atrybutem Wersjonowanie atrybutów: © M.Miłosz

76 Wersjonowanie związków
© M.Miłosz

77 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

78 Analiza ilościowa (przykład)
Konto klienta Operacja mies. 1 mln tys. mies. Częste operacje: - dodanie operacji - zmiana stanu konta - zapytanie o stan konta Rzadkie operacje: - zmiana danych adresowych klienta © M.Miłosz

79 Mapowanie (proste) Konto klienta Operacje Wydajność? © M.Miłosz

80 Mapowanie (rozsądne) © M.Miłosz

81 Analiza wartości pustych
Pracownik IdPrac Nazwisko NazwiskoPanieńskie GrupaKrwi DataBadaniaGrKrwi BD w 50% pusta Zapełnione w 25% przypadków } Zapełnione w 10% przypadków Pracownicy IdPrac Nazwisko Mężatki NazwiskoPanieńskie BadaniaKrwi GrupaKrwi DataBadaniaGrKrwi + zmniejszenie objętości BD - spadek wydajności © M.Miłosz

82 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

83 Generowanie struktury BD
CREATE DATABASE BIBL; CREATE TABLE KSIEG (ID-KSIEGARNI CHAR (4) NOT NULL, KOD_P CHAR (5) CHECK, MIASTO CHAR (12), ULICA CHAR (15), NUMER-D CHAR (8), NIP CHAR (13), PRIMARY KEY (ID-KSIEGARNI)); 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

84 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

85 Ćwiczenie Modelowanie danych na podstawie wymagań użytkownika
Model konceptualny Modyfikacje modelu Model implementacyjny - samodzielnie © M.Miłosz

86 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

87 1. Wydzielenie encji i ich atrybutów kluczowych
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 © M.Miłosz

88 2. Tablica krzyżowa (związki bezpośrednie)
Dostawca pożywienia 3. ERD © M.Miłosz

89 4./5. Model konceptualny © M.Miłosz

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


Pobierz ppt "Modelowanie struktur danych"

Podobne prezentacje


Reklamy Google