DBS Normální formy, normalizace

Podobné dokumenty
Kvalita relačního schématu, normalizace

Normalizace rela ního schématu

NORMALIZACE Část 2 1

Databázové systémy BIK-DBS

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Relační model dat (Codd 1970)

DBS relační DB model, relační algebra

Michal Valenta DBS Databázové modely 2. prosince / 35

Databázové systémy Tomáš Skopal

Databáze. Logický model DB. David Hoksza

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Databázové systémy. Úvod do teorie normalizace. Vilém Vychodil

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze

7. Normální formy. PŘ: POJIŠŤOVNA Povinné ručení relace Platby

Úvod do databázových systémů 10. cvičení

Teorie zpracování dat

DBS Konceptuální modelování

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

DBS Databázové modely

DBS Databázové modely

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

Analýza a modelování dat 3. přednáška. Helena Palovská

Funkční schéma Datové schéma Integrita modelu s realitou

DBS Transformace konceptuálního schématu na

Diagram výskytů a vztahů

Databáze I. Přednáška 3

Úvod do databázových systémů

Různé úrovně pohledu na data

Databázové systémy. Cvičení 3

Databáze I. 4. přednáška. Helena Palovská

UDBS Cvičení 10 Funkční závislosti

Úvod do databázových systémů. Cvičení 12 Ing. Martin Zwierzyna

4IT218 Databáze. 4IT218 Databáze

Transformace konceptuálního modelu na relační

Normální formy. Zdeněk Kouba

Databázové systémy úvod

Databázové modely. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 2

DBS Konceptuální modelování

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Úvod do databázových systémů

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Úvod do informatiky. Miroslav Kolařík

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

11. blok Normalizace. Studijní cíl

Databázové systémy Tomáš Skopal

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Konceptuální modelování. Pavel Tyl

Databázové systémy. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního

Databázové systémy. Cvičení 2

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Konceptuální modelování

DATABÁZOVÝ SYSTÉM Proč databázový systém? Vrstvy modelování Konceptuální datové modelování

Databázové systémy úvod

Databázové systémy úvod

Databázové systémy BIK-DBS

Databáze I. Přednáška 2

Otázka č. 1 (bodů za otázku: 4)

Matematická logika. Miroslav Kolařík

Základní pojmy teorie množin Vektorové prostory

Databázové systémy. Normálové formy + kandidátní klíče. 2.přednáška

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Výroková a predikátová logika - VI

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Konceptuální modelování

Derivace funkce. prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. Katedra matematiky BI-ZMA ZS 2009/2010

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Terminologie v relačním modelu

Výroková a predikátová logika - VII

Střední průmyslová škola Zlín

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

Databáze Bc. Veronika Tomsová

Databáze 2011/2012. Logický model DB. RNDr.David Hoksza, Ph.D.

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

Návrh databázového modelu

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

4. Základy relačních databází, logická úroveň návrhu

Databázové a informační systémy

Výroková logika - opakování

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Fyzické uložení dat a indexy

Hierarchický databázový model

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

Modelový příklad Knihovna Vypracovaný příklad ze cvičení včetně komentářů k řešení

Matematická analýza 1

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Matematická logika. Miroslav Kolařík

Databázové systémy I. 3. přednáška

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Množiny, relace, zobrazení

Lineární algebra : Lineární (ne)závislost

Přednáška 1: Reálná funkce jedné reálné proměnné

Transkript:

DBS Normální formy, normalizace Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2010 BI-DBS, ZS 2010/11 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 1 / 32

Návrh relačního schéatu Existují dva přístupy: 1 normalizační teorie Metoda návrhu pomocí funkčních závislostí. 2 z konceptuálního modelu Metoda použití transformačních pravidel (viz předchozí přednáška). Poznámka: použijeme-li transforaci z konceptuálního modelu, nemáme zaručeno, že výsledné schéma bude normalizované! Samotný konceptuální model totiž nemusí být normalizovaný. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 3 / 32

Kvalita schématu a normalizace Uvažujme relaci: PROGRAM(NAZEV_K, JMENO_F, ADRESA, DATUM) Aktualizační anomálie (Codd) změní-li se adresa kina, je nutné ji měnit víckrát, nehraje-li kino zrovna nic, ztrácíme jeho adresu chceme-li přidat nové kino s adresou, lze to jen když se tam hraje nějaký film. Jak to vyřešíme? Normalizace dekompozicí KINO(NAZEV_K, ADRESA) MA_NA_PROGRAMU(NAZEV_K, JMENO_F, DATUM) MA_NA_PROGRAMU[NAZEV_K] KINO[NAZEV_K] Dekompozicí jsme se zbavili všech aktualizačních anomálií. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 5 / 32

