Иллюстрации_3_2_раздел

advertisement
III. СЕМАНТИЧЕСКИЕ МОДЕЛИ
ДАННЫХ
3.1. Принципы семантического
моделирования
Общий подход к проблеме семантического
моделирования
1. Прежде всего, попытаемся выявить некоторое множество
семантических концепций (понятий), которые могут быть
полезны при неформальном обсуждении реального мира.
2. Далее попытаемся определить набор соответствующих
символических (т.е. формальных) объектов, которые могут
использоваться для представления определенных ранее
семантических концепций.
3. Кроме того, следует определить набор формальных
общих правил целостности, предназначенных для работы с
такими формальными объектами.
4. Наконец, необходимо определить набор формальных
операторов, предназначенных для манипулирования этими
формальными объектами.
3.2. Модель данных «СущностьСвязь» (ER-модель)
3.2.1. Структуры
Структурные понятия ER-модели Чена
Множество сущностей (МСу) – E
Множество связей (МСв) – R
СЛУЖАЩИЙ
R  { e1 , e2 ,..., en | e1  E1  e2  E2  ...  en  En }
УПРАВЛЕНИЕ  { e1 , e2 | e1  СЛУЖАЩИЙ  e2  СЛУЖАЩИЙ}
Роль - r
R  {{r1 : e1 , r2 : e2 ,..., rn : en } | e1  E1  e2  E2  ...  en  En }
УПРАВЛЕНИЕ  {{Начальник : e1 , Подчиненный : e2} |
| e1  СЛУЖАЩИЙ  e2  СЛУЖАЩИЙ}
Множество значений (МЗн) – V
Атрибут - f
f : E V
f : R V
f : E  V1 V2  ... Vn
f : R  V1 V2  ... Vn
ЦПЧ или Строки
Фамилия: ПАЦИЕНТ -> Строки
Номер койки: РАЗМЕЩЕНИЕ -> ЦПЧ
Адрес: ПАЦИЕНТ -> Строки x ЦПЧ
Серия_Номер_Свидетельства: БРАК ->
ЦПЧ x ЦПЧ
ER-диаграмма медицинской ПрО (структурный аспект)
Больница
Больничная
палата
Штатный
врач
E
R
Больницалаборатория
Палата
Врач
Лаборатория
Персонал
палаты
Врачпациент
Обработка
анализа
Размещение
Персонал
Пациент
Диагноз
пациента
Диагноз
Анализ
пациента
Анализ
м
о
д
е
л
ь
C
H
E
N’
а
Проблема триализма в ER-модели
Выбирая форму данных, помните о возможном
триализме явлений моделируемого мира. Так, брак
между людьми можно представлять себе как атрибут,
множество связей или множество сущностей.
Проектируя схему БД, необходимо сделать выбор в
пользу одного из этих представлений. При этом
можно использовать следующие соображения.
Если вам достаточно информации о том, состоит
человек в браке или нет, можно рассмотреть это
явление как атрибут множества сущностей ЧЕЛОВЕК.
Если вас к тому же интересует, с кем конкретно
заключен брак, необходимо трактовать БРАК как
множество связей между сущностями множества
ЧЕЛОВЕК. И, наконец, если вам потребуется
формулировать высказывания по поводу этого
явления
(о
наличии
у
него определенных
характеристик или связей), нужно использовать
самостоятельное множество сущностей БРАК.
Проблема триализма в ER-модели
Атрибут
ЧЕЛОВЕК (…,Замужем/Женат?,…)
– множество сущностей
Связь
ЧЕЛОВЕК – множество сущностей
БРАК (Муж, Жена) – множество
связей
Человек
Человек
Замужем/Женат?
Истина
Ложь
Сущность
ЧЕЛОВЕК – множество сущностей
БРАК – множество сущностей
РОЖДЕНИЕ_В_БРАКЕ –
множество связей
МУЖ - множество связей
ЖЕНА - множество связей
Ребенок
Муж
в браке
Рождение
в браке
Человек
Муж
Жена
Брак
Семья
Брак
Жена
в браке
Разновидности множеств связей
Служащий
Начальник
Подчиненный
Управление
Человек
Человек
Родитель
Ребенок
Отец
Ребенок
Рождение
Рождение
Врач
Направление
на анализ
Анализ
Консультация
Пациент
Лечащий
врач
Постановка
диагноза
Диагноз
Мать
E
R
м
о
д
е
л
ь
C
H
E
N’
а
Разновидности атрибутов
Целые
положительные
числа
Рег. номер
Номер
медицинского
полиса
Адрес
Фамилия
Строки символов
алфавита
Пациент
м
о
д
е
л
ь
Пол
Дата рождения
Даты
Палата
Размещение
Лаборатория
Номер койки
Целые
положительные
числа
Телефон
M
Пациент
E
R
Телефоны г.
Томска
C
H
E
N’
а
Экстенсионал БД в форме графа
Множества сущностей
Роли
Множества связей
Атрибуты
Множества значений
Наименование
Реанимационная
e1
Палата
Номер палаты
Содержать
пациента
r=<e1,e2>
Лежать в
палате
Размещение
Строки символов
Число
коек
Номер койки
111
e2
Пациент
1
Целые числа
Экстенсионал БД в форме таблиц
М
н
о
ж
е
с
т
в
о
с
у
щ
н
о
с
т
е
й
Атрибуты
Номер палаты
Наименование
Число коек
ПАЛАТА
Целые числа
Строки символов
Целые числа
e1
111
Реанимационная
1
e5
555
Послеоперационная
2
...
...
...
...
Сущности
Содержать пациента
М
н
о
ж
е
с
т
в
о
Лежать в палате
РАЗМЕЩЕНИЕ
с
в
я
з
е
й
Номер койки
ПАЛАТА
ПАЦИЕНТ
Целые числа
e1
e2
1
e5
e10
1
...
...
...
Метасхема ER-модели
Атрибут
множества
сущностей
(0,M)
Множество
значений
часть
(0,M)
(0,M)
Множество
сущностей
целое
(0,M)
(0,M)
Атрибут
множества
связей
(0,M)
Агрегация
(1,1)
(0,M)
Роль
(1,M)
(1,1)
Множество
связей
3.2.2. Ограничения целостности
1) Ограничения целостности на значения атрибутов
Множество допустимых значений атрибутов можно
задавать:
1) указанием соответствующего множества значений
Фамилия: ПАЦИЕНТ -> Строки
Номер койки: РАЗМЕЩЕНИЕ -> ЦПЧ
2) сравнением с константой или значением атрибута
(возможны более сложные выражения)
Назначенное время (a) < 24, где a  АНАЛИЗ
3) перечислением значений
Пол (a)  {‘м’, ‘ж’}, где a  ПАЦИЕНТ
4) более сложным логическим выражением, включающим
в виде атомов конструкции 2 – 3
Назначенное время (a) >= 0 AND
Назначенное время (a) < 24, где a  АНАЛИЗ
2А) Ограничения целостности на отображения между
атрибутами одного множества сущностей или связей
Ключ сущности
1:1
Множество
сущностей
ПАЦИЕНТ
Регистрационный
номер
Множество
значений
ЦПЧ
Множество
сущностей
ПАЦИЕНТ
1:M
Кличка
Множество
значений
СТРОКИ
Уникальная идентификация связи
Врач
Палата
Врачпациент
Размещение
Пациент
Пациент
по всем сущностям,
в ней участвующим
по одной сущности типа ПАЦИЕНТ или
по сущности типа ПАЛАТА и значению атрибута связей
Номер койки
Пациент
Человек
Анализ
пациента
Муж
Жена
Брак
Анализ
по одной сущности
типа АНАЛИЗ
по одной сущности типа ЧЕЛОВЕК в роли Муж или Жена и
значению атрибута связей Дата регистрации брака или
по значению атрибута связей Серия и Номер Свидетельства
2Б) Ограничения целостности на отображения между
множествами сущностей в контексте множества связей
Служащий
Человек
1
M
Начальник
Подчиненный
2
M
Родитель
Ребенок
Врач
1
M
M
Ребенок
Отец
1
1
1
M
Консультация
Е
Постановка
диагноза
Лечащий
врач
M
M
M
M
Анализ
Мать
Е
Рождение
M
M
Е
Направление
на анализ
1
M
Пациент
1
1
Е
Рождение
Управление
Человек
1
1
M
1
Диагноз
M
Полная ER-диаграмма медицинской предметной области
1
Больница
M
1
ID
Больничная
палата
Штатный
врач
Палата
Больницалаборатория
M
M
1
N
Врач
1
Лаборатория
M
Персонал
палаты
1
E
Обработка
анализа
Врачпациент
Размещение
M
Персонал
N
M
Пациент
1
E
Диагноз
пациента
M
Диагноз
E
R
1
E
Анализ
пациента
M
M
Анализ
м
о
д
е
л
ь
C
H
E
N’
а
3.2.3. Операции
Операции навигационного языка
1) Создание сущностей (с возможностью задания экземпляров
атрибутных отображений)
2) Изменение сущностей (изменение экземпляров атрибутных
отображений)
3) Удаление сущностей
4) Создание связей (с указанием сущностей для всех ролей и
экземпляров атрибутных отображений)
5) Изменение связей (изменение экземпляров атрибутных
отображений)
6) Удаление связей
7) Селекция сущности по указателю текущей
8) Селекция связи по указателю текущей
9) Селекция сущности по указателю текущей и по данным
10) Селекция связи по указателю текущей и по данным
11) Селекция сущности по указателю текущей и по связи
12) Селекция связи по указателю текущей и по связи
13) Селекция сущности по указателю текущей, по данным и по
связи
14) Селекция связи по указателю текущей, по данным и по связи
15) Выборка значений атрибутов для текущей сущности или связи
Спецификационный язык
CABLE (ChAin Based LanguagE)
<Множество сущностей>
[.] [<Условие>]
<Множество связей>
1. Получить фамилии врачей-окулистов
OUTPUT ВРАЧ.Фамилия
SELECT ВРАЧ.Специальность = ‘окулист’
2. Получить фамилии пациентов, лежащих в больнице Святой
Елены.
OUTPUT ПАЦИЕНТ.Фамилия
SELECT БОЛЬНИЦА.Название = ‘Святая Елена’ / ПАЛАТА
3. Получить фамилии и специальности врачей, у которых есть
пациенты больницы Святой Елены, выполнявшие анализы в
лаборатории «Друг желудка».
OUTPUT ВРАЧ.Фамилия, Специальность
(SELECT БОЛЬНИЦА.Название = ‘Святая Елена’ / ПАЛАТА /
ПАЦИЕНТ)
 (SELECT ЛАБОРАТОРИЯ.Название = ‘Друг желудка’ /
АНАЛИЗ / ПАЦИЕНТ)
3.2.4. Назначение ER-модели
Критерии качества семантической модели
1. Модель должна обладать достаточной общностью и
ясностью для того, чтобы в ней можно было легко
представить любые явления и законы моделируемого
мира.
2. Разрыв между этой моделью и моделями,
реализуемыми в СУБД, не должен быть большим,
желательно, чтобы можно было воспользоваться
максимально формальными правилами
преобразования структур и ограничений целостности
из одной модели в другую.
3.2.5. Модификации ER-модели
Чена
Общая схема модификаций ER-модели Чена
ER-модель Чена
+
Специализации и категоризации
=
Enhanced ER-модель (EER-модель)
Множества связей степени больше 2
Атрибуты множеств связей
Многозначные атрибуты
Атрибутивные отображения в декартово произведение множеств
значений
=
ER-модель Баркера (Oracle Designer)
Бинарные множества связей типа M:N
Представление связей с помощью внутрисистемных указателей
(необходимо дублировать атрибуты множеств сущностей)
=
ER-модель IDEF1X (ERWin)
Модификации ER-модели
ER-модель
Чена
ции
св
яз
ст
в
мн
ож
е
Ат
ри
бу
ты
а
тв
с
же :N
о
н M
м па
е
ы ти
н
й
а р я зе
н
Би св
и
изаци
р
о
г
е
К ат
Ат
ри
Де бути
ка
рт вны
мн ов е о
ож о п то
ес ро бра
тв
и
зн звед жени
ач
е н е ни я в
ий е
с х
ты
ей ы
бу
яз мн
ри
св сте
ат
е
ие си
ны
ен ри ей
ач
вл ут ел
зн
та вн ат
го
дс ю аз
но
ре щь ук
М
П
мо
по
й
зе у х
я
в
в
а с ше д
в
ст л ь
е
ож и бо
н
М ен
еп
ст
EERмодель
ей
С пе ц
иализ
а
ER-модель
Баркера
ER-модель
IDEF1X
Специализации и категоризации
1. Специализации и категоризации являются традиционной естественной формой
представления информации для человека.
2. Специализация предполагает перенос определений некоторых атрибутов и
множеств связей на уровень суперкласса, благодаря этому фиксируется важная
информация о том, что данные атрибуты и типы связей имеют смысл не только
для экземпляров конкретного подкласса, но и для суперкласса в целом, а, значит, и
для всех остальных его подклассов.
3. Специализации и категоризации позволяют исключить дублирующие
определения атрибутов и множеств связей для «родственных» множеств
сущностей, в результате чего удается избежать некоторых ошибок и сократить
время, затрачиваемое на проектирование.
4. Процесс семантического моделирования зачастую ведется в терминах
различных абстракций одного и того же объекта (например, конкретный
человек может быть представлен и сущностью типа ВРАЧ, и сущностью типа
ПАЦИЕНТ одновременно), а специализации и категоризации позволяют в таких
случаях восстановить целостность объекта реального мира.
5. Выделение подкласса в процессе специализации является своего рода
гарантией применимости связей и значений атрибутов только к тем сущностям,
для которых они актуальны.
6. Специализация призвана упростить процесс моделирования, позволяя
постепенно увеличивать сложность схемы, в то время как генерализация
предоставляет проектировщику возможность работать с большими схемами,
выбирая различные уровни абстракции.
Ограничения целостности на специализации и
категоризации
На специализации могут быть наложены ограничения.
Первое ограничение называется ограничением непересечения. Оно
гласит, что если подклассы некоторой специализации не пересекаются, то
каждый объект может быть представлен сущностью только одного из
подклассов данной специализации. Если подклассы специализации
пересекаются, один объект может быть представлен сущностями сразу
нескольких подклассов специализации.
Второе ограничение специализации называется ограничением участия,
оно может быть полным или частичным. Специализация с полным
участием означает, что каждый объект, представленный сущностью
суперкласса, должен быть представлен сущностью хотя бы одного
подкласса этой специализации. Специализация с частичным участием
означает, что объект, представленный сущностью суперкласса, не
обязательно должен быть представлен сущностью какого-либо подкласса
этой специализации.
Категоризация может быть дополнительно детализирована с учетом
полного или частичного участия объектов суперклассов в категории. При
полном участии каждый объект всех суперклассов должен быть
представлен сущностью данной категории. При частичном участии это
ограничение устраняется, и всем объектам всех суперклассов иметь
сущности данной категории не обязательно.
Специализации на ER-диаграмме
Врач
d
o
U
Терапевт
U
Хирург
U
U
Окулист
Практикант
U
E
E
R
U
Стажер
Профессионал
Категоризация на ER-диаграмме
Физическое лицо
(гражданин)
Юридическое лицо
(организация)
U
U
Субъект права
Административнотерриториальное
образование
м
о
д
е
л
ь
Сравнение частичной категоризации и полной
непересекающейся специализации
Физическое лицо
(гражданин)
Юридическое лицо
(организация)
Административнотерриториальное
образование
E
E
R
U
U
м
о
д
е
л
ь
Субъект права
Субъект права
d
U
Физическое лицо
(гражданин)
U
Юридическое лицо
(организация)
U
Административнотерриториальное
образование
Метасхема EER-модели
Агрегация
Атрибут
множества
связей
(0,M)
(0,M)
Множество
связей
(1,1)
Атрибут
множества
сущностей
часть
(0,M)
Роль
целое
(0,M)
(0,M)
Множество
значений
(0,M)
(1,M)
(0,M)
Подкласс
(0,M)
Специализация
Множество
сущностей
(1,1)
(1,1)
Суперкласс
(0,M)
(1,M)
(1,M)
Суперкласс
(0,M)
(1,1)
Подкласс
(0,1)
Категоризация
ER-диаграмма медицинской предметной области
в нотации Баркера (Oracle Designer)
Сгенерированная реляционная схема
медицинской предметной области (Oracle Designer)
ER-диаграмма медицинской предметной области
в нотации IDEF1X (Design/IDEF)
Download