Создание автоматизированной системы оформления кредитов
Разработка авторизированной информационной системы оформления кредитов на различные нужды потребителя. Описание особенностей применения паттернов проектирования. Исследование алгоритмов, реализующих бизнес-логику серверной части проектируемой системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.01.2016 |
Размер файла | 924,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Создание автоматизированной системы оформления кредитов.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
2. ОПИСАНИЕ ОСНОВНОГО ПРОЦЕССА ПРЕДМЕТНОЙ ОБЛАСТИ
3. СПЕЦИФИКАЦИЯ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ
3.1 Постановка задач
3.2 Обзор методов решения поставленных задач
3.3 Варианты использования системы
4. МОДЕЛИ ПРЕДСТАВЛЕНИЯ СИСТЕМЫ И ИХ ОПИСАНИЕ
4.1 Диаграмма классов
4.2 Диаграмма последовательностей
4.3 Диаграмма состояний
4.4 Диаграмма компонентов
4.5 Диаграмма развертывания
5. ОПИСАНИЕ ПРИМЕНЕНИЯ ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ
6. ИНФОРМАЦИОННАЯ МОДЕЛЬ СИСТЕМЫ И ЕЁ ОПИСАНИЕ
6.1 Логическая и физическая модели базы данных
7. ОПИСАНИЕ АЛГОРИТМОВ РЕАЛИЗУЮЩИХ БИЗНЕС-ЛОГИКУ СЕРВЕРНОЙ ЧАСТИ ПРОЕКТИРУЕМОЙ СИСТЕМЫ
8. Руководство пользователя
9. Результаты тестирования разработанной системы и оценка выполнения задач
Вывод и заключение
Список использованных источников
Приложения
ВВЕДЕНИЕ
В условиях перехода общества в информационную эпоху, все большую и большую актуальность приобретают автоматизированные системы и бизнес-процессы. Следовательно, целью качественной работы банков является разработка автоматизированной системы управления принятия клиентов на обслуживание.
Комплексная автоматизация управления предприятия на сегодняшний день - один из самых эффективных и функциональных инструментов систематизации работы ключевых бизнес-процессов. Зачастую управление бизнес-процессами становится трудоемким, а анализ большого потока первичных данных отнимает много сил, времени.
В условиях современной жизни требуется ускорение процессов обработки информации. Этот процесс подлежит автоматизации, так как обработка информации очень долгий, кропотливый и требующий больших ресурсов процесс.
Обслуживание клиентов, которые хотят оформить кредит, должно проходить быстро, тем самым и регистрация клиента должна оформляться быстро. Следовательно, есть необходимость в ускорении данного процесса.
Загруженность банков иногда имеет пиковый характер.
Целью квалифицированной работы банков является разработка авторизированной информационной системы оформления кредитов на различные нужды потребителя, в результате которой повышается скорость обслуживания клиентской базы. Целью данного курсового проекта является создание автоматизированной системы оформления кредитов.
Таким образом, основной задачей данного курсового проекта является разработка системы, назначением которой является автоматизирование, и улучшение рабочего места менеджера банка при минимальных затратах ручного труда и обеспечении сбора, обработки и анализа информации о кредитах, их назначениях и о самих клиентах.
В разрабатываемой системе должно быть предусмотрено наличие информации о назначении кредитов, о самих кредитах, непосредственно. Для достижения поставленной цели необходимо решить следующие задачи:
- осуществить анализ предметной области;
- разработать базу данных, полностью соответствующую заданной предметной области;
- разработать web-приложение, взаимодействующее с базой данных;
- использовать понятный и простой в применении интерфейс.
1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
Предметная область, подлежащая изучению - «банк», в частности «кредитование». В сферу этой предметной области попадают финансово-кредитные учреждения, производящие разнообразные виды операций с деньгами и ценными бумагами. Цель функционирования учреждений этой предметной области - безопасное хранение денег, безналичные переводы от одного клиента к другому, выдача кредитов. Для оказания услуг необходимо наличие квалифицированных специалистов, хранилищ, помещений, удовлетворяющих нормам санитарных и других требований в соответствии с действующим законодательством.
Банк - финансово-кредитное учреждение, производящее разнообразные виды операций с деньгами и ценными бумагами и оказывающее финансовые услуги правительству, юридическим и физическим лицам[1]. Банк - это коммерческое юридическое лицо, которое создано в целях извлечения прибыли, имеет право осуществлять банковские операции, имеет исключительное право на привлечение денежных средств юридических и физических лиц с целью их последующего размещения от своего имени, а также на открытие и ведение банковских счетов юридических и физических лиц. Действует на основании специального разрешения (лицензии) полномочных государственных органов. Не имеет права осуществлять производственную, торговую, страховую деятельность.
В функции банков входит безопасное хранение денег клиентов. Так как у банка есть много клиентов, которые хранят в нем свои деньги, то банк становится способен переводить деньги от одного из них другому путем изменения записей в банковских счетах (безналичные расчеты). Безналичные расчеты возможны и между клиентами различных банков благодаря системе корреспондентских счетов. Банки выдают кредиты. При этом фактически создаётся дополнительная денежная масса. Кредит или кредитные отношения -- общественные отношения, возникающие между субъектами экономических отношений по поводу движения стоимости. Кредитные отношения могут выражаться в разных формах кредита (коммерческий кредит, банковский кредит и др.), займе, лизинге, факторинге и т. д.[1].
Возникновение кредита как особой формы стоимостных отношений происходит тогда, когда стоимость, высвободившаяся у одного экономического субъекта, какое-то время не вступает в новый воспроизводственный цикл. Благодаря кредиту она переходит от субъекта, не использующего её (кредитор), к другому субъекту, испытывающему потребность в дополнительных средствах (заёмщик)[1].
Кредит играет важную роль в саморегулировании величины средств, необходимых для совершения хозяйственной деятельности. Благодаря кредиту предприятия располагают в любой момент такой суммой денежных средств, которая необходима для нормальной работы. Так же роль кредита важна для пополнения оборотных средств, потребность в которых у каждого предприятия не стабильна, меняется в зависимости от условий работы: рыночных, природных, климатических, политических и др. Роль кредита велика для воспроизводства основных фондов. Используя кредит, предприятие может совершенствовать, увеличивать производство значительно быстрее, чем при его отсутствии.
Важна роль кредита в регулировании ликвидности банковской системы, а также в создании эффективного механизма финансирования государственных расходов.
Потребительский кредит - кредит, предоставляемый непосредственно гражданам (домашним хозяйствам) для приобретения предметов потребления. Такой кредит берут не только для покупки товаров длительного пользования (квартиры, мебель, автомобили и т. п.), но и для прочих покупок (мобильные телефоны, бытовая техника, продукты питания).
Он выступает или в форме продажи товаров с отсрочкой платежа, или в форме предоставления банковской ссуды на потребительские цели, в том числе через кредитные карты. При этом взимается довольно высокий процент[1]. Во время ввода менеджером данных о кредите, выполняется расчёт ежемесячных выплат заемщиком, по формуле:
(PV*i)/(1-1/(1+i)^n).
Где PV - сумма кредита; i - процентная ставка; n - количество периодов.
В процессе изучения предметной области был составлен глоссарий. В нем перечислены бизнес работники, бизнес актеры и прецеденты, имеющие отношение к изучаемой предметной области.
Глоссарий предметной области:
- банк - финансово-кредитное учреждение;
- кредит - общественные отношения, возникающие между субъектами экономических отношений по поводу движения стоимости;
- менеджер по кредитованию - специалист по управлению;
- автокредит - кредит на приобретение автомобиля, выдаваемый в размере от 70 до 100% от стоимости транспортного средства, как правило, приобретаемый автомобиль выступает обеспечением по кредиту;
- директор - управляющий, руководитель компании, предприятия;
- заёмщик - сторона по кредитным отношениям, получающая кредит и принимающая на себя обязательство возвратить в установленный срок ссуженную стоимость и уплатить процент за время пользования ссудой;
- срок кредитования - время, выделенное для выплат по кредиту;
- сумма кредитования - денежная масса, взятая в долг;
Одной из задач менеджера является предоставление кредитных линий заёмщикам и оформление договоров с ними. Но зачастую, заёмщики не знаю чего именно они хотят и какой кредит лучше выбрать. И менеджеру предстоит долго и упорно объяснять что есть что. В то время, как потенциальный заёмщик может сам просмотреть данные по кредиту и последующим выплата, а после просто обратиться к менеджеру для решения оставшихся нюансов. Таким образом, основной задачей данного курсового проекта является разработка системы, назначением которой является разработка системы автоматизирования рабочего места менеджера при минимальных затратах ручного труда и обеспечении сбора, обработки и анализа информации.
2. ОПИСАНИЕ ОСНОВНОГО ПРОЦЕССА ПРЕДМЕТНОЙ ОБЛАСТИ
Моделирование бизнес-процесса добавления и расчёта ежемесячных выплат по кредиту выполнено с помощью программного продукта для создания и разработки функциональных моделей систем Allfusion Process Modeler 7.0 (BPwin 7.0), разработанного фирмой Computer Associates.
Модель в BPwin представляет собой совокупность диаграмм, каждая из которых описывает отдельный процесс в виде разбиения его на подпроцессы. С помощью стрелок описываются объекты, данные и ресурсы, необходимые для выполнения функции [2].
Целью моделирования системы является описание функциональности разрабатываемой системы для дальнейшего использования созданной модели при разработке информационной модели.
Главный процесс, выделенный в рамках данной работы, - «Добавить кредит», который представлен на рисунке 2.1.
Рисунок 2.1 - Диаграмма IDEF0, верхний уровень
Входными данными являются заявка на оформление нового кредита и дынные для ввода.
Работа по добавлению и обработки данных для оформления кредита, проводится: аналитиком, менеджером.
Управляют лицензия и законы РБ.
Выходными данными является: новый кредит.
Для более подробного описания процесса добавления кредита, выполним декомпозицию функционального блока и построим диаграмму второго уровня, которая представлена на рисунке 2.2.
Рисунок 2.2 - Диаграмма IDEF0, декомпозиция блока «Добавить кредит»
Вначале аналитик изучает входные данные. И выбирает наиболее приемлемые для банка условия кредитования. Менеджер получает подтвержденные данные и вводит их в базу данных.
Программное обеспечение обрабатывает данные и сохраняет в базе.
Рассмотрим ещё более подробно процесс обработки данных. Декомпозиция этого процесса представлена на рисунке 2.3.
Рисунок 2.3 - Диаграмма IDEF0, декомпозиция блока «Обработать данные»
Входными объектами для обработки данных являются введенные данные. После программное обеспечение сверяет полное наличие данных и соответствие их типов, рассчитывает ежемесячные выплаты.
После сохраняет в базе данных.
3. СПЕЦИФИКАЦИЯ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ СИСТЕМЫ
3.1 Постановка задач
Разрабатываемая система должна обеспечивать выполнение следующих задач:
- создание удобного и понятного для пользователя интерфейса приложения;
- разработка программного комплекса для автоматизации кредитования, связанной с вводом, хранением и обработкой информации о кредитах и клиентах для менеджеров;
- возможность выбора и просмотра интересующих кредитов и их назначений;
- расчёт ежемесячных выплат по кредитам;
- обработка ввода некорректных данных.
3.2 Обзор методов решения поставленных задач
Для разработки модели автоматизированной системы продажи и бронирования билетов в кинотеатрах использованы такие CASE-средства, как ERwin, Allfusion Process Modeler 7.0 (BPwin), UML. CASE (англ. Computer-Aided Software Engineering) - набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов [1].
Среда ERwin относится к CASE-системам, позволяющим автоматизировать процесс построение модели системы.
BPwin - мощный инструмент моделирования бизнес процессов, позволяющий устранить лишние или неэффективные операции, повысить гибкость проектируемой системы [2].
Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем. Язык UML одновременно является простым и мощным средством моделирования, который может быть эффективно использован для построения концептуальных, логических и графических моделей сложных систем самого различного целевого назначения [3].
В силу ряда преимуществ, в качестве языка программирования для разработки был выбран язык Java.
Java - это кроссплатформенный язык программирования. Это позволяет использовать разрабатываемую программу во многих операционных системах, а не ограничивается только ОС Windows. Язык Java поставляется с достаточно объемной библиотекой классов, они значительно упрощают разработку приложений, предоставляя в распоряжение мощные средства решения распространенных задач [9].
Для написания проекта использовалась среда разработки NetBeans IDE (версия 7.2), которая является мощной средой для разработки программных продуктов. Также в CASE-технологии входит использование базы данных проекта для хранения всей информации о кинотеатрах и сеансах. При разработке базы данных проекта использовался язык SQL, средой разработки которого является СУБД MS SQL Server 2005[4].
Для каркаса приложения выбрана архитектура MVC. Модель данных представлена в виде набора классов, соответствующих правилам построения компонентов JavaBeans. В качестве контроллера выступает сервлет, который будет осуществлять взаимодействие между моделью и представлением. Представление данных реализовано в виде набора JSP страниц. В приложении выделен слой доступа к данным (классы, в которых будут размещены методы, отвечающие за бизнес-логику системы).
3.3 Варианты использования системы
В диаграмме вариантов использования описывается функционирование системы с точки зрения внешних агентов, называемых в моделировании актерами (actor), которые взаимодействуют с системой с определенной точки зрения. Элемент Use Case - это связный функциональный блок, выраженный в виде транзакции между актером и системой. Назначение представления Use Case - выявить всех актеров системы и все ее элементы Use Case, а также указать, какие актеры в каких элементах Use Case фигурируют. Поведение элементов Use Case описывается с помощью динамических представлений, в частности, представления взаимодействия.
Анализ требований к системе и ее возможностей виден на Use Case диаграмме в приложении А (см. рисунок А.1):
В качестве актеров выступают клиент и менеджер. Клиент является потенциальным заёмщиком, поэтому он имеет право на просмотр данных о назначениях кредитов и непосредственно самих кредитов. В задачи менеджера входит: ввод данных о кредитных линиях, удаления кредитных линий, регистрация заемщиков.
4. МОДЕЛИ ПРЕДСТАВЛЕНИЯ СИСТЕМЫ И ИХ ОПИСАНИЕ
4.1 Диаграмма классов
Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Статическим это представление называется потому, что не описывает динамику, то есть изменения, происходящие в системе с течением времени. Основой статического представления являются классы и их отношения: ассоциации, обобщения и различные виды зависимостей, например реализация и использование. Классом называется описание некоторой концепции предметной области или элемента программного решения [3].
Графически класс изображается в виде прямоугольника. Атрибуты и операции класса перечисляются в горизонтальных секциях этого прямоугольника. Отношения между классами выражаются при помощи различных типов линий.
На рисунке Б.1 приложения Б приводится диаграмма классов приложения.
Основными классами в результате исследования предметной области являются:
А) Naznach - класс, содержащий в себе назначения кредитов. Атрибуты данного класса: код назначения (id_nazn), непосредственно назначение (nazn). В состав операций класса входят методы получения и установки вышеперечисленных атрибутов (методы get/set).
Б) Credit - класс, содержащий в себе все данные о кредитах. Этот класс наследуется от класса Naznach. Атрибуты данного класса: код кредита (id_cred), срок кредитования (srok_cred), сумма кредитования (sum_cred), процент кредитования (percent_cred), название кредита (name_cred), код назначения (id_nazn) - наследуется от Naznach, ежемесячная оплата по кредиту (plata_mes). Операции класса: методы получения и установки атрибутов (методы get/set).
В) Client - класс, содержащий информацию о клиентах. Этот класс наследуется от класса Credit и содержит в себе следующие атрибуты: код клиента (id_cl), фамилия клиента (fam_cl), имя клиента (name_cl), отчество клиента (otch_cl), код кредита (id_cred) - наследуется от Credit. Операции класса: методы получения и установки атрибутов (методы get/set).
Г) LogPass - класс, в котором содержится информация о паролях и логинах администраторов. Атрибуты класса: логин администратора (login), пароль администратора (pass). В состав операций класса входят методы получения и установки вышеперечисленных атрибутов (методы get/set).
4.2 Диаграмма последовательностей
Для моделирования взаимодействия объектов в языке UML используются соответствующие диаграммы взаимодействия. Говоря об этих диаграммах, имеют в виду два аспекта взаимодействия. Взаимодействия объектов можно рассматривать во времени, и тогда для представления временных особенностей передачи и приема сообщений между объектами используется диаграмма последовательности. Линия жизни объекта изображается пунктирной вертикальной линией, ассоциированной с единственным объектом на диаграмме последовательности. Линия жизни служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех ее взаимодействиях. Если объект существует в системе постоянно, то и его линия жизни должна продолжаться по всей плоскости диаграммы последовательности от самой верхней ее части до самой нижней [5].
Диаграмма последовательностей изображена на рисунке В.1 приложения В. Рассмотрим всё тот же процесс добавления нового кредита. Менеджер взаимодействует с jsp-cтраницей добавить кредит. Он заполняет все обязательные поля для создания нового кредита, после чего производится проверка введенных данных. Далее jsp-страница обрабатывается сервлетом, где в зависимости от передаваемых параметров происходит перенаправление на нужный метод из бизнес-логики. В классе бизнес логики также вызывается соответствующий метод добавления кредита в базу данных. Далее в обратной последовательности возвращается результат выполнения запроса (успешный или нет) на jsp-страницу.
4.3 Диаграмма состояний
Диаграмма состояний (state diagram) описывает процесс изменения состояний только одного класса, а точнее - одного экземпляра определенного класса, т. е. моделирует все возможные изменения в состоянии конкретного объекта [5].
На рисунке Г.1 приложения Г отображена диаграмма состояний объекта «Кредит».
Первоначально менеджер выбирает поле добавления нового кредита. Вводит данные, эти данные проверяются. Если введённые данные верны, выполняется расчёт ежемесячных выплат и кредит сохраняется в базе данных. На выходе имеем новый кредит.
4.4 Диаграмма компонентов
информационный кредит паттерн серверный
Диаграммы компонентов применяются для моделирования статического вида системы с точки зрения реализации. Сюда относится моделирование физических сущностей, развернутых в узле, например исполняемых программ, библиотек, таблиц, файлов и документов.
На диаграмме отображены все классы, пакеты, подключаемые библиотеки, страницы, из которых состоит приложение. Приложение упаковано в war-архив, который состоит из следующих пакетов и папок:
- библиотеки - все подключаемые библиотеки, драйверы (JDK, sqldbc4.jar, JSTL 1.1-jstl.jar, JSTL 1.1 - standard.jar, Apache Tomcad 7.0.27.0);
- файлы настройки - MANIFEST.MF, context.xml, web.xml;
- веб-страницы - папка, содержащая страницы со стилями css, графическими ресурсами images, все jsp-страницы (index.jsp, addClient.jsp, addCredit.jsp, addNaznach.jsp, deleteClient.jsp, deleteCredit.jsp, deleteNaznach.jsp, logPass.jsp, viewClient.jsp, viewCredit.jsp, viewCreditCl, viewNaznach.jsp, viewNaznachCl.jsp;
- пакеты исходных кодов, который включает в себя следующие пакеты: credit.web.command - содержит все команды (Command,java, NoCommand.java, AddClientCommand.java, AddClientPage.java, AddCreditCommand.java, AddCreditPage.java, AddNaznachCommand.java, AddNaznachPage.java, DeleteClientCommand.java, DeleteClientPage.java, DeleteCreditCommand.java, DeleteCreditPage.java, DeleteNaznachCommand.java DeleteNaznachPage.java, LogPassCommand.java, LogPassPage.java, ViewClientCommand.java, ViewClientPage.java, ViewCreditCommand.java, ViewCreditPage.java, ViewCreditClCommand.java, ViewCreditClPage.java, ViewNaznachCommand.java,ViewNaznachPage.java,ViewNaznachClCommand.java, ViewNaznachClPage.java);
credit.web.components - классы модели (Client.java, Credit.java, LogPass.java, Naznach.java);
credit.web.connection - подключение к БД (connection.java); credit.web.jspServlet - сервлет (Controller.java, RequestHelper.java); credit.web.logic - классы, содержащие бизнес логику приложения (AddClientLogic.java, AddCreditLogic.java, AddNaznachLogic.java, DeleteClientLogic.java, DeleteCreditLogic.java, DeleteNaznachLogic.java, LogPassLogic.java, ViewClientLogic.java, ViewCreditLogic.java, ViewNaznachLogic.java);
4.5 Диаграмма развертывания
Диаграммы развертывания - это один из двух видов диаграмм, используемых при моделировании физических аспектов объектно-ориентированной системы. Такая диаграмма показывает конфигурацию узлов, где обрабатывается информации, и компоненты каждом узле.
Диаграммы развертывания используются для моделирования статического вида системы с точки зрения развертывания. Под этим понимается моделирование топологии аппаратных средств, на которых выполняется система [5].
Диаграмма компонентов изображена на рисунке Е.1 приложения Е.
Основными узлами разрабатываемой системы являются клиент и сервер. На узле «клиент» находится web-браузер, с которым пользователь взаимодействует. На узле «сервер» находятся компоненты Apache Tomcad, сервер, на котором разворачивается приложение CreditWeb.war, и MS SQL Server 2005, сервер базы данных bankCred.
5. ОПИСАНИЕ ПРИМЕНЕНИЯ ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ
Паттерны проектирования - повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста [1].
При разработке системы мы использовали несколько паттернов проектирования. Ниже рассмотрим некоторые из этих паттернов.
Паттерн MVC (Model View Controller) - это шаблон, который разделяет работу веб-приложения на три отдельные функциональные роли: модель данных (model), пользовательский интерфейс (view) и управляющую логику (controller). Шаблон MVC описывает простой способ построения структуры приложения, целью которого является отделение бизнес-логики от пользовательского интерфейса. В результате, приложение легче масштабируется, тестируется, сопровождается и, конечно же, реализуется.
Модель отвечает за управление данными, она сохраняет и извлекает сущности, используемые приложением, как правило, из базы данных и содержит логику, реализованную в приложении. В данном проекте в модель входят классы команд, классы модели (соответствуют сущностям из базы данных).
Представление несет ответственность за отображение данных, которые даёт контроллер. В приложении представление реализуется в виде JSP-страниц.
Контроллер связывает модель и представление. Он получает запрос от клиента, анализирует его параметры и обращается к модели для выполнения операций над данными запроса. От модели поступают уже скомпонованные объекты. Затем они перенаправляются в представление, которое передаёт сформированную страницу контроллеру, а он, в свою очередь, отправляет её клиенту. Контроллером является Controller.
Паттерн Command - паттерн поведения объектов, инкапсулирующий различные алгоритмы в единую сущность. Интерфейс командного объекта определяется абстрактным базовым классом Command и имеет единственный метод execute(). Производные классы определяют получателя запроса (указатель на объект-получатель) и необходимую для выполнения операцию (метод этого объекта). Метод execute() подклассов Command просто вызывает нужную операцию получателя.
Паттерн Singleton (одиночка) относиться к классу порождающих паттернов. Он используется для создания всего одного экземпляра класса, и гарантирует, что во время работы программы не появиться второй. Например в схеме MVC, зачастую этот паттерн используется для порождения главного контроллера (фронтового). В разрабатываемой системе им является RequestHelper.
6. ИНФОРМАЦИОННАЯ МОДЕЛЬ СИСТЕМЫ И ЕЁ ОПИСАНИЕ
6.1 Логическая и физическая модели базы данных
В данной работе при построении информационной модели использовался ERwin. ERwin Data Modeler - CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания [7].
Информационная модель системы должна полностью отражать предметную область, все её основные сущности и связи. При разработке информационной модели были выделены следующие сущности:
1) Naznach - назначение кредитной линии. У сущности имеются следующие атрибуты:
- id_nazn - идентификационный номер назначения (тип: long integer, домен: number);
- nazn - название назначения (тип: text(20), домен: string);
2) Credit - кредит со своими параметрами. Эта сущность представлена следующими атрибутами:
- id_cred - идентификационный номер кредита (тип: long integer, домен: number);
- srok_cred - срок кредитования (тип: long integer, домен: number);
- sum_cred - сумма кредитования (тип: long integer, домен: number);
- percent_cred - процент кредитования (тип: long integer, домен: number); name_cred - название кредита (тип: text(20), домен: string);
- id_nazn - идентификационный номер назначения - внешний ключ таблицы Naznach (тип: long integer, домен: number);
- plata_mes - ежемесячная оплата по кредиту (тип: long integer, домен: number).
3) Client - заёмщик при оформлении кредита. Она представлена следующими атрибутами:
- id_cl - идентификационный номер клиента (тип: long integer, домен: number);
- fam_cl - фамилия заёмщика (тип: text(20), домен: string);
- name_cl - имя заёмщика (тип: text(20), домен: string);
- otch_cl - отчество заёмщика (тип: text(20), домен: string);
- id_cred - идентификационный номер кредита - внешний ключ таблицы Credit (тип: long integer, домен: number);
4) LogPass - данная сущность содержит пароли и логины администраторов. Она представлена следующими атрибутами:
- login - логин администратора (тип: text(5), домен: string);
- pass - пароль администратора (тип: text(5), домен: string);
Связи между сущностями:
1) Связь Credit_Naznach: от сущности Naznach идет неидентифицирующая связь к сущности Credit типа 1:М, так как у одного назначения может быть много видов кредитов.
2) Связь Client_Credit: от сущности Credit идет неидентифицирующая связь к сущности Client типа 1:М, так как у одного кредита может быть несколько заемщиков.
7. ОПИСАНИЕ АЛГОРИТМОВ РЕАЛИЗУЮЩИХ БИЗНЕС-ЛОГИКУ СЕРВЕРНОЙ ЧАСТИ ПРОЕКТИРУЕМОЙ СИСТЕМЫ
В этом разделе приведено описание алгоритма добавления кредита. Блок-схема алгоритма представлена в приложении рисунок И.1.
Менеджер может просмотреть информацию о назначениях кредитов. После нажимаем кнопку «Добавить кредит» и вводим все существующие поля, нажимаем кнопку «Добавить». Поля проверяются на корректность введённых данных, если всё верно выведется сообщение о добавленном кредите, иначе выскочит ошибка ввода.
Затем менеджер может либо продолжить работу в модуле и добавить ещё кредит, либо прекратить работу с добавлением кредитов и перейти на другую страницу.
8. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
После запуска приложения первоначально отображается начальная страница, представленная на рисунке 8.1, на которой пользователь видит вводную информацию и может выбрать действие: просмотре назначений кредитов по нажатию на «Кредитование» и кредитов по нажатию на «Кредиты».
Рисунок 8.1 - Начальная страница
Простой пользователь более нечего не может на данной странице, но если вы являетесь Администратором (менеджером), то в левой части панели можете ввести свой Логин и Пароль, тем самым перейдя в меню обработки информации рисунок 8.2.
Рисунок 8.2 - Страница Администратора
На данной странице Администратор (менеджер) может полностью обрабатывать данные банка, связанные с кредитованием. При нажатии на кнопку «Добавление нужд по займу» выведется панель добавления рисунок 8.3.
Рисунок 8.3 - Страница добавления назначения
На панели есть кнопка «Вернуться на главную», вернёмся на страницу Администратора (см. рисунок 8.2). Выберем кнопку «Удалить назначение», перейдём на страницу удаления рисунок 8.4
Рисунок 8.4 - Страница удаления назначения
Вернувшись на страницу Администратора, нажмём кнопку «Просмотр назначений», перейдём на следующую, на которой требуется нажать кнопку «Нажми меня, полностью». Перейдём на страницу просмотра рисунок 8.5.
Рисунок 8.5 - Страница просмотра назначения
Идентично данному описанию, работает «Добавление кредита», «Удаление кредита», «Просмотр кредитов», «Добавление заёмщика», «Удаление заёмщика», «Просмотр заёмщиков».
9. РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ РАЗРАБОТАННОЙ СИСТЕМЫ И ОЦЕНКА ВЫПОЛНЕНИЯ ЗАДАЧ
При добавлении назначения, кредита или заёмщика проводится проверка на заполненные поля. Если хотя бы одно поле пустое, выведется сообщение об ошибке.
Далее проверяются поля с числовым значением. Если в поле «Сумма кредитования» ввести «абрукадабру», выведется сообщение об ошибке.
Аналогично проверяется поле «Процент кредитования», «Срок кредитования». Также будет выведено сообщение о вводе неправильного формата времени.
При удалении кредита, если мы введем id кредита, которого нет в базе данных, то выведется сообщение с уведомлением об отсутствии данного кредита. Введем ID кредита = 99.
При удалении назначения или заемщика происходит аналогичная ситуация. Производится проверка на существование такого назначения или заемщика.
ВЫВОДЫ И ЗАКЛЮЧЕНИЯ
Программное средство «Система кредитования в потребительской сфере» реализовано с использованием языка Java. В программе предусмотрено:
- добавление/удаление назначения;
- добавление/удаление кредита;
- добавление/удаление заемщика;
- просмотр назначений;
- просмотр кредитов;
- просмотр заемщиков;
Представленная версия приложения является законченным программным продуктом. Однако, она может быть доработана, для чего понадобятся дополнительные средства, а также время, в течение которого будут исправляться все недочеты, которые упустили или не посчитали нужным реализовать.
Программа имеет удобный пользовательский интерфейс.
В дальнейшем может быть расширен набор функций и задач, решаемый использованием данной системы.
Возможные направления совершенствования:
1) Отправка потенциальным заёмщиком заявки на оформление кредита.
2) Улучшение интерфейса.
3) Добавление функционала.
4) Расширение предметной области и увеличение списка атрибутов сущностей.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
[1] [Электронный ресурс]. - Электронные данные. - Режим доступа : http://ru.wikipedia.org/.
[2] Маклаков, С. В. Моделирование бизнес-процессов с BPwin 4.0 / С. В. Маклаков. - М. : Диалог-МИФИ, 2012. - 209 с.
[3] Леоненков, А. Самоучитель UML / А. Леоненков. - Спб. : БХВ-Санкт-Петербург, 2002. - 304 с.
[4] А.А. Бутов, И.Г. Орешко, Е.А. Шестаков «Базы Данных» - Лабораторный практикум. - Минск: БГУИР, 2009. - 108с.
[5] Буч, Г. Язык UML. Руководство пользователя / Г. Буч, Дж. Рамбо, А. Якобсон. - М. : ДМК Пресс, 2010. - 346 с.
[6] Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма [и др.]. - СПб. : Питер, 2001. - 368 с.
[7] Маклаков, С. В. BPwin и ERwin. CASE - средства разработки информационных систем / С. В. Маклаков. - М. : Диалог-МИФИ, 2000. - 256 с.
[8] Ржеуцкая, С. Ю. Базы данных. Язык SQL / C. Ю. Ржеуцкая. - Вологда : ВоГТУ, 2010. - 159 с.
[9] Блинов И. Н. Java. Промышленное программирование : практ. пособие / И. Н. Блинов, В. С. Романчик. - Минск : УниверсалПресс, 2012. - 704с.
ПРИЛОЖЕНИЯ
Приложение А
Диаграмма вариантов использования (Use Case) (к пункту 3.3)
Рисунок А.1 - Диаграмма вариантов использования
Приложение Б
Диаграмма классов (к пункту 4.1)
Рисунок Б.1 - Диаграмма классов
Приложение В
Диаграмма последовательностей (к пункту 4.2)
Рисунок В.1 - Диаграмма последовательностей
Приложение Г
Диаграмма состояний (к пункту 4.3)
Рисунок Г.1 - Диаграмма состояний
Приложение Д
Диаграмма компонентов (к пункту 4.4)
Рисунок Д.1 - Диаграмма компонентов
Приложение Е
Диаграмма развертывания (к пункту 4.5)
Рисунок Е.1 - Диаграмма развертывания
Приложение Ж
Информационная модель (к пункту 6.1)
Рисунок Ж.1 - Логическая модель БД средствами ERwin
Рисунок Ж.2 - Физическая модель БД средствами ERwin
Приложение И
Выборочный листинг кода
Файл AddCredit.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta name="Description" content="Information architecture, Web Design, Web Standards." />
<meta name="Distribution" content="Global" />
<link rel="stylesheet" href="images/Envision.css" type="text/css" />
<title>Беларусбанк</title>
</head>
<body>
<div id="wrap">
<div id="header">
<h1 id="logo-text"><a href="index.jsp">Беларусбанк</a></h1>
<p id="slogan">мы вас облапошим...</p>
</div>
<div id="menu">
<ul>
<li id="current"><a href="Controller?command=logPassPage">Вернуться на главную</a></li>
</ul>
</div>
<div id="content-wrap">
<div id="sidebar">
<h3>Администратор</h3>
<form>
<label>Login</label>
<input name="login" value="qwer" type="text" size="20" />
<label>Password</label>
<input name="pass" value="Password" type="text" size="20" />
<br>
<br>
<a href="index.jsp">Выйти</a>
<br>
</form>
</div>
<div id="main">
<form action ="Controller" method="post">
<input type="hidden" name="command" value="addCred"
<label>Id кредита </label><br> <input type="text" name="id_cred" value=""><br>
<label>Срок кредитования(мес) </label> <input type="text" name="srok_cred" value=""><br>
<label>Сумма кредитования </label> <input type="text" name="summ_cred" value=""><br>
<label>Процент кредитования </label> <input type="text" name="percent_cred" value=""><br>
<label>Название кредита </label> <input type="text" name="name_cred" value=""><br>
<label>Id назначения </label> <input type="text" name="id_nazn" value=""><br>
<c:out value="${resData}"/><br>
<c:out value="${error}"/><br>
<input type="submit" name="ok" value="Добавить кредит"/>
</form>
</div>
</div>
<div id="footer">
<p>©<strong>Левашкевич Максим Игоревич</strong></p>
</div>
</div>
</body>
</html>
Файл Command.java
package credit.web.command;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Максим
*/
public interface Command {
public static final String ADD_NAZNACH_PAGE = "/jspPages/addNaznach.jsp";
public static final String VIEW_NAZNACH_PAGE = "/jspPages/viewNaznach.jsp";
public static final String DELETE_NAZNACH_PAGE = "/jspPages/deleteNaznach.jsp";
public static final String ADD_CREDIT_PAGE = "/jspPages/addCredit.jsp";
public static final String VIEW_CREDIT_PAGE = "/jspPages/viewCredit.jsp";
public static final String DELETE_CREDIT_PAGE = "/jspPages/deleteCredit.jsp";
public static final String ADD_CLIENT_PAGE = "/jspPages/addClient.jsp";
public static final String VIEW_CLIENT_PAGE = "/jspPages/viewClient.jsp";
public static final String DELETE_CLIENT_PAGE = "/jspPages/deleteClient.jsp";
public static final String LOGPASS_PAGE = "/jspPages/logPass.jsp";
public static final String VIEW_CREDITCL_PAGE = "/jspPages/viewCreditCl.jsp";
public static final String VIEW_NAZNACHCL_PAGE = "/jspPages/viewNaznachCl.jsp";
//прописать все страницы рабочие(кот будут создаваться)
public String execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException;}
Файл Controller.java
package credit.web.jspServlet;
import credit.web.command.Command;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Максим
*/
public class Controller extends HttpServlet {
RequestHelper requestHelper = RequestHelper.getInstance();
public Controller() {
super();
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String page = null;
Command command = requestHelper.getCommand(request);
page = command.execute(request, response);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(page);
dispatcher.forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Файл RequestHelper.java
package credit.web.jspServlet;
import credit.web.command.AddClientCommand;
import credit.web.command.AddClientPage;
import credit.web.command.AddCreditCommand;
import credit.web.command.AddCreditPage;
import credit.web.command.AddNaznachCommand;
import credit.web.command.AddNaznachPage;
import credit.web.command.Command;
import credit.web.command.DeleteClientCommand;
import credit.web.command.DeleteClientPage;
import credit.web.command.DeleteCreditCommand;
import credit.web.command.DeleteCreditPage;
import credit.web.command.DeleteNaznachCommand;
import credit.web.command.DeleteNaznachPage;
import credit.web.command.LogPassCommand;
import credit.web.command.LogPassPage;
import credit.web.command.NoCommand;
import credit.web.command.ViewClientCommand;
import credit.web.command.ViewClientPage;
import credit.web.command.ViewCreditClCommand;
import credit.web.command.ViewCreditClPage;
import credit.web.command.ViewCreditCommand;
import credit.web.command.ViewCreditPage;
import credit.web.command.ViewNaznachClCommand;
import credit.web.command.ViewNaznachClPage;
import credit.web.command.ViewNaznachCommand;
import credit.web.command.ViewNaznachPage;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
/**
*
* @author Максим
*/
public class RequestHelper {
public static RequestHelper instance = null;
HashMap<String, Command> commands = new HashMap<String, Command>();
private RequestHelper() {
commands.put("addNaznachPage", new AddNaznachPage());
commands.put("addNazn", new AddNaznachCommand());
commands.put("viewNaznachPage", new ViewNaznachPage());
commands.put("viewNazn", new ViewNaznachCommand());
commands.put("deleteNaznachPage", new DeleteNaznachPage());
commands.put("deleteNazn", new DeleteNaznachCommand());
commands.put("addCreditPage", new AddCreditPage());
commands.put("addCred", new AddCreditCommand());
commands.put("viewCreditPage", new ViewCreditPage());
commands.put("viewCred", new ViewCreditCommand());
commands.put("deletCreditPage", new DeleteCreditPage());
commands.put("deleteCred", new DeleteCreditCommand());
commands.put("addClientPage", new AddClientPage());
commands.put("addCl", new AddClientCommand());
commands.put("viewClientPage", new ViewClientPage());
commands.put("viewCl", new ViewClientCommand());
commands.put("deleteClientPage", new DeleteClientPage());
commands.put("deleteCl", new DeleteClientCommand());
commands.put("logPassPage", new LogPassPage());
commands.put("logPs", new LogPassCommand());
commands.put("viewCreditClPage", new ViewCreditClPage());
commands.put("viewCredCl", new ViewCreditClCommand());
commands.put("viewNaznachClPage", new ViewNaznachClPage());
commands.put("viewNaznCl", new ViewNaznachClCommand());
}
public Command getCommand(HttpServletRequest request) {
String action = request.getParameter("command");
Command command = commands.get(action);
if (command == null) {
command = new NoCommand();
}
return command;
}
public static RequestHelper getInstance() {
if (instance == null) {
instance = new RequestHelper();
}
return instance;
}
}
Файл AddCreditCommand.java
package credit.web.command;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import credit.web.logic.AddCreditLogic;
/**
* @author Максим
*/
public class AddCreditCommand implements Command {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
AddCreditLogic acl = new AddCreditLogic();
String page = ADD_CREDIT_PAGE;
request.setCharacterEncoding("UTF-8");
String id_cX = request.getParameter("id_cred");
String sr_crX = request.getParameter("srok_cred");
String sum_crX = request.getParameter("summ_cred");
String pr_crX = request.getParameter("percent_cred");
String nam_cr = request.getParameter("name_cred");
String id_nX = request.getParameter("id_nazn");
int id_c, sr_cr, sum_cr, pr_cr, id_n, pl_ms;
if ((nam_cr.isEmpty()) || (id_cX.matches("\\d+") == false) || (sr_crX.matches("\\d+") == false) || (sum_crX.matches("\\d+") == false) || (pr_crX.matches("\\d+") == false) || (id_nX.matches("\\d+") == false)) {
String message = "Ошибка, повторите ввод данных";
request.setAttribute("error", message);
} else {
id_c = Integer.parseInt(id_cX);
sr_cr = Integer.parseInt(sr_crX);
sum_cr = Integer.parseInt(sum_crX);
pr_cr = Integer.parseInt(pr_crX);
id_n = Integer.parseInt(id_nX);
pl_ms = (sum_cr * (pr_cr) / 12) / (1 - (1 + (pr_cr) / 12) ^ (-sr_cr));
String data = acl.addCreditLogic(id_c, sr_cr, sum_cr, pr_cr, nam_cr, id_n, pl_ms);
request.setAttribute("resData", data);
}
return page;
}
}
Файл Credit.java
package credit.web.components;
/**
*
* @author Максим
*/
public class Credit {
public int id_cred;
public int getId_cred() {
return id_cred;
}
public void setId_cred(int id_cred) {
this.id_cred = id_cred;
}
public int srok_cred;
public int getSrok_cred() {
return srok_cred;
}
public void setSrok_cred(int srok_cred) {
this.srok_cred = srok_cred;
}
public int summ_cred;
public int getSumm_cred() {
return summ_cred;
}
public void setSumm_cred(int summ_cred) {
this.summ_cred = summ_cred;
}
public int percent_cred;
public int getPercent_cred() {
return percent_cred;
}
public void setPercent_cred(int percent_cred) {
this.percent_cred = percent_cred;
}
public String name_cred;
public String getName_cred() {
return name_cred;
}
public void setName_cred(String name_cred) {
this.name_cred = name_cred;
}
public int id_nazn;
public int getId_nazn() {
return id_nazn;
}
public void setId_nazn(int id_nazn) {
this.id_nazn = id_nazn;
}
public int plata_mes;
public int getPlata_mes() {
return plata_mes;
}
public void setPlata_mes(int plata_mes) {
this.plata_mes = plata_mes;
}
}
Файл connection.java
package credit.web.connect;
import java.sql.Connection;
import java.sql.DriverManager;
public class connection {
public Connection connect() {
String username = "sa";
String password = "123";
String url = "jdbc:sqlserver://localhost\\sqlexpress:1051;databaseName=bankCred";
Connection con = null;
try {//1
try {//2
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
} catch (Exception e) {
System.out.println("Error Trace in forName() : " + e.getMessage());
}
return con;
}
}
Файл AddCreditLogic.java
package credit.web.logic;
import credit.web.connect.connection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
/**
*
* @author Максим
*/
public class AddCreditLogic {
public String addCreditLogic(int id_c, int sr_cr, int sum_cr, int pr_cr, String nam_cr, int id_n, int pl_ms) {
connection conn = new connection();
Connection con = conn.connect();
try {
Statement st = null;
st = con.createStatement();
ResultSet rs = null;
try {
String ins = "INSERT INTO credit VALUES(?,?,?,?,?,?,?)";
PreparedStatement ps = null;
ps = con.prepareStatement(ins);
ps.setInt(1, id_c);
ps.setInt(2, sr_cr);
ps.setInt(3, sum_cr);
ps.setInt(4, pr_cr);
ps.setString(5, nam_cr);
ps.setInt(6, id_n);
ps.setInt(7, pl_ms);
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
rs.close();
}
}
} catch (Exception e) {
System.out.println("Error Trace in createStatement() : " + e.getMessage());
}
return "Вы мне нравитесь, и с этой задачей справились !!!";
}
}
Файл AddCreditPage.java
package credit.web.command;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Максим
*/
public class AddCreditPage implements Command {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
return ADD_CREDIT_PAGE;
}
}
Приложение К
Листинг скрипта генерации базы данных
USE [bankCred]
GO
/****** Объект: Table [dbo].[naznach] Дата сценария: 06/06/2013 03:32:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[naznach](
[id_nazn] [int] NOT NULL,
[nazn] [nchar](30) NOT NULL,
CONSTRAINT [PK_naznach_1] PRIMARY KEY CLUSTERED
(
[id_nazn] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Объект: Table [dbo].[logPass] Дата сценария: 06/06/2013 03:32:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[logPass](
[login] [nchar](5) NOT NULL,
[pass] [nchar](5) NOT NULL
) ON [PRIMARY]
GO
/****** Объект: Table [dbo].[credit] Дата сценария: 06/06/2013 03:31:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[credit](
[id_cred] [int] NOT NULL,
[srok_cred] [int] NOT NULL,
[summ_cred] [int] NOT NULL,
[percent_cred] [int] NOT NULL,
[name_cred] [nchar](20) NOT NULL,
[id_nazn] [int] NOT NULL,
[plata_mes] [int] NULL,
CONSTRAINT [PK_credit_1] PRIMARY KEY CLUSTERED
(
[id_cred] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Объект: Table [dbo].[client] Дата сценария: 06/06/2013 03:31:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[client](
[id_cl] [int] NOT NULL,
[fam_cl] [nchar](20) NOT NULL,
[name_cl] [nchar](20) NOT NULL,
[otch_cl] [nchar](20) NOT NULL,
[id_cred] [int] NOT NULL,
CONSTRAINT [PK_client_2] PRIMARY KEY CLUSTERED
(
[id_cl] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [PK_client] UNIQUE NONCLUSTERED
(
[id_cl] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Объект: ForeignKey [FK_client_credit] Дата сценария: 06/06/2013 03:31:56 ******/
ALTER TABLE [dbo].[client] WITH CHECK ADD CONSTRAINT [FK_client_credit] FOREIGN KEY([id_cred])
REFERENCES [dbo].[credit] ([id_cred])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[client] CHECK CONSTRAINT [FK_client_credit]
GO
/****** Объект: ForeignKey [FK_credit_naznach] Дата сценария: 06/06/2013 03:32:00 ******/
ALTER TABLE [dbo].[credit] WITH CHECK ADD CONSTRAINT [FK_credit_naznach] FOREIGN KEY([id_nazn])
REFERENCES [dbo].[naznach] ([id_nazn])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[credit] CHECK CONSTRAINT [FK_credit_naznach]
GO
Размещено на Allbest.ru
Подобные документы
Описание сервиса электронного кафе и определение основных требований к системе. Модели вариантов использования, состояний, последовательности, классов, компонентов и развертывания. Описание алгоритмов, реализующих бизнес-логику серверной части.
курсовая работа [3,3 M], добавлен 23.12.2014Исследование системы функционирования зоомагазина "Дракоша" и схематическое описание бизнес-процессов предприятия. Генерация кода и разработка автоматизированной информационной системы магазина на языке программирования С+. Расчет диаграмм автоматизации.
курсовая работа [841,8 K], добавлен 07.08.2013Описание автоматизированной информационной системы автотранспортного предприятия. Область применения системы, ее функциональное содержание и возможности. Требования к программной и аппаратной части, алгоритм работы. Сценарий работы с пользователем.
курсовая работа [638,6 K], добавлен 18.09.2014Создание автоматизированной информационной системы для автоматизации оформления документов по проживанию в гостинице "Галерея", г. Пермь. Организация системы информационной безопасности, угрозы характерные для предприятия и существующие меры защиты.
дипломная работа [3,5 M], добавлен 30.12.2013Сравнение клиент-серверной и файл-серверной архитектуры. Особенности разработки проекта автоматизированной информационной системы "Ведение протокола нерешенных задач по материалам для ЗАО "Авиастар-СП". Расчет экономической эффективности от внедрения АИС.
курсовая работа [1,4 M], добавлен 23.06.2011Разработка автоматизированной информационной системы для учета и контроля выполнения ремонтных работ, и предоставления услуг по разработке программного обеспечения компании "МегионСофтОйл", разработка алгоритмов приложений программной системы и модулей.
дипломная работа [5,3 M], добавлен 29.06.2012Проектирование процесса автоматизации оформления продаж автомобилей в автосалоне. Описание бизнес-процессов учета автомобилей. Исследование информационных потоков. Анализ входной и выходной информации. Алгоритмы решения задачи и их машинная реализация.
курсовая работа [2,9 M], добавлен 11.03.2014Понятие и этапы жизненного цикла информационной системы. Классификация и характеристика бизнес-процессов. Проектирование архитектуры автоматизированной системы управления документооборотом и баз данных. Разработка интерфейса пользовательской части.
дипломная работа [549,9 K], добавлен 09.02.2018Реализация базы данных и серверной части информационной системы склада средствами СУБД Microsoft SQL Server. Анализ предметной области, информационных задач, пользовательской системы. Программа реализации проекта. Выработка требований и ограничений.
курсовая работа [2,4 M], добавлен 15.11.2015Разработка и внедрение автоматизированной информационной системы. Изучение основных процессов, протекающих в предметной области. Создание базы данных. Исследование средств защиты информации от несанкционированного доступа и идентификации пользователей.
курсовая работа [487,2 K], добавлен 17.03.2014