Funkční závislost neformálně Hodnoty některých atributů funkčně závisí na hodnotách jiných atributů. Například: 1 Ke každému kinu existuje nejvýše jedna adresa. 2 Pro každé kino a film existuje nejvýše jedno datum, kdy dané kino má daný film na programu. Což budeme zapisovat: 1 NAZEV_K ADRESA 2 {NAZEV_K,JMENO_F} DATUM A číst: 1 Atribut NAZEV_K (funkčně) určuje atribut ADRESA. nebo: Atribut ADRESA (funkčně) závisí na atributu NAZEV_K. 2 Dvojice (atributů) NAZEV_K,JMENO_F (funkčně) určuje atribut DATUM. nebo: Atribut DATUM (funkčně) závisí na (dvojici atributů) NAZEV_K,JMENO_F. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 7 / 32

Funkční závislosti integritní omezení funkční závislosti (FZ) vyjadřují integrtitní omezení připomínka: integritní omezení (obecně) jsou trvrzení, které určují jaká data v databázi být mohou a jaká ne připomínka: schéma relační databáze je {R(A), I} FZ uvádí do souvislosti prvky z domén příslušných atributů, je to funkce f : A 1 A 2 Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 8 / 32

Kvalita schématu - příklad Mějme databázi s rozvrhem předmětů: Rozvrh (Přednáška,Učitel,Místnost,Hodina,Student, Známka) Necht platí toto (vnitropodnikové) pravidlo (IO1): Každá přednáška je přednášena nejvýše jedním učitelem. Z pohledu DB schématu: K jedné hodnotě z dom(přednáška) se přiřadí nejvýše jedna hodnota z dom(učitel). Předmět Učitel což budeme v dalším výkladu zkracovat: P U Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 9 / 32

Kvalita schématu - příklad Necht ve schématu ROZVRH jsou zakódovány aktualizační anomálie. Nahrad me schéma množinou schémat tak, aby výsledek měl rozumné vlastnosti. výchozí schéma: R(P, U, M, H, S, Z ) (stučněji: PUMHSZ ) možné náhrady: R I = {PU, HMP, HUM, PSZ, HSM} R II = {PU, HSP, PSZ, HSM} R III = {PU, HSM, PSZ, HMP} R IV = {PU, HMP, PSZ, HSP} R V = {HMPU, PSZ, HSM} R VI = {PU, HMP, PSZ } R VII = {PSUHM, PSZ } Které ze schémat R I..R VII je nejlepší? Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 10 / 32

Odhalení funkčních závislostí mezi atributy Odhalení FZ mezi atributy schématu: P U M H S Z Programování Kryl S7 Po9 Novák 2 Programování Kryl S3 Út3 Novák 2 Programování Kryl S7 Po9 Volák 3 Programování Kryl S3 Út3 Volák 3 Systémy Král S4 Po7 Zíka 1 Systémy Král S4 Po7 Tupý 2 Systémy Král S4 Po7 Novák 2 Systémy Král S4 Po7 Bílý 1? platí? U HM! jistě neplatí!, tedy: U HM zřejmě platí: P U, HM P, HU M, HS M? a co toto?: PS Z Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 11 / 32

X-hodnota Mějme schéma R(A), uvažujme X A X-hodnota Jsou-li atributy v X {X 1 : dom(x 1 ),..., X n : dom(x n )}, pak X-hodnotou je libovolný prvek z kartézského součinu dom(x 1 ) dom(x 2 )... dom(x n ). Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 12 / 32

Funkční závislost Mějme schéma R(A). Funkční závislost Mějme množiny atributů B A, C A. Říkáme, že C závisí funkčně na B (nebo B funkčně určuje C), jestliže ke každé B-hodnotě existuje nejvýše jedna C-hodnota. značíme: B C resp.: B C Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 13 / 32

Odvoditelnost FZ Pozorování PS S platí vždy PS S PS Z } PS SZ Z výchozí množiny funkčních závislostí lze pomocí určitých pravidel odvozovat další další FZ Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 14 / 32

Sada korektních odvozovacích pravidel Mějme R(A), necht X A, Y A, Z A. Armstrongova pravidla triviální funkční závislosti jestliže Y X, pak X Y př.: UM U (FZ1) tranzitivita jestliže X Y a Y Z, pak X Z př.: HS HM a HM P, pak také platí HS P kompozice pravé strany jestliže X Y a X Z, pak X YZ dekompozice pravé strany jestliže X YZ, pak X Y a X Z (FZ2) (FZ3) (FZ4) Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 15 / 32

