Relációk felbontása

Adatbázis  ideális tulajdonságait ún. normálformákban rögzítjük. Az E/K modell relációkba való átírásakor ezek nem feltétlenül teljesülnek. Azt a folyamatot, amelynek során átalakítjuk az adatbázist a kívánt normálformára, normalizálásnak nevezzük.

A normalizálás célja a hibaforrást jelentő ún. anomáliák minimálisra csökkentése.

Az anomáliák oka: legtöbbször adatok többszörös, redundáns tárolása

Cél: a redundancia csökkentése, ellenőrzött redundacia

Módszer: felbontás (dekomponálás)

Anomáliák

Változtatási anomáliának nevezzük a
                    - módosítási,
                    - beírási
                    - törlési
anomáliákat.

Módosítási anomália: Egy attribútum értékének megváltozását több helyen kell kijavítani. Ez az adatbázis inkonzisztens állapotához vezethet.

Beírási anomália: Új egyedelőfordulásra vonatkozó  információ bevitele nem lehetséges hiányos adatok miatt.
Ez információvesztést eredményez.

Törlési anomália: Bizonyos adatok törlésével elvesznek olyan adatok (mivel csak egész sorokat tudunk törölni),  amelyekre  továbbra is szükség lenne az ABKR  asználatában. Ez is információvesztést eredményez.

Példa
Milyen anomáliák lépnek fel az 

Oktatók(T-szám, Név, Cím, Telefon, TantárgyNév, Óraszám, Követelmény)
 
relációval kapcsolatban?

Redundancia:
Hányszor szerepelnek az oktatók adatai?
A tantárgyak adatai?
A (z ellenőrizetlen) redundancia anomáliákhoz vezet.

Módosítási anomália: 
Mi történik, ha megváltozik egy oktató címe?

Törlési anomália:
Mely információk vesznek el, ha egy oktató kilép?

Beírási anomália:
Új tantervet vezetnek be, de még nincsen oktató, aki tanítani fogja. Mit eredményezne  az új tantárgy felvétele az adatbázisba? (NULL-értékekek)
 Mi az oka, és hogyan lehet elkerülni a példában található  anomáliákat?

T-szám

TtárgyNév

Név

Cím

Telefon

Félév/óra

Követelmény

Az Oktatók reláció funkcionális függőségi viszonyait mutatja az ábra:

Az  ábra alapján azt várjuk, hogy a relációnak a következő  relációkra bontása megoldja a problémákat (ellenőrizzük!): 		Oktatók(T-szám, O_Név,  Cím , Telefon)
Tantárgyak(T_név, Félév/óra, Követelmény)
Tanít(T-szám, T_név )
Reláció felbontása (dekomponálása)

Definíció: Az  R(A1,  A2, ...An) sémájú reláció egy felbontása az 
R1(A11,  A12, ...A1i), 
R2(A21,  A22, ...A2j),
:
Rk (Ak1,  Ak2, ...Akn) 

relációk halmaza, ha: 
1.	U A nm = { A1,  A2, ...An }

Rk egy előfordulása:=  Ak1,  Ak2, ...Akn(r)
ahol r az R sémának megfelelő előfordulás.

A felbontás az anomáliák elkerüléséhez  szükséges

Normalizáció

A normalizálás után az adatbázisban továbbra is megtalaláható bizonyos fokú redundancia, de ez ellenőrzött formában , ezért nem vezet anomáliához.
Eredeti reláció visszaállítása(információ visszanyerése)

Vázlatos elv:
Adott R(A, B, C)						R egy felbontása: R1(A, B),  R2(B, C)

R visszaállítása: R1  R2 
( a természetes összekapcsolás, join)
Példák:
 1. 
(a, b, c) felbontás után: (a,b) (b,c)
R1 R2 - vel (a, b, c) előáll.

