Рассмотрим построение инфологической модели БД, которая предназначена для применения в мероприятиях, связанных с подсчетом голосов и выявлением результатов голосования.
Исходной точкой любого проектирования базы данных является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих «улучшенными» свойствами. Таким образом, процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает свойствами, в некотором смысле лучшими, чем предыдущая.
Каждой нормальной форме соответствует определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений.
Первая нормальная форма:
– устранить повторяющиеся группы в отдельных таблицах,
– создать отдельную таблицу для каждого набора связанных данных,
– идентифицировать каждый набор связанных данных с помощью первичного ключа.
Вторая нормальная форма:
– создать отдельные таблицы для наборов значений, относящихся к нескольким записям,
– связать эти таблицы с помощью внешнего ключа.
Перед разработкой информационно–логической модели реляционной БД рассмотрим, из каких информационных объектов (сущностей) должна состоять эта БД. Можно выделить 10 объектов, которые не будут обладать избыточностью, – «Время голосования», «Голосующие», «Город», «Города», «Кандидаты», «Количество голосов», «Паспортные данные», «Подсчет голосов», «Участки», «Участок».
Представим состав реквизитов этих объектов в виде «название объекта (перечень реквизитов)»:
– «Время голосования» (ID голосующего, время),
– «Голосующие» (ID голосующего, ФИО голосующего),
– «Город» (Название города, ФИО голосующего),
– «Города» (ID города, название города),
– «Кандидаты» (ID кандидата, ФИО кандидата),
– «Количество голосов» (ID голосования, ФИО голосующего, ФИО кандидата),
– «Паспортные данные» (ID голосующего, серия паспорта, номер паспорта),
– «Подсчет голосов» (ID кандидата, количество голосов),
– «Участки» (ID участка, номер участка),
– «Участок» (Номер участка, ФИО голосующего).
Множество голосующих может выбрать одного кандидата и один кандидат может быть выбран множеством голосующих (связь «один–ко–многим»):
Голосующие
М
Кандидаты
1
Рисунок 4 – Связь «Голосующие – Кандидаты» (М:1)
Множество голосующих может голосовать в одном городе и в одном городе может голосовать множество голосующих (связь «один–ко–многим»):
Голосующие
М
Город
1
Рисунок 5 – Связь «Голосующие – Город» (1:М)
Один кандидат может иметь множество голосов и множество голосов может принадлежать одному кандидату (связь «один–ко–многим»):
Кандидаты
1
Подсчет голосов
М
Рисунок 6 – Связь «Кандидаты – Подсчет голосов» (1:М)
Множество голосующих может голосовать на одном участке и на одном участке может голосовать множество человек (связь «один–ко–многим»):
Голосующие
М
Участок
1
Рисунок 7 – Связь «Голосующие – Участок» (М:1)
Таким образом инфологическая модель принимает вид:
Голосующие
М М
Город Кандидаты
1 1
1 1
Участок М
Подсчет голосов
Рисунок 8 – Инфологическая модель БД
Достарыңызбен бөлісу: |