Priekšnosacījums: Pirmā normālā forma , Otrā parastā forma , Trešā parastā forma
2NF un 3NF vispārīgo definīciju piemērošana var identificēt papildu dublēšanu, ko izraisa atkarības, kas pārkāpj vienu vai vairākas kandidātatslēgas. Tomēr, neskatoties uz šiem papildu ierobežojumiem, joprojām var pastāvēt atkarības, kas izraisīs dublēšanu 3NF attiecībās. Šis 3NF vājums izraisīja spēcīgākas normālās formas prezentāciju, ko sauc uz Boisa-Koda parastā forma (Codd, 1974) .
Lai gan 3NF ir piemērota normālā forma relāciju datu bāzēm, šī (3NF) normālā forma var nenoņemt 100% dublēšanos funkcionālās atkarības X−>Y dēļ, ja X nav dotās relācijas kandidāta atslēga. To var atrisināt, izmantojot Boyce-Codd normālo formu (BCNF).
Boisa-Koda parastā forma (BCNF)
Boisa–Koda parastā forma (BCNF) ir balstīta uz funkcionālām atkarībām, kas ņem vērā visas relācijas kandidāta atslēgas; tomēr, salīdzinot ar vispārējo 3NF definīciju, BCNF ir arī papildu ierobežojumi.
BCNF noteikumi
1. noteikums: Tabulai jābūt 3. parastajā formā.
2. noteikums: X ir jābūt superatslēgai katrai funkcionālajai atkarībai (FD) X−>Y dotajā relācijā.
Piezīme: Lai pārbaudītu, vai relācija ir BCNF, mēs identificējam visus noteicošos faktorus un pārliecināmies, ka tie ir kandidātatslēgas.
BCNF DBVS
Jūs saskārāties ar līdzīgu hierarhiju, kas pazīstama kā Chomsky parastā forma skaitļošanas teorijā. Tagad rūpīgi izpētiet iepriekš minēto hierarhiju. Tā var secināt visas attiecības BCNF ir arī 3NF . Citiem vārdiem sakot, relācijai 3NF nav jābūt BCNF. Kādu laiku apdomājiet šo apgalvojumu.
Lai noteiktu dotās attiecības R augstāko normālo formu ar funkcionālajām atkarībām, pirmais solis ir pārbaudīt, vai BCNF nosacījums ir spēkā. Ja tiek konstatēts, ka R atrodas BCNF, var droši secināt, ka arī saistība ir iekšā 3NF , 2NF, un 1NF kā liecina hierarhija. 1NF ir vismazāk ierobežojošs ierobežojums - tas prasa tikai relāciju R, lai katrā kortežā būtu atomu vērtības. 2NF ir nedaudz stingrāki ierobežojumi.
3NF ierobežojums ir stingrāks nekā pirmajām divām parastajām formām, taču tas ir mazāk ierobežojošs nekā BCNF. Tādā veidā ierobežojums palielinās, ejot lejup pa hierarhiju.
Piemēri
Šeit mēs apspriedīsim dažus pamata piemērus, kas ļauj izprast BCNF īpašības. Šeit mēs apspriedīsim vairākus piemērus.
1. piemērs
Apskatīsim studentu datubāzi, kurā ir minēti studenta dati.
Šis_ID | This_Branch | Stu_Kurss | Filiāle_numurs | Stu_Kursa_Nr |
---|---|---|---|---|
101 | Datorzinātne un inženierzinātnes | DBVS | B_001 | 201 |
101 | Datorzinātne un inženierzinātnes | Datoru tīkli | B_001 | 202 |
102 | Elektronika un komunikācijas inženierija | VLSI tehnoloģija | B_003 | 401 |
102 | Elektronika un komunikācijas inženierija | Mobilā komunikācija | B_003 | 402 |
Iepriekš minētā funkcionālā atkarība ir tāda, kā minēts:
Stu_ID −>Stu_Branch Stu_Course −> {Branch_Number, Stu_Course_No}>
Iepriekš minētās tabulas kandidātu atslēgas ir: {Šis_ID, Šis_kurss}
Kāpēc šī tabula nav BCNF?
Iepriekš esošā tabula nav BCNF, jo, kā redzam, ne Stu_ID, ne Stu_Course nav Super Key. Tā kā iepriekš minētie noteikumi skaidri norāda, ka, lai tabula atrastos BCNF, tai ir jāievēro rekvizīts, ka funkcionālajai atkarībai X−>Y, X ir jābūt Super Key un šeit šis īpašums neizdodas, tāpēc šī tabula nav BCNF. .
Kā apmierināt BCNF?
Lai apmierinātu šo tabulu BCNF, mums tā ir jāsadala tālākās tabulās. Šeit ir visa procedūra, ar kuras palīdzību mēs pārveidojam šo tabulu par BCNF. Vispirms sadalīsim šo galveno tabulu divās tabulās This_Branch un Stu_Kurss Tabula.
Stu_zaru tabula
Šis_ID | This_Branch |
---|---|
101 | Datorzinātne un inženierzinātnes |
102 | Elektronika un komunikācijas inženierija |
Kandidāta atslēga šai tabulai: Šis_ID .
powershell mazāks par vai vienāds ar
Stu_Kursu tabula
Stu_Kurss | Filiāle_numurs | Stu_Kursa_Nr |
---|---|---|
DBVS | B_001 | 201 |
Datoru tīkli | B_001 | 202 |
VLSI tehnoloģija | B_003 | 401 |
Mobilā komunikācija | B_003 | 402 |
Kandidāta atslēga šai tabulai: Stu_Kurss .
Stu_ID uz Stu_Course_No Table
Šis_ID | Stu_Kursa_Nr |
---|---|
101 | 201 |
101 | 202 |
102 | 401 |
102 | 402 |
Kandidāta atslēga šai tabulai: {Stu_ID, Stu_Course_No}.
Pēc sadalīšanas tālākās tabulās, tagad BCNF, jo tas iztur Super Key nosacījumu, funkcionālajā atkarībā X−>Y X ir Super atslēga.
2. piemērs
Atrodiet relācijas R(A, B, C, D, E) augstāko normālo formu ar FD, kas iestatīta kā:
{ BC->D, AC->BE, B->E }>
Paskaidrojums:
- 1. darbība: Kā redzam, (AC)+ ={A, C, B, E, D}, bet neviena no tās apakškopām nevar noteikt visus relācijas atribūtus, tāpēc AC būs kandidāta atslēga. A vai C nevar atvasināt no neviena cita relācijas atribūta, tāpēc būs tikai viena kandidāta atslēga {AC}.
- 2. darbība: Galvenie atribūti ir tie atribūti, kas ir daļa no kandidātatslēgas {A, C} šajā piemērā, un citi šajā piemērā nav primārie {B, D, E}.
- 3. darbība: Relācija R ir pirmajā normālā formā, jo relāciju DBVS nepieļauj daudzvērtīgus vai saliktus atribūtus.
Attiecība ir 2. normālā formā, jo BC->D ir 2. normālajā formā (BC nav pareiza kandidātatslēgas AC apakškopa) un AC->BE ir 2. normālajā formā (AC ir kandidāta atslēga) un B->E ir 2. parastajā formā (B nav pareiza kandidāta atslēgas AC apakškopa).
Attiecība ir nē 3. normālā formā, jo BC->D (ne BC nav superatslēga, ne D nav galvenais atribūts) un B->E (ne B nav superatslēga, ne E nav galvenais atribūts), bet lai apmierinātu 3. normālu , vai nu FD LHS ir jābūt superatslēgai, vai arī RHS ir jābūt galvenajam atribūtam. Tātad augstākā normālā attiecības forma būs 2. Normālā forma.
Piezīme: Galvenais atribūts nevar būt pārejoši atkarīgs no atslēgas BCNF relācijā.
Apsveriet šīs kādas attiecības R funkcionālās atkarības
AB ->C C ->B AB ->B>>Pieņemsim, ka ir zināms, ka R vienīgā kandidāta atslēga ir AB. Nepieciešams rūpīgs novērojums, lai secinātu, ka iepriekš minētā atkarība ir pārejoša atkarība, jo galvenais atribūts B ir pārejoši atkarīgs no atslēgas AB līdz C. Tagad pirmais un trešais FD ir BCNF, jo tie abi satur kandidāta atslēgu (vai vienkārši KEY) to kreisajā pusē. Tomēr otrā atkarība nav BCNF, bet noteikti ir 3NF, jo labajā pusē ir galvenais atribūts. Tātad R augstākā normālā forma ir 3NF, jo visi trīs FD atbilst nepieciešamajiem nosacījumiem, lai atrastos 3NF.
3. piemērs
Piemēram, apsveriet attiecību R(A, B, C)
X Y, Z -> X W -> Y>> Tas neapmierinātu atkarību, saglabājot BCNF sadalīšanos.
Piezīme: Dažkārt BCNF attiecībās joprojām pastāv atlaišanas gadījumi, jo ne vienmēr ir iespējams tās pilnībā novērst.
Ir arī dažas augstākas kārtas normālās formas, piemēram, 4. parastā forma un 5. parastā forma.
Lai uzzinātu vairāk, skatiet 4. un 5. parasto veidlapu .