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