2.	t sor  	(a, b, c)			Felbontás után  	t-ből: 	(a,b) és (b,c)
v sor 	(d, b, e)							v-ből:	(d,b) és (b, e)   
Természetes összekapcsolással a következő sorokat kapjuk:   	(a,b,c), 
(a,b,e),	
(d,b,e), 
(d,b,c)

Az eredeti reláció 2 sora helyett  4 sort kaptunk, a vastag betűvel jelzettek az eredeti relációban nem szerepeltek. Ily  módon információt vesztettünk, a felbontás veszteséges.

Eredeti reláció visszaállítása(információ visszanyerése)

Példa: Adott R(A, B, C, D, E) egy felbontása:    R1(A, B, C)  és R2(C, D, E)
E felbontás veszteséges, vagyis, az eredeti reláció nem állítható vissza természetes összekapcsolással, mert:
R egy elõfordulása legyen r: 				ABC( r ):				CDE( r ):
A	B	C	D	E	
1	b1	c1	d1	e1	
a2	b2	c1	d2	e2	
A	B	C			C	D	E			
a1	b1	c1			c1	d1	e1			
a2	b2	c1			c1	d2	e2			

		
ABC( r )  CDE( r ) (  természetes összekapcsolás):

A	B	C	D	E	
a1	b1	c1	d1	e1	
a1	b1	c1	d2	e2	
a2	b2	c1	d1	e1	
a2	b2	c1	d2	e2	

Nem lehet innen megállapítani melyek voltak az eredeti sorok: információt vesztettünk. 

Veszteségmentesség
Példa: 
Adott R(A, B, C, D, E), F={CDE} és R egy felbontása: 
R1(A, B, C)  és R2(C, D, E). R egy elõfordulása legyen 
r:						 ABC( r ):				CDE( r ):

A	B	C	D	E	
a1	b1	c1	d1	e1	
a2	b2	c1	?	??	
A	B	C			C	D	E			
a1	b1	c1			c1	d1	e1			
a2	b2	c1			c1	?	??			
ABC( r )  CDE( r ):

A	B	C	D	E	
 a1	b1	c1	d1	e1	
a1	b1	c1	?	??	
a2	b2	c1	d1	e1	
a2	b2	c1	?	??	
Az r akkor legális, ha ? helyén d1, ?? helyén e1 áll. Ekkor azonban CDE(r) egy sorra redukálódik:
 (c1, d1, e1). Igy nem keletkezhetnek “idegen sorok” a természetes öszekapcsoláskor (Ellenőrizzük!). Vagyis e felbontás veszteségmentes. ENNEK OKA:  CDE. C a közös attribútum!

Következmény: A felbontást a  funkcionális függőségek alapján kell elvégezni. Az információvesztés ’idegen’ sorok megjelenéséből áll. (Kevesebb sor sosem lesz!)

Lemma: 

Az eredeti relációt a természetes összekapcsolásokkal kapott eredmény mindig tartalmazza:

r  R1( r )   R2( r )  ….  Rk( r ) 

Definíció: Az R reláció R1, R2, …Rk felbontása veszteségmentes az F függőségi halmaz szerint, ha 

r = R1( r )   R2( r )  ….  Rk( r ) 

az R  minden r előfordulására.

Veszteségmentes felbontás

( Boyce-Codd Normálformára bontás alapelve)

Tétel: 

Az R reláció R1, R2 relációkra való felbontása adott F függőségi halmaz szerint veszteségmentes, ha legalább az egyik függőség az alábbiak közül benne van F+-ban.	

	R1 séma  R2 séma  R1 séma
	R1 séma  R2 séma  R2 séma

Normalizálás

Ismétlés

Cél: anomáliák kiküszöbölése

Módszer: Felbontás

Normálformák: 
1-3NF, BCNF: funkcionális függőségek
4NF: funkcionális és többértékű                    függőségek
5NF: join függőségek

Itt: 1-3 NF, BCNF

Első normálforma

