|
|
Примечание. Данный пример создания базы данных является учебным, поэтому содержит упрощенную модель данных.
При создании базы данных (или увеличении объема уже существующей) прежде всего, необходимо уяснить объем хранимой информации и принадлежность данной информации различным объектам.
Выделим объекты, которые участвуют в процессе реализации договора депозита:
- Банк
- Клиент (физическое лицо)
- Клиент (юридическое лицо)
- Условия депозита
- Договор (у нас может быть много договоров на разных или одинаковых условиях)
- Счета клиентов
Теперь, для каждого из определенных нами объектов необходимо определить объем информации, которая к ним относится, чтобы хранить в базе данных. В дальнейшем, этот набор информации должен стать полями таблиц данных, которые будут храниться в БД.
Почему мы разделили клиентов на физических и юридических лиц? Да потому, что с точки зрения как правовой, так и банковской - это совершенно разные сущности, на них распространяются совершенно разные правила и правовые нормы. Таким образом и в базе данных у нас нет никаких причин их "смешивать".
Начнем с клиентов - физических лиц. Для того, чтобы оперировать информацией по какому-либо физическому лицу, прежде всего, нам нужно будет его идентифицировать. Каким образом это можно сделать? Прежде всего, это паспортные данные и индивидуальный налоговый номер. Также, нас интересует возможность связаться с клиентом. Поэтому нам потребуется его адрес и контактный телефон.
Набор данных по клиенту пока выглядит таким образом:
Физические лица
| Наименование данных | Тип данных | Примечание |
| Серия паспорта | Строка | Серия и номер паспорта обязательны для идентификации |
| Номер паспорта | Число | |
| ИНН | Число | Обязательно для идентификации |
| Адрес прописки | Строка | Адрес прописки будет нужен для оформления юридических действий |
| Адрес проживания | Строка | Этот адрес будет нужен для связи с клиентом, направления ему писем |
| Контактный телефон | Строка | Потребуется для быстрой связи с клиентом. Тип данных - могло быть и число, но для простоты учебного примера - пусть будет строка |
Что такое "тип данных" мы разберемся позднее, поэтому оставим нашу табличку пока в таком виде и займемся юридическими лицами.
Поскольку банк предлагает своим клиентам набор определенных условий для депозитов, то в базе данных необходимо будет хранить обязательный набор данных, позволяющий получить необходимые сведения о таких условиях.
Юридические лица
| Наименование | Тип данных | Комментарий |
| Наименование юр.лица | Строка | Наименование - обязательный параметр, однако, встречаются организации с одинаковыми названиями |
| Код | Число | Код организации однозначно ее идентифицирует |
| Форма собственности | | Виды форм собственности определяются законодательством |
| Юридический адрес | Строка | Адрес, по которому зарегистрировано юр. лицо |
| Адрес для переписки | Строка | Адрес, по которому следует направлять почтовую корреспонденцию. Часто, это - разные адреса |
| Телефон | Строка | Контактный телефон приемной |
| Директор | | |
| Главный бухгалтер | | |
Как видно, у нас не указан "тип данных" для хранения информации в базе данных о директоре и главном бухгалтере. Мы поговорим об этом позднее, когда будем проектировать структуру нашей базы данных, а пока просто заметим для себя, что директор и главный бухгалтер, фактически, являются физическими лицами. А объект такого типа (физическое лицо) у нас в базе данных предусмотрен и описан.
Условия депозитов
| Наименование данных | Тип данных | Примечание |
| Срок начала действия условий депозита | Дата | |
| Срок окончания действия условий депозита | Дата | Возможна ситуация, когда банк после определенного момента больше не принимает депозиты на определенных условиях. Мы должны это предусмотреть |
| Условия действительны для физических лиц | Логический | Предполагается информация да/нет |
| Условия действительны для юридических лиц | Логический | Предполагается информация да/нет |
| Минимальная сумма депозита | Число | |
| Минимальный срок размещения (дней) | Число | |
| Процентная ставка | Число | |
| Условия выплаты процентов | | Мы пока не детализируем данный пункт, но знаем, что проценты могут выплачиваться помесячно, в конце срока, как сложные проценты и т.д. |
| Возможно ли пополнение депозита | Логический | |
| Допускается ли досрочное снятие | Логический | Досрочное снятие - это, фактически, разрыв условий договора, поэтому, как правило, при выплате процентов на вклад начисляются проценты по ставке, иной, чем изначально оговоренная |
| Процентная ставка при досрочном снятии | Число | |
Как видим, в условиях договора могут быть предусмотрены масса нюансов, но наш пример учебный и мы ограничимся лишь частью из них.
Договоры
| Наименование | Тип данных | Примечание |
| Дата заключения | Дата | |
| Номер | Строка | Договор может быть пронумерован, например, как 1/3-55, поэтому тип данных - строка |
| Дата окончания | Дата | Договор может иметь пункт об автоматической пролонгации, однако для простоты примера, будем считать, что этого не происходит |
| Договор с юр/физ лицом | Логический | Предположим, что 0 - юридическое лицо, а 1 - физическое |
| Контрагент | | Здесь будем хранить ссылку на юридическое или физическое лицо, но как это будем делать - рассмотрим позднее |
Заметим, что договор может быть заключен, но не исполнен. Поэтому факт существования договора не означает наличие депозита.
Счета
| Наименование | Тип данных | Примечание |
| Группа счета | Число | Согласно утвержденному плану счетов банков в Украине это должна быть цифра "26" всегда |
| Подгруппа счета | Число | "10", если это - краткосрочный депозит юр. лица
"15", если это - долгосрочный депозит юр. лица
"30", если это - краткосрочный депозит физ. лица
"35", если это - долгосрочный депозит физ. лица |
| Номер счета | Число | Остальные 10 цифр, которые формируют номер счета |
| Дата открытия | Дата | |
| Дата закрытия | Дата | |
| Договор | | Ссылка на договор |
Теперь отметим один "неприятный" момент. Сумма средств на счете может меняться в любой момент времени, в связи с операциями по счету.
База данных депозитов (учебный пример) |
Описание курса
| Создаем таблицы и проводим нормализацию
|