
- •2.3 Базы данных [5-7] тебеньков е.С.
- •1 .Проектирование базы данных с помощью нормализации
- •2. Операция «соединения» и ее свойства.
- •3. Разложение без потерь. Теорема. Примеры
- •4. Полностью соединимые отношения. Примеры
- •5. Операторы описания данных в sql
- •6. Операторы манипулирования данными в sql
- •7. Управление транзакциями
- •1. Запуск транзакции
- •2. Завершение транзакции
- •8. Технологии «клиент-сервер»
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •9. Оператор Select
- •10. Индексация. Достоинства и недостатки. Примеры
2.3 Базы данных [5-7] тебеньков е.С.
1. Проектирование базы данных с помощью нормализации.
2. Операция «соединение» и ее свойства.
3. Разложение без потерь. Теорема. Примеры.
4. Полностью соединимые отношения. Примеры.
5. Операторы описания данных в SQL.
6. Операторы манипулирования данными в SQL.
7. Управление транзакциями.
8. Технологии «клиент-сервер».
9. Оператор select.
10. Индексация. Достоинства и недостатки. Примеры.
11. В-дерево. Добавление и удаление элементов.
12. Методы прямого доступа.
13. Архитектуры БД.
14. Управление правами доступа в SQL.
15. Модель Чена.
16. Примеры бинарных связей.
17. Правила Джексона для перехода от модели Чена к реляционной модели.
18. Реляционная модель данных. 12 правил Кодда.
19. Ограничения целостности в реляционной модели данных и их поддержка в SQL.
20. Восстановление данных в БД.
1 .Проектирование базы данных с помощью нормализации
Проектирование состоит в разложении таблиц на элементарные таблицы, так чтобы не возникали аномалии технологических операций. Таблицы, отвечающие условиям отсутствия аномалий технологических операций, называются нормальными формами (Н.Ф.).
Таблица находится в первой нормальной форме (1Н.Ф.), если все ее атрибуты атомарные.
Таблица находится во второй нормальной форме (2Н.Ф.), если она находится в 1Н.Ф. и все не ключевые атрибуты функционально полно зависят от ключа.
Таблица находится в третьей нормальной форме (3Н.Ф.), если она находится во 2Н.Ф. и устранены транзитивные зависимости внутри таблицы.
Т
аблица
находится в нормальной форме Бойса-Кодда
(Н.Ф.Б.К.), если она находится во второй
нормальной форме и каждая детерминанта
функциональной зависимости является
возможным ключом (
, где
является детерминантом).
Таблица находится а четвертой нормальной форме (4Н.Ф.), если она находится в третьей нормальной форме и в ней поддерживаются все возможные многозначные функциональные зависимости.
Таблица находится в пятой нормальной форме (5Н.Ф.), если она разложима без потерь.
Проектирование реляционной базы данных начинается с универсального отношения. Универсальное отношение – это одна таблица, которая содержит все атрибуты, используемые в нашей системе. Например, универсальное отношение для базы Поставщик- Деталь-Поставка имеет вид:
фамилия |
статус |
Город пос- тавщика |
Название детали |
вес |
цвет |
Город детали |
количество |
Иванов |
70 |
Пермь |
гайка |
12 |
красный |
Пермь |
100 |
|
|
|
болт |
13 |
синий |
Кунгур |
200 |
... |
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
Проектирование сводится к постепенному переводу универсального отношения к пятой нормальной форме.
Данная таблица не находится в первой нормальной форме, если сдублировать данные, то перейдем к первой нормальной форме, но тогда сохранятся аномалии технологических операций вставки, удаления, изменения.
Чтобы прейти ко второй нормальной форме нужно разбить данную таблицу на таблицы, так чтобы это было разложение без потерь. Для этого разобьем таблицу на две, первая будет содержать поля - фамилия поставщика (ключ), статус, город поставщика, вторая таблица будет содержать поля – фамилия поставщика, название детали, вес, цвет, город детали, количество, причем фамилия +название детали=ключ.
После данного разбиения первая таблица будет находится не только во второй нормальной форме, но и в третьей. А во второй таблице сохранятся аномалии технологических операций, т.е. вторую таблицу необходимо еще разбить на две: таблица 2.1 с полями - название детали, вес, цвет, город детали; таблица 2.2 с полями - фамилия поставщика, название детали, количество(эти две таблицы находятся в 3Н.Ф.).
Первая нормальная форма:
- запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию);
- запрещает множественные столбцы (содержащие значения типа списка и т.п.);
- требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку.
Вторая нормальная форма требует, чтобы неключевые столбцы таблиц зависили от первичного ключа в целом, но не от его части.
Чтобы таблица находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других неключевых столбцов, а зависели только от первичного ключа. Самая распространенная ситуация в данном контексте –
это расчетные столбцы, значения которых можно получить путем каких-либо
манипуляций с другими столбцами таблицы. Для приведения таблицы в третью
нормальную форму такие столбцы из таблиц надо удалить.
Таблица находится в первой нормальной форме (1Н.Ф.), если все ее атрибуты атомарные.
Таблица находится во второй нормальной форме (2Н.Ф.), если она находится в 1Н.Ф. и все не ключевые атрибуты функционально полно зависят от ключа.
Таблица находится в третьей нормальной форме (3Н.Ф.), если она находится во 2Н.Ф. и устранены транзитивные зависимости внутри таблицы.
Т аблица находится в нормальной форме Бойса-Кодда (Н.Ф.Б.К.), если она находится во второй нормальной форме и каждая детерминанта функциональной зависимости является возможным ключом ( , где является детерминантом).
Таблица находится а четвертой нормальной форме (4Н.Ф.), если она находится в третьей нормальной форме и в ней поддерживаются все возможные многозначные функциональные зависимости.
Таблица находится в пятой нормальной форме (5Н.Ф.), если она разложима без потерь.
Метод начинается с универсального отношения и основан на постепенном переходе к пятой нормальной форме.
Пример:
Фамилия автора |
произведение |
Пушкин |
Евгений Онегин, Капитанская дочка, ... |
Лермонтов |
Герой нашего времени, Кавказский пленник, ... |
В этой таблице атрибут Произведение является повторяющейся группой, таблица не является нормализованной. Для перехода к первой нормальной форме дублируем:
-
автор
произведение
Пушкин
Евгений Онегин
Пушкин
Капитанская дочка
Пушкин
...
Лермонтов
Герой нашего времени
Лермонтов
Кавказский пленник
Лермонтов
...
Таблица находится в первой нормальной форме, является реляционной таблицей.
Пример:
r( поставщик, статус, город поставщика, деталь, количество) – это универсальное отношение. Установим функциональные зависимости:
поставщик +деталь = первичный ключ;
П
+Д
С (от поставщика и детали зависит
статус);
П +Д Г (город);
П +Д К (количество);
Г С;
П С;
П Г.
Получаем ситуацию, когда некоторые атрибуты полностью зависят от комбинации П+Д, а некоторые атрибуты зависят только от П, т.е. присутствует неполная функциональная зависимость, а также присутствуют аномалии добавления, удаления, изменения. Разобьем таблицу на 2, так чтобы сохранились функциональные зависимости:
Т1(Поставщик, Статус, Город), Т2(Поставщик, Деталь, количество). Данные 2 находятся во второй нормальной форме. Установим функциональные зависимости для Т1:
П С;
П Г;
Г С.
П
С это транзитивная зависимость.
Г
В таблице Т1 сохраняются аномалии технологических операций: при удалении поставщика теряется зависимость Город Статус, не можем добавить нового поставщика пока не знаем статуса города. Следовательно необходимо таблицу Т1 разбить еще на 2: Т11(П,Г) и Т12(Г,С).
Таблицы Т11, Т12, Т2 представляют нашу базу в третьей нормальной форме.
Пример:
Т(№служащего, фамилия, №проекта, название работы).
Предположим, что в таблице нет однофамильцев, тогда ключом является либо №служащего+№проекта, либо фамилия+№проекта,
тогда
№служащего фамилия. Приведем таблицу
в Н.Ф.Б.К., для этого разложим таблицу на
две: Т1(№служащего,
фамилия), Т2(№служащего,
№проекта,
Название работы).
Пример:
Т(№детали,№проекта,№поставщика).
№ проекта+№детали №поставщика;
№ поставщика №проекта. Следовательно нужно разбить еще на 2:
Т1(№детали, №поставщика) и Т2(№поставщика,№проекта).
Чтобы перевести таблицу в 4Н.Ф. нужно многозначную Ф.З. выделить в отдельную таблицу, в 5Н.Ф. все таблицы должны соединяться без потерь.