• Nu S-Au Găsit Rezultate

A = {A1, A2

N/A
N/A
Protected

Academic year: 2022

Share "A = {A1, A2"

Copied!
31
0
0

Text complet

(1)

Normalizálás

Funkcionális függıségek

Adott: R (A1, A2,..., An) reláció ; A = {A1, A2,..., An}, X, Y ⊂ A

X funkcionálisan meghatározza Y-t, (Y funkcionálisan függ X-tıl):

− ha R bármely két sora megegyezik az X attribútumain, akkor meg kell egyezniük az Y attribútumain is.

Jelölés : X →Y

Relációs algebrai mőveletekkel:XY ,

ha ∀t,rR sor esetén, melyre πX (t) = πX (r), akkor πY (t) = πY (r).

(2)

t

r

X Y

Ha t és r megegyezik ezen

Akkor itt is meg kell egyezniük

(3)

Száll ID

Száll Név

SzállCím Áru ID

ÁruNév Mért Egys

Ár

111 Rolicom A. Iancu 15 45 Milka csoki tábla 2.5 222 Sorex 22 dec. 6 45 Milka csoki tábla 2.6 111 Rolicom A. Iancu 15 67 Heidi csoki tábla 1.7 111 Rolicom A. Iancu 15 56 Milky way rúd 2.1 222 Sorex 22 dec. 6 67 Heidi csoki tábla 1.8 222 Sorex 22 dec. 6 56 Milky way rúd 2.3

Funkcionális függıségek:

SzállID SzállNév ÁruID ÁruNév SzállID SzállCím ÁruID MértEgys

(4)

ÁruID MértEgys (azzal a feltevéssel, ha más mértékegységben árulják az árut, más ID-t is kap).

egy sorban:

SzállID {SzállNév, SzállCím}

ÁruID {ÁruNév, MértEgys}

(5)

} , , ,

