Логическое проектирование БД. Лекция 4

Содержание

Слайд 2

Слайд 3

На следующем этапе проектирования строится логическая (даталогическая) модель базы данных, представляющая

На следующем этапе проектирования строится логическая (даталогическая) модель базы данных, представляющая

собой описание сущностей и связей ER-модели в терминах реляционной модели данных.
Преобразование ER-модели в реляционную может быть произведено с использованием так называемых CASE-средств (средств автоматизированного проектирования баз данных), в частности, пакета ERWin .
Слайд 4

Слайд 5

Слайд 6

Правила порождения реляционных отношений из инфологической модели “сущность-связь”. Порождение реляционных отношений

Правила порождения реляционных отношений из инфологической модели “сущность-связь”.

 
Порождение реляционных отношений и

связей между ними из ER-модели можно разделить на 2 этапа: преобразование сущностей и преобразование связей.
Слайд 7

Правила преобразования сущностей Каждой сущности ставится в соответствие отношение реляционной модели.

Правила преобразования сущностей
Каждой сущности ставится в соответствие отношение реляционной модели.
При этом

имена сущности и отношения могут быть различными, потому что на имена сущностей могут не накладываться дополнительные синтаксические ограничения, кроме уникальности имени в рамках модели. Имена отношений могут быть ограничены требованиями конкретной СУБД, чаще всего эти имена являются идентификаторами в некотором базовом языке, они ограничены по длине и не должны содержать пробелов и некоторых специальных символов. Например, сущность может быть названа "Книжный каталог", а соответствующее ей отношение желательно назвать, например, BOOKS (без пробелов и латинскими буквами).
Слайд 8

2. Каждый атрибут сущности становится атрибутом отношения, которому приписывают тип данных

2. Каждый атрибут сущности становится атрибутом отношения, которому приписывают тип данных

и свойство обязательности или необязательности данного атрибута (допустимости или недопустимости неопределенного значения).
Переименование атрибутов должно происходить в соответствии с теми же правилами, что и переименование отношений в п.1. Для каждого атрибута задается конкретный допустимый в СУБД тип данных и обязательность или необязательность данного атрибута (то есть допустимость или недопустимость NULL значений для него).
3. Первичный ключ сущности становится первичным ключом отношения. Атрибуты, входящие в первичный ключ, получают свойство обязательности (NOT NULL).
4. В каждое отношение, соответствующее дочерней сущности, добавляется набор атрибутов родительской сущности, являющийся первичным ключом родительской сущности. В отношении, соответствующем дочерней сущности, этот набор атрибутов становится внешним ключом (FOREIGN KEY ).
5. Для установки необязательного класса принадлежности у атрибутов, соответствующих внешнему ключу, устанавливается свойство допустимости неопределенных значений (признак NULL) . При обязательном классе принадлежности эти атрибуты получают свойство недопустимости неопределенных значений (признак NOT NULL) .
Слайд 9

