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