- •Базы данных
- •Основные понятия
- •Основные определения
- •Связи и ассоциации
- •Связи и ассоциации
- •Модель сущность-связь
- •Модель сущность-связь
- •Преобразование модели «сущность- связь» в реляционную модель данных
- •Преобразование модели «сущность- связь» в реляционную модель данных
- •Преобразование модели «сущность- связь» в реляционную модель данных
Базы данных
Модель сущность-связь
Основные понятия
Порядок создания концептуальной модели базы данных:
1)Словесное описание
2)Инфологическая (логическая) модель
3)Формирование реляционной модели
Инфологическая модель – формализованное логическое описание предметной области, не зависящее от конкретной СУБД
Один из способов – «Модель сущность-связь» (Entity-Relationship, ER). Автор Чен (Chen), 1976 год.
Для ER-модели имеются CASE-средства
Основные определения
Сущность – класс однотипных объектов. Он имеет набор атрибутов
Атрибут – характеристика, определяющая свойство экземпляра сущности
Ключевой набор атрибутов – набор атрибутов, однозначно идентифицирующий экземпляр сущности
|
|
Студент |
Студент |
|
номер зач. |
номер зач. |
|
имя |
имя |
|
фамилия |
фамилия |
|
|
|
|
|
Связи и ассоциации
Связь – указывает как экземпляры сущностей соотносятся или взаимодействуют друг с другом
Тип связи (ассоциация) – обобщение связей между экземплярами сущностей
Дочерняя сущность (слабая сущность) – это сущность, которая зависит от другой сущности
Родительская сущность (сильная сущность) – это сущность, которая не зависит от другой сущности
Дипломник Руководитель Дипломник Руководитель
Студент |
Преподаватель |
|
Студент |
0..1 |
Преподаватель |
|||
|
|
|
|
0..* |
|
|
|
|
|
Руководит |
|
0..* |
0..* |
Руководит |
|
0..* |
0..* |
Слушатель |
Лектор |
|
|
|
||||
|
Слушатель |
|
|
|
||||
|
|
Читает лекции |
Лектор |
|||||
Учащийся |
|
|
|
|
|
|
||
|
Читает лекции |
Сотрудник |
Учащийся |
|
|
|
Сотрудник |
|
|
вуз |
|
вуз |
|
|
|
||
|
|
|
1 |
1 |
|
|
||
|
|
|
|
|
|
|
Связи и ассоциации
Множественность (кардинальность) ассоциации – описывает количество возможных связей между экземплярами сущностей, участвующих в ассоциации. Множественность может принимать значения: 1:1, 1:N, 0..1:N, N:M и другие.
Обязательная связь со стороны некоторой сущности – экземпляры сущности не могут существовать без родительской сущности. Т.е. для экземпляра данной сущности участие в ассоциации является обязательным. (кардинальность ассоциации 1:1, 1:N, 1...N:M)
Не обязательная связь со стороны некоторой сущности – экземпляр сущности может существовать самостоятельно. (кардинальность ассоциации 0..1:1, 0..1: N, 0..N:M)
Необязательная ассоциация |
Обязательная ассоциация |
Модель сущность-связь
Дефекты связей
Дефект «разветвление»: имеет место тогда, когда модель отображает связь между сущностями, но путь между отдельными сущностями определен не однозначно (две и более ассоциации 1:N исходят из одной сущности)
Студент
Студент
|
Факультет |
|
|
|
1 |
|
1 |
|
|
|
* |
Кафедра |
||
* |
|
|
||
|
|
|
||
|
|
|
|
|
|
|
Кафедра |
|
|
|
|
1 |
|
|
|
|
* |
|
|
* |
|
|
|
|
|
|||
|
|
|
|
||
1 |
Факультет |
||||
|
|||||
|
|
|
|
|
|
Неопределенность |
|||
|
|
|
|
|
Иванов |
|
|
|
ВТ |
|
ФИПМ |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Петров |
|
|
|
ИСИМ |
Иванов |
|
|
|
|
|
|
ВТ |
|
|
||
|
|
|
|
||
|
|||||
|
|
|
ФИПМ |
||
|
|
|
|
||
|
|
|
|||
Петров |
|||||
|
ИСИМ |
|
|
||
|
|
|
|||
|
|
|
|||
|
|
|
|
|
Модель сущность-связь
Дефект «разрыв»: имеет место тогда, когда предполагается связь между сущностями, но нет пути между экземплярами этих сущностей.
Дефект возникает, если существует одна или несколько связей с минимальной кратностью, равной нулю (которая обозначает необязательное участие), и эти связи составляют часть пути между взаимосвязанными сущностями. Дефект устраняется введением недостающей ассоциации
|
|
|
|
Группа |
|
|
|
|
|
|
|
|
|
|
|
Разрыв |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов |
|||||||||
Факультет |
1 |
* |
|
0..1 |
* |
Студент |
|
|
ФИПМ |
|
|
ВТ-100 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|||||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Петров |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Группа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов |
|
|||
Факультет |
|
|
|
|
|
Студент |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
1 |
* |
|
0..1 |
* |
|
ФИПМ |
|
|
ВТ-100 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Петров |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Преобразование модели «сущность- связь» в реляционную модель данных
1)Каждой сущности ставится в соответствие отношение
2)Атрибуты сущностей становятся атрибутами отношений
3)Ключевые атрибуты становятся первичными ключами отношений
4)Для ассоциаций 1:N в каждое отношение, соответствующее подчиненной сущности, добавляется внешний ключ к родительской сущности
5)Для ассоциаций N:M вводятся дополнительные отношения (связующие таблицы), в которые входят внешние ключи к ассоциированным отношениям. Эти внешние ключи вместе образуют первичный ключ таблицы связи
6)Для моделирования необязательного типа связи у атрибутов внешнего ключа устанавливают свойство допустимости неопределенного значения
Преобразование модели «сущность- связь» в реляционную модель данных
Пример: библиотека
Модель «сущность-связь»
Publication |
|
|
|
|
|
|
Exemplar |
||
|
|
|
||
isbn |
1 |
* |
||
|
||||
inv |
||||
title |
||||
|
|
date_out |
||
author |
|
|
||
|
0..* |
|||
* |
|
|||
|
|
|
||
* |
|
0..1 |
||
|
|
|||
Catalog |
|
|
Reader |
|
code |
|
|
|
|
|
|
reader_id |
||
field |
|
|
name |
|
|
|
|
|
Реляционная модель
Publication
PK isbn title author
PublicationCatalog
PK FK isbn
PK FKcode
Catalog
PK code field
Exemplar
PK inv FK isbn
FK reader_id NULL date_out
Reader
PK reader_id name
Преобразование модели «сущность- связь» в реляционную модель данных
Концептуальная схема базы данных «Библиотека»
Publications = <isbn, title, author>
(ISBN – уникальный код издания, название, автор)
Readers = <reader_id, name>
(номер читательского билета, фамилия читателя)
Exemplars = <inv, isbn, reader_id, date_out> (инвентарный номер – естественный первичный ключ, ISBN издания, номер читательского билета, дата выдачи)