Системы управления базами данных

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 23:11, курсовая работа

Краткое описание

Задача: спроектировать базу данных Горисполкома города Зимогорье, используя имеющиеся данные Государственной налоговой службы, Пенсионного фонда для автоматического начислении субсидий. Автоматизировать процесс предоставлении льгот на оплату услуг ЖКХ на основе мощностей Единого расчетного центра(ЕРЦ), где хранятся сведения обо всех коммунальных платежах жителей города.

Прикрепленные файлы: 1 файл

kursak_BD.docx

— 1.10 Мб (Скачать документ)

Представим описание объектов и  связей между ними в виде логической ER-модели и созданной в выбранном  для проектирования CASE-средстве MySQL Workbench.

 

 

 

 

7.Проектирование логической структуры базы данных

На этапе логического проектирования необходимо определить типы и длины  полей. После построения ER-модели в  среде MySQL Workbench следует использовать метод прямого инжиниринга, позволяющий автоматически сгенерировать описание и структуру спроектированной базы данных в среде выбранной СУБД и будет выглядеть следующим образом:

HomeOwner(idHomeowner(целое), Name(Текстовый (45)), Address(Текстовый (60)), Passport(Текстовый (45)), IdentificationCode(целое), PersonalAccount(целое)).

TypeUtilityServices(idTypeUtilityServices(целое), Name(Текстовый (45))).

Payments(idPayments(целое), MonthPayment(целое), DatePayment(дата), idTypeOfUtilityServices(целое), idUtilityServices(целое)).

Housing(idHous(целое), Address(Текстовый (45)), idHomeowner(целое), idStreet(целое), idTypeOfHousing(целое), AreaFlat(число с плавающей точкой)).

UtilityServices(idUtilityServices(целое), Name(Текстовый (45)), idDisplayCounters(целое), idHous(целое), Privilege(число с плавающей точкой)).

DisplayCounters(idDisplayCounters(целое), idTypeCounters(целое), SerialCode(Текстовый (45)), DateOfVerification(дата), LastStatement(целое)).

TypeOfHousing(idTypeOfHousing(целое), Name(Текстовый (45))).

Street(idStreet(целое), Name(Текстовый (45))).

TypeCounters(idTypeCounters(целое), Name(Текстовый(45))).

W3_user_details(userId(целое(10)), passwordHint(Текстовый), isEmailConfirmed (enum(0 or 1)), emailConfirmationKey(Текстовый), isEmailVisible(enum(0 or 1)), isScreenNameEditable(enum(0 or 1)), deactivationTime(целое(10)), firstName(Текстовый(128)), middleName(Текстовый(128)), lastName(Текстовый(128)), initials(Текстовый(16)), occupation(Текстовый(128)), gender(enum('male','female')), birthDate(дата), textStatus(Текстовый), lastLoginTime(целое(10)), lastVisitTime(целое(10)), totalTimeLoggedIn(целое(9)), secretQuestion(Текстовый), secretAnswer(Текстовый(255)), administratorNote(Текстовый), updateTime(целое(10))).

W3_user(id(целое(10)), username(Текстовый(128)), password(Текстовый(128)), salt(Текстовый(128)), email(Текстовый(255)), screenName(Текстовый(128)), language(Текстовый(24)), interface(Текстовый(64)), accessType(Текстовый(32)), accessLevel(целое(1)), isActive(ENUM('0','1')), createTime(целое(10))).

 

 

 

 

 

 

 

8.Выявление полного перечня ограничений целостности, присущего данной предметной области

Обеспечение целостности данных является важнейшей задачей при проектировании и эксплуатации систем обработки  данных.

