Главная страница

Физическая организация данных


Скачать 487.44 Kb.
НазваниеФизическая организация данных
Дата23.02.2018
Размер487.44 Kb.
Формат файлаdocx
Имя файлаdb.docx
ТипДокументы
#37060
страница12 из 16
1   ...   8   9   10   11   12   13   14   15   16

Для реляционной БД на этом этапе определяются параметры распределения памяти для объектов БД, строятся индексы, определяется целесообразность использования хеширования и кластеризации.

Фактически проектирование БД имеет итерационный характер. В процессе функционирования системы становится возможным измерение её реальных характеристик, выявление "узких" мест. И если система не отвечает предъявляемым к ней требованиям, то обычно она подвергается реорганизации, т.е. модификации первоначально созданного проекта.

  1. Автоматизация проектирования БД

Функциональное ядро систем автоматизированного проектирования (САПР) БД строится как совокупность взаимосвязанных модулей инфологического моделирования, проектирования схем и физической организации БД.

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

Характерной особенностью САПР БД является её ориентация на коллективное творчество и продолжительность самого процесса проектирования, предполагающего множество итераций. Это находит свое отражение в наличии журнала проектирования и других средств, обеспечивающих ведение и коллективное использование исходных данных, промежуточных и окончательных результатов проектирования. Общая структура САПР БД приведена на рис. 8.3.


Бата результатов




Журнал




Бата промежуточных

проектировашм




проектирования




результатов

I






L г с шй»a. i к>; icp.t. Mi




1 '|V4.-;На т> чар.ккп




