2.3 Проектирование базы данных
При проектировании базы данных следует придерживаться правил нормализации таблиц:
Правило 1: Каждое поле любой таблицы должно быть уникальным.
Правило 2: Каждая таблица должна иметь уникальный идентификатор (первичный ключ), который может состоять из одного или нескольких полей таблицы.
Правило 3: Для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы.
Правило 4: Должна иметься возможность изменять значения любого поля (не входящего в первичный ключ), и это не должно повлечь за собой изменение другого поля.[2]
Каждый агрегированный объект будет представлен отдельной таблицей базы данных. Элементы данных будут представлены полями таблиц. Имена таблиц и их полей подберем исходя из имен объектов и элементов данных. В качестве первичного ключа используем табельный номер. Проект базы данных включает в себя 11 таблиц.
Опишем базу данных в табличной форме.
ОПИСАНИЕ ТАБЛИЦ БАЗЫ ДАННЫХ «КАДРЫ» | ||
Имя таблицы: | STUFF.DBF | |
Краткое описание: | Основная таблица базы данных | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
INS_NUM | Текстовый (14) | Страховой номер |
SURNAME | Текстовый (15) | Фамилия |
NAME | Текстовый (15) | Имя |
PATRON | Текстовый (15) | Отчество |
SEX | Текстовый (15) | Пол |
BIRTH_DATE | Дата | Дата рождения |
BIRTHPLACE | Текстовый (47) | Место рождения |
NATIONAL | Текстовый (15) | Национальность |
SOCIAL | Текстовый (47) | Социальное происхождение |
CITIZEN | Текстовый (30) | Гражданство |
EDUCAT | Текстовый (47) | Образование |
NAME_EDU | Текстовый (47) | Название учебного заведения |
FORM_TRAIN | Текстовый (20) | Форма обучения |
YEAR_END | Дата (8) | Год окончания |
DIPLOMA | Текстовый (25) | Диплом (серия) |
QUAL_DIP | Текстовый (47) | Квалификация по диплому |
SPEC_DIP | Текстовый (47) | Специальность по диплому |
EDU_NUM | Числовой (2) | Количество записей в разделе «Дополнительное образование» |
KIND_HIR | Текстовый (30) | Вид найма |
KIND_WRK | Текстовый (30) | Вид работы |
S_DEGREE | Текстовый (30) | Ученая степень |
S_RANK | Текстовый (30) | Ученое звание |
MAR_SPEC | Текстовый (47) | Узкая специальность |
LANG_NUM | Числовой (2) | Количество записей в разделе «Владение иностранными языками» |
CONV_NUM | Числовой (2) | Количество записей в разделе «Наличие судимости» |
MAR_STATUS | Текстовый (20) | Семейное положение |
FAMIL_NUM | Числовой (2) | Количество записей в разделе «Состав семьи» |
TR_UNION | Текстовый (40) | Профсоюз |
GROUP | Числовой (1) | Группа инвалидности |
PENSIONER | Текстовый (1) | Пенсионер ? |
PARTIC_WAR | Текстовый (1) | Участник войны |
POST_INDEX | Числовой (6) | Домашний индекс |
REGION | Текстовый (20) | Район |
AREA | Текстовый (40) | Область |
ADDRESS | Текстовый (40) | Домашний адрес |
TELEPHONE | Текстовый (18) | Домашний телефон |
PASSPORT | Текстовый (29) | Серия, номер |
CONSCRIPT | Текстовый (20) | Воинская обязанность |
MILIT_RANK | Текстовый (20) | Воинское звание |
NUMBER | Числовой (12) | Номер ВУС |
MIL_TICKET | Текстовый (23) | Номер военного билета |
MIL_VALID | Текстовый (47) | Годность к военной службе |
ATTITUDE | Текстовый (47) | Отношение к бронированию |
MOBILE_INS | Текстовый (1) | Наличие моб, предписания |
GROUP_ACC | Текстовый(47) | Группа учета |
CATEGORY_A | Текстовый (20) | Категория учета |
COMMISSAR | Текстовый (47) | Райвоенкомат |
START_DATE | Дата | Дата начала срочной службы |
CLOSE_DATE | Дата | Дата окончания срочной службы |
LAST_DATE | Дата | Дата последнего прохождения мед. Комиссии |
RECORD_NUM | Числовой (2) | Количество записей в разделе «Трудовая книжка» |
PURPOS_NUM | Числовой (2) | Количество записей в разделе «Назначения и перемещения» |
QUAL_NUM | Числовой (2) | Количество записей в разделе «Квалификационный разряд» |
COMPANY | Текстовый (47) | Название учреждения |
SUBDIVIS | Текстовый (30) | Подразделение |
CUR_POST | Текстовый (30) | Текущая должность |
EMPLOYMENT | Дата | Дата приема на работу |
TRIAL_CLOS | Дата | Дата окончания испытательного срока |
TRIAL_NUM | Числовой (2) | Количество записей в разделе «Командировки» |
HOLID_NUM | Числовой (2) | Количество записей в разделе «Отпуска» |
DATE_DIS | Дата | Дата увольнения |
REASON_DIS | Текстовый (47) | Причина увольнения |
INN | Текстовый (12) | Индивидуальный номер налогоплательщика |
SERIES_TAX | Текстовый (14) | Серия свидетельства налогоплательщика |
NUM_TAX | Текстовый (14) | Номер свидетельства налогоплательщика |
DATE_TAX | Дата | Дата выдачи свидетельства налогоплательщика |
Имя таблицы: | EDUCAT.DBF | |
Краткое описание: | Дополнительное образование | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
DATE_BEGIN | Дата | Дата поступления в у/з |
DATE_END | Дата | Дата окончания у/з |
EDUCATION | Текстовый (30) | Образование |
NAME_EDUC | Текстовый (15) | Название у/з |
DIPL | Текстовый (15) | Диплом |
FORM_TR | Текстовый (15) | Форма обучения |
QUALIFIC | Текстовый (15) | Квалификация |
SPECIAL | Текстовый (15) | Специальность |
Имя таблицы: | LANGUAGE.DBF | |
Краткое описание: | Владение иностранными языками | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
OTH_LANG | Текстовый (20) | Язык |
LEVEL | Текстовый (30) | Уровень владения |
Имя таблицы: | CONVICT.DBF | |
Краткое описание: | Наличие судимости | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
DATE_VERD | Дата | Дата вынесения приговора |
ARTICLE | Текстовый (20) | Статья |
PERIOD | Текстовый (20) | Срок |
Имя таблицы: | FAMILY.DBF | |
Краткое описание: | Состав семьи | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
RELATION | Текстовый (20) | Степень родства |
NAMES | Текстовый (20) | Фамилия, инициалы родственника |
DATE_RELAT | Дата | Дата рождения |
EXPENSE | Текстовый (20) | На иждивении |
Имя таблицы: | PASSPORT.DBF | |
Краткое описание: | Паспортные данные | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
EXP_GIVEN | Текстовый (50) | Кем выдан |
DATE_DISTR | Дата | Дата выдачи |
INDEX_P | Текстовый (6) | Индекс |
AREA_P | Текстовый (30) | Область |
REGION_P | Текстовый (30) | Район |
CITY_P | Текстовый (30) | Город |
POINT_P | Текстовый (30) | Населенный пункт |
STREET_P | Текстовый (30) | Улица |
HOUSE_P | Текстовый (10) | Дом |
CORPS_P | Текстовый (10) | Корпус |
FLAT_P | Текстовый (10) | Квартира |
Имя таблицы: | WORKCARD.DBF | |
Краткое описание: | Трудовая книжка | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
DATE_WRK | Дата | Дата постановки |
DATE_DISM | Дата | Дата увольнения |
NAME_WRK | Текстовый (20) | Название учреждения |
POST_WRK | Текстовый (20) | Должность |
REASON_WRK | Текстовый (20) | Причина |
BASIS_WRK | Текстовый (20) | Основание |
Имя таблицы: | MOVING.DBF | |
Краткое описание: | Назначения и перемещения | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
DATE_MOV | Дата | Дата |
REASON_MOV | Текстовый (20) | Основание |
DEPART | Текстовый (20) | Отдел |
POST_MOV | Текстовый (15) | Должность |
METHOD_MOV | Текстовый (15) | Режим работы |
Имя таблицы: | QUALIFIC.DBF | |
Краткое описание: | Квалификационный разряд | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
DATE_QUAL | Дата | Дата |
REASON_QUAL | Текстовый (20) | Основание |
QUALIFICAT | Текстовый (20) | Квалификация |
Имя таблицы: | BUS_TRIP.DBF | |
Краткое описание: | Командировки | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
START_TRP | Дата | Дата начала |
CLOSED_TRP | Дата | Дата окончания |
DESTINAT | Текстовый (25) | Место назначения |
Имя таблицы: | HOLIDAY.DBF | |
Краткое описание: | Отпуска | |
Имя поля | Тип данных | Описание |
ORG_NUM | Числовой (6) | Табельный номер сотрудника |
KIND_HOL | Текстовый (15) | Вид отпуска |
BASIS_HOL | Текстовый (15) | Основание |
WITH_HOL | Дата | За время с |
ON_HOL | Дата | За время по |
D_ST_HOL | Дата | Дата начала |
AMOUNT | Числовой (3) | Количество дней |
D_END_HOL | Дата | Дата окончания |
Итак, спроектировано 11 таблиц базы данных «Кадры». Для удобства работы, 10 из них следует проиндексировать:
таблицу STUFF.DBF по полю ORG_NUM;
таблицу EDUCAT.DBF по полю DATE_BEGIN;
таблицу LANGUAGE.DBF по полю OTH_LANG;
таблицу CONVICT.DBF по полю DATE_VERD;
таблицу FAMILY.DBF по полю DATE_RELAT;
таблицу WORKCARD.DBF по полю DATE_WRK;
таблицу MOVING.DBF по полю DATE_MOV;
таблицу QUALIFIC.DBF по полю DATE_QUAL;
таблицу BUS_TRIP.DBF по полю START_TRP;
таблицу HOLIDAY.DBF по полю WITH_HOL.
... каждого элемента базы данных. Имеется также возможность сразу создать с помощью мастера базу данных определенного типа со всеми необходимыми таблицами, формами и отчетами. Это простейший способ начального создания базы данных. В обоих случаях останется возможность в любое время изменить и расширить созданную базу данных. Есть две стратегии разработки баз данных: сверху вниз и снизу вверх. ...
... Цена Сумма 10) Отчет по точкам выдачи (для сайта) Точки выдачи Название точки Адрес точки Время работы 2. Выбор средств/методологии проектирования и СУБД При проектировании базы данных интернет-магазина после описания предметной области необходимо выбрать метод построения инфологической модели (ER-модели) и СУБД, в которой будет реализован проект. ...
... в нижней половине отображается большая панель для текста заметок. 3. Проектная часть. Создание презентации процесса разработки базы данных «Деканат ВУЗа» 3.1 Основные правила создания презентации Рассмотрим общие правила, которыми пользовались при создании презентации базы данных деканата [12, С.53]: Прежде чем приступить к созданию презентации, следует четко представлять (понимать), ...
... только при следующих условиях: · Связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными; · Обе таблицы сохраняются в одной базе данных Access; · Главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы. Access автоматически отслеживает целостность связей при ...
0 комментариев