Лекция 6 ИНФОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ

План лекции

1. ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗЫ ДАННЫХ

2. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ИНФОЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ

1. ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗЫ ДАННЫХ

Жизненный цикл информационной системы включает 3 основные стадии: проектирование, программную реализацию, эксплуатацию.

На стадии проектирования ИС проектировщик выполняет следующую работу.

1. Обследует предметную область автоматизации (результат -"Техни-ческое задание").

2. Определяет объекты и перечень их атрибутов, для каждого объекта выделяет первичные ключи.

3. Устанавливает все структурные, иерархические связи между объектами и все запросные связи, обеспечивающие обработку всех запросов пользователей к БД. Чертит схему проекта со всеми объектами и связями.

4. Выбирает технологию обслуживания ИС, т.е. определяет порядок сбора, хранения данных в БД, частоту форматы ввода-. вывода данных, правила работы всех групп пользователей.

5. Выбирает ЭВМ и инструментальные средства (конкретную СУБД) для реализации.

6. Проверяет корректность проекта.

7. Определяет сроки реализации ПС. На стадии программной реализации необходимо выполнить следующее.

* Описать средствами СУБД и ввести в ЭВМ схемы всех отношений.

* Разработать интерфейсы пользователей с БД (экранные формы для ввода и отображения данных; способы обращения и доступа к данным БД; размеры, состав порций одновременно отображаемых на экране данных и др.).

* Разработать программное обеспечение ПС для всех приложений.

* Заполнить ИС контрольными данными и отладить ее.

* Провести тестирование системы и скорректировать технологию ее обслуживания.

* Составить необходимые инструкции по системе и обучить пользователей.

Стадия эксплуатации начинается с наполнения системы реальными данными, после чего происходят непосредственно использование ИС, поддержание ее функционирования. Возможно совершенствование системы и разработка новых приложений в случае развития и изменения предметной области автоматизации. Процесс проектирования БД - это итеративный процесс проектирования отображения "Описание проблемной области - схема внутренней модели данных" (рис. 3.1).

Рис. 3.1. Этапы проектирования БД

