background image

Krzysztof Regulski
AGH, WIMiIP, ZIP

Bazy Danych i SQL

- Projektowanie baz danych (2). Normalizacja.

background image

2

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Etapy projektowania baz danych:

1.

Specyfikacja wymaga

ń

u

Ŝ

ytkownika

- okre

ś

lenie zjawisk, 

dost

ę

pno

ś

ci i u

Ŝ

yteczno

ś

ci danych, ich formatu i sposobów oblicze

ń

cele, zakres i kontekst systemu

2.

Projektowanie konceptualne

- projektowanie schematu E–R bazy. 

U

Ŝ

ycie modelu E–R wpływa równie

Ŝ

na realizacj

ę

pozostałych faz.

3.

Specyfikacja wymaga

ń

funkcjonalnych

- dokładny opis wymaga

ń

klienta i wszystkich przyszłych u

Ŝ

ytkowników systemu

4.

Projektowanie logiczne i fizyczne

5.

Implementacja

background image

3

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Projektowanie bazy danych:

Projektowanie logicznej struktury bazy:

Etap I:

okre

ś

lenie encji i zdefiniowanie atrybutów opisuj

ą

cych encje

przyporz

ą

dkowanie encji do zjawisk 

standaryzacja nazw i formatów 

identyfikacja 

ź

ródeł danych 

Etap II:

okre

ś

lenie zwi

ą

zków mi

ę

dzy encjami

identyfikacja typu zwi

ą

zków (relacji) (1-1, 1-M, N-M)

Etap III:

normalizacja relacji

obni

Ŝ

enie redundancji i wyeliminowanie anomalii (usuwania, wstawiania i 

aktualizacji)

Projektowanie fizycznej struktury bazy:

nało

Ŝ

enie struktury logicznej na fizyczne urz

ą

dzenia 

background image

4

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Przykład wad bazy danych:

Rozwa

Ŝ

my schemat relacji

:

pracownik_oddzialu = <nazwa_oddzialu, numer_oddzialu, 
adres_oddzialu, pesel, imie, nazwisko, stanowisko, 
wynagrodzenie>

Redundancja

:

Dane 

nazwa_oddzialu, numer_oddzialu, adres_oddzialu

s

ą

pami

ę

tane 

dla ka

Ŝ

dego pracownika

Marnowanie miejsca (przestrzeni potrzebnej dla przechowywania danych)

Komplikacje 

Brak mo

Ŝ

liwo

ś

ci reprezentowania pewnych informacji

Nie mo

Ŝ

na reprezentowa

ć

informacji o oddziałach, których powołanie dopiero jest 

planowane i nie zatrudniły jeszcze pracowników

Rozwi

ą

zaniem mogło by by

ć

zastosowanie warto

ś

ci NULL, ale takie rozwi

ą

zanie 

tak

Ŝ

e stwarza pewne problemy

Nie mo

Ŝ

emy zaprezentowa

ć

w prosty sposób wszystkich pracowników z danego 

miasta, poniewa

Ŝ

miejscowo

ść

nie jest wyodr

ę

bnionym atrybutem

background image

5

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Rodzaje anomalii:

Anomalia doł

ą

czania

- wad

ą

jest to, 

Ŝ

e musimy wpisywa

ć

wszystko 

albo nic, np. planuje si

ę

powołanie nowego oddziału, nie mo

Ŝ

emy 

jednak zapisa

ć

w bazie miejscowo

ś

ci, adresu i nazwy zakupionego 

budynku, dopóki nowy oddział nie zatrudni pracowników

Anomalia aktualizacji

- np. oddział firmy został przeniesiony, przez 

co musimy aktualizowa

ć

jego adres dla ka

Ŝ

dego pracownika, a przez 

przypadek omijamy Jana Kowalskiego

Anomalia usuwania

– zamkni

ę

to oddział firmy, w zwi

ą

zku z czym 

usuni

ę

to z bazy wszystkie rekordy zawieraj

ą

ce jego nazw

ę

, tym 

samym usuni

ę

to wszystkie dane dotycz

ą

ce pracowników

background image

6

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Dekompozycja:

Mo

Ŝ

na 

zdekomponowa

ć

schemat relacji –

pracownik_oddzialu:

oddzial =  <nazwa_oddzialu, numer_oddzialu, 
miejscowosc_oddzialu, adres_oddzialu>

pracownik = <numer_oddzialu, pesel, imie, nazwisko, 
stanowisko, wynagrodzenie>

Wszystkie atrybuty

oryginalnego schematu (R) musz

ą

si

ę

pojawi

ć