Definíció: Első normálforma (1NF): A reláció  minden sorában pontosan egy elemi attribútumérték áll.

A reláció matematikai definíciója miatt a relációban nem lehetnek  azonos sorok, ezért az 1NF-ben lévő relációnak van kulcsa, továbbá, az 1NF definíciójából következően minden (nem kulcs) attribútum funkcionálisan függ a kulcstól.

Informálisan az R reláció 1. normálformában, 1NF-ben van, ha  minden sorának minden attribútumértéke elemi és egy értéket vesz fel.

A nem elemi attribútumot új attribútumok beiktatásával lehet megszüntetni.
A többértékűség (halmazérték) megszüntetése úgy történik,  hogy minden sort annyiszor leírunk, ahányszor szükséges.

Példa:
A Hallgató(T-szám, Név, Cím, TantárgyNév, Jegy) sémájú reláció nem 1NF-ben van, mert a Cím attribútum nem elemi: a város, utca, házszám tulajdonságokból áll. A Tantárgy attribútum pedig több értéket vesz fel, halmazértékű.

Megjegyzés: A legtöbb, kereskedelemben kapható rendszer rendelkezik ún. objektum-orientált bővítéssel, amely lehetővé teszi a reláció beágyazását, illetve halmazérték kezelését.

Második normálforma

Példa(ismétlés): Láttuk, hogy az 
Oktatók(T-szám, Név, Cím, Telefon, TantárgyNév, Félév/óraszám, Követelmény)
relációnál az anomáliák mindegyike fellép; módosítási, törlési, beírási. Az anomáliákat felbontással kerültük el. 

Mi volt az oka az  anomáliáknak?

-	két egyedhalmaz került egy relációba, így a megfelelő kulcsok funkcionálisan meghatározzák a hozzákapcsolódó attribútumokat
-	másképpen: egyes attribútumokat a kulcs egy részhalmaza már funkcionálisan meghatároz, és okozza a redundanciát.

T-szám

Tantárgy

Név

Cím

Telefon

Félév/óra

Követelmény

Második normálforma

Az Oktatók(T-szám, Név, Cím, Telefon, TantárgyNév, Félév/óraszám, Követelmény) reláció alábbi felbontása valóban megszünteti az anomáliákat:

Oktatók(T-szám, O_Név,  Cím , Telefon)
Tantárgyak(T_Név, Félév/óra, Követelmény)
Tanít(T-szám, T_Név )

Definíció: Az  funkcionális függésben  funkcionálisan teljesen függ -tól (vagy  funkcionálisan teljesen meghatározza -t), ha nincsen olyan , amelyre . 

Definíció: Azt mondjuk, hogy a reláció második normálformában (2NF) van, ha minden másodlagos attribútum funkcionálisan teljesen függ a reláció bármely kulcsától.

Azt mondjuk,  hogy az   funkcionális függőség sérti a normálformát, ha az nem felel meg a normálforma definíciójában előírtaknak. 

Az előző példában az anomáliákat az okozta, hogy egyes attribútumok funkcionális  függése a kulcstól részleges (nem teljes) volt. 

Normalizálás

Módszer:
Veszteségmentes, adott normálformában (1-4NF, BCNF) levő relációkat kapunk a következő felbontással:
Az eredeti R relációt két másik relációra bontjuk a sértő  függőség szerint:

1.	R1 sémája  
2.	R2 sémája R-

A kapott R1 és R2 relációk közül R1 általában a kívánt normálformában van, R2-t meg kell vizsgálni, és ha szükséges, folytatni az eljárást.

Megjegyzés:  

1.	Mivel  teljesül R1-ben, így R1R2R1 fennáll, ami a veszteségmentességet biztosítja. 

2.	Szándékosan függőséget írtunk funkcionális függőség helyett, mert az a módszer más függőségek, pl. többértékűek esetében is célravezető, 4NF-re hozásnál.

Második normálforma