Целостность – это актуальность и непротиворечивость информации, ее защищенность от разрушения и несанкционированного изменения. Целостность является одним  из аспектов информационной безопасности наряду с доступностью – возможностью с приемлемыми затратами получить требуемую информационную услугу, и  конфиденциальностью – защитой  от несанкционированного прочтения. Ограничение целостности – это набор специальных предложений, описывающих допустимые значения отдельных информационных единиц и связей между ними. Большинство ограничений целостности вызваны спецификой предметной области. Нарушение ограничений целостности может происходить по нескольким причинам: ошибки, преднамеренное нарушение, вирусы, сбои. Поэтому необходимо контролировать ограничения целостности. Помимо упомянутых нами на стадии описания предметной области ограничений целостности, во время разработки базы данных интернет-магазина нами также были выявлены многие другие ограничения. Большинство из них контролируются непосредственно в таблицах. Поскольку ввод всех данных в таблице осуществляется через разработанные нами вспомогательные формы, также существует достаточно большое количество ограничений, которые контролируются средствами конструктора форм, а также при помощи встроенного в среду MySQL Workbench .Далее будут перечислены все ограничения целостности, которые будут контролироваться в данном курсовом проекте, а также выбранные способы реализации контроля целостности для каждого из ограничений.

 

 

Ограничения, контролируемые в таблицах:

 

  1. Текстовое поле «Name» в таблице «HomeOwner» не может содержать пробелов.
  2. Текстовое поле «Address» в таблице «HomeOwner» не может содержать пробелов.
  3. Текстовое поле «Passport» в таблице «HomeOwner» не может содержать пробелов.
  4. Текстовое поле «IdentificationCode» в таблице «HomeOwner» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида. 
  5. Текстовое поле «PersonalAccount» в таблице «HomeOwner» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  6. Текстовое поле «Name» в таблице «TypeUtilityServices» не может содержать пробелов.
  7. Текстовое поле «Address» в таблице «Housing» не может содержать пробелов.
  8. Текстовое поле «idHomeowner» в таблице «Housing» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  9. Текстовое поле «idStreet» в таблице «Housing» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  10. Текстовое поле «idTypeOfHousing» в таблице «Housing» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  11. Текстовое поле «AreaFlat» в таблице «Housing» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  12. Текстовое поле «MonthPayment» в таблице «Payments» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  13. Текстовое поле «DatePayment» в таблице «Payments» должно быть определенного вида, который контролируется маской ввода.
  14. Текстовое поле «idTypeOfUtilityServices» в таблице «Payments» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  15. Текстовое поле «idUtilityServices» в таблице «Payments» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  16. Текстовое поле «Name» в таблице «UtilityServices» не может содержать пробелов.
  17. Текстовое поле «idDisplayCounters» в таблице «UtilityServices» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  18. Текстовое поле «idHous» в таблице «UtilityServices» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  19. Текстовое поле «Privilege» в таблице «UtilityServices» не может содержать пробелов или кириллических символов и может содержать только цифры с плавающей точкой и должно быть определенного вида.
  20. Текстовое поле «Name» в таблице «TypeOfHousing» не может содержать пробелов.
  21. Текстовое поле «Name» в таблице «Street» не может содержать пробелов.
  22. Текстовое поле «Name» в таблице «TypeCounters» не может содержать пробелов.
  23. Текстовое поле «idTypeCounters» в таблице «DisplayCounters» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  24. Текстовое поле «SerialCode» в таблице «DisplayCounters» не может содержать пробелов.
  25. Текстовое поле «DateOfVerification» в таблице «DisplayCounters» не может содержать пробелов и должно быть определенного вида, который контролируется маской ввода.
  26. Текстовое поле «LastStatement» в таблице «DisplayCounters» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  27. Текстовое поле «username» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  28. Текстовое поле «password» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  29. Текстовое поле «salt» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  30. Текстовое поле «email» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  31. Текстовое поле «screenName» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  32. Текстовое поле «language» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  33. Текстовое поле «interface» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  34. Текстовое поле «accessType» в таблице «w3_user» не может содержать пробелов и должно легко запоминаться.
  35. Текстовое поле «accessLevel» в таблице «w3_user» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  36. Текстовое поле «isActive» в таблице «w3_user» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида(0 или 1).
  37. Текстовое поле «createTime» в таблице «w3_user» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида.
  38. Текстовое поле «isEmailConfirmed» в таблице «w3_user_deteils» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида(0 или 1).
  39. Текстовое поле «firstName» в таблице «w3_user_deteils» не может содержать пробелов и должно быть определенного вида, который контролируется маской ввода.
  40. Текстовое поле «middleName» в таблице «w3_user_deteils» не может содержать пробелов и должно быть определенного вида, который контролируется маской ввода.
  41. Текстовое поле «lastName» в таблице «w3_user_deteils» не может содержать пробелов и должно быть определенного вида, который контролируется маской ввода.
  42. Текстовое поле «gender» в таблице «w3_user_deteils» не может содержать пробелов или кириллических символов и может содержать только цифры и должно быть определенного вида('male','female').
  43. Текстовое поле «birthDate» в таблице «w3_user_deteils» не может содержать пробелов.

 

 

 

 

 

