Теперь перейдем к построению реляционной модели данных.
Для этого нужно описать все отношения с указанием главных ключей, а также представить схему БД — структуру связей между таблицами.
Каждая из запланированных выше таблиц будет представлена в БД отдельным отношением.
Опишем все их в строчной форме, определив в некоторых случаях сокращенные имена полей и подчеркнув главные ключи.
Факультеты (КОД_ФАК, ФАКУЛЬТЕТ, ЭКЗАМЕН_1,ЭКЗАМЕН_2, ЭКЗАМЕН_3)
Специальности (КОД_СПЕЦ, СПЕЦИАЛЬНОСТЬ, КОД_ФАК, ПЛАН)
Абитуриенты (РЕГ_НОМ, КОД_СПЕЦ, МЕДАЛЬ, СТАЖ)
Анкеты (PEГ_HOM, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ДАТА_РОЖД, ГОРОД, УЧ_ЗАВЕДЕНИЕ)
Оценки (РЕГ_НОМ, ОЦЕНКА_1, ОЦЕНКА_2, ОЦЕНКА_3)
Итоги (РЕГ_НОМ, ЗАЧИСЛЕНИЕ)
Чтобы эти шесть таблиц представляли собой систему, между ними должны быть установлены связи.
Фактически связи уже имеются через общие имена полей.
Первые два отношения связаны между собой кодом факультета,
второе и третье — кодом специальности,
а три последних — регистрационным номером.
Связи позволяют определить соответствия между любыми данными в этих таблицах, например: между фамилией некоторого абитуриента и его оценкой по математике;
между названием города и результатами экзамена по русскому языку выпускников школ этого города и пр.
Благодаря этим связям становится возможным получение ответов на запросы, требующие поиска информации в нескольких таблицах одновременно.
Для явного указания связей между таблицами должна быть построена
схема базы данных.
В схеме указывается наличие связей между таблицами и тип связей.
Схема для нашей системы представлена на рис. 1.7.
Рис. 1.7. Схема базы данных
В схеме использованы два типа связей: один к одному и один ко многим.
Первый обозначен двунаправленной одинарной стрелкой, второй — одинарной стрелкой в одну и двойной в другую сторону.
При связи «один к одному» с одним экземпляром записи в одной таблице связан один экземпляр записи в другой таблице.
Например, одна запись об абитуриенте связана с одним списком оценок.
При наличии связи «один ко многим» одна запись в одной таблице связана с множеством записей в другой таблице.
Например, с одним факультетом связано множество специальностей, а с одной специальностью — множество абитуриентов, поступающих на эту специальность.
Связь «один ко многим» — это связь между двумя соседними уровнями иерархической структуры.
А таблицы, связанные отношениями «один к одному», находятся на одном уровне иерархии.
В принципе, все эти четыре таблицы могут быть объединены в одну таблицу, поскольку главный ключ у них один — «РЕГ_НОМ».
Однако с такой таблицей работать будет неудобно — слишком много полей. Каждая из четырех таблиц в отдельности лучше обозревается, кроме того, каждая из них имеет самостоятельный смысл.
Организация связей между таблицами обеспечивает одно важное качество базы данных, которое называется целостностью данных.
Система не допустит, чтобы одноименные поля в разных связанных между собой таблицах имели разные значения.
Ввод данных автоматически контролируется.
В связанных таблицах может быть установлен режим каскадной замены:
если в одной из таблиц изменяется значение поля, по которому установлена связь, то в других таблицах автоматически изменятся значения одноименных полей.
Аналогично действует режим каскадного удаления: достаточно удалить запись из одной таблицы, чтобы связанные записи исчезли из всех остальных таблиц.
Это естественно, поскольку, например, если закрывается какой-то факультет, то исчезают и все его специальности. Или если у абитуриента сменили регистрационный номер в таблице «Абитуриенты», то автоматически его номер должен обновиться и в других таблицах.
На этом проектирование базы данных завершено.
Это был теоретический этап.
Дальнейшая работа будет происходить в среде СУБД MS Access
|