Н. 3. Елманова. C++Builder 3.0, архитектура "клиент/сервер" и Internet
информации и устраняющая аномалии в организации хранения данных. Степень нормализации данных может быть различной.
Говорят, что модель данных соответствует первой нормальной форме, если в таблицах отсутствуют группы повторяющихся значений. Это соответствие достигается путем выделения атрибутов с повторяющимися значениями в отдельные сущности, созданием или выбором для них новых первичных ключей и установлением связей "один ко многим" от новых сущностей к старым. При этом первичные ключи новых сущностей станут внешними ключами для старых сущностей.
Говорят, что модель данных соответствует второй нормальной форме, если в сущностях, содержащих составной первичный ключ, неключевые атрибуты зависят от всего первичного ключа. Если же в какой-либо сущности имеется зависимость каких-либо неключевых атрибутов от части ключа, следует выделить их в отдельную сущность, сделав первичным ключом новой сущности ту часть первичного ключа, от которой зависят данные атрибуты, и установить связь "один ко многим" от новой сущности к старой.
Говорят, что модель данных соответствует третьей нормальной форме, если в сущностях отсутствует взаимозависимость между неключевыми атрибутами. Это соответствие достигается путем выделения в отдельную сущность атрибутов с одной и той же зависимостью от неключевого атрибута, использования атрибутов, определяющих эту зависимость, в качестве первичного ключа новой сущности и установки связи "один ко многим" от новой сущности к старой сущности.
Результатом нормализации является модель данных, которую легко поддерживать, не содержащая неопределенностей в данных и повторений данных.
Отметим, что проектирование данных гораздо удобнее производить, используя современные средства проектирования баз данных, и в частности CASE-средства, так как с их помощью можно автоматизировать рутинную работу по созданию собственно объектов базы данных на основе созданных логической и физической моделей данных.
4.3     Пример проектирования простейшей информационной системы
Рассмотрим в качестве примера проектирование и создание информационной системы для ввода данных о посещаемости хозрасчетной поликлиники пациентами. Сразу же отметим, что данный пример носит исключительно учебный характер и ни в коем случае не претендует на роль образцовой информационной системы для данной предметной области -в реальной информационной системе подобного назначения число таблиц
62
О проектировании данных
и набор полей таблиц должны быть существенно большими, да и автоматизированные рабочие места обычно выглядят несколько по-другому.
Целью данной информационной системы является хранение данных о посещениях пациентами поликлиники с целью' дальнейшей статистической обработки, или, иными словами, регистрация статистических талонов, содержащих набор сведений, сходный с представленным на рис. 4.1.
** Logic Works EBwin/ERX - [MED... ИВ Ш
•?? File   ModelMart   Edit  lasks   Client   Setver Option   Window   Help	-jg| xj
D^!"gjgj e|?jggj ?1^4 ...............————„.  ......................
Arial
10
d
1ЙЯДШ5Й1щу
Номер талона
ФИО пациента
Адрес пациента
Дата рождения
Пол пациента
Группа инвалидности пациента
ФИО врача
Специальность врача
Категория врача
Ставка врача
Дата визита
Статус посещения
Цель посещения
Диагноз
Рис. 4.1. Примерное содержание статистического талона
Итак, центральной сущностью будущей модели данных является посещение врача пациентом. И врач и пациент участвуют в посещении. В исходной сущности помимо атрибутов, идентифицирующих врача и пациента (и которые, следовательно, могут повторяться), присутствуют атрибуты, ха-
63