Во-вторых, для удобства работы с базой данных необходимо разделить исходную таблицу «Служебная карточка» на совокупность нескольких таблиц. Например, таблица «Персоналии», таблица «Образование», «Иностранные языки» и т.п.
Такие действия по представлению данных в теории и практике создания БД называется нормализацией.
Нормализация - это обратимый пошаговый процесс декомпозиции исходных таблиц в более простые, избавленные от нежелательных функциональных зависимостей, порождающих проблему контроля избыточности данных.
После исправления недостатков получаем следующую совокупность таблиц:
· Таблица 1 «Персоналии» - личный номер, личное дело №, фамилия, имя, отчество, год рождения, месяц рождения, день рождения, место рождения, национальность, семейное положение; логические поля – владеет иностранными языками, участвовал в боевых действиях, имеет награды, был в плену, имеет детей, дело находится в архиве.
· Таблица 2 «Образование» - личное дело №, образование, специальность по образованию, учебное заведение, год окончания.
· Таблица 3 «Иностранные языки, языки народностей РФ» - личный номер, владеет хорошо, владеет плохо.
· Таблица 4 «Боевые действия» - личный номер, когда, где, количество дней, ранения и контузии.
· Таблица 5 «Награды» - личное дело №, дата награждения, наименование ордена, медали.
· Таблица 6 «Плен» - личный номер, при каких обстоятельствах, где, сколько.
· Таблица 7 «Семья» - личный номер, ФИО жены, мужа, год рождения жены, мужа, адрес местожительства семьи, № дома, № квартиры.
· Таблица 8 «Дети» - личный номер, ФИО детей, годы рождения.
· Таблица 9 «Звание» - личный номер, звание, кем издан приказ, № приказа, дата приказа.
· Таблица 10 «Трудовая деятельность» - номер трудовой книжки, дата поступления, дата ухода, наименование учреждения, адрес, должность.
· Таблица 11 «Служба» - номер трудовой книжки, личный номер, дата вступления, дата ухода, должность, с указанием органа, части, местонахождение, наименование органа, издавшего приказ, № приказа, дата.
Поля «личный номер», «личное дело №», «номер трудовой книжки» повторяются не случайно, они являются ключевыми полями:
· Поле «личный номер» является первичным ключом в таблицах №1 и №7, вторичным ключом в таблицах №3, 4, 6, 8, 9, 11.
· Поле «личное дело №» первичный ключ в таблице №1, вторичный ключ в таблицах №2, 5.
· Поле «номер трудовой книжки» первичный ключ в таблице №11, вторичный в таблице №10.
Ключевое поле позволяет однозначно идентифицировать запись в базе данных.
Выделенные объект и его атрибуты необходимо описать в терминах СУБД Access. В Access данным соответствует определённый тип:
· числовой;
· логический;
· текстовый;
· поле дата/время;
· денежный;
· поле MEMO и другие.
Приведём сортировку полей 11 таблиц по типу данных (табл. 3.2).
Таблица 3.2
Сортировка полей таблиц по типу данных
Текстовые поля |
Числовые поля |
Логические поля/поле дата/время |
Текстовые поля |
Числовые поля |
Логические поля/поле дата/время |
Таблица «Персоналии» |
Таблица «Образование» | ||||
ФИО; месяц рождения; место рождения; национальность; семейное положение |
Личный номер; личное дело №; год рождения; день рождения |
Владеет ин. языками, языками народностей РФ; участвовал в боевых действиях; был в плену; имеет награды; имеет детей; дело находится в архиве |
Образование; специальность по образованию; учебное заведение |
Личное дело №; год окончания |
нет |
Таблица «Иностранные языки, языки народностей РФ» |
Таблица «Боевые действия» | ||||
Владеет хорошо; владеет плохо |
Личный номер |
нет |
Когда; где; ранения и контузии |
Личный номер; сколько времени находился |
нет |
Таблица «Награды» |
Таблица «Плен» | ||||
Наименование ордена, медали |
Личное дело № |
Дата награждения |
При каких обстоятельствах; где? |
Личный номер; сколько? |
нет |
Таблицы «Семья», «Дети» |
Таблица «Служба» | ||||
ФИО жены, мужа; адрес местожительства семьи; ФИО детей |
Личный номер; год рождения жены, мужа; № дома; № квартиры; годы рождения детей |
нет |
Должность с указанием органа, части; местонахождение; наименование органа, издавшего приказа |
№ трудовой книжки; личный номер; № приказа |
Дата вступления в должность; дата ухода; дата приказа |
Таблица «Трудовая деятельность» |
Таблица «Звание» | ||||
Наименование учреждения; адрес; должность |
№ трудовой книжки |
Дата поступления; дата ухода |
Звание; кем издан приказ |
Личный номер; номер приказа |
Дата приказа |
Поля таблиц также различаются по типу элемента управления: «поле», «список», «поле со списком». Для удобства работы с таблицами служебной карточки для некоторых полей целесообразно ввести список или поле со списком (табл. 3.3).
Таблица 3.3
Списки и поля со списком служебной карточки
Список |
Поле со списком |
Значения |
Примечание |
- |
Звание |
Младший лейтенант, лейтенант, старший лейтенант, капитан, майор, подполковник, полковник |
- |
- |
Владеет иностранным языком хорошо/владеет плохо |
Английский, немецкий, французский, китайский, бурятский |
Список постоянно можно обновлять наиболее часто используемыми значениями |
- |
Образование |
Высшее, н/высшее, общее, среднее специальное, н/среднее, военное, высшее с аспирантурой, школы и курсы МВД |
- |
Специальность по образованию |
Педагог, менеджер, юрист, экономист, бухгалтер, инженер, медик, журналист |
Список постоянно можно обновлять наиболее часто используемыми значениями | |
Месяц рождения |
- |
12 месяцев. |
- |
Национальность |
Русский, бурят, украинец, азербайджанец, белорус |
Список постоянно можно обновлять наиболее часто используемыми значениями | |
Семейное положение |
- |
Замужем, не замужем, женат, не женат, разведён, разведена |
- |