{C1 C2Ck halmaz a reláció kulcsa, ha:

– Ezek az attribútumok funkcionálisan meghatározzák a reláció minden más attribútumát, azaz nincs az R-ben két különbözı sor, amely mindegyik {C1,C2,…,Ck}-n megegyezne.

– Nincs olyan valódi részhalmaza {C1,C2,…,Ck}-nak, amely funkcionálisan meghatározná az R összes többi attribútumát, azaz a kulcsnak minimálisnak kell lennie.

Szuperkulcsoknak nevezzük azon attribútumhalmazokat, melyek tartalmaznak kulcsot.

– A szuperkulcsok eleget tesznek a kulcs definíció elsı feltételének, de nem feltétlenül tesznek eleget a minimalitásnak.

Tehát minden kulcs szuperkulcs.

(6)

• Az R (A1, A2,..., An) reláció esetén Ai attribútum prim, ha létezik egy C kulcsa az R-nek, úgy hogy AiC.

• Ha egy attribútum nem része egy kulcsnak, akkor nem prim attribútumnak nevezzük.

Triviális funkcionális függıségrıl beszélünk, ha YX , akkor Y

X → .

példa: Triviális funkcionális függıség: {SzállID, ÁruID}SzállID

Nem triviális egy X X1 2X pY Y1 2Ys funkcionális függıség, ha

, [1, ] Y jj s

∃ ∈ j ∈{1,2,..., s} úgy, hogy YjXk,∀k ∈{1,2,..., p}.

(7)

Teljesen nem triviális egy X X1 2X pY Y1 2Ys funkcionális függıség, ha

, [1, ] Y jj s

∀ ∈ j ∈{1,2,..., s} -re YjXk,∀ k ∈{1,2,..., p}.

Parciális függıség: Ha C egy kulcsa az R relációnak, YC, BY, YB egy parciális függıség. (B függ a kulcs egy részétıl.)

példa: parciális függıségre: SzállID → SzállNév.

SzállításiInformációk kulcsa {SzállID, ÁruID}

{SzállID, ÁruID}→SzállNév,

(8)

Tranzitív függıség: YA, BY . YB tranzitív függıség,

− ha Y nem szuperkulcs R relációban

Y nem valódi részhalmaza R egy kulcsának.

Honnan a tranzitív elnevezés?

Y nem kulcs, nem része a kulcsnak, tehát

CY és YB, és erre mondhatjuk, hogy B tranzitív függıséggel függ C-tıl.

példa:

Rendelések (RendelésSzám, Dátum, VevıID, VevıNév, Részletek), RendelésSzám elsıdleges kulcs

RendelésSzám →VevıID.

VevıID→VevıNév

(9)

Problémák: (anomáliák)

Redundancia: Az információk feleslegesen ismétlıdnek több sorban, mint például a SzállításiInformációk reláció esetében a szállító címe ismétlıdik.

Módosítási problémák: Megváltoztatjuk az egyik sorban tárolt információt, miközben ugyanaz az információ változatlan marad egy másik sorban. Például, ha a szállító címe változik, de csak egy sorban változtatjuk meg, nem tudjuk, melyik a jó cím. Jó tervezéssel elkerülhetjük azt, hogy ilyen hibák felmerüljenek.

(10)

Törlési problémák: Ha az értékek halmaza üres halmazzá válik, akkor ennek mellékhatásaként más információt is elveszthetünk. Ha például töröljük a Rolicom által szállított összes árut, az utolsó sor törlésével elveszítjük a cég címét is.

Illesztési problémák: Ha hozzáilleszteni akarunk egy szállítót, amely nem szállít egy árut sem, a szállító címét kitöltjük úgy, hogy az áruhoz

„null” értékeket viszünk be, melyet majd utólag ki kell törölni, ha el nem felejtjük.

(11)

Relációk felbontása

Az anomáliák megszüntetésének elfogadott útja a relációk felbontása (dekompozíció-ja). Legyen R egy reláció, felbontása:

R attribútumait szétosztjuk úgy, hogy ezáltal két új reláció sémáját alakítjuk ki belılük.

R sorait is szétosztjuk a két új relációba

R reláció { ,A A1 2,…,An} sémával, R-et felbonthatjuk S és T relációkra, S sémája: { ,B B1 2,…,Bm}, T sémája {D1, D2, ..., Dk} úgy, hogy

1. { ,A A1 2,…,An}={ ,B B1 2,…,Bm}⋃{D1, D2, ..., Dk}, ahol { ,B B1 2,…,Bm}∩ {D1, D2, ..., Dk}≠∅.

2. S =

Bm

B B1, 2,,

π (R); T =

1, 2, , k

D D D

π (R);

(12)

Veszteségmentes felbontás

R reláció felbontása S és T relációkra veszteségmentes, ha R = S ⋈ T

Fontos, hogy minden felbontás, amit normálformára hozás közben végzünk, veszteségmentes legyen, vagyis ne veszítsünk információt.

(13)

Normálformák

• Az adatmodellezés egyik fı célja az optimalizálás, vagyis az adatmodellt alkotó egyedtípusok lehetı legjobb szerkezetének a megkeresése.

• Az optimális adatmodell kialakítására egyéb technikák mellett a normalizálás szolgál. A normalizálás az a folyamat, amellyel kialakítjuk a relációk normálformáját (NF).

• A normálformák: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF egymásba skatulyázottak. 2NF matematikailag jobb, mint 1NF, a 4NF jobb, mint a BCNF, az 5NF a legjobb, 3NF alakú reláció szükségszerően 1NF és 2NF alakú is.

(14)

Elsı normál forma (1NF)

Értelmezés: Egy R reláció 1NF –ben van, ha az attribútumoknak csak elemi (nem összetett vagy nem ismétlıdı) értékei vannak. Ez minimális feltétel, melynek egy reláció eleget kell tegyen, hogy a létezı relációs ABKR-ek kezelni tudják.

Példa: A következı reláció nincs 1NF-ben:

Alkalmazottak:

Cím Szem

Szám

Név

Helység Utca Szám

Gye- rek1

Szül Dát1

… Gye- rek5

Szül Dát5 Cím összetett attribútum: Helység, Utca és Szám-ból áll.

A Gyerek1, SzülDát1, Gyerek2, SzülDát2, Gyerek3, SzülDát3, Gyerek4, SzülDát4, Gyerek5, SzülDát5 ismétlıdı attribútum.

(15)

1NF-re alakítás

Ha egy reláció nincs 1NF-ben, mivel tartalmaz összetett attribútumokat, elsı normál formára hozhatjuk:

• az összetett attribútum helyett beírjuk az azt alkotó elemi attribútumokat.

Alkalmazott (SzemSzám, Név, Helység, Utca, Szám)

(16)

Ha A = {A1, A2,..., An}; R (A1, A2,..., An) reláció ismétlıdı attribútumokat tartalmaz, felbontással elsı normál formába hozható.

C I, ⊂ A,

C kulcs

I ismétlıdı attribútumhalmaz, mely k-szor ismétlıdik.

JA, JC = ∅ és JI = ∅.

A =CI1I2 ∪…IkJ .

A felbontás után kapjuk a következı két relációsémát:

( , )

S C I és T C J( , ).

(17)

példa: A példa esetén:

C = {SzemSzám}

I = {GyerekNév, SzülDátum}

J = {Név, Helység, Utca, Szám}.

AlkalmGyerekei (SzemSzám, GyerekNév, SzülDátum)

(18)

Második normál forma (2NF)

Értelmezés: Egy reláció 2NF formában van, ha

− elsı normál formájú (1NF) és

− nem tartalmaz YB alakú parciális függıséget, ahol B nem prim attribútum.

Csak akkor tevıdik fel, hogy egy reláció nincs 2NF-ben, ha a kulcs összetett.

példa: SzállításiInformációk relációja nincs 2NF-ben, mivel a reláció kulcsa a {SzállID, ÁruID} és fennáll a SzállIDSzállNév, tehát SzállNév függ a kulcs egy részétıl is, tehát létezik parciális függıség.

Megoldás: több relációra kell bontani.

(19)

2NF-re alakítás

R reláció, attribútumainak a halmaza A = {A1, A2,..., An} CA egy kulcs.

Ha a reláció nincs második normál formában, azt jelenti

− létezik egy BA nem kulcs BC = ∅ attribútumhalmaz,

− létezik DC, úgy hogy DB

Az R relációt felbontjuk két relációra, melyek sémái:

T(D, B) és S A B( − )

(20)

példa: SzállításiInformációk relációjában fennállnak a:

SzállID →{SzállNév, SzállCím}

ÁruID → {ÁruNév, MértEgys}

funkcionális függıségek, a kulcs pedig a C ={SzállID, ÁruID}.

1. B = {SzállNév, SzállCím}, D = {SzállID}.

Szállítók (SzállID, SzállNév, SzállCím)

SzállInf (SzállID, ÁruID, ÁruNév, MértEgys, Ár) A Szállítók reláció 2NF-ben van, mivel a kulcs nem összetett.

2. A SzállInf nincs 2NF-ben, mert fennáll a ÁruID → {ÁruNév, MértEgys}.

B = {ÁruNév, MértEgys}, D = {ÁruID}.

Áruk (ÁruID, ÁruNév, MértEgys),

(21)

Szállít (SzállID, ÁruID, Ár).

− Az Áruk 2NF-ben van, mert a kulcs nem összetett és 1NF-ben van.

− A Szállít relációban egyetlen nem kulcs attribútum van: az Ár, és az nem függ csak az ÁruID-tıl, sem a SzállID-tıl

A kapott relációk:

Szállítók:

SzállID SzállNév SzállCím 111 Rolicom A. Iancu 15 222 Sorex 22 dec. 6

(22)

Áruk:

ÁruID ÁruNév MértEgys 45 Milka csoki tábla

67 Heidi csoki tábla

56 Milky way rúd

Szállít:

SzállID ÁruID Ár

111 45 2.5

222 45 2.6

111 67 1.7

111 56 2.1

222 67 1.8

222 56 2.2

(23)

Harmadik normál forma (3NF)

Értelmezés: Egy R reláció harmadik normál formában (3NF) van, ha

− második normál formában van és

− nem tartalmaz YB alakú tranzitív funkcionális függıséget, ahol B nem prim attribútum.

Értelmezés: Egy R reláció harmadik normál formában (3NF) van, ha létezik az R-ben egy YB alakú nem triviális funkcionális függıség, akkor

Y az R reláció szuperkulcsa vagy

− a B prim attribútum (valamelyik kulcsnak része).

(24)

A két értelmezés ekvivalens.

− A második nem kéri a második normál formát, de mivel bármely létezı YB funkcionális függıség esetén a bal oldal szuperkulcs, nem lehet annak része.

− Tehát elég, ha az összes létezı funkcionális függıség esetén a bal oldal szuperkulcs, akkor a tranzitív függıség nem létezhet, mert a tranzitív függıség esetén a bal oldal nem kulcs és ez nem megengedett.

példa: Rendelések (RendelésSzám, Dátum, VevıID, VevıNév, Részletek), nincs 3NF-ben, mivel tartalmaz tranzitív funkcionális függıséget.

RendelésSzám →VevıID VevıID→VevıNév.

(25)

3NF-re alakítás

Legyen R egy reláció, mely 2NF-ben van, viszont nincs 3NF-ben, CA elsıdleges kulcs.

Ha a reláció nincs harmadik normál formában, azt jelenti,

− létezik egy BA nem kulcs BC = ∅ attribútumhalmaz,

− létezik D, úgy hogy CD és DB.

Mivel a reláció 2NF-ben van, B nem függ funkcionálisan C-nek egy részétıl, tehát D nem kulcs attribútum.

Az R relációt felbontjuk két relációra, melyek sémái:

T (D, B) és S A B( − ).

(26)

példa: Rendelések relációja esetén: B = {VevıNév}, D = {VevıID}, a felbontás után kapott relációk:

Vevık (VevıID, VevıNév)

RendelésInf (RendelésSzám, Dátum, VevıID)

(27)

Boyce−Codd normál forma

Értelmezés: Az R reláció Boyce−Codd normál formában (BCNF) van akkor és csak akkor,

− ha minden olyan esetben, ha az R-ben érvényes egy YB nem triviális függıség,

− akkor az Y attribútumhalmaz az R reláció szuperkulcsa kell hogy legyen.

A BCNF esetén elmarad a B-re vonatkozó megszorítás, hogy nem prim, tehát B lehet kulcs része.

(28)

példa: A következı reláció 3NF-ben van, viszont nincs BCNF-ban:

Postahivatal (Város, UtcaSzám, IrányítóSzám) Egy ország összes postahivatalát tároljuk a fenti relációban, egy városban több postahivatal is lehet. Funkcionális függıségek a relációban:

{Város, UtcaSzám} → IrányítóSzám IrányítóSzám →Város.

Két kulcsa van a Postahivatal relációnak a

{Város, UtcaSzám} és {IrányítóSzám, UtcaSzám}.

(29)

A reláció 2NF-ben van,

− fennáll az IrányítóSzám→Város parciális funkcionális függés,

− de IrányítóSzám része az {IrányítóSzám, UtcaSzám} kulcsnak,

− a 2NF esetén, csak azon parciális függıségek nem megengedettek, ahol a jobb oldal nem prim, viszont a Város prim attribútum, része egy kulcsnak.

A Postahivatal reláció 3NF-ben van, (elsı értelmezés)

− 2NF-ben van és nem tartalmaz nem prim attribútumot,

− ha tartalmaz is tranzitív függıséget, a jobb oldalon a nem prim attribútum feltétel nem állhat fenn.

(30)

A harmadik normál forma második értelmezése:

− IrányítóSzám→Város funkcionális függıség olyan, ahol a bal oldal nem szuperkulcs, viszont a jobb oldal prim attribútum és épp az amit a BCNF ki akar küszöbölni.

A Postahivatal reláció nincs BCNF-ban, felbontjuk két relációra:

P1 (IrányítóSzám, Város)

P2 (IrányítóSzám, UtcaSzám).

Ha a postahivatalokról szóló információkat a P1 és P2 relációkban tároljuk, nem fogjuk ugyanannak a kis városnak a nevét ismételni minden postahivatala esetében, illetve a nagyvárosok ugyanabban a körzetben levı két postahivatala soraiban nem ismételjük a város nevét.

(31)

Referințe

DOCUMENTE SIMILARE

În plus, pentru o mai bun¼ a consolidare a no¸tiunilor, sunt prezentate în cadrul …ec¼ arui capitol ¸ si câte un set de probleme propuse spre rezolvare.. Structura este elaborat¼

Keywords: Electric arc furnace, random differential equation, Ornstein-Uhlenbeck process, Monte Carlo method, polynomial chaos

• Colangiografia transparietohepatică , deşi creşte riscul de angiocolită sau coleperitoneu, poate preciza sediul stenozei, lungimea şi dilatarea bontului biliar

principală şi duoden. În condiţiile în care defluxul biliar egalează refluxul digestivo-biliar, se menţine un echilibru. Unii autori consideră că refluxul

|a| < 1 se aplic˘a criteriul comparat¸iei cu limit˘a. Se compar˘a cu seria armonic˘a. Se compar˘a cu seria armonic˘a. Rezult˘a c˘a seria dat˘a este divergent˘a... R: Se

Cea mai simpl˘a modalitate de a g˘asi o replicare pentru func¸tia de plat˘a având la dispozi¸tie instrumentele prezen- tate în enun¸t este s˘a folosim urm˘atoarea imagine...

Personajele lui Cara giale sunt fără să mai fie în România: sunt, în măsura în care ridicolul lor a năpădit peste tot; nu sunt, în măsura în care tragedia zilnică pune un

In the situation where failures are experienced, the genetic algorithm approach yields information about similar, but different, test cases that reveal faults in the software