Список предметов
Создаем таблицы и проводим нормализацию
11 / 16

 Открываем Access, создаем новую пустую базу данных.

После этого выбираем команду "Создать таблицу" 

Начинаем с таблицы "Физические лица" . 

Наименование данныхТип данныхПримечание Тип данных Access 
Серия паспортаСтрокаСерия паспорта состоит из двух буквТекстовый,
Длина поля - 2,
Обязательное - Да
Пустые строки - Нет
Индексированное - Да, допускаются совпадения
Номер паспортаЧислоНомер паспорта - целое числоЧисловой,
Длинное целое,
Число десятичных знаков - 0,
Маска ввода - 000000,
Обязательное - Да,
Индексированное - Да, допускаются совпадения
ИННЧислоОбязательно для идентификации, число. 
Внимание! Для реальной базы данных так делать нельзя, потому что человек может отказаться от получения ИНН по религиозным соображениям и ИНН у него может отсутствовать. Мы же для простоты считаем, что у каждого человека есть свой уникальный ИНН
Числовой,
Длинное целое,
Число десятичных знаков - 0,
Маска ввода - 0000000000
Обязательное - Да,
Индексированное - Да, совпадения не допускаются,
Ключевое
Адрес пропискиСтрокаАдрес прописки будет нужен для оформления юридических действийТекстовое,
Размер поля - 255
Адрес проживанияСтрокаЭтот адрес будет нужен для связи с клиентом, направления ему писемТекстовое,
Размер поля - 255
Контактный телефонСтрокаПотребуется для быстрой связи с клиентом. Тип данных - могло быть и число, но для простоты учебного примера - пусть будет строкаТекстовое,
Размер поля - 16


Перед созданием таблицы "Юридические лица" необходимо создать служебную таблицу "Формы собственности"


Наименование Тип данных Комментарий Тип данных Access
IDЭтот идентификатор необходим для дальнейшего создания связи с таблицей "Юридические лица"Тип данных - Счетчик,
Длинное целое,
Последовательный, 
Индексированное - Да, совпадения не допускаются
Форма собственностиЭто - текстовое название формы собственности Текстовое,
Размер поля - 255


Создаем таблицу "Юридические лица"


НаименованиеТип данныхКомментарийТип данных Access
Наименование юр.лицаСтрокаНаименование - обязательный параметр, однако, встречаются организации с одинаковыми названиямиТекстовое,
Размер поля - 255
КодЧислоКод организации однозначно ее идентифицируетЧисловой,
Длинное целое,
Число десятичных знаков - 0,
Обязательное поле - Да,
Индексированное - Да, совпадения не допускаются,
Ключевое
Форма собственностиВиды форм собственности определяются законодательством. Но справочник форм собственности у нас уже создан и вместо указания самой формы собственности мы будем использовать ссылку на нее. Поэтому укажем тип поля - как числовое, длинное целое.Числовой,
Длинное целое,
Обязательное - Да,
Индексированное - Да, совпадения допускаются
Юридический адресСтрокаАдрес, по которому зарегистрировано юр. лицо Текстовое,
Размер поля - 255
Адрес для перепискиСтрокаАдрес, по которому следует направлять почтовую корреспонденцию. Часто, это - разные адреса Текстовое,
Размер поля - 255
ТелефонСтрокаКонтактный телефон приемной, можно задать числом, но мы зададим строкой для простоты примера Текстовое,
Размер поля - 16 
ДиректорПоскольку таблица физических лиц уже есть, то мы вместо указания директора, будем хранить ссылку на таблицу физических лиц.  Поэтому укажем тип поля - как числовое, длинное целое. Числовой,
Длинное целое,
Обязательное - Да,
Индексированное - Да, совпадения допускаются
Главный бухгалтер Поскольку таблица физических лиц уже есть, то мы вместо указания директора, будем хранить ссылку на таблицу физических лиц.  Поэтому укажем тип поля - как числовое, длинное целое. Числовой,
Длинное целое,
Обязательное - Нет,  
Индексированное - Да, совпадения допускаются


Создаем таблицу "Условия депозитов"

