Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50.docx
Скачиваний:
0
Добавлен:
27.12.2019
Размер:
652.5 Кб
Скачать

23. Третя нормальна форма

Відношення в 2НФ в меншій степені характеризується надлишковістю даних ніж відношення в 1НФ, проте і вони вразливі до аномалій оновлення. Такі аномалії викликані транзитивною залежністю, поняття якої лежить в основі 3НФ.

Якщо для атрибутів А, В, С відношення R існують функціональні залежності А→В, В→С і при цьому А функціонально не залежить ні від В, ні від С, то кажуть, що атрибут С транзитивно залежить від атрибуту А через В:

А→В→С.

Відношення знаходиться в 3НФ якщо воно 1) знаходиться в 2НФ; 2) не містить транзитивних залежностей, тобто не має атрибутів, які не входять до первинного ключа і які знаходяться в транзитивній залежності цього первинного ключа.

Нормалізація відношень з 2НФ до 3НФ полягає в усуненні транзитивних залежностей, тобто якщо відношення має транзитивну залежність між якимись атрибутами, то транзитивно-залежні атрибути вилучаються із цього відношення і переносяться до нового відношення разом з копією їх детермінанта. Ця декомпозиція виконується за допомогою двох операцій проекції для кожної транзитивної залежності: 1) на транзитивно-залежні атрибути та їх детермінант; 2) без транзитивно-залежних атрибутів.

Четверта нормальна форма

Правило 4НФ вимагає, щоб таблиця не містила полів для двох або більше незалежних фактів.

Нормальна форма Бойса-Кодда (нфбк)

2НФ і 3НФ використовували лише один первинний ключ. При нормалізації до НФБК використовуються всі потенційні ключі. Саме тому і потрібно вміти їх виявляти.

Відношення знаходиться в НФБК тоді і лише тоді, коли детермінант кожної значущої функціональної залежності є потенційним ключем. Термін “значуща” означає, що немає самовизначень (А→А) і детермінант кожної функціональної залежності неприводима сукупність атрибутів і це мінімальна сукупність атрибутів.

Якщо це правило не виконується для відношення, то для того, щоб привести його до НФБК, необхідно розділити його на два відношення, шляхом двох операцій проекції для кожної функціональної залежності, детермінант якої не є потенційним ключем, а саме: 1) проекція без атрибутів залежної частини такої функціональної залежності; 2) проекція на атрибути такої функціональної залежності, тобто на детермінант, який стає ключем нового відношення і залежну частину. Визначення НФБК не потребує ніяких умов попередніх нормальних форм.

Якщо нормалізацію проводити послідовно 1НФ→2НФ→3НФ→НФБК, то в переважній більшості випадків при досягненні 3НФ автоматично буде досягатися НФБК.

1НФ + простий ключ  2НФ

2НФ + єдиний неключовий атрибут  3НФ

3НФ не співпадає з НФБК лише тоді, коли одночасно виконуються наступні умови:

  1. відношення має два або більшу кількість потенційних ключів;

  2. ці потенційні ключі складені, тобто містять більш ніж один атрибут;

  3. ці потенційні ключі перекриваються, тобто мають по крайній мірі один спільний атрибут.

У всіх інших випадках 3НФ приводить до НФБК.

П’ята нормальна форма

Правило 5НФ вимагає, щоб можна було завжди відновлювати початкові (вихідні) дані, які були знищені по причині їх надлишковості.

Для повної перевірки БД на відповідність вимогам 5НФ необхідні хороші навики проектування запитів, які повинні з’єднювати таблиці та виводити читабельні дані. Останні слід порівняти з вихідними (початковими) даними.

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

26. Синтаксис оператора CREATE DATABASE

CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET charset] [COLLATE collation];

db_name

- Имя, которое будет присвоено создаваемой базе данных.

IF NOT EXISTS

- Если не указать этот параметр, то при попытке создания базы данных с уже существующим именем, возникнет ошибка выполнения команды.

CHARACTER SET, COLLATE

- Используется для задания стандартной кодировки таблицы и порядка сортировки.

Если при создании таблицы эти параметры не указываются, то кодировка и порядок сортировки вновь создаваемой таблицы берутся из значений, указанных для всей базы данных. Если задан параметр CHARACTER SET, но не задан параметр COLLATE, то используется стандартный порядок сортировки. Если задан параметр COLLATE, но не задан CHARACTER SET, то кодировку определяет первая часть имени порядка сортировки в COLLATE.

Кодировка, заданная в CHARACTER SET, должна поддерживаться сервером (latin1 или sjis), а порядок сортировки должен быть допустимым для текущей кодировки.

Примеры использования CREATE DATABASE

Следущий пример создает базу данных "my_db":

1

CREATE DATABASE `my_db`

или

1

CREATE DATABASE `my_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить оператор SHOW CREATE DATABASE

mysql> SHOW CREATE DATABASE `test`;

+----------+-----------------------------------------------------------------+

| Database | Create Database |

+----------+-----------------------------------------------------------------+

| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+-----------------------------------------------------------------+

1 row in set (0.02 sec)

При создании новой базы данных в MySQL следует придерживаться некоторых правил относительно имени базы данных:

  • Максимальная длина имени не должна превышать 64 символов.

  • Разрешены любые символы, которые допускаются в имени каталога, за исключением / (слеш) и . (точка). Но следует принять во внимание, что нельзя использовать символы ASCII(0) и ASCII(255).

27. Кодування та набори сортування в SQL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]