Metodyki strukturalne
Podstawy modelowania
danych - cd
dr inż. Stefan Rozmus
Analiza strukturalna systemów
informatycznych
Poprawność modelu
danych
Aspekt 1: Nadmiarowość danych
Aspekt 2: Możliwość uzyskania pożądanych
danych
Problemy podczas
eksploatacji bazy danych
PRACOWNICY
Id_prac NazwiskoNr_dzialuNazwa_dzialu
Id_prac NazwiskoNr_dzialuNazwa_dzialu
Id_prac NazwiskoNr_dzialuNazwa_dzialu
1
Kowalski
10
marketing
Id_prac NazwiskoNr_dzialuNazwa_dzialu
2
Adamski
20
sprzedaż
Id_prac NazwiskoNr_dzialuNazwa_dzialu
4
Górski
10
marketing
Id_prac NazwiskoNr_dzialuNazwa_dzialu
7
Rygiel
10
marketing
Wielokrotne powtarzanie nazwy działu
Anomalia wstawiania
Wprowadzenie pracownika
zatrudnionego np. w dziale 10
wymaga zadbania o spójność
nazwy działu z wartościami w
innych krotkach
Nie można wprowadzić informacji o
dziale, który nie zatrudnia jeszcze
pracowników
Anomalia usuwania
Usuwając krotkę z ostatnim
pracownikiem danego działu, tracimy
informację, że taki dział w ogóle istnieje
Anomalia modyfikacji
Zmiana nazwy działu wymaga
aktualizacji krotek wszystkich
pracowników zatrudnionych w tym
dziale w celu zachowania spójności
Proces normalizacji
Schematy relacji posiadające pewne
niepożądane cechy są dekomponowane
na mniejsze schematy o pożądanych
właściwościach
Różne etapy w tym procesie są znane
jako postacie normalne, z których
każda jest udoskonaleniem swej
poprzedniczki
Własności procesu
normalizacji
Żaden atrybut nie może zostać
zagubiony w trakcie procesu
normalizacji
Dekompozycja relacji nie może
prowadzić do utraty informacji
Wszystkie zależności funkcyjne
muszą być reprezentowane w
pojedynczych schematach relacji
Przykład: biuro emerytalne
Nazwisk
o
Pierwsze
imię
Imię ojca
Wniosek
Grupa uposażenia
Kod
typu
Opis typu
Treść
Data
złożenia
Kod
Stawka
Opis
Kowalsk
i
Andrzej
Jan
PR
Przyznanie
emerytury
Proszę o
…
1997-10-
12
10
4
000,00 zł
etat: pułkownik
ZO
Przeliczenie
okresów
Proszę o
…
1999-05-
14
ZO
Przeliczenie
okresów
Proszę o
…
2007-08-
21
Normalizacja (na poziomie modelu
danych)
Zapewnienie, że każda informacja jest
reprezentowana w modelu encji tylko raz
0PN - zerowa postać normalna
Każda encja musi mieć zbiór atrybutów
(związków), które w sposób unikalny
określają jej wystąpienie.
0PN - przykład
WNIOSKODAWCA
# NIP
* Data złożenia wniosku1
* Treść wniosku1
* Kod typu wniosku1
* Opis typu wniosku1
* Data złożenia wniosku2
....................
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy uposażenia
* Stawka wg grupy
Opis grupy uposażenia
0PN - przykład, c.d.
Atrybuty
wielowartościowe
WNIOSKODAWCA
# NIP
* Data złożenia wniosku
* Treść wniosku
* Kod typu wniosku
*Opis typu wniosku
* Data złożenia wniosku2
....................
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy uposażenia
* Stawka wg grupy
Opis grupy uposażenia
Atrybut wielowartościowy
jest to atrybut, który może
przyjąć wiele wartości w
ramach tej samej instancji
encji
1PN - pierwsza postać normalna
Każdy atrybut musi mieć jedną wartość
dla każdego wystąpienia jego encji w
danym momencie czasu. Wartości
atrybutów są atomowe.
Przejście z postaci 0PN do 1PN:
•
usunięcie wielowartościowych
atrybutów z encji w 0PN i
utworzenie dla niej nowej encji
•
skopiowanie unikalnego
identyfikatora do nowej encji - będzie
on prawdopodobnie stanowił część
identyfikatora unikalnego dla tej nowej
encji
1PN - przykład
WNIOSKODAWCA
# NIP
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy
uposażenia
* Stawka wg grupy
Opis grupy
uposażenia
WNIOSEK
# @ NIP
# Kod typu wniosku
* Data złożenia wniosku
* Treść wniosku
* Opis typu wniosku
@ - stanowi realizację związku
1PN - przykład
WNIOSKODAWCA
# NIP
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy
uposażenia
* Stawka wg grupy
Opis grupy
uposażenia
WNIOSEK
# Kod typu wniosku
*
Data złożenia wniosku
* Treść wniosku
* Opis typu wniosku
NIP
Kod typu wniosku
Data złożenia
wniosku
Treść wniosku
Opis typu wniosku
Kod typu wniosku
Opis typu wniosku
X
X’
Y
X → Y
X’ → Y
X
X
'
2PN - druga postać normalna
Wartość każdego atrybutu musi zależeć
od całego identyfikatora jego encji
Przejście z postaci 1PN do 2PN:
•
usunięcie wszystkich częściowo
zależnych atrybutów i utworzenie dla
nich nowej encji
•
skopiowanie części identyfikatora z
encji pierwotnej (od której zależne są
usunięte atrybuty) do tej nowej encji
2PN - przykład
TYP WNIOSKU
# Kod typu wniosku
* Opis typu wniosku
WNIOSKODAWCA
# NIP
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy
uposażenia
* Stawka wg grupy
Opis grupy
uposażenia
WNIOSEK
*
Data złożenia wniosku
* Treść wniosku
2PN – przykład (mała poprawka …)
TYP WNIOSKU
# Kod typu wniosku
* Opis typu wniosku
WNIOSKODAWCA
# NIP
* Nazwisko
* Pierwsze imię
* Imię ojca
* Kod grupy
uposażenia
* Stawka wg grupy
Opis grupy
uposażenia
WNIOSEK
#
Data złożenia wniosku
* Treść wniosku
3PN - trzecia postać normalna
Wartość każdego atrybutu nie może
zależeć od niczego innego poza
identyfikatorem unikalnym
Przejście z postaci 2PN do 3PN:
należy usunąć atrybuty niezależne i
wstawić je do nowej encji
Uwaga:
ta nowa encja potrzebuje
identyfikatora
unikalnego
3NF - przykład
WNIOSEK
# Data złożenia wniosku
* Treść wniosku
TYP WNIOSKU
# Kod typu wniosku
* Opis typu wniosku
GRUPA
# Kod grupy
uposażenia
* Stawka wg grupy
Opis grupy
uposażenia
WNIOSKODAWCA
# NIP
* Nazwisko
* Pierwsze imię
* Imię ojca
Pułapki połączeń
Szkoła
Wydział
Pracownik
Wiatrak
Szkoła
Wydział
Pracownik
Próżnia
O pułapkach
„decyduje”
semantyka aplikacji
Szkoła
Wydział
Pracownik
Mamy model danych i co
dalej?
Odwzorowanie modelu pojęciowego w schemat logiczny
bazy danych
encja
tabela
#NIP
#*NIP
WNIOSKODAWCA
WNIOSKODAWCY
identyfikator
unikalny
klucz
główny
*Nazwisko
*Nazwisko
atrybut
kolumna
Odwzorowanie modelu pojęciowego w schemat logiczny
bazy dnych - cd.
związek
wiele do wielu
tabela
intersekcji
związek
jeden do wielu
klucz obcy
Klucz zastępczy ???
Odwzorowanie związków złożonych
(jedna tabela)
rozróżnienie
typu
Odwzorowanie związków złożonych
(osobne tabele)
Odwzorowanie związków złożonych
(łuk wykluczający)
Modelowanie czasu
Temporalna natura
aplikacji bazodanowych
Aplikacje finansowe: księgowość, bankowość
Aplikacje do prowadzenia ewidencji: kadry,
zarządzanie zapasami, historia leczenia, EWIDENCJE
CENTRALNE
Aplikacje do planowania: rezerwacja miejsc
(lotniczych, kolejowych, autobusowych), zarządzanie
projektem
Aplikacje badawcze: monitorowanie zmian warunków
meteorologicznych
Zmiany danych w czasie
Zmiany wartości atrybutów
obiektów
Zmiany powiązań pomiędzy
obiektami
Okresowe „pojawianie się” i
„znikanie” obiektów
Model logiczny
Model pojęciowy
Jak daleko z historią?
Pojazd
*VIN
Właściciel
*Nazwisko
Pojazd/
Właściciel
* Od kiedy
0 Do kiedy
A jeśli wymienimy karoserię?
Jeśli właściciel zmieni nazwisko?
Takich zmian może być więcej.
Czy czegoś brakuje?????
Model pojęciowy danych z
historią
Historia zmian atrybutów
Historia zmian związków pomiędzy
obiektami
Historia „życia” obiektów z „przerwami”
Korekty
Anulowania
Kasowanie
Znaczniki
czasu:
- zdarzeniowe
-
przedziałowe
Obiekt i jego stan
Temporalny model pojęciowy
w ujęciu relacyjnym
Model
konwencjonalny
Model
ze znacznikami
czasu
Relacja temporalna
Relacja temporalna jest zbiorem pozycji temporalnych, z których
każda dokumentuje jeden lub więcej faktów dotyczących
obiektu (encji lub związku) będącego częścią rzeczywistości
modelowanej przez tę relację. Pozycje temporalne (w ogólnym
przypadku) zawierają następujące rodzaje atrybutów:
•
identyfikator pozycji (ang. item surrogate)
•
identyfikator obiektu (ang. object surrogate)
•
znacznik czasu transakcji (ang. transaction time-stamp)
•
znacznik czasu ważności (ang. valid time-stamp)
•
atrybuty o wartościach stałych, niezmiennych w czasie (ang.
time-invariant attribute values)
•
atrybuty, których wartości mogą ulegać zmianom w czasie
(ang. time-varying attribute values)
•
czasy definiowane przez użytkownika (ang. user defined
times)
Identyfikator pozycji
Generowany systemowo, unikalny identyfikator
pozycji, który może być wykorzystany do
porównań, ale nie jest prezentowany
użytkownikowi.
Do czego może być wykorzystany?
Jakie to ma reperkusje?
Identyfikator obiektu
Unikalny identyfikator obiektu modelowanej
rzeczywistości, używany do identyfikacji wszystkich
reprezentacji bazodanowych poszczególnych
obiektów. W dowolnej chwili, każdy obiekt może
mieć, w pojedynczej relacji, wiele pozycji z takim
samym identyfikatorem obiektu
ID
POJAZD_ID
..........
.....
12345
POJZD0000000000000044
544
..........
.....
12346
POJZD0000000000000044
544
..........
.....
23455
POJZD0000000000000044
555
..........
.....
23687
POJZD0000000000000044
544
..........
.....
55555
POJZD0000000000000044
555
..........
.....
65653
POJZD0000000000000044
559
..........
.....
..............
.
...............
..........
.....
Pojazd
ID
POJAZD_ID
..........
.....
65653
POJZD0000000000000044
559
..........
.....
..............
.
...............
..........
.....
ID
POJAZD_ID
..........
.....
23455
POJZD0000000000000044
555
..........
.....
55555
POJZD0000000000000044
555
..........
.....
..............
.
...............
..........
.....
ID
POJAZD_ID
..........
.....
12345
POJZD0000000000000044
544
..........
.....
12346
POJZD0000000000000044
544
..........
.....
23687
POJZD0000000000000044
544
..........
.....
..............
.
...............
..........
.....
Partycjonowa
nie względem
identyfikator
a obiektu
Znacznik czasu transakcji
Znacznik zdarzeniowy czasu transakcji
(ang. event transaction
time-stamp)
Atrybut typu czas systemowy, którego wartość jest
nadawana w momencie zapisu pozycji relacji
Znacznik przedziałowy czasu transakcji
(ang. interval transaction
time-stamp)
Para atrybutów (tt
b
, tt
e
) typu czas systemowy określająca
przedział czasu
pomiędzy zapisem pozycji relacji,
zawierającej określony identyfikator
obiektu a zapisem
kolejnej pozycji relacji, zawierającej taki sam
identyfikator
obiektu.
Można wyróżnić wiele czasów transakcji np.: czas
rejestracyjny (czas zapisu faktu w organie
rejestrującym) i czas ewidencyjny (czas zapisu faktu w
ewidencji centralnej)
Dalsze rozważania: przyjęto znaczniki przedziałowe czasu transakcji
Znacznik czasu ważności
Znacznik zdarzeniowy czasu ważności
(ang. event valid time-
stamp)
Atrybut, którego wartość, zwykle dostarczana przez
użytkownika, określa moment czasu, w którym fakt
reprezentowany przez atrybuty
zmienne w czasie,
niezmienne w czasie oraz czasy definiowane przez
użytkownika stał się prawdziwy w rzeczywistości
Znacznik przedziałowy czasu ważności
(ang. interval valid time-
stamp)
Para atrybutów (tv
b
, tv
e
) określająca przedział czasu
pomiędzy dwoma
kolejnymi faktami, które wystąpiły w
odniesieniu do danego obiektu
Dalsze rozważania: przyjęto znaczniki przedziałowe czasu
ważności. Znacznik zawiera datę w formacie ‘YYYYMMDD’
Atrybuty o wartościach
stałych
Atrybuty, których wartości z założenia nigdy się
nie zmieniają
Np.:
- data pierwszej rejestracji w kraju
- rok produkcji pojazdu
- numer dokumentu
Atrybuty o wartościach
zmiennych w czasie
Atrybuty, których wartości z założenia mogą, ale
nie muszą, zmieniać się w czasie
Np.:
- VIN
- numer silnika
- kolor
- pojemność silnika
- masa własna
Czasy definiowane przez
użytkownika
Atrybuty typu data lub czas, dostarczane
przez użytkownika lub wyliczane w aplikacji,
których znaczenie jest określane przez
użytkownika
Np.:
- data pierwszej rejestracji w kraju
- data wyrejestrowania
- data nabycia praw własności
- data utraty praw własności
- data początku polisy
Bitemporalny pojęciowy model
danych
Relacja bitemporalna –
przykład
(pierwszy zapis)
Zmiana stanu – przykład (VT
e
-VT
s
>1)
Zmiana stanu – przykład (VT
e
-VT
s
=0)
Zakończenie życia obiektu (zamknięcie obiektu)
Przywrócenie obiektu do życia (ponowne
otwarcie obiektu)
Chronon jako punkt w czasie
Zmiany stanu obiektu –
przykład (relacja Pojazd)
Korekta –
przykład (relacja
Pojazd)
Korekta –
przykład (relacja
Pojazd)
Korekta –
przykład (relacja
Pojazd)
Korekta –
przykład (relacja
Pojazd)