Реляционная модель...
Transcript of Реляционная модель...
Базы данных
Лекция №2
Реляционная модель данных
Михаил Моисеев
2Базы данных. Лекция №2
Модели данных
Модель данных – набор понятий, описывающий данные и способы обработки данных, связи между ними и ограничения, накладываемые на данные.
Модель данных должна определить
� Структуры
� Ограничения
� Операции
3Базы данных. Лекция №2
Структуры – сущности БД
� Элемент данных - наименьшая единица данных с помощью
которой выполняется построение всех остальных структур
� Группа - именованная совокупность элементов данных, которые можно рассматривать, как единое целое
Ограничения используются СУБД для контроля целостности данных при выполнении различных операций
Модели данных #2
4Базы данных. Лекция №2
Модели данных #3Операции над данными – переводят БД из одного допустимого состояния в другое
Основные операции:� Идентификация данного и нахождение его позиции в БД;� Выборка (чтения) данных;� Добавление новых данных (запись);� Удаление данных;� Модификация данных.
Отбор данных выполняется с учетом:� Значений атрибутов данного;� Связей между данными.
По получаемому результату:� Изменение или извлечение одной сущности;� Изменение или извлечение нескольких сущностей.
5Базы данных. Лекция №2
Реляционная модель данных
РМД - модель данных основанная на реляционной алгебре
Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов и возвращающие отношения в качестве результата
Декартово произведение - для заданных конечных
множеств D1,D2…Dn декартовым произведением D1*D2*…*Dn
называется множество произведений вида: d1*d2*…*dn, где di принадлежит Di
Множества D1,D2…Dn называются доменами.
6Базы данных. Лекция №2
Отношения
Отношением на множествах 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) – степень отношения
Количество кортежей в отношении – мощность отношения
7Базы данных. Лекция №2
Отношения #2Отношения удобно представлять в виде таблиц:
� Строка таблицы – один кортеж - сущность;
� Таблица – отношение - набор сущностей;
� Столбец – домен – атрибут;
� Поле – элемент множества – значение атрибута.
Набор именованных отношений называется схемой БД.
8Базы данных. Лекция №2
Первичный ключ
Первичный ключ сущности (PK) – атрибуты, уникально
определяющие данную сущность
Предметная область: кафедра КСПТ
Отображение: студенты, группы, специальности, изучаемые предметы, преподаватели, участие студентов в НИР кафедры.
Студент: (Имя, Фамилия, Отчество, Дата рождения, Номер паспорта, Номер аттестата, Место проживания, …)
Группа: (Номер группы, Куратор, …)
НИР: (Название темы, Руководитель, Заказчик работы, …)
9Базы данных. Лекция №2
Суррогатный ключ
Сущности без первичного ключа
Суррогатный первичный ключ используется для увеличения эффективности, гарантии уникальности PK, наглядности.
Студент: (Имя, Фамилия, Отчество, Дата рождения, Место проживания, Номер паспорта, Номер аттестата, Ссылка на НИР, Ссылка на группу,…).
Студент: (ID, Имя, Фамилия, Отчество, Дата рождения, Место проживания, Номер паспорта, Номер аттестата, Ссылка на НИР, Ссылка на группу,…).
10Базы данных. Лекция №2
Внешний ключ Связи организуются с помощью ограничений внешнего ключа (FK)
Внешний ключ – добавляется для подчиненного набора сущностей
� Атрибута подчиненной сущности
� Главной сущности
� Атрибута главной сущности (обычно PK)
Студент: (Имя, Фамилия, Отчество, Дата рождения, Номер паспорта, Аттестат, Место проживания, Ссылка на группу, Ссылка на НИР …).
FK1: Ссылка на группу, Группа, Номер группы FK2: Ссылка на НИР, НИР, Название темы
Группа: (Номер группы, Куратор, Ссылка на специальность, …).
FK1: Ссылка на специальность
НИР: (Название темы, Руководитель, Заказчик работы, …).
11Базы данных. Лекция №2
Свойства отношений
� Отсутствие кортежей-дубликатов. Из этого свойства вытекает наличие у каждого кортежа первичного ключа
� Отсутствие упорядоченности кортежей
� Отсутствие упорядоченности атрибутов. Для ссылки на значение атрибута всегда используется имя атрибута
� Атомарность значений атрибутов, среди значений домена не могут содержаться множества значений (отношения)
12Базы данных. Лекция №2
Целостность и ограничения
Целостность данных - это механизм поддержания
соответствия базы данных предметной области
Для поддержания целостности данных используются ограничения различных типов
� ограничения на допустимые значения для атрибута
� ограничения первичного ключа (PK)� ограничения уникальности атрибута
� ограничения связей (внешних ключей FK)
13Базы данных. Лекция №2
Операции над данными
Все операции в РМД выполняются над отношениями, результатамопераций также являются отношения.
Операции изменяющие кортежи отношения или их состав:
� ДОБАВИТЬ - необходимо задать имя отношения, ключ и другие атрибуты кортежа
14Базы данных. Лекция №2
Операции над данными #2
� УДАЛИТЬ - необходимо указать имя отношения, а также указать кортеж или группу кортежей, подлежащих удалению
15Базы данных. Лекция №2
Операции над данными #3
� ИЗМЕНИТЬ - необходимо указать имя отношения, указать кортеж или группу кортежей, подлежащих изменению, а также правила изменения для каждого изменяемого атрибута
16Базы данных. Лекция №2
Операции над отношениями
� Проекция
� Выборка
� Пересечение
� Объединение
� Разность
� Соединение
� …
17Базы данных. Лекция №2
Проекция отношения
Операция проекции представляет из себя выборку из каждого кортежа отношения некоторых атрибутов и удаление из полученного отношения одинаковых кортежей
18Базы данных. Лекция №2
Выборка из отношения
Операция выборка использует отношение, результат - новое отношение, с теми же атрибутами, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки
19Базы данных. Лекция №2
Объединение отношенийОперация объединение содержит все кортежи исходных отношений за исключением повторяющихся Отношения должны быть определены по одной схеме
Aleksandr353
Oleg351
Andrey350
Petr349
Ivan352
Id Name Age
22
21
25
19
27
UNION
Oleg357
Aleksandr353
Ivan352
Id Name Age
19
21
25
R1
R2
Aleksandr353
Oleg351
Andrey350
Petr349
Ivan352
Id Name Age
22
21
25
19
27
Aleksandr353 21
Oleg357 25
20Базы данных. Лекция №2
Пересечение отношенийОперация пересечение содержит все кортежи, которые присутствуют в обоих исходных отношениях, повторяющиеся кортежи исключаются
Отношения должны быть определены по одной схеме
21Базы данных. Лекция №2
Разность отношений
Операция разность содержит все кортежи первого отношения, которые отсутствуют во втором отношении Отношения должны быть определены по одной схеме
22Базы данных. Лекция №2
Соединение отношенийОперация соединение создает отношение, в соответствии с условием соединения. Для каждой пары кортежей из исходных отношений, удовлетворяющих условию соединению в результирующем отношении создается кортеж, состоящий из всех атрибутов исходных кортежей,повторяющиеся атрибуты исключаются.
23Базы данных. Лекция №2
Объединение операцийОбычно над отношениями выполняются операции являющиеся декомпозицией нескольких исходных операций
24Базы данных. Лекция №2
Объединение операций #2
25Базы данных. Лекция №2
Вопросы� В чем отличия между БД и СУБД ?
� Что такое модель данных ?
� Чем отличается декартово произведение от отношения ?
� Какие типы операций определяются в модели данных ?
� Может ли отношение содержать все кортежи декартового произведения ?
� Может ли степень отношения быть больше мощности отношения ?
� Сколько доменов может быть в отношении ?
� Может ли отношение иметь мощность равную нулю ?
� Что такое РМД и РА ?
� Перечислите основные свойства отношений в РМД ?
� Чем отличается суррогатный ключ от внешнего ключа ?
� Как определяется внешний ключ ?