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