Példa 2NF-re hozásra:
Oktatók(T-szám, Név, Cím, Telefon, TantárgyNév, Félév/óraszám, Követelmény)

Felbontással:
1. 	A kulcstól való részleges funkcionális függésben levő attribútumokkal új sémát készítünk (ezen funkcionális függőségek sértik a 2NF-et, hiszen részleges a függés):

A sértő:   			      T-szám (Név,  Cím , Telefon)
R1 sémája  			Oktatók(T-szám, Név,  Cím , Telefon)
R2 sémája R-			Oktatók(T-szám, TantárgyNév, Félév/óraszám, Követelmény)

R2 nincsen 2NF-ben, mert  TantárgyNévFélév/óraszám, Követelmény (részleges függés)

Ezért: 	R3:				Tantárgyak(T_név, Félév/óra, Követelmény)
R4: R2-			Tanítja (T-szám, TantárgyNév)

A dekompozíció eredménye: R1, R3, R4. E relációk mindegyike 2NF-ben van. 
Harmadik normálforma (3NF)

Definíció: A  attribútumhalmaz tranzitívan függ az  attribútumhalmaztól, ha létezik egy olyan  attribútumhalmaz, amelyet  funkcionálisan meghatároz, és amelytől  funkcionálisan függ:   és .

Példa:

Tekintsük az alábbbi sémával megadott relációt:
Alkalmazottak(T-szám, DolgozóNév, RészlegNév, Fizetés, Telephely).

Első vagy második normálformában van-e a reláció?
Irjuk fel az összes funkcionális függőséget! 
Keressük meg a tranzitív függéseket!
Milyen anomáliákat tapasztalunk?
Mi  az oka az anomáliáknak?

Harmadik normálforma (3NF)

Definíció1: A reláció harmadik normálformában (3NF) van, ha 2NF-ben van, és egy másodlagos attribútum sem függ tranzitívan a reláció egyetlen kulcsától sem.

Definíció2: A reláció harmadik normálformában (3NF) van, ha  minden  funkcionális függőségre vagy   szuperkulcs, vagy  elsődleges attribútum. 

Tétel: Definíció1 ekvivalens Definíció2-vel
Bizonyítás:
I.
Definíció2-ből következik  Definíció1. 
Tegyük fel, hogy  sérti a 3NF-et Definíció2 szerint. 
Ez akkor lehetséges ha:
 nem szuperkulcs és  nem elsődleges
Ha  nem szuperkulcs, akkor  vagy
-	  Kulcs, ezért részleges függést okoz az  (nincs 2NF-ben a reláció)
-	  Kulcs, akkor, mivel Kulcs teljesül, így -val Kulcs tranzitív függésben van.

II. Definíció1-ből következik  Definíció2:
Ezt a részt nem bizonyítjuk.
Harmadik normálforma (3NF)

Az 
Alkalmazottak(T-szám,DolgozóNév,D-cím,D-tel,RészlegNév,Fizetés,Telephely,R-cím,R-tel, ) 

reláció 2NF-ben van, hiszen a kulcs egyszerű.

Nincsen 3NF-ben, mert a RészlegNév funkcionálisan meghatározza  a Telephelyet,a R-címet és a R-telefont,  így a Telephely, R-cím, R-tel  tranzitívan függ a kulcstól.

3NF-re hozás:

A 
RészlegNévTelepHely, R-cím, R-tel funkcionális függés sérti a 3NF-et, ezért:

R1:= Részleg (RészlegNév,  Telephely) 

R2:= Alkalmazottak(T-szám, DolgozóNév, RészlegNév, Fizetés)

Összefoglaló példa az 1-3NF-re hozásra (Házi feladat: miként módosul az alábbi példa, ha BCNF-re akarjuk hozni?):

A Rendelés reláció sémája a következő:

Rendelés(rendelés_száma, dátum, vevőnév, vevőkód,  vevőcím, számlaszám, 
Áru(aru_az_szám, aru_megnevezés, egységár, mennyiség_egysége, mennyiség),  határidő).

