
- •Історія розвитку баз даних
- •2.Перспективи розвитку систем управління базами даних.
- •Перспективи розвитку систем управління базами даних
- •Основні поняття та визначення бд
- •Архітектура бази даних. Фізична та логічна незалежність
- •5. Поняття інформаційно-логічної моделі
- •Етапи життєвого циклу бази даних
- •Основні функції субд
- •Типова організація сучасної субд
- •Класифікація моделей даних
- •11.Ієрархічна модель даних.
- •12.Моделі засновані на інвертованих списках.
- •13.Реляційні бази даних.
- •14.Основні оператори реляційної алгебри.
- •15. Основні елементи er-моделі
- •16. Основні етапи побудови логічної моделі
- •17. Таблиці, унікальність і ключі
- •18. Зовнішні ключі і домени
- •19. Моделювання відносин у базі даних
- •1. Цілісність сутностей
- •2. Цілісність значень
- •21. Перша нормальна форма
- •22. Друга нормальна форма
- •23. Третя нормальна форма
- •Четверта нормальна форма
- •Нормальна форма Бойса-Кодда (нфбк)
- •П’ята нормальна форма
- •Кодування та набори сортування в sql
- •Тема 3. Створення таблиць
- •1. Команда створення таблиці.
- •2. Заборона значення null за допомогою обмеження not null
- •Властивість identity оператора create table
- •Обмеження primary key оператора create table
- •Обмеження foreign key оператора create table
- •Обмеження unique оператора create table
- •Обмеження check оператора create table
- •Обмеження default оператора create table
- •Типи стовпців в sql
- •37.Визначення таблиці за допомогою директиви from
- •Вказівка стовпців в операторі select
- •Вибір рядків і стовпців за допомогою директиви where
- •Використання директиви order by
- •Використання ключового слова distinct для вибірки унікальних значень стовпця
- •42.Використання арифметичних операторів в запиті на вибірку даних
- •43.Використання директиви group by
- •44.Об'єднання результатів запиту за допомогою директиви union
- •45.Використання строкових функцій
- •46.Використання числових функцій
- •47.Додавання даних до таблиці за допомогою оператора insert
- •48.Використання та синтаксис оператора replace
- •49.Використання оператора update
- •50.Видалення даних в sql
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НФ не співпадає з НФБК лише тоді, коли одночасно виконуються наступні умови:
відношення має два або більшу кількість потенційних ключів;
ці потенційні ключі складені, тобто містять більш ніж один атрибут;
ці потенційні ключі перекриваються, тобто мають по крайній мірі один спільний атрибут.
У всіх інших випадках 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