Similar presentations:
Проектирование баз данных. Реляционная модель данных
1.
ЛЕКЦИИ 3-4Проектирование баз данных
Реляционная модель данных
1
2.
Проектирование базы данныхПолный цикл разработки базы данных включает:
• концептуальное проектирование
• логическое проектирование
• физическое ее проектирование
2
3.
Концептуальное проектирование БДЦель - создании концептуальной модели БД для
анализируемой предметной области
Этапы построения:
• выделение сущностей
• выделение ключевых атрибутов для каждой
сущности
• добавление неключевых атрибутов
• определение связей между сущностями
3
4.
Логическое проектирование БДЦель - создание логической модели БД для
исследуемой предметной области
Разрабатывается модель БД, опирающаяся на
конкретную модель данных (реляционная, сетевая,
иерархическая), которая определяется типом СУБД,
предполагаемой для БД
Концептуальное и логическое проектирование — это
итеративные процессы, которые включают в себя
ряд уточнений с возвратом к предыдущему этапу
4
5.
Физическое проектирование БДЦель - создание модели БД, ориентированной на
конкретную СУБД
Для реляционной модели данных физическое
проектирование включает:
• создание набора реляционных таблиц на основе
информации, представленной в логической модели
данных;
• определение конкретных структур хранения данных и
методов доступа к ним;
• разработка средств защиты создаваемой системы.
5
6.
Концептуальное проектирование БДМодель «сущность - связь»
В концептуальном проектировании БД применяется
семантическое моделирование, опирающееся на
смысл моделируемых данных
Основной инструмент - различные варианты
диаграмм «сущность-связь» (ER-диаграмм)
Первый вариант модели сущность-связь был
предложен в 1976 г. Питером Ченом. Позже
появились другие варианты подобных моделей
(нотация Мартина, нотация IDEF1X, нотация Баркера
и др.)
6
7.
Модель «сущность – связь»Сущность – класс однотипных объектов, информация
о которых имеет существенное значение для
рассматриваемой предметной области
Экземпляр сущности – конкретный представитель
данной сущности
Например, сущность: ТОВАР
Экземпляр сущности: конкретный товар, например,
телевизор
7
8.
Модель «сущность – связь». АтрибутыАтрибут сущности – поименованная характеристика,
являющаяся некоторым свойством сущности
Экземпляр атрибута – определенная характеристика
конкретного экземпляра сущности, значение атрибута
Например, сущность ТОВАР может иметь атрибуты:
Наименование_товара, Индекс_товара,
Цена_товара
Экземпляр атрибута Наименование_товара:
Телевизор Samsung QE49Q67RAU
8
9.
Модель «сущность – связь». АтрибутыЗначения каждого атрибута выбираются из
некоторого множества, включающего все возможные
значения, которые могут быть присвоены атрибуту домена
Примеры доменов:
множество допустимых значений даты;
диапазон целых чисел;
список компаний-поставщиков.
Ключевые атрибуты выделяются подчеркиванием.
9
10.
Модель «сущность – связь». НотацияПитера Чена
10
11.
Модель «сущность – связь» в нотацииПитера Чена. Пример
11
12.
Модель «сущность – связь». КлючиАтрибут или несколько атрибутов, значения которых
уникальным образом идентифицируют каждый
экземпляр сущности, являются потенциальным
ключом данной сущности
Потенциальных ключей может быть несколько.
Например, экземпляр сущности ФАКУЛЬТЕТ
(Код_факультета, Название_факультета,
ФИО_декана) может однозначно идентифицироваться
любым из первых двух указанных атрибутов
Один из потенциальных ключей может быть выбран в
качестве первичного ключа, остальные называются
альтернативными ключами
12
13.
Другой способ указания атрибутов13
14.
Модель «сущность – связь». АтрибутыИдентификацию некоторых сущностей иногда
приходится осуществлять при помощи составных
ключей, которые включают несколько атрибутов
Например, сущность
ЛЕЧЕНИЕ (ФИО_врача, ФИО_пациента,
Дата_назначения, Лекарство)
однозначно идентифицировать можно только
составным ключом
(ФИО_врача, ФИО_пациента, Дата_назначения)
14
15.
Связи между сущностямиСвязь между двумя сущностями осуществляется
через связь экземпляров одной сущности с
экземплярами другой сущности, образуя набор
экземпляров связи между ними
Экземпляры связи
ЧИТАЕТ
Диаграмма связи
ЧИТАЕТ
15
16.
Модель «сущность-связь»: связьСвязь — это ассоциация (объединение),
установленная между несколькими сущностями и
показывающая, как взаимодействуют сущности
между собой
Связь определяет взаимосвязь между
экземплярами сущностей
Связь также может иметь атрибуты
16
17.
Модель «сущность-связь»: связь17
18.
Нотация Чена. Атрибуты и связи18
19.
Модель «сущность-связь»: связьСтепени бинарных связей:
один-к-одному (1:1)
один-ко-многим (1:M)
многие-ко-многим (M:N)
19
20.
Модель «сущность-связь»: пример20
21.
Связь между сущностямиСущности:
СТУДЕНТ (Номер_зачетной_книжки, ФИО )
ГРУППА (Код_группы, Количество_студентов,
Староста)
Для связи в число атрибутов сущности СТУДЕНТ
добавим атрибут Код_группы, значение которого будет
использовано для связи
Новая сущность СТУДЕНТ:
СТУДЕНТ (Номер_зачетной_книжки,ФИО,
Код_группы)
21
22.
Виды связей. Неидентифицирующаясвязь
Неидентифицирующая
связь –
первичный ключ
родительской сущности
включается в состав
неключевых атрибутов
дочерней сущности с
созданием внешнего
ключа (FK)
22
23.
Виды связей. Идентифицирующаясвязь
Идентифицирующая
связь –
первичный ключ
родительской сущности
включается в состав
первичного ключа
дочерней сущности
23
24.
Независимая сущностьНезависимая сущность – её существование не
зависит от других сущностей
Для идентификации уникального экземпляра она не
нуждается в дополнительной информации, взятой из
другой сущности
24
25.
Зависимая сущностьЕсли идентификация данных сущности зависит от
идентификации данных в других сущностях, то такая
(первая) сущность называется зависимой сущностью
В состав атрибутов зависимой сущности должен
входить первичный ключ родительской сущности
25
26.
Ассоциативная сущностьСущность, которая представляет данные,
поясняющие характеристики связи между двумя и
более сущностями, называется ассоциативной
сущностью
26
27.
Нотация БаркераКаждая сущность изображается в виде
прямоугольника с именем сущности в верхней части
Атрибуты изображаются в пределах прямоугольника,
определяющего сущность
Ключевые атрибуты выделяются символом #
27
28.
Нотация БаркераСвязь – сплошная или пунктирная линия до середины в
зависимости от того, является она обязательной или
необязательной
Сплошная линия - обязательное участие в связи
каждого экземпляра сущности, со стороны которой эта
линия проведена, пунктирная – необязательное
участие
Слева направо: «Каждый сотрудник может
иметь несколько детей".
Справа налево: "Каждый ребенок обязан
принадлежать ровно одному сотруднику"
28
29.
Нотация Баркера. Пример29
30.
Нотация IDEF1XАтрибуты - список имен внутри блока сущности
Атрибуты, входящие в первичный ключ, размещаются в
верхней части списка, отделяются от других атрибутов
горизонтальной чертой
Атрибуты - внешние ключи (Foreign Key) отмечаются FK в
скобках
30
31.
Реляционная модельРМД предметной области - набор связанных между
собой отношений, изменяющихся во времени.
Принципы реляционной модели были сформулированы
в 1969—1970 годах Э. Ф. Коддом (E. F. Codd).
Строгое изложение теории реляционных баз данных
(реляционной модели данных) в современном
понимании можно найти в книге К. Дж. Дейта «C. J. Date.
An Introduction to Database Systems» («Дейт, К. Дж.
Введение в системы баз данных»).
31
32.
Состав РМДСтруктурная часть - описывает, какие объекты
рассматриваются реляционной моделью.
Постулируется, что единственной структурой данных,
используемой в РМД, являются нормализованные
отношения
Целостная часть - описывает ограничения, которые
должны выполняться для любых отношений в любых
РБД - целостность сущностей и целостность внешних
ключей
Манипуляционная часть - описывает два
эквивалентных способа манипулирования
реляционными данными - реляционную
алгебру и реляционное исчисление
32
33.
Структурная часть РМДТипы данных: символьные, числовые,
специализированные («деньги»), дата, время и др.
Домен в РМД — допустимое потенциальное
множество значений данного типа
Свойства домена:
домен имеет уникальное имя в пределах базы данных
домен определен на некотором простом типе данных
или на другом домене
домен несет определенную смысловую нагрузку
33
34.
Структурная часть: Элементы РМДЭлемент реляционной
модели
Отношение
Двумерная плоская таблица
Атрибут
Заголовок столбца таблицы
Кортеж (запись)
Строка таблицы (единица информации БД)
Схема отношения
Строка заголовков столбцов таблицы
(заголовок таблицы)
Количество атрибутов, которое содержит
отношение
Степень отношения
Мощность отношения
34
Форма представления
Количество кортежей, которое содержится в
отношении
35.
МощностьСтруктурная часть: Элементы РМД
Степень
35
36.
Характеристики отношенийотношение имеет уникальное в реляционной схеме
имя;
каждая ячейка отношения содержит только одно
элементарное (атомарное, неделимое) значение;
каждый атрибут имеет уникальное для отношения
имя;
значения атрибута берутся из одного и того же
домена;
каждый кортеж является уникальным;
порядок следования атрибутов и кортежей не имеет
значения.
36
37.
РМД: целостная частьЦелостность
сущностей
Целостная часть
37
Целостность
внешних
ключей
38.
Целостная часть: первичные ключиПервичный ключ – Primary Key - (ключ отношения,
ключевой атрибут,PK): атрибут (или группа атрибутов)
отношения, однозначно идентифицирующий каждый из
его кортежей
Первичный ключ
Потенциальный
ключ
Альтернативный
ключ
Альтернативный ключ - это атрибут (или группа атрибутов),
несовпадающий с первичным ключом и однозначно идентифицирующий
каждый из его кортежей
38
39.
Цели использования ключейисключение дублирования значений в
ключевых атрибутах (следствие –
исключение дублирования кортежей в
отношении)
организация связывания таблиц
упорядочение кортежей (по возрастанию
или убыванию)
ускорение работы с кортежами отношения
(поиск)
39
40.
Целостная часть: целостностьсущностей
Атрибуты, входящие в состав некоторого
потенциального (первичного или
альтернативного) ключа не могут принимать
null-значений
Null-значение - это не значение, а некий
маркер, показывающий, что значение
неизвестно
40
41.
Внешний ключ: определениеПусть в отношении R1 имеется атрибут А, значения
которого являются значениями ключевого атрибута
В другого отношения R2. Тогда говорят, что атрибут
А отношения R1 есть внешний ключ (Foreign Key,
FK)
R2
Родительское
41
R1
Дочернее
42.
Ссылочная целостность- ограничения, которые накладывает
реляционная модель на внешние ключи для
обеспечения целостности данных
42
43.
Правило целостности внешних ключейВнешние ключи не должны быть несогласованными:
для каждого значения внешнего ключа должно
существовать соответствующее значение первичного
ключа в родительском отношении
43
44.
Ссылочная целостностьСсылочная целостность может нарушиться в результате
операций, изменяющих состояние базы данных. Таких
операций три – вставка (INSERT) , обновление (UPDATE)
и удаление (DELETE) кортежей в отношениях при
выполнении одной из четырех операций:
• Обновление кортежа в родительском отношении
• Удаление кортежа в родительском отношении
• Вставка кортежа в дочернее отношение
• Обновление кортежа в дочернем отношении
44
45.
Стратегии поддержания ссылочнойцелостности
Для поддержания ссылочной целостности обычно
используются две основные стратегии:
RESTRICT (ОГРАНИЧИТЬ) - не разрешать выполнение
операции, приводящей к нарушению ссылочной
целостности
CASCADE (КАСКАДИРОВАТЬ) - разрешить выполнение
требуемой операции, но внести каскадные изменения в
другие отношения так, чтобы не допустить нарушения
ссылочной целостности
45
46.
Стратегии поддержания ссылочнойцелостности
Дополнительными стратегиями поддержания
ссылочной целостности являются:
SET NULL (УСТАНОВИТЬ В NULL) - все некорректные
значения внешних ключей изменять на null-значения.
SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) - все
некорректные значения внешних ключей изменять на
некоторое значение, принятое по умолчанию.
IGNORE (ИГНОРИРОВАТЬ) - выполнять операции, не
обращая внимания на нарушения ссылочной целостности.
46
47.
РМД: манипуляционная частьДоступ к реляционным данным
осуществляется при помощи реляционной
алгебры или эквивалентного ей
реляционного исчисления
47
48.
Таблица есть Отношение, есликаждая строка представляет собой кортеж
из k значений, принадлежащих k столбцам;
порядок строк безразличен;
любые две строки различаются хотя бы
одним элементом;
строки и столбцы таблицы могут
обрабатываться в любой
последовательности.
48
49.
Реляционная алгебра- теоретический язык запросов,
представляющий из себя набор операций,
которые принимают отношения в качестве
операндов и возвращают отношение в
качестве результата
49
50.
Реляционная алгебра8 операций Э.Кодда
основные (базовые теоретико-множественные)
1.
2.
3.
4.
объединение
разность (вычитание)
пересечение
декартово (прямое) произведение
специальные реляционные
1.
2.
3.
4.
50
выборка (селекция, ограничение)
проекция
деление
соединение
51.
ОбъединениеСовместимые отношения имеют одинаковую
размерность (степень) и, возможно, одинаковые
атрибуты
Объединением двух совместимых отношений R1 и
R2 является отношение R, содержащее все
элементы исходных отношений (с исключением
повторений)
R R1 R2 R1 UNION R2
51
52.
Объединение: примерОтношение R1
ID1
F1_1
F1_2
1
A
one
2
B
two
3
C
three
4
D
four
Схема от левого
отношения
(СУБД)
Кортежи
отличаются, хотя
ID совпадают!
Дубликатов нет
52
Отношение R2
ID2
F2_1
F2_2
10
Ж
десять
20
Ы
двадцать
3
Ъ
три
4
D
four
R R1 R2
ID1
1
2
3
3
4
10
20
F1_1
A
B
C
Ъ
D
Ж
Ы
F1_2
one
two
three
три
four
десять
двадцать
53.
Разность (вычитание)Вычитание совместимых отношений R1 и R2 является
отношение R, которое состоит из множества кортежей,
принадлежащих R1, но не принадлежащих R2
R R1 R2 R1 MINUS R2
R1 R2 R2 R1
53
54.
Разность: примерОтношение R1
ID1
F1_1
F1_2
1
A
one
2
B
two
3
C
three
4
D
four
Отношение R2
ID2
F2_1
F2_2
10
Ж
десять
20
Ы
двадцать
3
Ъ
три
4
D
four
R R1 R2
54
ID1
F1_1
F1_2
1
A
one
2
B
two
3
C
three
55.
ПересечениеПересечением двух совместимых отношений R1 и R2
является отношение R, которое включает в себя
кортежи, одновременно принадлежащие обоим
исходным отношениям
R R1 R2 R1 INTERSECT R2 R1 R1 R2
55
56.
Пересечение: примерОтношение R1
ID1
F1_1
F1_2
1
A
one
2
B
two
3
C
three
4
D
four
Отношение R2
ID2
F2_1
F2_2
10
Ж
десять
20
Ы
двадцать
3
Ъ
три
4
D
four
R R1 R2
56
ID1
F1_1
F1_2
4
D
four
57.
Декартово произведениеПусть даны два отношения R1 степени k1 и R2
степени k2 и эти отношения не имеют одинаковых
имен атрибутов. Тогда декартовым
произведением отношений R1 и R2 является
отношение R степени k1+k2, состоящее из
множества кортежей, в котором первые k1
элементов образуют кортеж из отношений R1, а
последние k2 элементов образуют кортеж из
отношения R2
R R1 R2
57
58.
Отношение R1ID1
F1_1
F1_2
1
A
one
2
B
two
3
C
three
4
D
four
58
ID1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
F1_1
A
A
A
A
B
B
B
B
C
C
C
C
D
D
D
D
Отношение R2
ID2
F2_1
F2_2
10
Ж
десять
20
Ы
двадцать
3
Ъ
три
4
D
four
F1_2
one
one
one
one
two
two
two
two
three
three
three
three
four
four
four
four
ID2
10
20
3
4
10
20
3
4
10
20
3
4
10
20
3
4
F2_1
Ж
Ы
Ъ
D
Ж
Ы
Ъ
D
Ж
Ы
Ъ
D
Ж
Ы
Ъ
D
F2_2
десять
двадцать
три
four
десять
двадцать
три
four
десять
двадцать
три
four
десять
двадцать
три
four
R R1 R2
59.
Теоретические (абстрактные) языкизапросов
В реализациях конкретных реляционных
СУБД сейчас реляционная алгебра не
используется в чистом виде. Фактическим
стандартом доступа к реляционным
данным стал язык SQL
59