Наименование данныхТип данныхКомментарий Тип данных Access
КодПо данному полю мы будем идентифицировать тип депозитаСчетчик,
Длинное целое,
Новые значения - последовательные,
Индексируемое - Да, совпадения не допускаются
Срок начала действия условий депозитаДатаДата начала срока действия условий нужна для того, чтобы не иметь возможности открыть депозит раньше времениДата/Время
Обязательное - Да
Срок окончания действия условий депозитаДатаВозможна ситуация, когда депозиты по старым условиям еще лежат в банке, но новые вклады на данных условиях уже не принимаются. Значение окончания действия также может отсутствовать, если предложение действует в данный момент Дата/Время
Обязательное - Нет
Условия действительны для физических лицЛогическийПредполагается информация да/нетЛогический
Формат поля - Да/Нет
Условия действительны для юридических лицЛогическийПредполагается информация да/нет Логический
Формат поля - Да/Нет
Минимальная сумма депозитаЧислоДенежный
Минимальный срок размещения (дней)ЧислоБез указания срока размещения договор депозита смысла не имеетЦелое,
Значение по умолчанию - 30,
Обязательное - Да
Процентная ставкаЧислоОдинарное с плавающей точкой
Условия выплаты процентовПеречислениеМожно было бы создать отдельный справочник с условиями видов начисления процентов, но для простоты примера мы принимаем следующее:
0 - ежемесячное начисление по концу месяца на отдельный счет
1 -   начисление по концу месяца на тот же самый счет
2 - начисление процентов в конце срока на тот же самый счет
Целое,
Значение по умолчанию - 0,
Обязательное - Да
Возможно ли пополнение депозитаЛогический Логический
Формат поля - Да/Нет
Допускается ли досрочное снятиеЛогическийДосрочное снятие - это, фактически, разрыв условий договора, поэтому, как правило, при выплате процентов на вклад начисляются проценты по ставке, иной, чем изначально оговоренная Логический
Формат поля - Да/Нет
Процентная ставка при досрочном снятииЧисло Одинарное с плавающей точкой

Создаем таблицу "Договоры"

НаименованиеТип данныхПримечание Тип данных Access
КодДля идентификации можно, конечно, использовать и номер договора. Но, поскольку, строка не удобна для создания связей между таблицами и, потенциально, будет замедлять быстродействие, создание дополнительного поля оправданоСчетчик,
Длинное целое,
Новые значения - последовательные,
Индексированное - Да, совпадения не допускаются
Дата заключенияДатаДата/Время,
Значение по умолчанию =Date(),
Обязательное - Да
НомерСтрокаДоговор может быть пронумерован, например, как 1/3-55, поэтому тип данных - строкаТекстовый,
Размер поля - 32
Дата окончанияДатаСчитаем, что все договоры имеют дату окончания и не пролонгируютсяДата/Время 
Договор с юр или физ лицом?ЛогическийДалее у нас две ссылки, и лишь одна из них будет задействована. Поэтому данное поле, фактически, является переключателем, с кем у нас заключен договор и на какую таблицу искать ссылку (физ или юр)
Договор с юр лицом
Ссылка на юридическое лицоЧисловой,
Длинное целое,
Индексированное - Да, допускаются совпадения
Договор с физ лицом Ссылка на физическое лицо Числовой,
Длинное целое,
Индексированное - Да, допускаются совпадения

Создаем таблицу "Счета"

НаименованиеТип данныхПримечание Тип данных Access
Группа счетаЧислоСогласно утвержденному плану счетов банков в Украине это должна быть цифра "26" всегда. Поэтому редактирование поля мы не предумотримТип данных - Целое,
Значение по умолчанию - 26
Подгруппа счетаЧисло"10", если это - краткосрочный депозит юр. лица
"15", если это - долгосрочный депозит юр. лица
"30", если это - краткосрочный депозит физ. лица
"35", если это - долгосрочный депозит физ. лица
Тип данных - Целое
Подномер счетаЧислоОстальные 10 цифр, которые формируют номер счета
Счетчик определит нам сквозную нумерацию, которая не зависит от группы и подгруппы счета. Это не совсем правильно. Мы должны нумеровать счета независимо. Но, поскольку пример учебный - мы сделали так для простоты.
Счетчик,
Новые значения - Последовательные,
Ключевое
Номер счетаВ номере счета 14 цифр, поэтому, чтобы получить счет вида
2615... нам необходимо обеспечить сдвиг по регистрам на соответствующее число разрядов
Вычисляемое,
Формула:
[Группа счета]*1000000000000 + [Подгруппа счета]*10000000000 + [Подномер счета]
Дата открытияДатаСчет должен обязательно иметь дату открытия Дата/Время,
Значение по умолчанию =Date(),
Обязательное - Да
Дата закрытияДатаДата/Время 
ДоговорСсылка на договор Числовой,
Длинное целое,
Индексированное - Да, допускаются совпадения
СуммаСумма, которая храниться на счете в данный моментДенежный,
Формат поля - Денежный


Теперь заходим в схему данных и устанавливаем связи между:  

"Юридические лица.Форма собственности" и "Формы собственности.ID"
"Юридические лица.Директор" и "Физические лица.ИНН"
"Юридические лица.Главный бухгалтер" и "Физические лица.ИНН"
"Договоры.Договор с юр лицом" и "Юридические лица.Код ОКПО"
"Договоры.Договор с физ лицом" и  "Физические лица.ИНН"

Получаем примерно следующую схему базы данных депозитов:

Учебный пример проектирования базы данных депозитов


0  


 Определяем набор данных для БД | Описание курса | Создание форм Access для редактирования данных