სხვაობა 3NF-სა და BCNF-ს შორის

სხვაობა 3NF-სა და BCNF-ს შორის
სხვაობა 3NF-სა და BCNF-ს შორის

ვიდეო: სხვაობა 3NF-სა და BCNF-ს შორის

ვიდეო: სხვაობა 3NF-სა და BCNF-ს შორის
ვიდეო: SSD vs HDD – Which is Best for You? 2024, ივლისი
Anonim

3NF vs BCNF

ნორმალიზაცია არის პროცესი, რომელიც ხორციელდება ზედმეტობების მინიმიზაციის მიზნით, რომლებიც წარმოდგენილია მონაცემთა ბაზებში. ეს პროცესი ძირითადად დაყოფს დიდ ცხრილებს პატარა ცხრილებად ნაკლები ჭარბი რაოდენობით. ეს პატარა ცხრილები ერთმანეთთან იქნება დაკავშირებული კარგად განსაზღვრული ურთიერთობებით. კარგად ნორმალიზებულ მონაცემთა ბაზაში, მონაცემების ნებისმიერი ცვლილება ან ცვლილება მოითხოვს მხოლოდ ერთი ცხრილის შეცვლას. მესამე ნორმალური ფორმა (3NF) დაინერგა 1971 წელს ედგარ ფ. კოდმა, რომელიც ასევე არის რელაციური მოდელისა და ნორმალიზაციის კონცეფციის გამომგონებელი. ბოის-კოდის ნორმალური ფორმა (BCNF) შემოიღეს 1974 წელს კოდმა და რეიმონდ ფ.ბოისი.

რა არის 3NF?

3NF არის მესამე ნორმალური ფორმა, რომელიც გამოიყენება მონაცემთა ბაზის ნორმალიზებაში. Codd-ის განმარტების თანახმად, ცხრილი არის 3NF, თუ და მხოლოდ იმ შემთხვევაში, თუ ეს ცხრილი არის მეორე ნორმალური ფორმით (2NF), და ცხრილის ყველა ატრიბუტი, რომელიც არ ეკუთვნის კანდიდატის გასაღებს, პირდაპირ უნდა იყოს დამოკიდებული. ამ ცხრილის ყველა კანდიდატის გასაღები. 1982 წელს კარლო ზანიოლომ შექმნა 3NF-ის განსხვავებულად გამოხატული განმარტება. ცხრილები, რომლებიც შეესაბამება 3NF-ს, ჩვეულებრივ არ შეიცავს ანომალიებს, რომლებიც წარმოიქმნება ცხრილში ჩანაწერების ჩასმის, წაშლის ან განახლებისას.

რა არის BCNF?

BCNF (ასევე ცნობილი როგორც 3.5NF) არის კიდევ ერთი ნორმალური ფორმა, რომელიც გამოიყენება მონაცემთა ბაზის ნორმალიზებაში. იგი დაინერგა ზოგიერთი ანომალიის დასაფიქსირებლად, რომლებიც არ არის განხილული 3NF-ის მიერ. ამბობენ, რომ ცხრილი არის BCNF-ში, თუ და მხოლოდ იმ შემთხვევაში, თუ A → B ფორმის თითოეული დამოკიდებულებისთვის, რომლებიც არატრივიალურია, A არის სუპერ გასაღები. ცხრილის დაშლა, რომელიც არ არის BCNF-ის ნორმალურ ფორმაში, არ იძლევა გარანტიას ცხრილების BCNF ფორმაში წარმოების გარანტიას (ერთადაც შეინარჩუნებს დამოკიდებულებებს, რომლებიც იყო თავდაპირველ ცხრილში).

რა განსხვავებაა 3NF-სა და BCNF-ს შორის?

როგორც 3NF, ასევე BCNF არის ნორმალური ფორმები, რომლებიც გამოიყენება რელაციურ მონაცემთა ბაზებში, რათა მინიმუმამდე დაიყვანონ ჭარბი რაოდენობა ცხრილებში. ცხრილში, რომელიც არის BCNF ნორმალურ ფორმაში, A → B ფორმის ყველა არატრივიალური ფუნქციონალური დამოკიდებულებისთვის, A არის სუპერ გასაღები, ხოლო ცხრილი, რომელიც შეესაბამება 3NF-ს, უნდა იყოს 2NF-ში და ყველა არა-პირველი ატრიბუტი პირდაპირ უნდა იყოს დამოკიდებული ამ ცხრილის ყველა კანდიდატის გასაღებზე. BCNF განიხილება, როგორც უფრო ძლიერ ნორმალურ ფორმად, ვიდრე 3NF და ის შემუშავებულია ზოგიერთი ანომალიის დასაფიქსირებლად, რომელთა დაფიქსირებაც შეუძლებელია 3NF-ით. ცხრილის მიღება, რომელიც შეესაბამება BCNF ფორმას, საჭიროებს ცხრილის დაშლას, რომელიც არის 3NF-ში. ეს დაშლა გამოიწვევს დამატებით შეერთების ოპერაციებს (ან დეკარტის პროდუქტებს) მოთხოვნების შესრულებისას. ეს გაზრდის გამოთვლის დროს. მეორეს მხრივ, ცხრილებს, რომლებიც შეესაბამება BCNF-ს, ნაკლები ჭარბი რაოდენობა ექნება, ვიდრე ცხრილები, რომლებიც შეესაბამება მხოლოდ 3NF-ს. გარდა ამისა, უმეტეს შემთხვევაში, შესაძლებელია მიიღოთ ცხრილი, რომელიც შეესაბამება 3NF-ს, დამოკიდებულების შენარჩუნებისა და უდანაკარგო შეერთების შეფერხების გარეშე.მაგრამ ეს ყოველთვის არ არის შესაძლებელი BCNF-ით.

გირჩევთ: