Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД лекции.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
845.82 Кб
Скачать

Концептуальное проектирование.

Одна из архитектур БД называется ANSI/SPARC.

Основной идеей является выделение трехуровневой абстракции в описании данных. Цель – отделение пользовательского представления БД от ее физического представления.

Причины, по которым желательно такое разделение:

- каждый пользователь должен иметь возможность обращаться к общим данным, используя собственное представление о них;

- пользователи не должны иметь дело с подробностями физического хранения данных;

- администратор БД должен иметь возможность изменять структуру БД, не оказывая влияние на представления пользователей;

- внутренняя структура БД не должна зависеть от изменений физических аспектов хранения информации, таких как переключение на новое устройство и т.д.;

Выделяются три уровня архитектуры БД – внешний, концептуальный и внутренний.

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

Концептуальный уровень – обобщенное представление схемы БД. Уровень описывает, какие данные хранятся в БД и какие связи хранятся между ними. Концептуальная схема – это полное представление требований к данным со стороны организации, оно не зависит от способа хранения данных. На концептуальном уровне представлены следующие компоненты:

  1. Все элементы данных.

  2. Ограничения, накладываемые на элементы данных.

  3. Семантическая информация о данных.

  4. Информация о мерах обеспечения безопасностей и поддержки целостности данных.

Внутренний уровень – описывает реализацию БД и предназначен для обеспечения оптимальной производительности системы и экономного использования ее ресурсов с учетом конкретной СУБД.

Внутреннему уровню соответствует следующая информация:

  1. Описание подробностей хранения с указанием реальных размеров сохраняемых элементов.

  2. Распределение дискового пространства для хранения данных и индексов.

  3. Сведения о физической организации данных.

  4. Сведения о сжатии данных и методах их шифрования.

Ниже внутреннего уровня лежит физический, который контролируется операционной системой под руководством СУБД, их функции на этом уровне четко не разделены.

Два подхода к концептуальному проектированию: восходящий и нисходящий.

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

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

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

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

Понятие сущности.

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

Сущность (entity) – «предмет», который может быть идентифицирован некоторым способом, отличающим его от других предметов. Предмет используется в широком смысле, например в системе управления учебным процессом в качестве предметов используются реальные предметы (учебный корпус, аудитория, преподаватели, факты, сессия и т.д.).

Характеристики сущности. Проблема уникальности сущности.

В общем случае, сущность – тип или класс различимых объектов. Основанием отнесения сущности к определенному классу является наличие у сущности характеристик (атрибутов), присущих классу. Отличие сущности от остальных сущностей класса производится на основании значений этих же характеристик.

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

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

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

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

В формате IDEFX сущность определяют следующим образом:

Все наборы атрибутов, которые могли рассматриваться как ключи, помечаются АК (альтернативный ключ).

Связи. Понятие связи.

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

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

Такие взаимодействия отражаются как связи «один ко многим» и в стандарте IDEFX отражаются следующим образом:

В результате построения связи у сущности «студент» появился новый атрибут, помеченный FK (foreign key). Значение этого атрибута должно совпадать со значением первичного ключа сущности «группа».

В стандарте IDEFX связи «один ко многим» классифицируют по следующим признакам:

1) по возможности null-значения;

2) по степени зависимости связываемых сущностей;

3) по кардинальности;

1. Классификация связи по возможности null-значения. Продолжим пример со студентом. В какой-то момент времени студент может не принадлежать группе, например, когда студент находится в академическом отпуске или при переводе со специальности на специальность. Таким образом, атрибут «номер группы» в сущности «студент», кроме значения первичного ключа сущности «группа», может принимать null-значение.

Такая связь (с возможностью null-значения внешнего ключа) отмечается ромбом у сущности-предка.

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

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

071901 – первые 4 цифры – номер специальности, остальные – номер специализации. При этом номер специализации уникален в рамках специальности.

Сущности, подобные сущности «специализация», называются слабыми или зависимыми, и отображаются прямоугольниками со скругленными углами:

Связь называются идентифицирующей связью «один ко многим» и отображается не пунктирной линией и переносом первичного ключа сущности-предка в состав первичного ключа сущности-потомка. Разумеется, идентифицирующая связь не может допускать неопределенного значения внешнего ключа.

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

3. Классификация связи по кардинальности. Стандарт IDEFX поддерживает следующие кардинальности связи (рис 4):

Например, на факультете может не быть ни одной специальности, а может быть 1, 2 и так далее специальностей.

