W5 Modelowanie danych cd

background image

Metodyki strukturalne

Podstawy modelowania

danych - cd

dr inż. Stefan Rozmus

Analiza strukturalna systemów
informatycznych

background image

Poprawność modelu

danych

Aspekt 1: Nadmiarowość danych

Aspekt 2: Możliwość uzyskania pożądanych
danych

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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.

background image

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

background image

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

background image

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

background image

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

background image

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

'

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

Mamy model danych i co

dalej?

background image

Odwzorowanie modelu pojęciowego w schemat logiczny
bazy danych

encja

tabela

#NIP

#*NIP

WNIOSKODAWCA

WNIOSKODAWCY

identyfikator
unikalny

klucz
główny

*Nazwisko

*Nazwisko

atrybut

kolumna

background image

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 ???

background image

Odwzorowanie związków złożonych
(jedna tabela)

rozróżnienie
typu

background image

Odwzorowanie związków złożonych
(osobne tabele)

background image

Odwzorowanie związków złożonych
(łuk wykluczający)

background image

Modelowanie czasu

background image

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

background image

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

background image

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?????

background image

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

background image

Obiekt i jego stan

background image

Temporalny model pojęciowy

w ujęciu relacyjnym

Model

konwencjonalny

Model

ze znacznikami

czasu

background image

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)

background image

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?

background image

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

background image

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

background image

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’

background image

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

background image

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

background image

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

background image

Bitemporalny pojęciowy model

danych

background image

Relacja bitemporalna –

przykład

(pierwszy zapis)

background image

Zmiana stanu – przykład (VT

e

-VT

s

>1)

background image

Zmiana stanu – przykład (VT

e

-VT

s

=0)

background image

Zakończenie życia obiektu (zamknięcie obiektu)

background image

Przywrócenie obiektu do życia (ponowne

otwarcie obiektu)

background image

Chronon jako punkt w czasie

background image

Zmiany stanu obiektu –

przykład (relacja Pojazd)

background image

Korekta –

przykład (relacja

Pojazd)

background image

Korekta –

przykład (relacja

Pojazd)

background image

Korekta –

przykład (relacja

Pojazd)

background image

Korekta –

przykład (relacja

Pojazd)


Document Outline


Wyszukiwarka

Podobne podstrony:
MODELOWANIE DANYCH notatki
3 Modelowanie danych
Projekt modelowanie danych
02 Modelowanie danych
Modelowanie danych modany
Elementy statystycznego modelowania danych EDA 11
Modelowanie danych (ERD, WI, Semestr I N2, Modelowanie i analiza systemów, Poprawione wykłady
Modelowanie danych cz1
modelowanie danych
MODELOWANIE DANYCH notatki
Ewa St�posz J�zyk modelowania danych UML
Odzyskiwanie danych cd
3 Modelowanie danych
Modelowanie danych w SQL Server 2005 i 2008 Przewodnik 2
W3 Modelowanie danych
Elementy statystycznego modelowania danych EDA 11

więcej podobnych podstron