dekompozycji (R

1

, R

2

):

R = R

R

2

W przypadku gdy relacja nie posiada wła

ś

ciwej  postaci nale

Ŝ

dokona

ć

dekompozycji relacji  na  <R

1

, R

2

, ..., R

n

>

Proces „dochodzenia” do „wła

ś

ciwej” postaci okre

ś

la si

ę

mianem 

normalizacji

background image

7

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Postacie normalne:

Pierwsza (1PN)

Druga (2PN)

Trzecia (3PN)

Boyce’a-Codd’a (PNBC)

Czwarta (4PN)

Pi

ą

ta (5PN)

background image

8

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Pierwsza posta

ć

normalna

Relacja jest w pierwszej postaci normalnej, je

ś

li ka

Ŝ

da warto

ść

atrybutu w ka

Ŝ

dej krotce tej relacji jest 

warto

ś

ci

ą

elementarn

ą

, czyli 

nierozkładaln

ą

.

Relacja jest w pierwszej postaci normalnej, je

ś

li nie ma 

powtarzaj

ą

cych si

ę

grup

.

background image

9

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Przykład:

background image

10

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Zale

Ŝ

no

ś

ci funkcyjne i wielowarto

ś

ciowe:

Zale

Ŝ

no

ść

funkcyjna

oznacza, 

Ŝ

e znaj

ą

c warto

ść

jednego atrybutu, zawsze 

mo

Ŝ

emy okre

ś

li

ć

warto

ść

innego. Symbolem stosowanym w teorii relacji jest 

strzałka umieszczona pomi

ę

dzy dwoma atrybutami, na przykład:

Y

(X okre

ś

la Y) 

przykład:

gdy znamy numer PESEL naszego pracownika, mo

Ŝ

emy okre

ś

li

ć

jego 

nazwisko

Zale

Ŝ

no

ść

wielowarto

ś

ciowa

oznacza, 

Ŝ

e znaj

ą

c warto

ść

jednego atrybutu, 

mo

Ŝ

emy zawsze okre

ś

li

ć

warto

ś

ci zbioru innego atrybutu. W teorii relacji 

u

Ŝ

ywa si

ę

symbolu zale

Ŝ

no

ś

ci wielowarto

ś

ciowej w postaci podwójnej strzałki, 

na przykład:

→→

Y

(X okre

ś

la wiele Y) 

przykład:

znaj

ą

c numer oddziału mo

Ŝ

emy okre

ś

li

ć

nazwiska wszystkich zatrudnionych 

pracowników

background image

11

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Teoria postaci normalnych relacji:

Formalnie zale

Ŝ

no

ść

danych mo

Ŝ

na zdefiniowa

ć

nast

ę

puj

ą

co. 

Schemat relacji oznaczamy przez R<A

1

...A

N

>, gdzie A

1

...A

N

s

ą

atrybutami relacji. Niech X i Y b

ę

d

ą

podzbiorami zbioru atrybutów.

{A

1

...A

N

}, Y 

{A

1

...A

N

}.

Zale

Ŝ

no

ść

danych zapisujemy w postaci:

Y

i mówimy, 

Ŝ

e podzbiór atrybutów Y zale

Ŝ

y funkcyjnie od podzbioru 

atrybutów X, je

Ŝ

eli nie jest mo

Ŝ

liwe, by relacja R zawierała dwie krotki 

maj

ą

ce składowe zgodne (tzn. identyczne dla wszystkich atrybutów ze 

zbioru X) i jednocze

ś

nie co najmniej jedn

ą

niezgodn

ą

składow

ą

dla 

atrybutów ze zbioru Y.

background image

12

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Klucz:

Kluczem relacji

nazywamy taki zbiór atrybutów tej relacji, których 

kombinacje warto

ś

ci jednoznacznie identyfikuj

ą

ka

Ŝ

d

ą

krotk

ę

tej relacji 

Ŝ

aden podzbiór tego zbioru nie posiada tej własno

ś

ci. W kluczu nie 

mo

Ŝ

e zawiera

ć

si

ę

warto

ść

NULL.

Klucz jest 

kluczem prostym

, je

Ŝ

eli powy

Ŝ

ej opisany zbiór jest 

jednoelementowy - w przeciwnym razie mówimy o 

kluczu zło

Ŝ

onym

.

W ogólno

ś

ci, w relacji mo

Ŝ

na wyró

Ŝ

ni

ć

wiele kluczy, które nazywamy 

kluczami potencjalnymi

. Wybrany klucz spo

ś

ród kluczy potencjalnych 

nazywamy 

kluczem głównym

.

background image

