- •Основы баз данных. Введение.
- •БзХранятся не только данные, но и знания о применении этих данных. Реализуются они в виде процедур и алгоритмов. Выборки обрабатывают данные.
- •История БнД.
- •Проблемы бд:
- •Состав БнД.
- •Процесс проектирования базы данных.
- •Er-модель (модель Чена).
- •Основные понятия:
- •Виды связи
- •Рекурсивные связи
- •Представление связей более высокого порядка (не бинарных).
- •Избыточное дублирование.
- •Реляционная модель данных.
- •12 Правил Кодда, которым должна удовлетворять реляционная база данных.
- •Операции над данными.
- •Реляционная алгебра.
- •Свойства реляционных операций.
- •Понятие функциональной зависимости (ф.З).
- •Запись запросов на языке реляционной алгебры.
- •Проектирование реляционной базы данных.
- •Методы проектирования.
- •7 Правил Джексона.
- •Язык доступа к данным, основанный на исчислении с переменными кортежами.
- •Атрибуты, используемые для описания таблиц.
- •Обработка ссылочной целостности.
- •Операторы манипулирования данными.
- •Как задается условие?
- •Запросы, которые реализуются на основе соединения.
- •Подзапрос.
- •Использование квантора exists для поиска пересечения и разности.
- •Квантор общности моделирующий операцию деления.
- •Соответствия между операциями реляционной алгебры и sql.
- •Технологии клиент-сервер.
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •Внутренняя модель данных.
- •B-дерево.
- •Язык query by example (qbe)
- •Операции выборки в отношениях, имеющих древовидную структуру
- •Операции запоминания
- •Библиотечные функции
Проектирование реляционной базы данных.
Проектирование состоит в разложении таблиц на элементарные таблицы, так чтобы не возникали аномалии технологических операций. Таблицы, отвечающие условиям отсутствия аномалий технологических операций, называются нормальными формами (Н.Ф.).
Таблица находится в первой нормальной форме (1Н.Ф.), если все ее атрибуты атомарные.
Таблица находится во второй нормальной форме (2Н.Ф.), если она находится в 1Н.Ф. и все не ключевые атрибуты функционально полно зависят от ключа.
Таблица находится в третьей нормальной форме (3Н.Ф.), если она находится во 2Н.Ф. и устранены транзитивные зависимости внутри таблицы.
Таблица находится в нормальной форме Бойса-Кодда (Н.Ф.Б.К.), если она находится во второй нормальной форме и каждая детерминанта функциональной зависимости является возможным ключом (, гдеявляется детерминантом).
Таблица находится а четвертой нормальной форме (4Н.Ф.), если она находится в третьей нормальной форме и в ней поддерживаются все возможные многозначные функциональные зависимости.
Таблица находится в пятой нормальной форме (5Н.Ф.), если она разложима без потерь.
Проектирование реляционной базы данных начинается с универсального отношения. Универсальное отношение – это одна таблица, которая содержит все атрибуты, используемые в нашей системе. Например, универсальное отношение для базы Поставщик- Деталь-Поставка имеет вид:
фамилия |
статус |
Город пос- тавщика |
Название детали |
вес |
цвет |
Город детали |
количество |
Иванов |
70 |
Пермь |
гайка |
12 |
красный |
Пермь |
100 |
|
|
|
болт |
13 |
синий |
Кунгур |
200 |
... |
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
Проектирование сводится к постепенному переводу универсального отношения к пятой нормальной форме.
Данная таблица не находится в первой нормальной форме, если сдублировать данные, то перейдем к первой нормальной форме, но тогда сохранятся аномалии технологических операций вставки, удаления, изменения.
Чтобы прейти ко второй нормальной форме нужно разбить данную таблицу на таблицы, так чтобы это было разложение без потерь. Для этого разобьем таблицу на две, первая будет содержать поля - фамилия поставщика (ключ), статус, город поставщика, вторая таблица будет содержать поля – фамилия поставщика, название детали, вес, цвет, город детали, количество, причем фамилия +название детали=ключ.
После данного разбиения первая таблица будет находится не только во второй нормальной форме, но и в третьей. А во второй таблице сохранятся аномалии технологических операций, т.е. вторую таблицу необходимо еще разбить на две: таблица 2.1 с полями - название детали, вес, цвет, город детали; таблица 2.2 с полями - фамилия поставщика, название детали, количество(эти две таблицы находятся в 3Н.Ф.).
Методы проектирования.
Метод нормализации.
Метод начинается с универсального отношения и основан на постепенном переходе к пятой нормальной форме.
Пример:
Фамилия автора |
произведение |
Пушкин |
Евгений Онегин, Капитанская дочка, ... |
Лермонтов |
Герой нашего времени, Кавказский пленник, ... |
В этой таблице атрибут Произведение является повторяющейся группой, таблица не является нормализованной. Для перехода к первой нормальной форме дублируем:
-
автор
произведение
Пушкин
Евгений Онегин
Пушкин
Капитанская дочка
Пушкин
...
Лермонтов
Герой нашего времени
Лермонтов
Кавказский пленник
Лермонтов
...
Таблица находится в первой нормальной форме, является реляционной таблицей.
Пример:
r( поставщик, статус, город поставщика, деталь, количество) – это универсальное отношение. Установим функциональные зависимости:
поставщик +деталь = первичный ключ;
П+Д С (от поставщика и детали зависит статус);
П+Д Г (город);
П+Д К (количество);
ГС;
ПС;
ПГ.
Получаем ситуацию, когда некоторые атрибуты полностью зависят от комбинации П+Д, а некоторые атрибуты зависят только от П, т.е. присутствует неполная функциональная зависимость, а также присутствуют аномалии добавления, удаления, изменения. Разобьем таблицу на 2, так чтобы сохранились функциональные зависимости:
Т1(Поставщик, Статус, Город), Т2(Поставщик, Деталь, количество). Данные 2 находятся во второй нормальной форме. Установим функциональные зависимости для Т1:
ПС;
ПГ;
ГС.
П С это транзитивная зависимость.
Г
Втаблице Т1 сохраняются аномалии технологических операций: при удалении поставщика теряется зависимость Город Статус, не можем добавить нового поставщика пока не знаем статуса города. Следовательно необходимо таблицу Т1 разбить еще на 2: Т11(П,Г) и Т12(Г,С).
Таблицы Т11, Т12, Т2 представляют нашу базу в третьей нормальной форме.
Пример:
Т(№служащего, фамилия, №проекта, название работы).
Предположим, что в таблице нет однофамильцев, тогда ключом является либо №служащего+№проекта, либо фамилия+№проекта,
тогда №служащего фамилия. Приведем таблицу в Н.Ф.Б.К., для этого разложим таблицу на две: Т1(№служащего, фамилия), Т2(№служащего, №проекта, Название работы).
Пример:
Т(№детали,№проекта,№поставщика).
№проекта+№детали №поставщика;
№поставщика №проекта. Следовательно нужно разбить еще на 2:
Т1(№детали, №поставщика) и Т2(№поставщика,№проекта).
Чтобы перевести таблицу в 4Н.Ф. нужно многозначную Ф.З. выделить в отдельную таблицу, в 5Н.Ф. все таблицы должны соединяться без потерь.