Преимущества использования SQL 4 страница
Алгоритм построен таким образом, что некоторое отношение (будем называть его анализируемым) последовательно сравнивается с множеством других, уже включенных в базовую КИМПО отношений (будем называть их исследуемыми).
2 Значение коэффициента (2) рассчитано для случая lt=5lk.
3.1. Содержательный (неформализованный) алгоритм связывания отдельных отношений в КИМПО
а) Предварительный этап
Отношения разбиваются на классы с равным числом атрибутов в ключе отношения.
б) Связывание отношений первого класса с отношениями других классов
Для каждого отношения первого класса (анализируемое отношение) проводим анализ на связуемость с отношениями других классов (исследуемые отношения) последовательно, начиная со второго класса.
1. Если ключ очередного исследуемого отношения является расширением ключа анализируемого отношения первого класса, то фиксируем между ними в таблице 6 связь типа иерархия, в котором старшим является отношение из первого класса.
2. Если среди неключевых атрибутов исследуемого отношения есть атрибут, сопоставимый атрибуту ключа исследуемого отношения, то фиксируем между ними в таблице 6 связь типа комментарий, в котором псевдостаршим является анализируемое отношение.
в) Связывание отношений i-го класса (i > 2) с отношениями i + к класса
Для каждого отношения i-ro класса (анализируемого отношения) проводим анализ на связуемость с отношениями i + 1 класса (исследуемые отношения), затем с отношением i + 2 класса и т.д. Затем аналогично проводим анализ отношений i + 1 класса со всеми последующими классами, i + 2-го и т.д.
Если ключ очередного исследуемого отношения является расширением ключа анализируемого, то фиксируем между ними связь типа иерархия, в котором старшим является анализируемое отношение.
Если ключи исследуемого и анализируемого отношений пересекаются (связь типа группировка), то проверяется, установлена ли связь анализируемого с отношением, имеющим ключ, совпадающий с выявленным пересечением ключей. Если да, то аналогичная связь устанавливается и с исследуемым отношением, если нет, то необходимо сформировать, аналогично ситуации в б), виртуальное отношение, зафиксировать в таблице 6 иерархическую связь с ним исходных отношений как со старшим, включить его в состав исследуемых и провести анализ его связуемости с другими отношениями в соответствии с в).
г) В каждом из блоков а), б), в) после проверки ключевых атрибутов проверяется наличие по крайней мере сопоставимых (соподчиненных, совпадающих) неключевых атрибутов в анализируемом и исследуемом отношениях и, если таковые есть, проверяется, есть ли в первом классе отношения с атрибутом ключа, сопоставимым с выявленным.
Если такое отношение есть, то с ним фиксируется связь типа комментарий с псевдостаршим по отношению к исходным отношениям.
Если такового отношения в первом классе нет, то фиксируется виртуальное отношение с ключом, состоящим из одного атрибута, домен которого равен объединению доменов анализируемых атрибутов исходных отношений, фиксируется его связь с последними как псевдостаршего в комментарии и проводится его анализ с другими отношениями в соответствии с а).
д) Приведенный алгоритм выявляет все возможные связи, в то время как для наглядного отображения концептуальной модели следующие связи являются несущественными, загромождающими изображение:
• иерархические связи между несмежными элементами ветви в иерархии;
• совпадающие связи с другими отношениями тех отношений, которые связаны между собой по типу соединение.
Поэтому помечаем как несущественные (транзитивные) связи между отношениями, удовлетворяющими следующим условиям.
Если между отношением R1 с ключом К1 установлена связь типа иерархия с отношением R2 с ключом (Kl, К2), и связь отношения R2 с отношением R3 с ключом (Kl, К2, КЗ) также связь типа иерархия и между отношениями R1 и R3 также установлена связь типа иерархия, то последняя может быть помечена как несущественная (транзитивная).
Если между отношением R1 и R2 установлена связь типа соединение, то связи одного из них (соподчиненного или с меньшей мощностью домена) можно пометить как несущественные.
Следует заметить, что связи, несущественные с точки зрения иллюстрации концептуальной модели, могут быть обязательными при отображении концептуальной модели в модель БД конкретной СУБД (т.к. на основе связей формируются ограничения ссылочной целостности).
4.1.2. Модели, используемые в концептуальном проектировании
В настоящее время все существующие модели данных, используемые в концептуальном проектировании, можно отнести к 2 семействам [16]:
—1 ER-модели.
—1 OR-модели.
Широкое применение этих моделей данных подтверждается фактами их использования в наиболее известных CASE-системах для информационного моделирования: Oracle Designer, Computer Associates All Fusion ERwin Data Modeler, Sybase Power Designer, IDS Prof. Scheer ARIS, Microsoft Visio и др.
4.1.2.1. ER-модель
ER-модель (Entity-Relationship - сущность-связь) опирается на понятия сущность, атрибут, связь, и ПрО должна быть представлена как совокупность сущностей с атрибутами, между которыми установлены связи.
Под сущностью понимаем имеющее особый смысл, существующее в действительности или воображаемое явление или объект, информация о котором подлежит запоминанию или выяснению. Примерами сущности для ПрО вуз являются Абитуриент, Студент, Аспирант, Преподаватель, Помещение, Документ. Имя сущности может представлять тип или класс объекта, но не конкретное значение. Например, сущностью является Студент, которая представляет собой всех студентов вуза, а один из них, Иванов Иван Иванович является не сущностью, а конкретной реализацией этой сущности.
Атрибутом назовем любое свойство, позволяющее квалифицировать, идентифицировать, классифицировать, измерять сущность или выражать ее состояние либо любое описание объекта или явления. Атрибут служит для описания одной сущности и только той, под которой он подписан. Атрибут может иметь текстовую, числовую, графическую форму, он может быть получен в результате функционирования органов чувств (осязания, обоняния и т.п.). Поскольку нас интересует обработка информации, сконцентрируем внимание на текстовых и числовых атрибутах. Например, атрибутами сущности Студент являются ФИО, номер группы, номер зачет, книжки, дата зачисления и др.
Иногда атрибут может стать сущностью, если он представляет самостоятельный объект или явление со своими собственными связями и атрибутами (например, атрибут адрес у сущности Личность, представленный в виде текстового поля, может быть трансформирован в сущность Адрес с атрибутами страна, регион, нас. пункт, улица, номер дома, квартира).
Связью является поименованное отношение, имеющее место между двумя сущностями. Такая связь является бинарной в том смысле, что она имеет место между ровно двумя поименованными сущностями или же имеет вид отношения сущности к самой себе. Каждая связь имеет два конца, каждый из которых обладает:
- именем
- степенью / мощностью
- признаком обязательности.
Эти свойства используются для характеристики связи по отношению к каждой из участвующей в ней сторон.
Каждая сущность должна иметь уникальный идентификатор, т.е. должна быть уникально определена: каждый экземпляр (вхождение) сущности должен иметь ясное и недвусмысленное определение, позволяющее отличать его от других экземпляров (вхождений) той же сущности. Уникальным идентификатором может быть атрибут, комбинация атрибутов, комбинация связей или атрибутов и связей. Например, уникальным идентификатором для сущности Студент является атрибут № зачетной книжки.
Каждый атрибут должен быть определен на конкретном домене. Доменом называется совокупность правил проверки соответствия, форматных ограничений и других свойств (характеристик), присущих группе атрибутов.
Например:
* список значений
* диапазон
* уточненный перечень значений или диапазон
* любая комбинация из вышеперечисленного.
Атрибуты из одного домена подчиняются общему набору ограничений. Домены не принято представлять на схемах.
На сегодняшний день существуют несколько нотаций для представления ER-моделей:
1. нотация Чена: сущность изображается прямоугольником, атрибут - овалом, соединенным со своей сущностью (идентифицирующий атрибут подчеркнут), а связь - ромбом, соединенным со связываемыми сущностями. Вид линии в месте соединения с сущностью определяет кардинальность связи («воронья лапка» - М, «крест» - 1). Имена сущности, атрибута и связи располагаются внутри их изображений (рис. 4.7).
Рис. 4.7. Пример ER-модели в нотации Чена |
2. нотация Мартина: сущность изображается прямоугольником, внутри которого указано ее имя жирным шрифтом и список ее атрибутов (идентифицирующий атрибут подчеркнут), а связь - линией, название которой располагается над ней и ее вид в месте соединения с сущностью определяет кардинальность связи («воронья лапка» - М, «крест» - 1) (рис. 4.8).
Студент № зачетки ФИО дата рождения | учится в Ч | Группа № группы год основания кафедра |
? |
Рис. 4.8. Пример ER-модели в нотации Мартина |
3. нотация Баркера: сущность изображается прямоугольником, внутри которого указано ее имя жирным шрифтом и список ее атрибутов (перед идентифицирующим атрибутом стоит #), а связь - линией, название которой располагается над ней и ее вид в месте соединения с сущностью определяет кардинальность связи («воронья лапка» - М, отсутствие - 1) (рис. 4.9).
Студент #№ зачетки ФИО дата рождения | учится в ч | Группа #№ группы год основания кафедра |
? |
Рис. 4.9. Пример ER-модели в нотации Баркера |
4. нотация IDEF1X: сущность изображается прямоугольником, атрибут - овалом, соединенным со своей сущностью, а связь - ромбом, соединенным со связываемыми сущностями. Имена сущности, атрибута и связи располагаются внутри их изображений (рис. 4.10).
№ зачетки | УЧИТСЯ в |
ФИО | |
дата рождения |
Студент Группа |
№ группы год основания кафедра |
Рис. 4.10. Пример ER-модели в нотации IDEF1X |
5. нотация Бахмана: сущность изображается таблицей из одного столбца, столбцы которой являются атрибутами сущности (идентифицирующий атрибут выделен жирным шрифтом), а связь - стрелкой, соединяющей таблицы, направление которой указано на стороне М (рис.4.11).
Группа
|
Студент г | ||||
№ зачетки | ФИО | Дата рождения | № группы | |
Рис. 4.11. Пример ER-модели в нотации Бахмана |
Допустимые виды связей в ER-модели
Рассмотрим, какие возможны виды связей в ER-модели в зависимости от степени мощности и обязательности связей, полученные в методике Р. Баркера CASE*Method [11].
Многие к одному - 1:М или М:1