Az Áru(áru_az_szám, áru_megnevezés, egységár, mennyiség_egysége, mennyiség) beágyazott reláció  miatt a Rendelés reláció nincsen 1NF-ben.
1NF: Most felbontással hozzuk 1NF-re a relációt:

R1: 
Rendelés(rendelés_száma, dátum, vevőnév, vevőkód,  vevőcím, számlaszám)

R2: 
Áru(rendelés_száma, áru_az_szám, áru_megnevezés, egységár, mennyiség_egysége, mennyiség, 
határidő)

Összefoglaló példa az 1-3NF-re hozásra(folyt.):

2NF: A kapott két reláció  nincsen 2NF-ben. Miért?

A kulcs részhalmazától való függés található az Áru relációban, mert az áru_az_szám funkcionálisan meghatározza a következő attribútumokat: aru_megnevezés,egységár,mennyiség_egysége

Tehát az ebben a funkcionális függőségben található attribútumhalmazokból képezünk egy sémát:

Áru(áru_az_szám, áru_megnevezés, egységár, mennyiség_egysége)
Tétel (rendelés_száma, áru_az_szám, mennyiség)
Rendelés(rendelés_száma, dátum, vevőnév, vevőkód,  vevőcím, számlaszám, határidő)

Mivel a számlaszámot a rendelés_száma funkcionálisan meghatározza, ezért nem kerülhetett a Tétel relációba, nem lenne teljes a kulcstól való függés.

A rendelés reláció nincsen 3NF-ben, mert a vevőkód funkcionálisan meghatározza a vevőnevet, számlaszámot,  és a vevőcímet, így tranzitív függésben vannak az utóbbi attribútumok a rendelés_számától. Ezért ezekkel az attribútumokkal készítünk egy relációsémát:

Rendelés(rendelés_száma, dátum, vevőnév, vevőkód,  vevőcím, számlaszám, határidő)
Vevő(vevőnév, vevőkód,  vevőcím, számlaszám)

A maradék attribútumokkal és az új reláció kulcsával ( a tranzitív függés "középső" elemével) képezzük a másik új relációsémát:

Rendelés(rendelés_száma, dátum, vevőkód, határidő)

Az adatbázis sémája(3NF):

Rendelés(rendelés_száma, dátum, vevőkód, határidő)
Áru(áru_az_szám,áru_megnevezés,          egységár,mértékegys)
Tétel (rendelés_száma, áru_az_szám, mennyiség)
Vevő(vevőnév, vevőkód,  vevőcím, számlaszám)

Boyce-Codd normálforma (BCNF)

Definíció: Az R reláció BCNF-ben van, ha minden  funkcionális függőségre  szuperkulcs.
1NF

2NF

3NF

BCNF

			Következmény:

Feladat: Ellenőrizzük, hogy az előző (összefoglaló) példa végeredményeként adott  relációk  BCNF –ben vannak-e?

Boyce-Codd normálforma (BCNF)

Példa:

R( A, B, C, D, E), a függőségi halmaz: 
F={AD, BE, DEC}. 
Ellenőrizzük, hogy az R reláció  BCNF-ben van-e, ha nem, adjunk meg egy veszteségmentes felbontását BCNF-re.

Módszer:
Veszteségmentes, adott normálformában (1-4NF, BCNF) levő relációkat kapunk a következő felbontással:
Az eredeti R relációt két másik relációra bontjuk a sértő  függőség szerint:

3.	R1 sémája  
4.	R2 sémája R-

A kapott R1 és R2 relációk közül R1 általában a kívánt normálformában van, R2-t meg kell vizsgálni, és ha szükséges, folytatni az eljárást.

Példa:

R( A, B, C, D, E), a függőségi halmaz: 
F={AD, BE, DEC}. 
Ellenőrizzük, hogy az R reláció  BCNF-ben van-e, ha nem, adjunk meg egy veszteségmentes felbontását BCNF-re.

