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