Použití odvozovacích pravidel Mějme vstupní relaci R(M, H, U, P, S, Z ) a sadu funkčních závislostí: F = {P U, HM P, HU M, PS Z, HS M} Odvodíme: Podle (FZ1) platí HM H a HU H. Podle (FZ3) z HU H a HU M odvodíme HU HM. Podle (FZ2) z HM P a P U odvodíme HM U. Podle (FZ3) z HM H a HM U odvodíme HM HU. Vidíme, že HM a HU jsou funkčně ekvivalentní: HM HU Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 16 / 32

Tranzitivní uzávěr, klíč relace Uzávěr množiny atributů X + vzhledem k F Uzávěr množiny atributů X + vzhledem k F je množina všech atributů funkčně závislých na X. Označujeme jej X +. Klíč relace Mějme R(A), necht K A. K je klíčem schématu R(A), jestliže splňuje dvě vlastnosti: 1 K A 2 neexistuje K K taková, že K A. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 17 / 32

Příklad nalezení klíče relace Mějme vstupní relaci R(M, H, U, P, S, Z ) a sadu funkčních závislostí: F = {P U, HM P, HU M, PS Z, HS M} Úkol: najděte alespoň jeden klíč relace R vzhledem k F. P + = {P, U} HM + = {H, M, P, U} HU + = {H, U, M, P} PS + = {P, S, Z, U} HS + = {H, S, M, P, Z, U} Protože H + = {H} a S + = {S}, je HS klíčem relace R. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 18 / 32

Normální formy motivační příklad PROGRAM NÁZEV_K JMÉNO_F ADRESA DATUM Blaník Top gun Václavské nám. 4 29.03.94 Blaník Kmotr Václavské nám. 4 08.03.94 Mír Nováček Starostrašnická 3 10.03.94 Mír Top gun Starostrašnická 3 09.03.94 Mír Kmotr Starostrašnická 3 08.03.94 Integritní omezení: IO1: Klíčem schématu jenázev_k, JMÉNO_F. IO2: Každé kino má právě jednu adresu. Relace obsahuje redundance a mohou nastat aktualizační anomálie. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 20 / 32

Normální formy motivační příklad Intuitivním řešením je dekompozice ADRESÁŘ(NÁZEV_K,ADRESA), PROGRAMY(NÁZEV_K, JMÉNO_F, DATUM) PROGRAMY NÁZEV_K JMÉNO_F DATUM Blaník Top gun 29.03.94 Blaník Kmotr 08.03.94 Mír Nováček 10.03.94 Mír Top gun 09.03.94 Mír Kmotr 08.03.94 ADRESÁŘ NÁZEV_K ADRESA Blaník Václavské nám. 4 Mír Starotrašnická 3 adresa kina je pouze jednou (odstraněna redundance) lze evidovat i kino, kde se (právě) nic nehraje (nehrozí ztráta informace o kinu, když bude stát ) podstata řešení: odstraněna závislost neklíče (adresa) na pouhém podklíči(název_k) Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 21 / 32

Normální formy motivační příklad FILM1 JMÉNO_F HEREC OBČANSTVÍ ROK Černí baroni Landovský CZ 94 Top gun Cruise USA 86 Kmotr Brando USA 72 Nováček Brando USA 90 Vzorec Brando USA 80 Integritní omezení: IO1: Klíčem schématu je JMÉNO_F. IO2: Každý herec má právě jedno občanství Relace obsahuje redundance a mohou nastat aktualizační anomálie. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 22 / 32

Normální formy motivační příklad Intuitivním řešením je dekompozice OSOBNÍ_ÚDAJE(HEREC, OBČANSTVÍ) FILM2(JMÉNO_F, HEREC, ROK) OSOBNÍ_ÚDAJE HEREC OBČANSTVÍ Landovský CZ Cruise USA Brando USA FILM2 JMÉNO_F HEREC ROK Černí baroni Landovský 94 Top gun Cruise 86 Kmotr Brando 72 Nováček Brando 90 Vzorec Brando 80 občanství herce je pouze jednou (odstraněna redundance) lze evidovat i občanství herce, jehož filmy vypadly z db (nehrozí ztráta informace o občanství herce, který stojí ) podstata řešení: odstraněna závislost neklíče (občanství) na jiném neklíči (herec) Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 23 / 32

Normální formy motivační příklad rozbor V obou předchozích příkladech byly neklíčové atributy závislé na klíči. Některé z nich však nepřímo - tranzitivně. V prvním případě šlo o tranzitivitu: V druhém případě šlo o tranzitivitu: klíč podklíč neklíč klíč neklíč neklíč Jsou-li všechny neklíčové atributy závislé na klíči přímo a nikoliv tranzitivně, pak je schéma ve 3NF. Poznámka1: Má-li schéma více klíčů (klíč1 klíč2), nebude nám vadit klíč1 klíč2 neklíč. Poznámka2: Jsou-li všechny atributy schématu součástí nějakého klíče, je schéma ve 3NF. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 24 / 32

