Разработка программы автоматизированной системы, предназначенной для учета информации о сдающихся, продающихся, покупаемых и арендуемых объектах недвижимости. Разработка реляционной модели данных. Руководство пользователя и Руководство администратора.
Составляющие этой модели - объекты («типы сущностей»), их свойства («атрибуты сущностей») и связи между объектами. Код Логической Операции - является уникальным номером логической операции и является идентифицирующим(ключевым) атрибутом. Код Населенного пункта - является уникальным номером населенного пункта и является идентифицирующим(ключевым) атрибутом. 5 Операция с объектом - Заявка Владельца С заявкой сопоставляется одна операция. 6 Операция с объектом - Заявка Покупателя С заявкой сопоставляется одна операция.Руководство пользователяСистема обеспечивает выполнение следующих основных функций: 1) Предоставление определенного тип услуги без регистрации новой заявки; 2) Регистрацию новой заявки на продажу объекта недвижимости; 3) Регистрацию новой заявки на сдачу объекта недвижимости в аренду; 6) Поиск по зарегистрированной заявке объекта удовлетворяющего характеристикам, указанным в этой заявке;Программа требует установки дополнительного программного обеспечения: 1) Microsoft.NET Framework 3.5; Программа не требует инсталляции.Добавление адреса Exec agency_add_address ‘КОДСУБЪЕКТА’,’ КОДНАСПУНКТА’,’ КОДРАЙОНА’,’ КОДУЛИЦЫ’,’Дом’,’Квартира’ Регистрация нового адреса объекта владельца Добавление клиента Exec agency_add_client ‘Фамилия’, ’Имя’,’ Отчество’,’ Телефон’ Регистрация нового клиента агентства Добавление адресу района Exec agency_add_district_list ‘КОДАДРЕСА’, ’КОДРАЙОНА’ Сопоставление адресу района Добавление логической операции Exec agency_add_logic_operation ‘Операция’ Регистрация новой логической операции Добавление объекта владельца Exec agency_add_owner_object ‘НАЗВАНИЕОБ’, ’КОДКАТЕГОРИИ’,’ КОДАДРЕСА’ Регистрация объекта владельцаСистема обеспечивает выполнение следующих основных функций: 1) Предоставление определенного тип услуги без регистрации новой заявки; 2) Регистрацию новой заявки на продажу объекта недвижимости; 3) Регистрацию новой заявки на сдачу объекта недвижимости в аренду; 6) Поиск по зарегистрированной заявке объекта удовлетворяющего характеристикам, указанным в этой заявке;Обычно администратор считается пользователем системы, однако, при этом он наделен как особыми обязанностями, так и необходимыми для их выполнения привилегиями.Данный программный продукт выполняется под управлением операционной системы Windows 2000/2003/XP/ Vista/7.
Введение
Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии БД основанных на реляционной структуре. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.
Целью данного курсового проекта является создание автоматизированной системы учета объектов недвижимости и действий с этими объектами.
1. Описание внешней модели проектируемой системы
Система выполняет следующие функции: 1) Клиент может запросить определенный тип услуги без регистрации новой заявки;
2) Клиент может оставить заявку на продажу объекта недвижимости;
3) Клиент может оставить заявку на сдачу объекта недвижимости в аренду;
4) Клиент может оставить заявку на покупку объекта недвижимости;
5) Клиент может оставить заявку на аренду объекта недвижимости;
6) Для зарегистрированной заявки ищется объект удовлетворяющий характеристикам, указанным в этой заявке;
7) Выполнение заявки.
2. Проектирование базы данных
2.1 Разработка концептуальной модели
Концептуальная модель предназначена для формального описания объектной структуры предметной области. Составляющие этой модели - объекты («типы сущностей»), их свойства («атрибуты сущностей») и связи между объектами. Этап разработки информационной модели соответствует стадии «Эскизный проект». Результаты информационного моделирования представляются в виде простой и удобной для понимания и анализа графической диаграмме «сущность - связь».
Сущность - это некоторая абстракция реально существующего объекта предметной области. Различают тип сущности, описывающий множество однотипных объектов, и экземпляр сущности, описывающий конкретный объект определенного типа.
На основании первичного анализа внешней модели выделим следующие типы сущностей: 1. Клиент
2. Владелец
3. Покупатель
4. Объект владельца
5. Объект покупателя
6. Заявка владельца
7. Заявка покупателя
8. Реальный адрес
9. Желаемый адрес
10. Логические операции
11. Услуга
12. Операция с объектом
13. Категория
14. Свойства
15. Субъект
16. Населенный пункт
17. Район
18. Улица
Определим атрибуты этих сущностей.
Сущность «Клиент» (Код Клиента, ФИО, Телефон)
Код Клиента - является уникальным номером клиента и является идентифицирующим(ключевым) атрибутом.
ФИО - содержит фамилию, имя и отчество клиента.
Телефон - содержит номер клиента.
Сущность «Владелец» (Код Владельца, Код Клиента)
Код Владельца - является уникальным номером владельца и является идентифицирующим(ключевым) атрибутом.
Код Клиента - является уникальным номером клиента.
Сущность «Покупатель» (Код Покупателя, Код Клиента)
Код Покупателя - является уникальным номером покупателя и является идентифицирующим (ключевым) атрибутом.
Код Клиента - является уникальным номером клиента.
Сущность «Объект владельца» (Код Категории, Название, Код Адреса)
Код Категории - является уникальным номером категории.
Название - название объекта.
Код Адреса - является уникальным номером адреса.
Сущность «Объект покупателя» (Код Категории, Код Адреса)
Код Категории - является уникальным номером категории.
Код Адреса - является уникальным номером адреса.
Сущность «Заявка владельца» (Код Владельца, Код Объекта, Код Операции, Цена, Исполнена, Дата)
Код Владельца - является уникальным номером владельца.
Код Объекта - является уникальным номером объекта.
Сущность «Реальный адрес» (Код Адреса, Код Субъекта, Код Населенного Пункта, Код Района, Код Улицы, Дом, Квартира)
Код Адреса - является уникальным номером адреса и является идентифицирующим(ключевым) атрибутом.
Код Субъекта - является уникальным номером субъекта.
Код Населенного Пункта - является уникальным номером населенного пункта.
Код Района - является уникальным номером района.
Код Улицы - является уникальным номером улица.
Дом - номер дома.
Квартира - номер квартиры.
Сущность «Желаемый адрес» (Код Адреса, Код Субъекта, Код Населенного Пункта)
Код Адреса - является уникальным номером адреса и является идентифицирующим(ключевым) атрибутом.
Код Субъекта - является уникальным номером субъекта.
Код Населенного пункта - является уникальным номером населенного пункта и является идентифицирующим(ключевым) атрибутом.
Название - название населенного пункта.
Сущность «Район» (Код Района, Название)
Код Района - является уникальным номером района и является идентифицирующим(ключевым) атрибутом.
Название - название района.
Сущность «Улица» (Код Улицы, Название)
Код Улицы - является уникальным номером улицы и является идентифицирующим(ключевым) атрибутом.
Название - название улицы.
Связь характеризует отношение между типами сущностей и отображает взаимосвязи между реальными объектами. Каждой связи присваивается содержательное имя. Существует понятие «арности» связи, определяющее количество участвующих в ней типов сущностей. Бинарные связи устанавливают отношение между парой сущностей, k-арные - между k сущностями. По аналогии с сущностями различают типы и экземпляры связей. Каждый экземпляр связи устанавливает определенное отношение между экземплярами сущностей. Определим связи между сущностями.
Таблица 1
№ Связь Описание Тип связи
1 Клиент - Владелец Все владельцы являются клиентами. Один ко многим
2 Клиент - Покупатель Все покупатели являются клиентами. Один ко многим
3 Владелец - Заявка Владельца Один владелец может оставлять несколько заявок. Один ко многим
4 Покупатель - Заявка Покупателя Один владелец может оставлять несколько заявок. Один ко многим
5 Операция с объектом - Заявка Владельца С заявкой сопоставляется одна операция. Один ко многим
6 Операция с объектом - Заявка Покупателя С заявкой сопоставляется одна операция. Один ко многим
7 Объект Владельца - Заявка Владельца Заявка описывает операцию с одним объектом. Один ко многим
8 Объект Покупателя - Заявка Покупателя Заявка описывает операцию с одним объектом. Один ко многим
9 Категория - Объект Владельца Объект соответствует определенной категории. Один ко многим
10 Категория - Объект Покупателя Объект соответствует определенной категории. Один ко многим
11 Адрес - Объект Владельца Одному адресу соответствует один объект. Один ко многим
12 Желаемый Адрес - Объект Покупателя Одному адресу соответствует один объект. Один ко многим
13 Логическая операция - Заявка Покупателя В заявке может присутствовать одна логическая операция. Один ко многим
14 Субъект - Адрес В адресе может находиться один субъект. Один ко многим
15 Населенный Пункт - Адрес В адресе может находиться один населенный пункт. Один ко многим
16 Район - Адрес В адресе может находиться один район. Один ко многим
17 Улица - Адрес В адресе может находиться одна улица. Один ко многим
Для связей «Многие ко многим» создадим дополнительные ассоциативные объекты, которые будут содержать первичные ключи связанных сущностей.
1. Запрос услуги (КОДКЛИЕНТА, КОДУСЛУГИ)
2. Свойства объекта владельца (КОДОБЪЕКТА, КОДСВОЙСТВА,ЗНАЧЕНИЕСВОЙСТВА)
3. Свойства Категории (КОДКАТЕГОРИИ, КОДСВОЙСТВА)
4. Свойства объекта покупателя(КОДОБЪЕКТА, КОДСВОЙСТВА,КОДЛОГИЧЕСКОЙОПЕРАЦИИ,ЗНАЧЕНИЕСВОЙСТВА)
5. Список улиц (КОДАДРЕСА, КОДУЛИЦЫ)
6. Список районов(КОДАДРЕСА, КОДРАЙОНА)
Определим атрибуты этих ассоциативных объектов.
«Запрос услуги» (КОДКЛИЕНТА, КОДУСЛУГИ)
КОДКЛИЕНТА - код запрашиваемого услугу клиента.
КОДУСЛУГИ - код запрашиваемой услуги.
«Свойства объекта владельца» (КОДОБЪЕКТА, КОДСВОЙСТВА,ЗНАЧЕНИЕСВОЙСТВА)
КОДОБЪЕКТА - код объекта.
КОДСВОЙСТВА - код свойства.
ЗНАЧЕНИЕСВОЙСТВА - значение свойства, принадлежащего объекту.
«Свойства Категории» (КОДКАТЕГОРИИ, КОДСВОЙСТВА)
КОДКАТЕГОРИИ - код категории.
КОДСВОЙСТВА - код свойства определенного для данной категории.
«Свойства объекта покупателя» (КОДОБЪЕКТА, КОДСВОЙСТВА,КОДЛОГИЧЕСКОЙОПЕРАЦИИ,ЗНАЧЕНИЕСВОЙСТВА)
КОДОБЪЕКТА - код объекта.
КОДСВОЙСТВА - код свойства.
КОДЛОГИЧЕСКОЙОПЕРАЦИИ - код логической операции по отношению к значению свойства.
ЗНАЧЕНИЕСВОЙСТВА - значение свойства, принадлежащего объекту.
«Список улиц» (КОДАДРЕСА, КОДУЛИЦЫ)
КОДАДРЕСА - код адреса.
КОДУЛИЦЫ - код улицы, соответствующей данному адресу.
«Список районов» (КОДАДРЕСА, КОДРАЙОНА)
КОДАДРЕСА - код адреса.
КОДРАЙОНА - код района, соответствующий данному адресу.
Для представления (документирования) модели «Сущность-Связь» используются графические диаграммы и табличные спецификации, информационно дополняющие друг друга.
Графическая диаграмма дает наглядное представление о структуре модели «Сущность-Связь». Основное назначение диаграммы - представление информации о составе объектов (типов сущностей) и видах связей, установленных между ними. Для отображения диаграммы принято использовать следующую графическую нотацию: типы сущностей изображаются прямоугольниками, а типы связей - ромбами, внутри которых указывается соответственно имя сущности или имя связи.
Ромб размещается в разрыве линии, соединяющей типы сущностей, участвующих в связи. Вид связи отображается количеством стрелок на концах линий: одна стрелка - «один», две стрелки - «много».
Рисунок 1 - ER-модель БД
2.2 Разработка реляционной модели данных
От ER-модели перейдем к реляционной модели данных.
Спецификация модели представляет собой множество поименованных таблиц, каждая из которых описывает тип сущности или тип связи. Каждая строка таблицы описывает один атрибут и содержит его имя, содержательное описание и описание типа данных. Среди атрибутов выделяются первичные и вторичные ключи. При необходимости таблица сопровождается поясняющими комментариями.
Символом (*) отмечены первичные ключи, а символом («) - внешние ключи, введенные в состав атрибутов сущностей, участвующих в связях вида 1:N со стороны «N». Для ассоциативных объектов, описывающих связи вида M:N между сущностями, первичный ключ образуется парой (или более) внешних ключей - первичных ключей связанных сущностей.
Тип сущности «Клиенты»
Имя атрибута Описание Тип
*КОДКЛИЕНТА Условный код Числовой
Фамилия Фамилия клиента Текстовый
Имя Имя клиента Текстовый
Отчество Отчество клиента Текстовый
Телефон Телефон клиента Текстовый
Тип сущности «Владелец»
Имя атрибута Описание Тип
*КОДВЛАДЕЛЕЦА Условный код Числовой
«КОДКЛИЕНТА Числовой
Тип сущности «Покупатель»
Имя атрибута Описание Тип
*КОДПОКУПАТЕЛЯ Условный код Числовой
«КОДКЛИЕНТА Числовой
Тип сущности «ОПЕРАЦИЯСОБЪЕКТОМ»
Имя атрибута Описание Тип
*КОДОПЕРАЦИИ Условный код Числовой
Операция Название операции Текстовый
Тип сущности «ТИПУСЛУГИ»
Имя атрибута Описание Тип
*КОДУСЛУГИ Условный код Числовой
Услуга Вид услуги Текстовый
Стоимость Стоимость услуги Денежный
Тип сущности «ЗАПРОСУСЛУГИ»
Имя АТРИБУТАОПИСАНИЕ Тип
«КОДКЛИЕНТА Числовой
«КОДУСЛУГИ Числовой
Тип сущности «Адрес»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДАДРЕСА Условный код Числовой
«КОДСУБЪЕКТА Числовой
«КОДНАСПУНКТА Числовой
«КОДРАЙОНА Числовой
«КОДУЛИЦЫ Числовой
Дом Номер дома Текстовый
Квартира Номер квартиры Числовой
Тип сущности «ОБЪЕКТВЛАДЕЛЬЦА»
Имя атрибута Описание Тип
*КОДОБЪЕКТА Условный код Числовой
Название Название объекта Текстовый
«КОДКАТЕГОРИИ Числовой
«КОДАДРЕСА Числовой
Тип сущности «СВОЙСТВАОБЪЕКТАВЛАДЕЛЬЦА»
Имя атрибута Описание Тип
«КОДОБЪЕКТА Числовой
«КОДСВОЙСТВА Числовой
ЗНАЧЕНИЕСВОЙСТВА Значение свойства объекта Текстовый
Тип сущности «Категория»
Имя атрибута Описание Тип
*КОДКАТЕГОРИИ Условный код Числовой
Название Название категории Текстовый
Тип сущности «ЗАЯВКАВЛАДЕЛЬЦА»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДЗАЯВКИВЛАДЕЛЬЦА Условный код Числовой
«КОДВЛАДЕЛЕЦА Числовой
«КОДОБЪЕКТА Числовой
«КОДОПЕРАЦИИ Числовой
Цена Цена за объект Денежный
Исполнена Выполнена ли заявка Логический
Дата Дата регистрации заявки Дата-временной
Тип сущности «ОБЪЕКТПОКУПАТЕЛЯ»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДОБЪЕКТА Условный код Числовой
«КОДАДРЕСА Числовой
«КОДКАТЕГОРИИ Числовой
Тип сущности «ЗАЯВКАПОКУПАТЕЛЯ»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДЗАЯВКИПОКУПАТЕЛЯ Условный код Числовой
«КОДПОКУПАТЕЛЯ Числовой
«КОДОБЪЕКТА Числовой
«КОДОПЕРАЦИИ Числовой
«КОДЛОГИЧОПЕРАЦИИ Числовой
Цена Цена за объект Денежный
Исполнена Выполнена ли заявка Логический
Дата Дата регистрации заявки Дата-временной
Ассоциативный объект «ЛОГИЧЕСКИЕОПЕРАЦИИ»
Имя атрибута Описание Тип
*КОДОПЕРАЦИИ Условный код Числовой
Операция Тип логической операции Текстовый
Ассоциативный объект «СВОЙСТВАКАТЕГОРИИ»
Имя АТРИБУТАОПИСАНИЕ Тип
«КОДКАТЕГОРИИ Числовой
«КОДСВОЙСТВА Числовой
Ассоциативный объект «Улица»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДУЛИЦЫ Числовой
Название Название улицы Текстовый
Ассоциативный объект «Субъект»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДСУБЪЕКТА Числовой
Название Название субъекта Текстовый
Ассоциативный объект «Район»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДРАЙОН Числовой
Название Название района Текстовый
Ассоциативный объект «НАСЕЛЕННЫЙПУНКТ»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДНАСПУНКТА Числовой
Название Название населенного пункта Текстовый
Ассоциативный объект «Свойства»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДСВОЙСТВА Числовой
Название Название свойства Текстовый
ЕДИЗМЕРЕНИЯ Единица измерения значения свойства Текстовый
Ассоциативный объект «СВОЙСТВАОБЪЕКТАПОКУПАТЕЛЯ»
Имя АТРИБУТАОПИСАНИЕ Тип
«КОДОБЪЕКТА Числовой
«КОДСВОЙСТВА Числовой
«КОДЛОГОПЕРАЦИИ Числовой
Значение Значение свойства объекта Текстовый
Ассоциативный объект «СПИСОКУЛИЦ»
Имя АТРИБУТАОПИСАНИЕ Тип
«КОДАДРЕСА Числовой
«КОДУЛИЦЫ Числовой
Ассоциативный объект «СПИСОКРАЙОНОВ»
Имя АТРИБУТАОПИСАНИЕ Тип
«КОДАДРЕСА Числовой
«КОДРАЙОНА Числовой
Ассоциативный объект «ЖЕЛАЕМЫЙАДРЕС»
Имя АТРИБУТАОПИСАНИЕ Тип
*КОДЖЕЛАЕМОГОАДРЕСА Числовой
«КОДСУБЪЕКТА Числовой
«КОДНАСПУНКТА Числовой
Рисунок 2 - Реляционная модель БД
Нормализация БД. Следующим шагом в проектировании реляционной БД является нормализация отношений. Должны отсутствовать нежелательные функциональные зависимости между атрибутами. Нормализированный набор таблиц обладает лучшими свойствами при включении, модификации и удалении данных, чем любой другой набор таблиц представляющий те же данные. Проектирование выполняется путем декомпозиции. При проектировании с использованием декомпозиции переходят от одной нормальной формы к другой нормальной форме более высокого уровня, сохраняя эквивалентность схем базы данных. Выделяют несколько нормальных форм (НФ): 1НФ, 2НФ, 3НФ, 4НФ, 5НФ. Каждая следующая НФ улучшает свойство схемы, сохраняя свойства предыдущей НФ.
1) Все отношения находятся в первой нормальной форме, так как отсутствуют кортежи дубликаты и все атрибуты атомарные.
2) Все отношения находятся во второй нормальной форме, так как они находятся в первой нормальной форме, и существуют полные функциональные зависимости любых из не ключевых атрибутов от всех возможных ключей отношения.
Функциональная зависимость A ® B называется полной, если атрибут В функционально не зависит от любого подмножества атрибута А.
3) Все отношения находятся в третьей нормальной форме, так как они находятся во второй нормальной форме, и каждый не ключевой атрибут не транзитивно зависит от всех возможных ключей отношения.
В отношении R{A,B,C} существует транзитивная функциональная зависимость вида A ® B в том и только в том случае, если имеются функциональные зависимости (ФЗ) вида A ® С и С ® В и при этом отсутствует ФЗ вида С ® А.
Для примера рассмотрим таблицу “ЗАЯВКАВЛАДЕЛЬЦА”.
Все атрибуты таблицы атомарные. Ключевой атрибут “КОДЗАЯВКИ” исключает появление картежей-дубликатов.
Существуют полные функциональные зависимости любых из не ключевых атрибутов от всех возможных ключей отношения.
Ключевой атрибут “ КОДЗАЯВКИ ” не имеет транзитивной зависимости с не ключевыми атрибутами. Аналогичный вывод можно сделать, рассмотрев остальные таблицы. Это доказывает, что все отношения находятся в третьей нормальной форме.
Процесс нормализации можно прекратить, так как третья нормальная форма является достаточной в данной ситуации.
3. Администрирование базы данных
3.1 Разработка подсистемы информационной безопасности БД и анализ результатов тестирования системы разграничения доступа
Для упрощения управления правами доступа в большинстве серверных СУБД применяется механизм ролей - наборов прав доступа к объектам базы данных, присваиваемых некоторой совокупности пользователей. При использовании ролей управление распределением прав доступа к объектам между пользователями, выполняющими одинаковые функции и применяющими одни и те же приложения, существенно упрощается: создание роли и однократное назначение ей соответствующих прав осуществляется намного быстрее, нежели определение прав доступа каждого пользователя к каждому объекту.
Привилегиями, или правами, называются действия, которые пользователь имеет право выполнять в отношении данной таблицы базы данных или представления. Основные привилегии стандарта SQL: · SELECT - право выбирать данные из таблицы;
· INSERT - право вставлять в таблицу новые строки;
· UPDATE - право изменять данные в таблице;
Таблица 2. Назначенные права на выборку и изменение данных в таблицах
Таблица Администратор Директор Сотрудник
Адрес Разрешено (select,insert,update) Запрещено Запрещено