13

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Druga i trzecia posta

ć

normalna:

Relacja jest w drugiej postaci normalnej, je

ś

li jest w 1PN oraz ka

Ŝ

dy atrybut tej 

relacji 

nie wchodz

ą

cy

w skład 

Ŝ

adnego klucza potencjalnego jest w 

pełni 

funkcyjnie zale

Ŝ

ny

od wszystkich kluczy potencjalnych tej relacji.

Relacja jest w 2PN je

Ŝ

eli ka

Ŝ

dy atrybut nie wchodz

ą

cy w skład klucza 

zale

Ŝ

od klucza a nie od jego cz

ęś

ci

Relacja b

ę

d

ą

ca w pierwszej postaci normalnej, jest równocze

ś

nie w drugiej 

postaci normalnej, je

ś

li wszystkie jej klucze potencjalne s

ą

kluczami prostymi.

Dana relacja jest w trzeciej postaci normalnej, je

ś

li jest ona w drugiej postaci 

normalnej i ka

Ŝ

dy jej atrybut nie wchodz

ą

cy w skład 

Ŝ

adnego klucza 

potencjalnego 

nie jest przechodnio funkcyjnie zale

Ŝ

ny

od 

Ŝ

adnego klucza 

potencjalnego tej relacji.

Inaczej mówi

ą

c, wszystkie niekluczowe kolumny s

ą

okre

ś

lane kluczem, 

całym kluczem i tylko kluczem, „…tak nam dopomó

Ŝ

Codd”

background image

14

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Przykład:

Warto

ś

ci atrybutów nie s

ą

elementarne

background image

15

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Przykład (c.d.):

Powtarzaj

ą

ce si

ę

grupy

Zale

Ŝ

no

ś

ci funkcyjne

Klucz potencjalny:

<rodzaj_studiow, rok_studiow, rok_akademicki, 

przedmiot, forma, termin, student_nr_albumu>

background image

16

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Klucz główny relacji protokoly:

<id_przedmiot, termin, nr_albumu>

background image

17

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Posta

ć

normalna Boyce’a-Codd’a

Dana relacja o schemacie jest w postaci normalnej 

Boyce’a-

Codd’a

, je

Ŝ

eli dla ka

Ŝ

dej zale

Ŝ

no

ś

ci funkcyjnej X

spełniony 

jest nast

ę

puj

ą

cy warunek: jest nadkluczem schematu 

Nadklucz

– dowolny podzbiór atrybutów B z A, taki, 

Ŝ

e zachodzi 

zale

Ŝ

no

ść

funkcyjna B

(warto

ść

ka

Ŝ

dego atrybutu jest 

jednoznacznie zdeterminowana przez warto

ś

ci atrybutów zbioru B). 

Jednym z nadkluczy jest zawsze zbiór wszystkich atrybutów A.

Kluczem

nazywamy ka

Ŝ

dy minimalny nadklucz 

(nie zawieraj

ą

cy w sobie 

Ŝ

adnego innego nadklucza).

background image

18

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Zale

Ŝ

no

ś

ci wielowarto

ś

ciowe:

nr_albumu

→→

przedmiot

Nr_albumu

→→

forma

Zwi

ą

zek pomi

ę

dzy zbiorami atrybutów Y;

Niezale

Ŝ

no

ść

zbiorów atrybutów YZ. Zbiory te s

ą

zwi

ą

zane 

ze sob

ą

po

ś

rednio poprzez zbiór atrybutów X.

Wyst

ą

pienie zale

Ŝ

no

ś

ci 

wielowarto

ś

ciowej 

→→

w

relacji o schemacie XYZ wyra

Ŝ

dwa fakty:

background image

19

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Modyfikacja relacji z zale

Ŝ

no

ś

ciami wielowarto

ś

ciowymi:

Przykład:

Wchodzi w 

Ŝ

ycie ustawa o konieczno

ś

ci 

prowadzenia laboratoriów ze 
wszystkich przedmiotów, a ponadto 
nasz student zapisał si

ę

na Ekonomi

ę

:

Dodane krotki

background image

20

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

DEKOMPOZYCJA

DEKOMPOZYCJA

MODYFIKACJA

MODYFIKACJA

schemat 

student

jest 

niedekomponowalny bez 

utraty informacji. 

background image

21

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Trywialna zale

Ŝ

no

ść

wielowarto

ś

ciowa:

Zale

Ŝ

no

ść

wielowarto

ś

ciowa 

→→