9.Проектирование физической структуры базы данных

Физическая модель – это привязка логической модели к конкретной среде  хранения и методам хранения данных. При проектировании физической модели базы данных необходимо описать среду  и метод хранения информации. Для  этого необходимо изучить особенности  организации данных выбранной СУБД. Для проектирования базы данных для  Интернет-магазина была выбрана СУБД MySQL. Для хранения данных в этой СУБД используются таблицы. В них хранится вся информация о предметной области. Наша база данных включает несколько взаимосвязанных таблиц. Объекты, которые были описаны при построении инфологической модели предметной области, в базе данных являются таблицами. Представим описание объектов и связей между ними в виде физической ER-модели и созданной в выбранном для проектирования php framework-а Yii.

На рисунках ниже представлены разработанные  таблицы:

Таблица«displaycounters»

Таблица «Payments»

Таблица «streets»

Таблица «typecounters» Таблица « typeofhousing»

Таблица « user»

Таблица « utilityservices»

 

Таблица «homeowner»

Таблица «housing»

 

9.1. Генерация  каркаса на  php framework Yii

Create, read, update и delete (CRUD) — четыре основных  операции, при помощи которых  можно управлять данными. В  нашем приложении главная задача  состоит в том, чтобы реализовать  операции CRUD для записей и комментариев. В этом разделе мы будем  использовать инструмент yiic для выполнения этой задачи. Этот процесс также известен как scaffolding.

Чтобы подготовиться  к следующим этапам, давайте поближе  познакомимся с содержимым сгенерированных  файлов. Все сгенерированые файлы  расположены в директории/wwwroot/blog/protected. Для удобства мы разделяем их на модели, контроллеры и представления:

файлы моделей:

Models/User.php содержит класс User, который наследуется от CActiveRecord и может использоваться для обращения к таблице User;

Models/Post.php содержит класс Post, который наследуется от CActiveRecord и может использоваться для обращения к таблице Post;

Models/Tag.php содержит класс Tag, который наследуется от CActiveRecord и может использоваться для обращения к таблице Tag;

Models/Comment.php содержит класс Comment, который наследуется от CActiveRecord и может использоваться для обращения к таблице Comment;

файлы контроллеров:

Controllers/PostController.php содержит класс PostController, который является контроллером, отвечающим за все операции CRUD для записей;

Controllers/CommentController.php содержит класс CommentController, который является контроллером, отвечающим за все операции CRUD для комментариев;

файлы представлений:

views/post/create.php — файл представления, который показывает HTML-форму для создания записи;

views/post/update.php — файл представления, который показывает HTML-форму для обновления записи;

views/post/show.php — файл представления, который отображает подробную информацию поста;

views/post/list.php — файл представления, который отображает список записей;

views/post/admin.php— файл представления, который отображает записи в таблице с административными командами.

views/post/_form.php — частичный файл представления, который отображает HTML-форму для сбора информации о посте. Он включается в представления create и update.

Подобный  набор файлов представлений также  сгенерирован для комментариев.

 

10. Организация ввода данных в БД

База данных состоит из взаимосвязанных  таблиц, которые наполняются записями. Ведение базы данных подразумевает  под собой возможность управления записями: их добавление, изменение, удаление. Реализация данных возможностей возлагается  на СУБД. Существует несколько способов реализации управления базой данных в php framework. В частности, любое из указанных действий можно выполнить тремя способами:

-через раздел СУБД «Таблицы», производя действия по изменению, добавлению или удалению непосредственно в таблице;

-через раздел СУБД «Формы», выполняя необходимые действия в таблице через интерфейс формы;