Например, в группе должен быть хотя бы 1 студент.

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

Обычно при реализации базы данных сущности, между которыми есть связи «1 к 1», решаются в виде общей таблицы. Однако с семантической точки зрения объединять такие таблицы нельзя, так как получается сущность с непонятным значением.

Роль внешнего ключа.

Иногда для более точного описания предметной области вводится понятие роли атрибута для внешнего ключа. Роль – значение, которое атрибут несет, в сущности. Например, в примере о кураторе группы атрибут «табельный номер преподавателя» в сущности «группа» может играть роль «куратор». Если связь построена в обратном направлении, то внешний ключ играет роль «курируемая группа».

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

1) Например, когда между двумя сущностями присутствуют две или более связи → опишем бухгалтерскую проводку, которая характеризуется номером в пределах одной даты и суммой. Счет характеризуется номером, названием и разделом баланса. Между сущностями можно выделить две связи:

– «проводка кредитует счет» - один и тот же счет может кредитоваться различными проводками, а проводка кредитует только один счет → связь «один ко многим»; проводка не может не иметь счета кредитования, то есть связь не допускает неопределенного значения внешнего ключа; счет кредитования не участвует в идентификации проводки, поэтому связь не идентифицирующая;

- «проводка дебетует счет» - первичный ключ к сущности «счет» должен дважды войти в состав не ключевых атрибутов сущности «проводка», то есть обойтись без роли внешнего ключа нельзя:

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

Связь N:M

Рассмотрим следующий факт предметной области: преподаватель читает предмет.

При этом преподаватель может вести несколько предметов. Один предмет могут вести несколько преподавателей. Получается связь координальности N:M.

НГруппа 12 а логическом уровне связь вида N:M отображается следующим образом:

Связь вида N:M называется неспецифической, так как ее нельзя реализовать путем простого переноса первичных ключей. Она организуется с помощью дополнительной сущности, называемой ассоциативной.

НГруппа 42 а физическом уровне, приведенная в примеряя связь, автоматически примет следующий вид:

N-арные связи.

Ранее рассмотренные связи назывались бинарными. Но в реальном мире существуют гораздо более сложные взаимодействия.

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

Группа 80

Существует расширенная модель связи EER. Эта модель добавляет в концептуальную схему понятие «иерархия классов», то есть отношение «класс-суперкласс». Для этого в семантической модели имеется элемент – категория.

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

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

Возможны следующие ограничения на категории:

  1. Ограничения участия.

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

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

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

2) Ограничение не пересечения.

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

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

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

Ограничения проявляются на внутреннем уровне описания схемы базы данных, например, при создании триггеров. В других нотациях, например, категории могут обозначаться кружками с буквами: D – для непересекающихся, O – для пересекающихся.

Группа 173

Принципы концептуального проектирования.

  1. Достоверность. Необходимо следить, чтобы элементы модели четко соответствовали требованиям предметной области.

  2. Отсутствие избыточности. Необходимо следить, чтобы элементы модели не повторяли друг друга.

  3. Простота. В модель следует включать только те элементы, без которых действительно нельзя обойтись.

  4. Выбор подходящих связей. Включение в модель всех возможных связей между сущностями может привести к избыточности модели.

  5. Использование элементов адекватных типов. Основной вопрос, который должен быть решен – как отражать факт предметной области при помощи атрибута или сущности. Атрибут легче реализовать и быстрее обрабатывать, однако этот подход может привести к несогласованности данных. Выбор подхода зависит от цели создания информационной системы.

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

При переходе от концептуальной схемы в нотации «сущность-связь» к внутренней схеме в реляционной модели данных выполняются следующие правила:

  1. Каждая сущность преобразуется в отдельное отношение с соответствующими атрибутами;

  2. Связь «один-к-одному» реализуется либо слиянием двух отношений, либо связью «один-ко-многим» с определением дополнительной целостности с помощью триггеров (триггер – программа, выполняемая при модификации данных отношения с целью поддержания целостности данных). Триггеры определяются вместе со схемой БД на специальном алгоритмическом языке, предоставляемым конкретной СУБД.

  3. Связи «многие-ко-многим» и связи степенью 2 реализуется созданием ассоциативных отношений, первичный ключ которых образуется копированием первичных ключей из связанных отношений.

  4. Иерархии категорий преобразуются одним из двух способов:

а) в одно отношение для всей иерархии с последующей разработкой правил целостности, поддерживающих ограничения назначения атрибутов;

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