Задача инфологического этапа - получение семантических (смысловых) моделей, отражающих информационное содержание ПРОБЛ Определяются объекты, их свойства и связи, которые (будут существенны для будущих пользователей системы. Знания о ПРОБЛ представляются в какой-либо языковой системе, например, с использованием естественного языка, математических формул, диаграммы связей и т.д. Выполняется структуризация знаний о предметной области: выделяются и классифицируются множества составляющих ПРОБЛ, стандартизуется терминология. Затем описываются запросы пользователей к БД. Каждый запрос соотносится с определенным фрагментом ПРОБЛ. Формируются описания внешних инфологических моделей, их взаимная увязка с концептуальной инфологической моделью без привязки к конкретной СУБД.

Задача логического этапа проектирования - организация вы- деленных ранее данных в форму, принятую в выбранной СУБД. Здесь требуется разработать схему концептуальной модели и схемы внешних моделей данных о ПРОБЛ, пользуясь только теми типами моде- лей данных и их особенностями, которые поддерживаются выбранной СУБД.

Задача физического этапа проектирования - выбор рациональной структуры хранения данных и методов доступа к ним, исходя из арсенала методов и средств, который предоставляется разработчику системой.

2. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ИНФОЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ

Инструментальные средства, предназначенные для инфологического моделирования, должны удовлетворять следующим требованиям:

- инфологическая схема должна содержать все сведения о ПРОБЛ, необходимые для выполнения последующих этапов проектирования (включая количественные параметры, требования процессов обработки информации и пр.);

- инфологическая модель ПРОБЛ должна легко преобразовываться в модели баз данных для распространенных СУБД. Разрыв между возможностями этих моделей не должен быть настолько велик, чтобы возникли трудноразрешимые проблемы при их реализации;

- язык спецификаций (характеристик атрибутов) должен быть понятен заказчику и не содержать параметры реализации ИС.

Исходя из этих требований, целесообразно использовать в инфологическом проектировании модель типа "объекты - связи" (в другой терминологии "сущность - связи"). Такая модель определяется в терминах: атрибут, объект(сущность), связь (структурная или запросная),

Объект - собирательное понятие (сущности, процесса, явления о котором необходимо хранить информацию в системе. Тип объекта определяет поименованный набор однородных объектов, а экземпляр объекта - конкретный объект в наборе.

Атрибут - поименованная характеристика объекта, его свойство. Обычно атрибут - логически неделимый элемент структуры информации. Свойства объекта могут быть локальными (не зависят от связей с другими объектами) и реляционными (зависят от связей с другими объектами).

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

Под структурной связью понимают иерархическое отношение между объектами двух типов: владельцем и подчиненным. Экземпляр структурной связи представляется одним экземпляром владельца и множеством связанных с ним экземпляров подчиненного объекта.

Структурные связи устанавливают отношения подчиненности между объектами н определяют возможную навигацию между ними. Связь между объектами в зависимости от числа входящих в нее объектов характеризуется степенью: п = 2,3,.., к (бинарная, тернарная,..., К - арная).

Процессы над объектами предметной области задаются с помощью запросных связей. Запросная связь есть операция, на входе которой используется по одному экземпляру каждого исходного объекта, а на выходе - соответствующее подмножество экземпляров конечного объекта. Если количество исходных объектов в запросной связи равно единице, то она называется одномерной, а иначе- многомерной, Например, процесс состояний в выборке множества сотрудников заданной организации, может быть описан одномерной запросной связью ОРГАННЗАЦИЯ-?СОТРУДНИК.

Широко используемые бинарные связи объектов (отображения) могут быть следующими.

1. Отображение 1:1("один к одному'). Здесь каждому экземпляру объекта А соответствует один и только один экземпляр объекта B и наоборот. Например, квартира ?? хозяин, номер зачетной книжки ?? студент.

2. Отображение 1 : М ("один ко многим"). Здесь одному экземпляру объекте А может соответствовать 0,1, или несколько экземпляров В , однако каждому экземпляру объекта В соответствует только один: экземпляр объекта А. Например, область ?? город.

3. Отображение М : 1 ("многие к одному") является обратным отображению 1 : М

4. Отображение М : N ("многие ко многим"). Здесь каждому экземпляру объекта А может соответствовать 0,1, несколько экземпляров В и наоборот. Например, дисциплина (курс ?? студент).

Связь моют быть однонаправленной (как простой, так и многозначной). Например:

На графической диаграмме проекта БД обозначают (рис. 3.2): типы объектов - прямоугольниками; атрибуты - овалами, соединяя их с соответствующими типами объектов ненаправленными ребрами; идентифицирующие атрибуты подчеркиваются, связи - ромбами, соединяя их с соответствующими типами объектов ненаправленными ребрами, за исключением бинарных связей, которые представляются направленными ребрами.

Рис. 3.2. Пример графической диаграммы

Лекция 7 Инфологическое проектирование баз данных (продолжение)

Модель Entity-Relationship (“Сущность-Связь”)

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

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

Основные понятия модели Entity-Relationship

Далее мы кратко рассмотрим некоторые черты одной из наиболее популярных семантических моделей данных - модель "Сущность-Связь" (часто ее называют кратко ER-моделью).

На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Среди множества разновидностей ER-моделей одна из наиболее развитых применяется в системе CASE фирмы ORACLE (в т.н. нотации Баркера). Ее мы и рассмотрим. Более точно, мы сосредоточимся на структурной части этой модели.

Основными понятиями ER-модели являются сущность, связь и атрибут.

Сущность.

Сущностью называется имеющее особый смысл, существующее в действительности или воображаемое явление или объект, информация о котором подлежит запоминанию или выяснению.

Рис.1

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

Имя сущности может представлять тип или класс объекта, но не конкретное значение. В тех случаях, когда для именования сущности подходят разные слова, имеющие идентичный смысл в контексте данной проблемы, допускается использование синонимов. Одно имя назначается в качестве первого; синонимы могут записываться заглавными буквами с символом "наклонная черта" (/) перед каждым. Для облегчения понимания понятия и его отличий от других подобных понятий могут использоваться примеры.

Рис.2

Любое явление или объект может быть представлено в виде только одной сущности. Другими словами, во всех случаях сущности строятся по принципу взаимного исключения. Каждая сущность должна быть уникально определена, т.е. каждый экземпляр (вхождение) сущности должен иметь ясное и недвусмысленное определение, позволяющее отличать его от других экземпляров (вхождений) той же сущности.

Связь между сущностями.

Связью мы назовем поименованное отношение, имеющее место между двумя сущностями. Такая связь является бинарной, в том смысле что она имеет место между ровно двумя поименованными сущностями или же имеет вид отношения сущности к самой себе.

Каждая связь имеет два конца, каждый из которых обладает

- именем;

- степенью/мощностью;

- признаком обязательности.

Эти свойства используются для характеристики связи по отношению к каждой из участвующей в ней сторон.

Связь изображается в виде линии между двумя блоками, каждый из которых соответствует определенной сущности, или, в случае рекурсивной связи, в виде линии, которая начинается и заканчивается на одном и том же блоке. Чаще всего связь имеет тип (степень) “многие к одному”, является обязательной на конце “многие” и необязательной на конце “один”.

На конце “многие” линия связи разветвляется и принимает вид “вороньей лапки”, соприкасающейся с блоком сразу в трех точках (рис. ). На конце “один” линия соприкасается с блоком ровно в одной точке. Если на одном из концов связь обязательная, та часть линии, которая примыкает к этому концу, является сплошной. Если же связь необязательная, соответствующий фрагмент рисуется пунктиром. Зачастую полезно бывает представить связь типа “один ко многим” как связь между родителем и потомком, при этом потомок в какой-то мере зависит от своих родителей.

Имя (а скорее, описание) для каждого конца связи подписывается возле него строчными буквами. Если на одном из концов связь является обязательной, перед соответствующим описанием появляется выражение “должен”; для необязательных связей используется выражение “может”. Присвоение связям имен (описаний) на каждом конце помогает сократить избыточность связей, облегчает их понимание и способствует более быстрому обнаружению необходимости включения в схему дополнительных связей и сущностей. Описание связи содержит тип отношения, имеющего место между двумя сущностями; под этот тип должны подходить все экземпляры (вхождения) данной связи.

Рис.3

Если на одном из концов связь является обязательной, перед соответствующим описанием появляется выражение “должен”; для необязательных связей используется выражение “может”. Таким образом изображенная выше схема читается слева направо следующим образом:

каждый СОТРУДНИК может выполнять одно и более ЗАДАНИЙ,

а справа налево –

каждое ЗАДАНИЕ должно выполняться одним и только одним СОТРУДНИКОМ.

Рекурсивная связь.

Рекурсивная связь с идентичными свойствами изображается следующим образом:

Рис.4

Атрибут.

Атрибутом назовем любое свойство, позволяющее квалифицировать, идентифицировать, классифицировать, измерять сущность или выражать ее состояние либо любое описание объекта или явления.

Атрибут может иметь текстовую, числовую, графическую форму, он может быть получен в результате функционирования органов чувств (осязания, обоняния и т.п.).

Для включения атрибута в модель запишем его название (в единственном числе) внутри блока строчными буквами. В случае необходимости название атрибута может дополняться примерами его значений.

Рис.5

Необязательные атрибуты.

Значения некоторых атрибутов могут в какие-то моменты просто отсутствовать или же быть недоступны. В таких случаях перед именем атрибута на схеме ставится буква "o", что говорит о том, что атрибут – необязательный (optional).

Обязательные атрибуты.

Те атрибуты, значения которых должны быть известны всегда, имеют перед своим именем значок "*".

Рис.6

Определение уникального идентификатора

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

Сущность может иметь несколько альтернативных способов уникальной идентификации: первый метод состоит в обозначении тех атрибутов, которые составляют уникальный идентификатор, символом "#" и в перечеркивании входящих в уникальный идентификатор связей.

Рис.7

Как и в реляционных схемах баз данных, в ER-схемах вводится понятие нормальных форм, причем их смысл очень близко соответствует смыслу реляционных нормальных форм. Заметим, что формулировки нормальных форм ER-схем делают более понятным смысл нормализации реляционных схем. Мы приведем только очень краткие и неформальные определения трех первых нормальных форм.

В первой нормальной форме ER-схемы устраняются повторяющиеся атрибуты или группы атрибутов, т.е. производится выявление неявных сущностей, "замаскированных" под атрибуты.

Во второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность.

В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.

Понятие исключительности

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

Место пересечения может быть жирно обведено, и тогда простое пересечение дугой одной из линий связи будет говорить о том, что эта связь не вступает с другими связями, пересеченными той же дугой, в отношение взаимного исключения.

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

Конец связи может участвовать только в одной исключающей дуге.

Дуга должна покрывать как минимум две линии связей; в отношении взаимного исключения обычно принимают участие не более трех-четырех таких линий.

Дуги почти всегда покрывают концы связей, имеющие степень "многие".

Дуги не могут покрывать линии связей, относящиеся к разным сущностям, к разным подтипам одной сущности и к разным супертипам одного подтипа.

Если конец связи, являющийся частью уникального идентификатора, покрывается дугой, то каждый из концов, покрытых той же дугой, должен входить в альтернативный уникальный идентификатор для данной сущности.

Пример. Кредитная компания открывает счета либо для частных лиц, либо для организаций, которые в свою очередь выдают карточки своим служащим. Обратите внимание на фразу "либо..., либо...", появляющуюся в ситуации со СЧЕТАМИ.

Рис.8

Подтип

Подтипом сущности является разновидность сущности. Сущность можно разбить на два и более взаимно исключающих подтипов, каждый из которых имеет общие атрибуты и/или связи. Такие общие для подтипов атрибуты и/или связи определяются в явном виде только однажды – на верхнем уровне. Подтип может иметь свои собственные, присущие только ему атрибуты и связи. Подтип может быть также разбит на подтипы следующего уровня вложенности и т.д. Опыт показывает, что в большинстве случаев двух-трех уровней оказывается вполне достаточно.

Подтип наследует у вышестоящей сущности (т.н. супертипа) все ее атрибуты, связи и функции, в которых она используется.

Супертип

Сущность, имеющая подтипы, выступает по отношению к ним супертипом. Одна и та же сущность может быть подтипом другой сущности и при этом сама являться супертипом. Подтипы сущности должны включать все возможные ее проявления и образовывать в конечном итоге единое целое. То есть любое вхождение супертипа должно относиться к одному из его подтипов. Во многих случаях эта полнота достигается благодаря добавлению подтипа, именуемого ПРОЧАЯ СУЩНОСТЬ.

Как для подтипа, так и для супертипа должны действовать все правила, принятые для сущности (поскольку и то, и другое – сущности).

Справочная сущность

Термин "справочная сущность" используется для обозначения такой сущности, в которую не входит ни одна из обязательных линий связи. Эта сущность используется для дополнения описания других сущностей. Cущности, описывающие тип объекта (например, ТИП САМОЛЕТА), зачастую выступают в качестве справочных сущностей, так же как и сущности, подобные ОРГАНИЗАЦИОННОЙ ЕДИНИЦЕ и ЛИЧНОСТИ. Вхождения справочной сущности могут существовать самостоятельно, безотносительно к другим объектам.

Граничная сущность

Граничной называется сущность, реализующая связь типа "многие-ко-многим" между двумя другими сущностями. Вхождения граничной сущности могут существовать только в контексте двух справочных сущностей.

Разрешенные типы связей

Наиболее общие разрешенные типы связей:

1. “Один-к-одному”

Рис.9

Обе конструкции используются достаточно редко.

Рис.10

Конструкция используется крайне редко.

2. “Один-ко-многим”

Рис.11

Реже используется конструкция вида

Рис.12

3. “Многие-ко-многим”

Рис.13

Реже используется связь вида

Рис.14

4. Рекурсивная связь “Один-к-одному”

Рис.15

5. Рекурсивная связь “Один-ко-многим”

Рис.16

6. Рекурсивная связь “Многие-ко-многим”

Рис.17

Неразрешенные типы связей

Данные типы связей описывают отношения, которые невозможны в действительности.

1. Обязательная связь “Многие-ко-многим”

Рис.18

2. Иерархические связи “Один-к-одному”

Рис.19

3. Иерархические связи “Один-ко-многим”

Рис.20

4. Иерархические связи “Многие-ко-многим”

Рис.21