Правила преобразования сущностей Сущность Отношение Атрибут сущности Атрибут отношения (+ тип

Правила преобразования сущностей
Сущность Отношение
Атрибут сущности Атрибут отношения (+ тип данных, +

ОКП/НКП – обязательный/необязательный класс принадлежности)
Первичный ключ сущности Первичный ключ отношения (ОКП - Not Null)
Дочерняя сущность Дочернее отношение (+ атрибуты первичного ключа родительской сущности (FK - FOREIGN KEY ))
Устанавливаются классы принадлежности и свойства допустимости /недопустимости неопределенных значений у атрибутов, соответствующих внешнему ключу (если НКП – NULL, если OKП – NOT NULL).
Слайд 10

Свойства атрибутов отношения EMPLOYEE Column Code Type COUNT CH Varchar(30) Not

Свойства атрибутов отношения EMPLOYEE
Column Code Type
COUNT CH Varchar(30) Not Null
F NAME Varchar(30) Not

Null
L NAME Varchar(30) Null
NAME Varchar(30) Null
T NUM Int Not Null
Слайд 11

Преобразование взаимосвязанных сущностей СТУДЕНТ и ПРЕПОДАВАТЕЛЬ к взаимосвязанным отношениям STUDENT и PROFESSOR

Преобразование взаимосвязанных сущностей СТУДЕНТ и ПРЕПОДАВАТЕЛЬ к взаимосвязанным отношениям STUDENT и

PROFESSOR
Слайд 12

Правила преобразования связей

Правила преобразования связей

Слайд 13

Слайд 14

Слайд 15

Слайд 16

Слайд 17

ОДИН КУРС - ОДИН ПРЕПОДАВАТЕЛЬ, НО НЕТ ПРЕПОДАВАТЕЛЕЙ БЕЗ КУРСОВ (Обязательный

ОДИН КУРС - ОДИН ПРЕПОДАВАТЕЛЬ, НО
НЕТ ПРЕПОДАВАТЕЛЕЙ БЕЗ КУРСОВ (Обязательный КП):

В отношение с обязательным КП добавляется ключ сущности с необязательным КП как FK:
ПРЕПОДАВАТЕЛЬ(НП, НК (FK),ФИО,ТЕЛ)
КУРС(НК,НазвКурс)
Слайд 18

Слайд 19

Слайд 20

Если каждый преподаватель читает только один курс и каждый курс читается

Если каждый преподаватель читает только один курс и каждый курс читается

только одним преподавателем, но имеются курсы без преподавателей и преподаватели без курсов:
ПРЕПОДАВАТЕЛЬ(НП, ФИО, ТЕЛ)
КУРС(НК, НазвКурс)
Образуется новая сущность:
ПРЕП_КУРС(НП, НК)
Слайд 21

Слайд 22

Слайд 23

Слайд 24

ОДИН ПРЕПОДАВАТЕЛЬ ЧИТАЕТ МНОГО КУРСОВ, НО НЕ МОГУТ БЫТЬ КУРСЫ БЕЗ

ОДИН ПРЕПОДАВАТЕЛЬ ЧИТАЕТ МНОГО КУРСОВ, НО НЕ МОГУТ БЫТЬ КУРСЫ БЕЗ

ПРЕПОДАВАТЕЛЕЙ:
ЕСЛИ НЕ МОЖЕТ БЫТЬ КУРСОВ БЕЗ ПРЕПОДАВАТЕЛЕЙ - на стороне МНОГО (КУРС) ОБЯЗАТЕЛЬНЫЙ КП:
Ключ отношения ПРЕПОДАВАТЕЛЬ добавляется в отношение КУРС:
ПРЕПОДАВАТЕЛЬ(НП,ФИО,ТЕЛ)
КУРС(НК, НП (FK),НазвКурс)
Слайд 25

Слайд 26

Слайд 27

Слайд 28

ОДИН ПРЕПОДАВАТЕЛЬ – МНОГО КУРСОВ ЕСЛИ МОЖЕТ БЫТЬ КУРС БЕЗ ПРЕПОДАВАТЕЛЯ

ОДИН ПРЕПОДАВАТЕЛЬ – МНОГО КУРСОВ
ЕСЛИ МОЖЕТ БЫТЬ КУРС БЕЗ ПРЕПОДАВАТЕЛЯ (Т.Е.

НЕОБЯЗАТЕЛЬНЫЙ КП), ТО ОБРАЗУЕТСЯ СУЩНОСТЬ - СВЯЗКА:
ПРЕПОДАВАТЕЛЬ(НП,ФИО,ТЕЛ)
ПРЕП_КУРС(НП,НК)
КУРС(НК, НазвКурс)
Слайд 29

Слайд 30

Слайд 31

ОДИН ПРЕПОДАВАТЕЛЬ – МНОГО КУРСОВ и ОДИН КУРС – МНОГО ПРЕПОДАВАТЕЛЕЙ:

ОДИН ПРЕПОДАВАТЕЛЬ – МНОГО КУРСОВ и ОДИН КУРС – МНОГО ПРЕПОДАВАТЕЛЕЙ:
КП

не исследуется, образуется сущность – связка:
ПРЕПОДАВАТЕЛЬ(НП,ФИО,ТЕЛ)
ПРЕП_КУРС(НП,НК)
КУРС(НК, НазвКурс)
Слайд 32

Слайд 33

Пример преобразования инфологической модели в реляционную. Используем предметную область «Успеваемость студентов»

Пример преобразования инфологической модели в реляционную.
Используем предметную область «Успеваемость студентов» из

лабораторного практикума.
(Построим инфологическую модель «задним числом»)
Слайд 34

Сущности предметной области(на языке инфологического моделирования ЯИМ) Факультет (Код ф-та, Наименование,

Сущности предметной области(на языке инфологического моделирования ЯИМ)

Факультет (Код ф-та, Наименование, Декан)
Группа

(Код группы, Номер, Год создания)
Студент (Код студента, № зачетки, ФИО, Балл ЕГЭ, Дата рождения, Город)
Дисциплина (Код дисц-ны, Название, Часы)
Слайд 35

Связи между сущностями (на языке инфологического моделирования ЯИМ) Факультет-группа [Факультет 1,

Связи между сущностями (на языке инфологического моделирования ЯИМ)

Факультет-группа [Факультет 1, Группа М]
(Код

ф-та, Код группы)
Группа-студент [Группа 1, Студент М]
(Код группы, Код студента)
Студент-дисциплина [Студент М, Дисциплина N]
(Код студента, Код дисц-ны)
Слайд 36

Связь Факультет-группа является связью 1:М, так как на одном факультете может

Связь Факультет-группа является связью 1:М, так как на одном факультете может

учиться много групп, но каждая группа относится только к одному факультету. Класс принадлежности сущности Группа – обязательный, так как каждая группа должна относиться к какому-то факультету. Класс принадлежности сущности Факультет – необязательный, так как факультеты могут существовать независимо от наличия групп в них.
Слайд 37

Связь Группа-студент является связью 1:М, так как в одной группе может

Связь Группа-студент является связью 1:М, так как в одной группе может

учиться много студентов, но каждый студент учится только в одной группе. Класс принадлежности сущности Студент – обязательный, так как каждый студент должен относиться к какой-то группе. Класс принадлежности сущности Группа – необязательный, так как группы могут существовать независимо от наличия студентов в них.
Слайд 38

Связь Студент-дисциплина является связью М:М, так как каждый студент изучает много

Связь Студент-дисциплина является связью М:М, так как каждый студент изучает много

дисциплин, и каждая дисциплина изучается многими студентами. Класс принадлежности обеих сущностей – необязательный, так как не все студенты изучают некоторые дисциплины и не все дисциплины изучаются некоторыми студентами.
Слайд 39

Независимой сущности Факультет поставим в соответствие отношение Факультеты с теми же

Независимой сущности Факультет поставим в соответствие отношение Факультеты с теми же

атрибутами, что и у сущности. Первичный ключ сущности делаем первичным ключом отношения. Аналогичным образом преобразуем независимую сущность Дисциплина в отношение Дисциплины.
Слайд 40

Сущность Группа преобразуем в отношение Группы с теми же атрибутами и

Сущность Группа преобразуем в отношение Группы с теми же атрибутами и

первичным ключом. В соответствии с правилом 4 преобразования связей добавим в это отношение атрибут КодФакультета в качестве внешнего ключа. Аналогичным образом преобразуем сущность Студент в отношение Студенты, добавив в это отношение внешний ключ КодГруппы.
Слайд 41

В соответствии с правилом 6 для реализации связи Студент-дисциплина создадим новое

В соответствии с правилом 6 для реализации связи Студент-дисциплина создадим новое

отношение Оценки, содержащее в качестве внешних ключей первичные ключи отношений Студенты и Дисциплины. Добавим в это отношение атрибут связи Оценка для регистрации результатов экзаменов, сдаваемых студентами по различным дисциплинам.
Слайд 42

Реляционная модель БД

Реляционная модель БД

Слайд 43

Слайд 44

Слайд 45

Слайд 46

Пример нежелательной избыточности

Пример нежелательной избыточности

Слайд 47

Слайд 48

Слайд 49

Слайд 50

Вопросы по теме «Логическое проектирование БД» 1. Правила преобразования сущностей. 2.

Вопросы по теме «Логическое проектирование БД»
1. Правила преобразования сущностей.
2. Правила преобразования связей. Степень

связи 1:1. КП обоих сущностей обязательный.
3. Правила преобразования связей. Степень связи 1:1. КП одной сущности обязательный, другой – необязательный.
4. Правила преобразования связей. Степень связи 1:1. КП обеих сущностей необязательный.
5. Правила преобразования связей. Степень связи 1:М. КП сущности на стороне много – обязательный.
6. Правила преобразования связей. Степень связи 1:М. КП сущности на стороне много – необязательный.
7. Правила преобразования связей. Степень связи М:М.
8. Избыточное и не избыточное дублирование. Примеры.
9. Пример исключения избыточности.
10. Что такое аномалии в БД? Виды. В чем проявляются.
Слайд 51

Нормализация отношений Для устранения избыточности данных и исключения аномалий применяется нормализация

Нормализация отношений

Для устранения избыточности данных и исключения аномалий применяется нормализация

отношений – формальный метод анализа отношений на основе их первичных или потенциальных ключей и существующих функциональных зависимостей между атрибутами. При нормализации отношений они перегруппируются (производится декомпозиция отношений), так как при неправильной их группировке некоторые функциональные зависимости между атрибутами могут оказаться нежелательными из-за аномалий, которые они вызывают.
Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью увеличение производительности обработки данных или уменьшение физического объема данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в БД информации.
Слайд 52

Метод нормальных форм

Метод нормальных форм

Слайд 53

Функциональные зависимости

Функциональные зависимости

Слайд 54

Функциональные зависимости между атрибутами

Функциональные зависимости между атрибутами

Слайд 55

Слайд 56

Первая нормальная форма (1НФ) Процесс нормализации отношения всегда начинается с приведения

Первая нормальная форма (1НФ)

Процесс нормализации отношения всегда начинается с приведения

его в первую нормальную форму (1НФ) или с установки того факта, что оно уже находится в 1НФ.
Отношение находится в 1НФ, если на пересечении любой строки и любого столбца отношения всегда находится единственное атомарное значение. Другими словами, значения в домене каждого атрибута отношения не являются ни списками, ни множествами значений.
Определить понятие атомарности трудно. Значение, атомарное в одном приложении, может быть неатомарным в другом. Можно руководствоваться общим принципом, что значение не атомарно, если в приложении оно используется по частям.
Слайд 57

Пример приведения отношения в 1НФ

Пример приведения отношения в 1НФ

Слайд 58

Пример приведения отношения в 1НФ

Пример приведения отношения в 1НФ

Слайд 59