Tranzitivní závislost, 3NF Tranzitivní závislost Mějme R(A) Necht X A, Y A a C A, C / X a C / Y. Necht dále X Y C a neplatí, že Y X. Pak říkáme, že C je tranzitivně závislý na X. Třetí normální forma (3NF) Říkáme, že schéma relace R je ve 3. normální formě (3NF), jestliže každý neklíčový atribut schématu R není tranzitivně závislý na žádném klíči schématu. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 25 / 32

BCNF Mějme ROZVRH(MHUP) a platí HU M, HM P, P U Lze odvodit klíče: HU, HM, HP. P rightarrowu je závislost mezi dvěma podklíči. ROZVRH vyhovuje kritériu pro 3NF. Proč?... a přeci je v datech redundance! ROZVRH PREDNASKA UCITEL MISTNOST HODINA Systémy Král S4 Po7 Programování Kryl S7 Po9 Programování Kryl S3 Ut11 Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 26 / 32

BCNF Existuje zde závislost část_ klíče1 část_klíče2. V našem případě: P U. Dekompozice: OBS(P,U) ROZVRH1(HMP) Opět platí, že: zmizela redundance v atributu U neztratí se informace, že Kryl přednáší Programování,když toto vypadne z rozvrhu Řešení spočívá v odstranění závislosti části jednoho klíče na části druhého klíče. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 27 / 32

BCNF BCNF Říkáme, že schéma relace R je v Boyce - Coddově normální formě (BCNF), jestliže pro každou netriviální závislost X Y platí, že X obsahuje klíč schématu R. Poznámky: Každé schéma, které je v BCNF, je také ve 3NF. Obrácené tvrzení obecně neplatí. Má-li ale schéma jediný klíč, nebo jednoduché klíče, potom je-li ve 3NF je také v BCNF. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 28 / 32

BCNF příklad Uvažujme schéma relace: ADRESÁŘ(MĚSTO, ULICE, DUM, PSČ) F: {MĚSTO, ULICE} PSČ, PSČ MĚSTO {MĚSTO,ULICE,DUM} je klíčem ( {PSČ,MĚSTO,ULICE,DUM} ) {PSČ,ULICE,DUM} je klíčem ( {PSČ,MĚSTO,ULICE,DUM} ) Schéma nemá žádný neklíčový atribut a je tedy ve 3NF. Nikoliv však v BCNF. ADRESÁŘ lze nahradit dekompozicí. dekompozice1: A1(PSČ, MĚSTO) B1(PSČ, ULICE, DUM) dekompozice2: A2(MĚSTO,ULICE,PSČ) B2(MĚSTO,ULICE,DUM) Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 29 / 32

Normalizace Eliminaci aktualizačních anomálií zajišt ujeme převedením relačního schématu do 3NF, resp. BCNF. Normalizovat lze pomocí DEKOMPOZICE Původní schéma: R(U, F) Dekomponované schéma: {R i (U i, F i } n i=1, kde n i=1 U i = U Kvalita dekompozice (požadavky): P1: Výsledná schémata by měla mít "stejnou"sémantiku. P2: Nové relace by měly obsahovat "stejná"data, jaká by obsahovala původní relace. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 30 / 32

P1: pokrytí původní množiny funkčních závislostí Cílem bude, aby původní schéma a schémata získaná dekompozicí nějak odrážela stejné závislosti. F + = ( n i=1 F i) + zpět k příkladu: ADRESÁŘ(MĚSTO, ULICE, DUM, PSČ). F: {MĚSTO, ULICE} PSČ, PSČ MĚSTO Dekompozice: SEZNAM_POŠT(PSČ, MĚSTO) POŠTOVNÍ_RAJON(PSČ, ULICE, DUM) Ve schématu SEZNAM_POŠT lze kontrolovat původní funkční závislost PSČ MĚSTO. Původní závislost {MĚSTO, ULICE} PSČ pokryta není. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 31 / 32

P1: pokrytí původní množiny funkčních závislostí FILM1(JMÉNO_F, ROK, HEREC, PŘÍSLUŠNOST) F: HEREC PŘÍSLUŠNOST, JMÉNO_F HEREC, JMÉNO_F PŘÍSLUŠNOST Dekompozice podle HEREC PŘÍSLUŠNOST: OSOBNÍ_ÚDAJE(HEREC, PŘÍSLUŠNOST), HEREC PŘÍSLUŠNOST FILM2(JMÉNO_F, ROK, HEREC), JMÉNO_F HEREC. Závislost JMÉNO_F PŘÍSLUŠNOST je pokryta, protože je odvoditelná ze závislostí, které platí na schématech OSOBNÍ_ÚDAJE a FILM2. Michal Valenta (FIT ČVUT) Normalizace, normální formy BI-DBS, 2010 32 / 32