- •Основы баз данных. Введение.
- •БзХранятся не только данные, но и знания о применении этих данных. Реализуются они в виде процедур и алгоритмов. Выборки обрабатывают данные.
- •История БнД.
- •Проблемы бд:
- •Состав БнД.
- •Процесс проектирования базы данных.
- •Er-модель (модель Чена).
- •Основные понятия:
- •Виды связи
- •Рекурсивные связи
- •Представление связей более высокого порядка (не бинарных).
- •Избыточное дублирование.
- •Реляционная модель данных.
- •12 Правил Кодда, которым должна удовлетворять реляционная база данных.
- •Операции над данными.
- •Реляционная алгебра.
- •Свойства реляционных операций.
- •Понятие функциональной зависимости (ф.З).
- •Запись запросов на языке реляционной алгебры.
- •Проектирование реляционной базы данных.
- •Методы проектирования.
- •7 Правил Джексона.
- •Язык доступа к данным, основанный на исчислении с переменными кортежами.
- •Атрибуты, используемые для описания таблиц.
- •Обработка ссылочной целостности.
- •Операторы манипулирования данными.
- •Как задается условие?
- •Запросы, которые реализуются на основе соединения.
- •Подзапрос.
- •Использование квантора exists для поиска пересечения и разности.
- •Квантор общности моделирующий операцию деления.
- •Соответствия между операциями реляционной алгебры и sql.
- •Технологии клиент-сервер.
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •Внутренняя модель данных.
- •B-дерево.
- •Язык query by example (qbe)
- •Операции выборки в отношениях, имеющих древовидную структуру
- •Операции запоминания
- •Библиотечные функции
Рекурсивные связи
-возникают внутри одного и того же объекта.
Существует два типа рекурсивных связей:
-1:n;
-n:n;
1:n – например, отношение сотрудник- подчиненный на множестве подчиненных (но начальник тоже сотрудник).
n 1 Сотрудник
в данном случае имеет роль начальника
Вводится понятие роль – это таблица, соединенная сама с собой. Для того чтобы различать объекты даем им разные роли.
n:n
Пример:
Описание структуры изделие, изделие состоит из сборочных единиц.
Изобразим граф изделия:
В данном графе 2,3,4 – это узлы, а 5,6,7 – это детали. Числа рядом с линиями показывают в каком количестве детали входят в узлы, например, в узел 2 входят 3 детали 5, 2 детали 6 и 1 деталь 3.
Роль деталь имеют те сборочные единицы, которые где-то применяются: 2-7.
Узел собирается из нескольких сборочных единиц: 1-4.между ними существует связь:
В реальном проектировании связь М:М представляется в виде трех отношений, причем между 1 3 – 1:М, между 2 и 3 – 1:М.
Таблица 1:
Сборочная единица |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Таблица 2 (сборка):
Роль- узел (1) |
Роль- деталь (2) |
Количество (3) |
1 |
2 |
2 |
1 |
3 |
3 |
1 |
4 |
2 |
2 |
3 |
1 |
2 |
5 |
3 |
2 |
6 |
2 |
3 |
5 |
2 |
3 |
7 |
2 |
4 |
6 |
1 |
4 |
7 |
3 |
Из этих таблиц:
№изделий = 1\2;
№деталей = 2\1;
№узла = 12.
Представление связей более высокого порядка (не бинарных).
Связь бинарная если в нее вступает два объекта, если в связь вступает более двух объектов, то связь не бинарная.
Пример.
В конкретном концерте конкретный исполнитель исполнил песню конкретного композитора.
Link – это промежуточное отношение, его ключом является уникальная комбинация №концерта, №песни, №исполнителя, №композитора.
Избыточное дублирование.
Дублирование – повторение значений некоторого атрибута.
Иногда от дублирования невозможно избавиться, так как при этом может произойти потеря информации.
Пример.
-
№служащего
Фамилия начальника
№телефона начальника
123
Иванов
1111
157
Петров
1112
160
Петров
1112
200
Иванов
1111
Чтобы избавиться от избыточного дублирования нужно данную таблицу разбить на 2:
-
№служащего
Фамилия начальника
123
Иванов
157
Петров
160
Петров
200
Иванов
-
Фамилия начальника
телефон
Иванов
1111
Петров
1112
Реляционная модель данных.
Автор этой модели Тед Кодд, год рождения этой модели 1970. Основа этой модели – математическая теория отношений.
Отношение – это множество кортежей, среди которых нет повторений. Каждый объект описывает отдельный объект предметной области или связь между ними. Отношения в реляционной модели данных представлены в виде таблиц.
Например:
-
номер
название
вес
1
Гайка
17
2
Болт
13
3
Винт
14
Кортежи при этом не должны повторяться, каждый кортеж уникален. Кортежи могут следовать в произвольном порядке. Каждый объект характеризуется атрибутами, каждый атрибут может принимать значения их некоторого домен.
Домен = domсодержит множество возможных значений данного атрибута.
Любая таблица есть подмножество деккартового произведения доменов
table
В СУБД обычно реализованы домены стандартные, например, целый, текст, дата/время. Для того чтобы уточнить какие значения могут принимать атрибуты накладываются ограничения на стандартные:
Целый 1-1000;
Вес 1-1000 гр.
А ограничения цвета можно записать в виде списка.
Атрибуты в модели Кодда должны быть атомарными, т.е. неделимыми, из стандартного набора доменов.
При этом возможны следующие ситуации:
Не всегда в предметной области атрибуты бывают атомарными (скалярными)
{13.03.2000}
Атрибуты бывают повторяющимися – множество значений одного типа, которые вместе характеризуют какое-то свойство
Песни, исполняемые в концерте.
номер
автор
1
Державин
2
Пахмутова
2
Добронравов
3
Добрынин
Группа состоит из нескольких атрибутов разного типа:
-
....
адрес
....
Москва, ул. Ленина 17-18
Чтобы избавиться от групп, нужно разбить эту колонку на разные составляющие: город, улица, дом, квартира.
Наличие повторяющейся группы – нескольких групповых атрибутов:
Например,
-
Ф.И.О.
адрес
Иванов...
Постоянной прописки
Временной прописки
Два адреса нельзя повторить, нужно снова ввести Ф.И.О. и новый адрес.
При этом могут возникнуть следующие аномалии:
аномалия добавления
мы не сможем записать новое лицо, пока не будем знать о нем все, так как пустых значений быть не должно.
Аномалия удаления
При удалении удаляется вся строка, при этом могут удалиться нужные сведения.
Аномалия изменения
Пусть, например, Пахмутова записана несколько раз, тогда при изменении, например, фамилии, ее нужно изменить везде, а для этого надо просмотреть всю таблицу.
При составлении таблиц нужно помнить, что атрибуты могут следовать в любом порядке, т.е.
Название, вес, цвет, номерномер, название, цвет, вес.
Состав базу данных о поставщиках, деталях и поставках:
Создадим таблицу Поставщики (№поставщика, фамилия)
-
№ поставщика
фамилия
1
Иванов
2
Петров
3
Сидоров
В каждой таблице имеется первичный ключ, он всегда подчеркивается, а остальные называются возможными.
Таблица Детали (№, название, цвет, вес) имеет вид:
-
№детали
Название детали
вес
цвет
1
Гайка
17
серый
2
Болт
13
черный
3
винт
14
красный
Таблица Поставка (№детали, №поставщика, количество):
-
№детали
№поставщика
количество
1
2
120
1
3
100
2
1
30
3
1
490
3
3
500
В таблице Поставки комбинация №поставщика и №детали является первичным ключом, а по отдельности они являются внешними ключами.
Ссылочная целостность состоит в том, что в связующей таблице в столбце №детали могут присутствовать только те номера, которые есть в таблице Детали. Если в таблице Детали такого номера нет, то должно выводиться сообщение об ошибке. При удалении детали из таблицы Детали необходима проверка наличия данной детали в связующей таблице, если в таблице Поставки такая деталь есть, то должно выводиться об этом сообщение и дальнейшее решение удалять или не удалять должно зависеть от пользователя.