Megoldás:
A kulcs AB, tehát a reláció nincsen BCNF-ben, 
AD és BE  miatt nincsen 2NF-ben sem.

Felbontás:  R1:= AD 		R2:= ABCE

R1 BCNF-ben van, de R2 nincsen, mert R2-ben:
F2:={ BE , triviálisak } , mivel R2 kulcsa: ABC, ezért  BE sérti BCNF-et.

R2 dekomponálása:  R21:=BE 		R22:=ABC

Az eredmény tehát: R1, R21, R22, ezek mindegyike BCNF-ben van. 

Boyce-Codd normálforma (BCNF)

Példa:

R( A, B, C, D, E) felbontásakor egyik kapott reláció  S(A, B, C), az adott függőségi halmaz: F={AD, BE, DEC}. Ellenőrizzük, S  BCNF-ben van-e?

Ehhez tudni kell, mely függőségek teljesülnek S-ben F szerint?

    	{A}+= {A, D} AA, AD, nincsen benne S-ben
	{B}+= {B, E} 	BB, BE nincsen benne S-ben
	{C}+= {C} 	CC,

	{AB}+ = {A, B, C, D, E}	ABA, ABB, ABAB ABE, ABD , ABC
 							(Kulcsjelölt AB)
	{AC}+ = {A, C, D}		Triviálisak +ACD, de D nincsen S-ben

	{BC}+ = { B, C, E}		 BCC, BCA, BCE de E nincsen S-ben

Az egyetlen nem triviális függőség amely benne van S-ben: ABC. Mivel AB kulcs, ezért nem sérti a BCNF-et.

Boyce-Codd normálforma (BCNF)

Példa: Legyen R:=ABC, és F:={ABC, CB}.
Igazoljuk, hogy R-nek nem létezik veszteségmentes, függőségőrző dekomponálása BCNF-re!
Hányadik normálformában van R?

HF.

Példa: Legyen R:=ABC, és F:={ABC, CB}.
Igazoljuk, hogy R-nek nem létezik veszteségmentes, függőségőrző dekomponálása BCNF-re!
Hányadik normálformában van R?
Megoldás:
R kulcsa AB és AC, ezért nincsen BCNF-ben, CB baloldala nem szuperkulcs. Az ismert módszer szerint dekomponálva:
R1:=CB
R2:=AC
A dekompozíció veszteségmentes,  hiszen CB fennáll.
A dekompozíció nem függőségőrző, mert ABC nem vezethető le. 

Más dekompozíciókkal próbálkozva:
R1:=AB
R2:=BC
Ez veszteségmentes, de nem függőségőrző, mert ABC nem vezethető le. 

Egyetlen további lehetőség van:
R1:=AB
R2:=AC
Ez a dekompozíció pedig még csak nem is veszteségmentes.
Megjegyzés: R 3NF-ben van, mert B elsődleges attribútum.

Már adott felbontás veszteségmentességének  eldöntésére szolgáló módszer

Táblázat: 

Sorok száma = a felbontásban szereplő relációk száma.    Egy sor egy relációnak felel meg.
Oszlopok száma = eredeti reláció attribútumainak száma

i.  sor k. eleme = ak, ha a k. attribútum szerepel a sornak megfelelő reláció sémájában.

i.  sor k. eleme = bik, ha a k. attribútum NEM szerepel a sornak megfelelõ reláció sémájában.

Eljárás: Alkalmazzuk az F+ függőségi halmaz elemeit :
Ha két sor megegyezik valamely oszlopban, akkor a kiválasztott funkcionális függőség jobboldalának megfelelő oszlopban egyenlővé tesszük  az értékeket.  “ai”-t írunk, ha valamelyik “ai” volt, és “bik” - t, ha mindkettõ “bjl” volt. Ha „b”-ket írunk át, azt az összes előfordulásban kell, azokban a sorokban is, amelyekre a függés nem alkalmazható, de már az átírandó „bjl” szerepel ott.

