Базы данных Реляционная модель данных

advertisement
Лекция №2
Базы данных
Михаил Моисеев
Реляционная модель данных
Модели данных
Модель данных – набор понятий, описывающий данные и
способы обработки данных, связи между ними и ограничения,
накладываемые на данные.
Модель данных должна определить
Структуры
Ограничения
Операции
Базы данных. Лекция №2
2
Модели данных #2
Структуры – сущности БД
Элемент данных - наименьшая единица данных с помощью
которой выполняется построение всех остальных структур
Группа - именованная совокупность элементов данных, которые
можно рассматривать, как единое целое
Ограничения используются СУБД для контроля целостности
данных при выполнении различных операций
Базы данных. Лекция №2
3
Модели данных #3
Операции над данными – переводят БД из одного допустимого
состояния в другое
Основные операции:
Идентификация данного и нахождение его позиции в БД;
Выборка (чтения) данных;
Добавление новых данных (запись);
Удаление данных;
Модификация данных.
Отбор данных выполняется с учетом:
Значений атрибутов данного;
Связей между данными.
По получаемому результату:
Изменение или извлечение одной сущности;
Изменение или извлечение нескольких сущностей.
Базы данных. Лекция №2
4
Реляционная модель данных
РМД - модель данных основанная на реляционной алгебре
Реляционная алгебра представляет собой набор
операторов, использующих отношения в качестве аргументов
и возвращающие отношения в качестве результата
Декартово произведение - для заданных конечных
множеств D1,D2…Dn декартовым произведением D1*D2*…*Dn
называется множество произведений вида: d1*d2*…*dn,
где di принадлежит Di
Множества D1,D2…Dn называются доменами.
Базы данных. Лекция №2
5
Отношения
Отношением на множествах D1,D2…Dn называется подмножество
декартова произведения D1*D2*…*Dn
Элементы декартова произведения d1*d2*…*dn называются кортежами.
Множества A (a1,a2,a3) и B (b1,b2):
Декартово произведение: A*B = (a1*b1, a2*b1, a3*b1, a1*b2, a2*b2, a3*b2)
Примеры отношений: R1 = (a1*b1, a1*b2),
R2 = (a1*b2, a2*b2, a3*b1),
R3 =()
Число доменов в отношении (n) – степень отношения
Количество кортежей в отношении – мощность отношения
Базы данных. Лекция №2
6
Отношения #2
Отношения удобно представлять в виде таблиц:
Строка таблицы – один кортеж - сущность;
Таблица – отношение - набор сущностей;
Столбец – домен – атрибут;
Поле – элемент множества – значение атрибута.
Набор именованных отношений называется схемой БД.
Базы данных. Лекция №2
7
Первичный ключ
Первичный ключ сущности (PK) – атрибуты, уникально
определяющие данную сущность
Предметная область: кафедра КСПТ
Отображение: студенты, группы, специальности, изучаемые
предметы, преподаватели, участие студентов в НИР кафедры.
Студент: (Имя, Фамилия, Отчество, Дата рождения, Номер паспорта,
Номер аттестата, Место проживания, …)
Группа: (Номер группы, Куратор, …)
НИР: (Название темы, Руководитель, Заказчик работы, …)
Базы данных. Лекция №2
8
Суррогатный ключ
Сущности без первичного ключа
Суррогатный первичный ключ используется для увеличения
эффективности, гарантии уникальности PK, наглядности.
Студент: (Имя, Фамилия, Отчество, Дата рождения, Место
проживания, Номер паспорта, Номер аттестата, Ссылка на НИР,
Ссылка на группу,…).
Студент: (ID, Имя, Фамилия, Отчество, Дата рождения, Место
проживания, Номер паспорта, Номер аттестата, Ссылка на НИР,
Ссылка на группу,…).
Базы данных. Лекция №2
9
Внешний ключ
Связи организуются с помощью ограничений внешнего ключа (FK)
Внешний ключ – добавляется для подчиненного набора сущностей
Атрибута подчиненной сущности
Главной сущности
Атрибута главной сущности (обычно PK)
Студент: (Имя, Фамилия, Отчество, Дата рождения, Номер паспорта,
Аттестат, Место проживания, Ссылка на группу, Ссылка на НИР …).
FK1: Ссылка на группу, Группа, Номер группы
FK2: Ссылка на НИР, НИР, Название темы
Группа: (Номер группы, Куратор, Ссылка на специальность, …).
FK1: Ссылка на специальность
НИР: (Название темы, Руководитель, Заказчик работы, …).
Базы данных. Лекция №2
10
Свойства отношений
Отсутствие кортежей-дубликатов. Из этого свойства
вытекает наличие у каждого кортежа первичного ключа
Отсутствие упорядоченности кортежей
Отсутствие упорядоченности атрибутов. Для ссылки на
значение атрибута всегда используется имя атрибута
Атомарность значений атрибутов, среди значений домена не
могут содержаться множества значений (отношения)
Базы данных. Лекция №2
11
Целостность и ограничения
Целостность данных - это механизм поддержания
соответствия базы данных предметной области
Для поддержания целостности данных используются
ограничения различных типов
ограничения на допустимые значения для атрибута
ограничения первичного ключа (PK)
ограничения уникальности атрибута
ограничения связей (внешних ключей FK)
Базы данных. Лекция №2
12
Операции над данными
Все операции в РМД выполняются над отношениями, результатам
операций также являются отношения.
Операции изменяющие кортежи отношения или их состав:
ДОБАВИТЬ - необходимо задать имя отношения, ключ и
другие атрибуты кортежа
Базы данных. Лекция №2
13
Операции над данными #2
УДАЛИТЬ - необходимо указать имя отношения, а также
указать кортеж или группу кортежей, подлежащих удалению
Базы данных. Лекция №2
14
Операции над данными #3
ИЗМЕНИТЬ - необходимо указать имя отношения, указать
кортеж или группу кортежей, подлежащих изменению, а также
правила изменения для каждого изменяемого атрибута
Базы данных. Лекция №2
15
Операции над отношениями
Проекция
Выборка
Пересечение
Объединение
Разность
Соединение
…
Базы данных. Лекция №2
16
Проекция отношения
Операция проекции представляет из себя выборку из
каждого кортежа отношения некоторых атрибутов и удаление
из полученного отношения одинаковых кортежей
Базы данных. Лекция №2
17
Выборка из отношения
Операция выборка использует отношение, результат - новое
отношение, с теми же атрибутами, содержащее подмножество
кортежей исходного отношения, удовлетворяющих условию
выборки
Базы данных. Лекция №2
18
Объединение отношений
Операция объединение содержит все кортежи исходных отношений за
исключением повторяющихся
Отношения должны быть определены по одной схеме
R1
Id
Name
Age
349
Petr
22
350
Andrey
21
351
Oleg
25
352
Ivan
19
353
Aleksandr
27
R2
UNION
Id
Name
Age
349
Petr
22
350
Andrey
21
351
Oleg
25
352
Ivan
19
Id
Name
Age
353
Aleksandr
27
352
Ivan
19
353
Aleksandr
21
353
Aleksandr
21
357
Oleg
25
357
Базы данных. Лекция №2
Oleg
25
19
Пересечение отношений
Операция пересечение содержит все кортежи, которые присутствуют
в обоих исходных отношениях, повторяющиеся кортежи исключаются
Отношения должны быть определены по одной схеме
Базы данных. Лекция №2
20
Разность отношений
Операция разность содержит все кортежи первого отношения,
которые отсутствуют во втором отношении
Отношения должны быть определены по одной схеме
Базы данных. Лекция №2
21
Соединение отношений
Операция соединение создает отношение, в соответствии с условием
соединения. Для каждой пары кортежей из исходных отношений,
удовлетворяющих условию соединению в результирующем отношении
создается кортеж, состоящий из всех атрибутов исходных кортежей,
повторяющиеся атрибуты исключаются.
Базы данных. Лекция №2
22
Объединение операций
Обычно над отношениями выполняются операции являющиеся
декомпозицией нескольких исходных операций
Базы данных. Лекция №2
23
Объединение операций #2
Базы данных. Лекция №2
24
Вопросы
В чем отличия между БД и СУБД ?
Что такое модель данных ?
Чем отличается декартово произведение от отношения ?
Какие типы операций определяются в модели данных ?
Может ли отношение содержать все кортежи декартового произведения ?
Может ли степень отношения быть больше мощности отношения ?
Сколько доменов может быть в отношении ?
Может ли отношение иметь мощность равную нулю ?
Что такое РМД и РА ?
Перечислите основные свойства отношений в РМД ?
Чем отличается суррогатный ключ от внешнего ключа ?
Как определяется внешний ключ ?
Базы данных. Лекция №2
25
Download