Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 2184|Відповідь: 0

[Зв'язок] Реляційне проєктування баз даних: популярне розуміння трьох парадигм

[Копіювати посилання]
Опубліковано 21.03.2024 10:53:13 | | | |
Під час співбесіди деякі інтерв'юери запитують про парадигму баз даних, я раніше вивчав бази даних у коледжі, але не чув про цю парадигму, або викладач згадував про неї, і я не звертав уваги?

Наразі в реляційних базах даних існує шість парадигм: перша парадигма (1NF), друга парадигма (2NF), третя парадигма (3NF), парадигма Бас-Код (BCNF), четверта парадигма (4NF) і п'ята парадигма (5NF, також відома як ідеальна парадигма).

Зазвичай ми використовуємо першу парадигму (1NF), другу парадигму (2NF) і третю парадигму (3NF), яка є «трьома парадигмами», які слід обговорити в цій статті.

Перша парадигма (1NF): вимагає, щоб кожен стовпець таблиці бази даних був неподільним атомарним елементом даних.

Ілюстрації:



У таблиці вище ні стовпці «Сімейна інформація», ні «Шкільна інформація» не відповідають вимогам атомичності, тому вони не відповідають першій парадигмі і коригуються наступним чином:



Видно, що кожен коригований стовпець є неподільним, тому він задовольняє першу парадигму (1NF);

Парадигма 2 (2NF): На основі 1NF атрибути, що не належать до коду, мають повністю залежати від кандидатних кодів (усунути часткову залежність непервинних атрибутів від головного коду на основі 1NF)

Друга парадигма має гарантувати, що кожен стовпець у таблиці бази даних пов'язаний із первинним ключем, а не лише частиною первинного ключа (переважно для федеративних первинних ключів).

Ілюстрації:



У випадку, показаному на наведеній вище діаграмі, один і той самий порядок може містити різні добутки, тому первинним ключем має бути комбінація «номер замовлення» та «номер продукту».

Однак можна з'ясувати, що кількість продукту, знижка на товар і ціна пов'язані з «номером замовлення» та «номером товару», а сама кількість замовлення та час виконання пов'язані лише з «номером замовлення» і не мають нічого спільного з «номером продукту».

Це не відповідає вимогам другої парадигми і коригується таким чином, яку потрібно поділити на дві таблиці:



Третя парадигма (3NF): На основі 2NF будь-який неосновний атрибут не залежить від інших неосновних атрибутів (усуваючи залежності передачі на основі 2NF)

Третя парадигма має гарантувати, що кожен стовпець даних у таблиці даних безпосередньо пов'язаний із первинним ключем, а не опосередковано.

Ілюстрації:



У наведеній вище таблиці всі атрибути повністю залежать від кількості учнів, тому друга парадигма виконується, але «стать класного керівника» та «вік класного керівника» безпосередньо залежать від «імені класного керівника».

Замість основного ключа «номер учня» необхідно внести такі коригування:



Таким чином виконуються вимоги третьої парадигми.

ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。

BCNF (Парадигма нормальної форми Бахуса Бовче Кодда)

Третя парадигма корекції полягає в тому, щоб запобігти залежності одного стовпця первинного ключа від інших стовпців первинного ключа. Коли 3NF усуває деякі залежності функцій і залежності від основного атрибутного коду, це називається BCNF.

Ознака:

1. Всі основні атрибути є повністю функціональними залежностями кожного коду

2. Всі основні атрибути повністю залежать від функцій від кожного коду, який їх не містить

3. Не існує атрибутів, які були б повністю функціональними та залежали від будь-якого набору властивостей, не пов'язаних із кодом

Наприклад, у таблиці запасів (ім'я складу, ім'я адміністратора, ім'я товару, кількість) первинний ключ — (ім'я складу, ім'я адміністратора, ім'я товару), що задовольняє попередні три парадигми, але існує залежність між ім'ям складу та ім'ям адміністратора, тому видалення складу призведе до видалення адміністратора, тому BCNF не задовольняється.

4NF Четверта парадигма

Непервинні атрибути не повинні мати кілька значень. Якщо існує багатозначна, це порушує четверту парадигму. 4NF — це рестриктивний реляційний патерн, який не допускає нетривіальних і нефункціонально залежних багатозначних залежностей між властивостями.

Наприклад, таблиця контактної інформації користувача (ідентифікатор користувача, стаціонарний телефон, мобільний телефон), де первинним ключем є ідентифікатор користувача, що задовольняє BCNF, але користувач може мати кілька стаціонарних або мобільних телефонів, тоді цей дизайн є необґрунтованим і має бути змінений на (user ID, тип контакту, номер телефону).

Примітка: Якщо враховувати лише залежності функцій, парадигма з найвищим ступенем нормалізації реляційних патернів — це BCNF. Якщо враховувати багатозначні залежності, це 4NF.

5NF П'ята парадигма

П'ята парадигма — це фінальна парадигма, яка усуває залежність від зв'язків у 4NF, і п'ята парадигма повинна відповідати наступним вимогам:

1. Четверта парадигма має бути виконана

2. Таблиці мають розкладатися на менші, якщо ці таблиці логічно не мають той самий первинний ключ, що й оригінальна таблиця.

У загальних практичних застосуваннях п'яту парадигму не потрібно враховувати.

Переведено з:Вхід за гіперпосиланням видно.
Посилання:Вхід за гіперпосиланням видно.





Попередній:Alibaba Cloud замінює приватну мережу (віртуальний комутатор), мережа недоступна
Наступний:Запустіть додаток Guardian ASP.NET Core з PM2
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com