Döntés: Ha már nincsen alkalmazható függőség, akkor ellenőrizzük, az így kapott táblázatban van-e csupa “ak”- ból álló sor. Ha igen, akkor a felbontás veszteségmentes. Ha nem,  akkor veszteséges.

Veszteségmentesség  eldöntése

Példa:
		Szállítók( NÉV, CIM,  NYERSANYAG, ÁR)
		Szállítók(N, C, NY, Á)

A függőségek: NC , 	{N, NY}Á
Vizsgáljuk meg, veszteségmentes-e az  R1(N, C) és R2(N, NY, Á) felbontás?

A kiindulási táblázat:

N		C		NY		Á
R1		a1		a2		b13		b14
R2		a1		b22		a3		a4

Alkalmazva  az  NC  függőséget:

N		C		NY		Á
R1		a1		a2		b13		b14
R2		a1		a2		a3		a4

A második sorban csupa “ak” áll, ezért a felbontás veszteségmentes.

Veszteségmentesség  eldöntése

Példa:

Adott R(A, B, C, D, E) és a függőségek halmaza:
F={A BC, CDE, BD, EA}. 

R egy dekompozíciója R1(A, B, C)  és R2(C, D, E). 

Igazoljuk, hogy e dekompozíció veszteséges.

Igazolás: a fenti módszert alkalmazzuk

R	A	B	C	D	E	
R1	a1	a2	a3	b14	b15	
R2	b21	b22	a3	a4	a5	

Mivel a sorok egyedül C-n egyeznek , csak olyan függőség jöhetne szóba, amelynek bal oldalán C áll. Mivel ilyen nincsen, a döntés adódik: a felbontás veszteséges.

Veszteségmentesség  eldöntése

Példa:

Adott:
R (A, B, C, D, E) és 
F={AC, B  C, CD, DEC, CEA}

Az R (A, B, C, D, E) egy felbontása:
R1(A, D), R2(A, B), R3(B, E), R4(C, D, E), R5(A, E)

Döntse el, veszteségmentes-e ez a dekompozíció?

Veszteségmentesség  eldöntése

Megoldás:
A	B	C	D	E
R1	a1	b12	b13	a4	b15
R2	a1	a2	b23	b24	b25
R3	b31	a2	b33	b34	a5
R4	b41	b42	a3	a4	a5
R5	a1	b52	b53	b54	a5

AC -t alkalmazva b13, b23, b53 egyenlővé válik b13-mal
BC -t alkalmazva b13, b33 egyenlővé válik b13-mal:
CD -t alkalmazva  a4, b24, b34, b54 egyenlővé válik a4-gyel:
A	B	C	D	E
R1	a1	b12	b13	a4	b15
R2	a1	a2	b13	a4	b25
R3	b31	a2	b13	a4	a5
R4	b41	b42	a3	a4	a5
R5	a1	b52	b13	a4	a5

Veszteségmentesség  eldöntése

Példa (folytatás):

DEC -t alkalmazva b13, a3 egyenlő lesz a3-mal (minden elõfordulást át kell írni)
 CEA alkalmazásával  b31, b41 és a1 egyenlő lesz a1-gyel:
A	B	C	D	E
R1	a1	b12	a3	a4	b15
R2	a1	a2	a3	a4	b25
R3	a1	a2	a3	a4	a5
R4	a1	b42	a3	a4	a5
R5	a1	b52	a3	a4	a5

R3-nak megfelelõ sorban csupa “ak” áll. Tehát ez a dekompozíció veszteségmentes.

Fontos megjegyzés:

Az egyik legfontosabb normálforma az ún. Boyce-Codd normálforma, röviden BCNF (ld. következő előadás). Ezért fontos tudni,  hogy mindig van veszteségmentes felbontás BCNF-re.