через раздел СУБД «Запросы», выполняя запросы на обновление, добавление или удаление данных.

Существует 3 способа ввода данных: ввод с клавиатуры; сохранение данных, сформированных иными программными средствами; импорт из других источников. В нашей базе данных мы использовали ввод с клавиатуры. В процессе ввода  информации были использованы следующие  приемы: перенос значений полей из предыдущих записей; замена ввода выбором  из списка, вспомогательные запросы  для полей, которые необходимо вычислять. Ввод информации в базу данных может осуществляться путем ввода данных в таблицу. Но такой способ имеет многие очевидные недостатки. Поэтому для этих целей обычно используются экранные формы. Формы – это окна, через которые пользователь взаимодействует с программным кодом приложения и объектами данных. Ввод данных при помощи форм очень простой в использовании. С помощью форм также можно осуществлять полноценную навигацию по таблице.

При проектировании нашей базы данных ввод информации осуществлялся при помощи форм. Экранные формы создаются либо в режиме конструктора, либо автоматически по выбранным полям таблицы или  запроса. Корректировка данных возможна в этих же формах.

Эти формы  имеют следующий вид:

 

Экранная  форма «Login(вход)»

 

Экранная  форма «Register(регистрация)»

11. Организация корректировки БД

Корректировка данных в базе данных может осуществляться путем корректировки  данных в форме. В основных таблицах нашей БД, например «Member», «My profile», «HomeOwner» и так далее, основная информация чаще всего поступает извне, а именно с сайта Горисполкома, то формы, соответствующие этим таблицам созданы прежде всего для корректировки записей. Приведем примеры этих форм:

Member:

My profile:

HomeOwner:

 

 

 

 

 

 

 

 

 

 

12. Описание информационных потребностей пользователей и выбор способов их реализации.

Пример расчета субсидии:

   Гражданка И., 1970 года рождения, не замужем, проживает с несовершеннолетним ребёнком в доме общей площадью 68 кв.м.

Имеет доходы:

зарплата – 968 грн.;

алименты – 400 грн.

Итого: 1368 грн. в месяц.

В доме установлен счётчик  на газ.

Среднемесячное фактическое  потребление газа – 750,0 куб.м при  норме 614,1 куб.м (52,5 кв.м).

Общая сумма коммунальных платежей составляет:

газ (в пределах нормы 614,1 куб.м) по новой цене при объёме газа до 6000 куб.м – 674,28 грн.;

холодная вода – 39,90 грн.;

электроэнергия (75 кВт) – 18,27 грн.

Итого: 732,45 грн.

Обязательный платёж составляет 15% от дохода: 1368 х 15% = 205,20 грн.

Субсидия составляет: 732,45 грн. – 205,20 грн. = 527,25 грн. в месяц.

 

Пример  выполнения скрипта:

(SELECT COUNT((p.MonthPayment)-(COUNT(p.MonthPayment)*us.Privilege/100)) AS Subsidy, us.idHous

FROM Payments AS p

INNER JOIN UtilityServices AS us

ON us.UtilityServices = p.UtilityServices

GROUP BY us.idHous) AS mp  

13. Разработка интерфейса

При проектировании и разработке любой  базы данных интерфейс играет важную роль. Он представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует  с различными компонентами базы данных. Работа с нашей базой данных начинается с заставки. После просмотра заставки, пользователь попадает в главное меню, которое предназначено для предоставления пользователю удобной навигации по всем формам базы данных, которые сгруппированы по функциям. Главное меню содержит три раздела:

-Сайт

-Администрирование БД

При переходе на раздел сайт, пользователь попадает на форму, эмулирующую работу сайта. На котором можно зарегистрироваться, войти, связаться с нами, просмотреть информацию о компании и услугах. Раздел «Администрирование БД» предназначен для сотрудников горисполкома. Доступ к каждому из подразделов защищен паролем и сотрудник имеет доступ только к тем, которые относятся к его должностным обязанностям.

 

 

 

 

 

 

 

 

 

 

 

 

14. Реализация проекта в среде конкретной СУБД

Информация о работе Системы управления базами данных