w relacji r(R

nazywamy 

zale

Ŝ

no

ś

ci

ą

trywialn

ą

, je

Ŝ

eli

zbiór jest podzbiorem X, lub

R

Zale

Ŝ

no

ść

nazywamy trywialn

ą

, gdy

Ŝ

jest ona spełniona 

dla dowolnej instancji schematu R.

background image

22

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Czwarta posta

ć

normalna:

Relacja o schemacie jest w 

czwartej postaci normalnej

wzgl

ę

dem zbioru zale

Ŝ

no

ś

ci wielowarto

ś

ciowych MVD je

Ŝ

eli jest ona w 

3PN i dla ka

Ŝ

dej zale

Ŝ

no

ś

ci wielowarto

ś

ciowej 

→→

MVD 

zale

Ŝ

no

ść

ta jest trywialna lub jest nadkluczem schematu R.

Przedstawiony uprzednio schemat relacji 

student

nie jest w 4PN 

gdy

Ŝ

zale

Ŝ

no

ść

wielowarto

ś

ciowa, np. 

nr_albumu

→→

przedmiot

nie jest trywialna jak równie

Ŝ

nr_albumu

nie jest nadkluczem

schematu 

student

Schematy relacji 

student1

student2

, uzyskane w wyniku 

dekompozycji, s

ą

w 4PN gdy

Ŝ

ka

Ŝ

dy z tych schematów zawiera 

trywialn

ą

zale

Ŝ

no

ść

wielowarto

ś

ciow

ą

background image

23

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Pi

ą

ta posta

ć

normalna:

Dana relacja 

r

o schemacie 

R

jest w 

pi

ą

tej postaci normalnej

wtedy i tylko 

wtedy, gdy jest w czwartej postaci normalnej i w przypadku wyst

ę

powania w 

niej poł

ą

czeniowej zale

Ŝ

no

ś

ci funkcyjnej 

*R<R

1

,..., R

m

>

zale

Ŝ

no

ść

ta wynika z zale

Ŝ

no

ś

ci atrybutów od klucza. 

Mówimy, 

Ŝ

e w schemacie relacji 

R<A

1

, ..., A

n

>

wyst

ę

puje 

poł

ą

czeniowa 

zale

Ŝ

no

ść

funkcyjna

(co zapisuje si

ę

*R<R

1

, ..., R

n

>

) wtedy i tylko 

wtedy, gdy mo

Ŝ

liwa jest dekompozycja relacji 

r(R)

na relacje 

r

1

, ..., r

n

taka, 

Ŝ

e relacj

ę

pierwotn

ą

r

mo

Ŝ

na zrekonstruowa

ć

przez wykonanie 

sekwencji operacji poł

ą

czenia relacji 

r

1

, ..., r

m

Podstaw

ą

pi

ą

tej postaci normalnej (5PN), zwanej tak

Ŝ

postaci

ą

normaln

ą

ą

czenie-rzut (PNZR)

, jest koncepcja zł

ą

czenia bezstratnego lub brak 

anomalii zł

ą

czenie-rzut. Taki problem wyst

ę

puje w przypadku zale

Ŝ

no

ś

ci        

n-warto

ś

ciowej, gdzie n > 2. Szybki sposób sprawdzenia zgodno

ś

ci z 5PN 

polega na sprawdzeniu, czy tabela odpowiada 3PN oraz czy wszystkie klucze 
kandyduj

ą

ce s

ą

pojedynczymi kolumnami. 

background image

24

Kraków, 2006

str.

K. Regulski, ZIP,  v.2.0

Podsumowanie:

Normalizacja ma na celu takie przekształcenie relacji, by unikn

ąć

redundancji i anomalii

.

Przekształcenie relacji do kolejnych postaci normalnych wi

ąŜ

e si

ę

najcz

ęś

ciej ze 

zmniejszeniem ilo

ś

ci pami

ę

ci

potrzebnej do 

przechowania informacji

Unikanie powtórze

ń

pozwala na 

łatwiejsz

ą

i szybsz

ą

aktualizacj

ę

danych.

Doprowadzenie bazy do wysokiej postaci normalizacji mo

Ŝ

spowolni

ć

odczyt

w du

Ŝ

ych bazach ze wzgl

ę

du na skomplikowany 

schemat danych.

W wi

ę

kszo

ś

ci przypadków po znormalizowaniu bazy danych 

przychodzi kolej na rozwa

Ŝ

enie mo

Ŝ

liwo

ś

ci wykonania 

odwrotnej 

operacji (denormalizacji)

, polegaj

ą

cej na poł

ą

czeniu niektórych 

znormalizowanych tabel, a to z my

ś

l

ą

o przyspieszeniu dost

ę

pu do 

pewnych danych.