(. (V Н 1 На 4 К» ХйлТЖК IT

ш&шштш




дафозняг юшт>




фюмчзжшт

n {.Vчк ш|Ч' наш 1я




им

,

ир»1т»|Н.чглит







Рис.8.3. Общая структура САПР БД

В настоящее время создан ряд САПР БД, которые называются CASE- средствами. В качестве примеров таких систем можно привести ERWin, BPWin, Designer (Oracle) и др. Подробный обзор современных можно найти в [9].

  1. Особенности проектирования реляционных БД

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

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

  1. Преобразовать ER-диаграмму в схему БД.

  2. Выявить нереализуемые и необычные конструкции данных.

  3. Определить все первичные ключи (ПК).

  4. Определить типы данных для полей таблиц.

  5. Описать все ограничения целостности.

  1. Преобразование ER-диаграммы в схему БД

Правила преобразование ER-диаграммы в схему БД следующие:

  1. Каждый тип сущности преобразуется в таблицу БД. В таблицу вносятся все атрибуты, относящиеся к данному типу сущности.

  2. Бинарная связь 1:n (между сущностями разных типов) реализуется с помощью внешнего ключа между двумя таблицами (рис. 8.4). Например, ОТДЕЛЫ и СОТРУДНИКИ, ГРУППЫи СТУДЕНТЫ и т.п. Номер группы в таблице ГРУППЫ является первичным ключом, аНомер группы в таблице СТУДЕНТЫ - внешним ключом. Это самый часто встречающийся вид связи.

Рис. 8.4. Преобразование бинарной связи 1:n между сущностями разных типовх



TEACHERS


ПРЕПОДАВАТЕЛИ


(Пре по дамгош)


IDP


экзамен овать


СТУДЕНТЫ


Е ХА MS


(Экзамены)


IDD


«ракш


.Its


STUDENTS


(Студенты)

Каждая связь со степенью больше двух и связь, имеющая атрибуты, преобразуется в таблицу БД (рис. 8.5).

Рис. 8.5. Преобразование связи с атрибутами

  1. Связь 1:1 реализуется в рамках одной таблицы. Исключение из этого правила составляют ситуации, когда связанные сущности существуют независимо друг от друга. Например, связь между сущностями ВОДИТЕЛИ и ТРАНПОРТНЫЕ СРЕДСТВА при условии, что за каждым транспортным средством закреплён один водитель. Эта схема будет включать две таблицы, а связь между ними можно реализовать с помощью уникального (возможно, необязательного) внешнего ключа в той таблице, которая будет считаться подчинённой.

  2. Унарная связь 1:n (между сущностями одного типа) реализуется с помощью внешнего ключа, определённого в той же таблице, что и первичный ключ. Например, для отражения в

таблице СОТРУДНИКИ связи руководить, нужно добавить в неё поле Руководитель. Это поле будет внешним ключом, ссылающимся на первичный ключ этой же таблицы (рис. 2.9). Такой ключ позволяет отразить иерархию сотрудников, когда у каждого сотрудника может быть только один непосредственный руководитель, а у директора поле Руководитель будет неопределённым (null).

Рис. 8.6. Преобразование бинарной связи 1:n между сущностями разных типов

Бинарная связь типа n:m реализуется с помощью промежуточной таблицы. Например, для сущностей КНИГИ и АВТОРЫ и связи написать промежуточная таблица будет содержать два внешних ключа: идентификатор книги и идентификатор автора, написавшего эту книгу (рис. 8.6). В эту промежуточную таблицу также вносятся те атрибуты, которые характеризуют эту связь (например, номер автора в списке авторов этой книги).


КЛЮЧЕВЫЕ

СЛОВА


K.EYW ORDS
(Ключевые слова)


ASSOS1ATIONS (Ассоциации)

Унарная связь n:m реализуется с помощью промежуточной таблицы. Например, для отражения связи ассоциируется между терминами таблицы КЛЮЧЕВЫЕ СЛОВА, нужно добавить таблицу АССОЦИАЦИИ, в которой будут два внешних ключа на таблицу.КЛЮЧЕВЫЕ СЛОВА (рис. 8.6).

Рис. 8.7. Преобразование унарной связи кардинальности n:m

  1. Выявление нереализуемых связей

К нереализуемым относятся связи кардинальностью 1:n или n:m, обязательные в обе стороны. Например, связь заказы-строки заказов: заказ не может быть пустым, и заказанный товар должен входить в определённый заказ. Т.е. нельзя добавить заказ, пока в нём нет ни одной строки, и нельзя добавить строку в несуществующий заказ. Эта проблема обычно решается так: связь делается необязательной со стороны первичного ключа, а внешний ключ остаётся обязательным. При этом в приложениинеобходимо предусмотреть правило обработки пустых заказов (например, их удаление).

К необычным конструкциям данных можно отнести так называемые взаимоисключающие связи, когда подчинённая сущность связана с одной из двух родительских сущностей. Например, счёт в банке может принадлежать либо физическому лицу, либо юридическому, и не может принадлежать и тому, и другому либо не принадлежать никому. Такую связь можно реализовать по-разному, например, введением в таблицу счетов двух внешних ключей (номер_физ_лица и номер_юр_лица) и следующего ограничения целостности:

(номер_физ_лица IS NULL AND номер_юр_лица IS NOT NULL) OR (номер_физ_лица IS NOT NULL AND номер_юр_лица IS NULL)

  1. Определение первичных ключей

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

Если у сущности нет уникальных атрибутов, можно рассмотреть уникальные комбинации атрибутов. Но первичный ключ не должен быть длинным, т.к. ссылающийся на него внешний ключ будет занимать много памяти. Поэтому при отсутствии подходящих атрибутов нужно вводить суррогатный первичный ключ, который не несёт смысловой нагрузки и служит только для идентификации записей. (Некоторые СУБД позволяют определять значения такого ключа как AUTOINCREMENT, т.е. числовое поле, значение которого начинается с 1 автоматически увеличивается на 1 при добавлении новой записи).

  1. Определение типов данных атрибутов

Определение типов данных для полей таблиц зависит от требований ПО. Но можно дать следующие общие рекомендации по выбору типов данных:
  1. 1   ...   8   9   10   11   12   13   14   15   16


написать администратору сайта