Программная реализация проекта 'Агентство недвижимости'
Реферат
Программный комплекс содержит 29 хранимых процедур.
Среда разработки и эксплуатации базы данных - MS SQL Server
2008 RC2 Express.
Разработанная система предназначена для учета информации о
сдающихся, продающихся, покупаемых, арендуемых объектах недвижимости. Цель
разработки: снижение трудоемкости и повышение быстродействия сотрудников.
Основная учебная цель выполнения проекта - повышение уровня квалификации
разработчика в области проектирования, программной реализации и
администрирования баз данных.
Введение
Основные идеи современной информационной технологии
базируются на концепции, согласно которой данные должны быть организованы в
базы данных с целью адекватного отображения изменяющегося реального мира и
удовлетворения информационных потребностей пользователей. Эти базы данных
создаются и функционируют под управлением специальных программных комплексов,
называемых системами управления базами данных (СУБД).
Увеличение объема и структурной сложности хранимых данных,
расширение круга пользователей информационных систем привели к широкому
распространению наиболее удобных и сравнительно простых для понимания
реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным
множества пользователей, нередко расположенных достаточно далеко друг от друга
и от места хранения баз данных, созданы сетевые мультипользовательские версии
БД основанных на реляционной структуре. В них тем или иным путем решаются
специфические проблемы параллельных процессов, целостности (правильности) и
безопасности данных, а также санкционирования доступа.
Целью данного курсового проекта является создание
автоматизированной системы учета объектов недвижимости и действий с этими
объектами.
1. Описание внешней модели проектируемой системы
Система выполняет следующие функции:
) Клиент может запросить определенный тип услуги без
регистрации новой заявки;
) Клиент может оставить заявку на продажу объекта
недвижимости;
) Клиент может оставить заявку на сдачу объекта
недвижимости в аренду;
) Клиент может оставить заявку на покупку объекта
недвижимости;
) Клиент может оставить заявку на аренду объекта
недвижимости;
) Для зарегистрированной заявки ищется объект
удовлетворяющий характеристикам, указанным в этой заявке;
) Выполнение заявки.
2. Проектирование базы данных
.1 Разработка концептуальной модели
Концептуальная модель предназначена для формального описания
объектной структуры предметной области. Составляющие этой модели - объекты
(«типы сущностей»), их свойства («атрибуты сущностей») и связи между объектами.
Этап разработки информационной модели соответствует стадии «Эскизный проект».
Результаты информационного моделирования представляются в виде простой и
удобной для понимания и анализа графической диаграмме «сущность - связь».
Сущность - это некоторая абстракция реально существующего
объекта предметной области. Различают тип сущности, описывающий
множество однотипных объектов, и экземпляр сущности, описывающий
конкретный объект определенного типа.
На основании первичного анализа внешней модели выделим
следующие типы сущностей:
1. Клиент
2. Владелец
. Покупатель
. Объект владельца
. Объект покупателя
. Заявка владельца
. Заявка покупателя
. Реальный адрес
. Желаемый адрес
. Логические операции
. Услуга
. Операция с объектом
. Категория
. Свойства
. Субъект
. Населенный пункт
. Район
. Улица
Определим атрибуты этих сущностей.
Сущность «Клиент» (Код Клиента, ФИО, Телефон)
Код Клиента - является уникальным номером клиента и является
идентифицирующим(ключевым) атрибутом.
ФИО - содержит фамилию, имя и отчество клиента.
Телефон - содержит номер клиента.
Сущность «Владелец» (Код Владельца, Код Клиента)
Код Владельца - является уникальным номером владельца и
является идентифицирующим(ключевым) атрибутом.
Код Клиента - является уникальным номером клиента.
Сущность «Покупатель» (Код Покупателя, Код Клиента)
Код Покупателя - является уникальным номером покупателя и
является идентифицирующим (ключевым) атрибутом.
Код Клиента - является уникальным номером клиента.
Сущность «Объект владельца» (Код Категории, Название, Код
Адреса)
Код Категории - является уникальным номером категории.
Название - название объекта.
Код Адреса - является уникальным номером адреса.
Сущность «Объект покупателя» (Код Категории, Код Адреса)
Код Категории - является уникальным номером категории.
Код Адреса - является уникальным номером адреса.
Сущность «Заявка владельца» (Код Владельца, Код Объекта, Код
Операции, Цена, Исполнена, Дата)
Код Владельца - является уникальным номером владельца.
Код Объекта - является уникальным номером объекта.
Сущность «Реальный адрес» (Код Адреса, Код Субъекта,
Код Населенного Пункта, Код Района, Код Улицы, Дом, Квартира)
Код Адреса - является уникальным номером адреса и является
идентифицирующим(ключевым) атрибутом.
Код Субъекта - является уникальным номером субъекта.
Код Населенного Пункта - является уникальным номером
населенного пункта.
Код Района - является уникальным номером района.
Код Улицы - является уникальным номером улица.
Дом - номер дома.
Квартира - номер квартиры.
Сущность «Желаемый адрес» (Код Адреса, Код Субъекта, Код
Населенного Пункта)
Код Адреса - является уникальным номером адреса и является
идентифицирующим(ключевым) атрибутом.
Код Субъекта - является уникальным номером субъекта.
Код Населенного Пункта - название этапа.
Сущность «Логические операции»(Код Логической Операции,
Операция)
Код Логической Операции - является уникальным номером
логической операции и является идентифицирующим(ключевым) атрибутом.
Операция - название операции.
Сущность «Услуга» (Код Услуги, Название, Стоимость)
Код Услуги - является уникальным номером услуги и является
идентифицирующим(ключевым) атрибутом.
Название - название услуги.
Стоимость - стоимость услуги.
Сущность «Операция с объектом» (Код Операции, Название)
Код Операции - является уникальным номером операции и
является идентифицирующим(ключевым) атрибутом.
Название - название операции.
Сущность «Категория» (Код Категории, Название)
Код Категории - является уникальным номером категории и
является идентифицирующим(ключевым) атрибутом.
Название - название операции.
Сущность «Свойства» (Код Свойства, Название, Единица
измерения)
Код Свойства - является уникальным номером свойства и
является идентифицирующим(ключевым) атрибутом.
Название - наименование свойства.
Единица измерения - единица измерения свойства.
Сущность «Субъект» (Код Субъекта, Название)
Код Субъекта - является уникальным номером субъекта и
является идентифицирующим(ключевым) атрибутом.
Название - название субъекта.
Сущность «Населенный пункт» (Код Населенного пункта,
Название)
Код Населенного пункта - является уникальным номером
населенного пункта и является идентифицирующим(ключевым) атрибутом.
Название - название населенного пункта.
Сущность «Район» (Код Района, Название)
Код Района - является уникальным номером района и является
идентифицирующим(ключевым) атрибутом.
Название - название района.
Сущность «Улица» (Код Улицы, Название)
Код Улицы - является уникальным номером улицы и является
идентифицирующим(ключевым) атрибутом.
Название - название улицы.
Связь характеризует отношение между типами сущностей и
отображает взаимосвязи между реальными объектами. Каждой связи присваивается
содержательное имя. Существует понятие «арности» связи, определяющее количество
участвующих в ней типов сущностей. Бинарные связи устанавливают отношение между
парой сущностей, k-арные - между k сущностями. По аналогии с сущностями
различают типы и экземпляры связей. Каждый экземпляр связи
устанавливает определенное отношение между экземплярами сущностей. Определим
связи между сущностями.
Таблица 1
№
|
Связь
|
Описание
|
Тип связи
|
1
|
Клиент - Владелец
|
Все владельцы
являются клиентами.
|
Один ко многим
|
2
|
Клиент -
Покупатель
|
Все покупатели
являются клиентами.
|
Один ко многим
|
3
|
Владелец -
Заявка Владельца
|
Один владелец
может оставлять несколько заявок.
|
Один ко многим
|
4
|
Покупатель -
Заявка Покупателя
|
Один владелец
может оставлять несколько заявок.
|
Один ко многим
|
5
|
Операция с
объектом - Заявка Владельца
|
С заявкой
сопоставляется одна операция.
|
Один ко многим
|
6
|
Операция с
объектом - Заявка Покупателя
|
С заявкой
сопоставляется одна операция.
|
Один ко многим
|
7
|
Объект
Владельца - Заявка Владельца
|
Заявка
описывает операцию с одним объектом.
|
Один ко многим
|
8
|
Объект
Покупателя - Заявка Покупателя
|
Заявка
описывает операцию с одним объектом.
|
Один ко многим
|
9
|
Категория -
Объект Владельца
|
Объект
соответствует определенной категории.
|
Один ко многим
|
10
|
Категория -
Объект Покупателя
|
Объект
соответствует определенной категории.
|
Один ко многим
|
11
|
Адрес - Объект
Владельца
|
Одному адресу
соответствует один объект.
|
Один ко многим
|
12
|
Желаемый Адрес
- Объект Покупателя
|
Одному адресу
соответствует один объект.
|
Один ко многим
|
13
|
Логическая
операция - Заявка Покупателя
|
В заявке может
присутствовать одна логическая операция.
|
Один ко многим
|
14
|
Субъект - Адрес
|
В адресе может
находиться один субъект.
|
Один ко многим
|
15
|
Населенный
Пункт - Адрес
|
В адресе может
находиться один населенный пункт.
|
Один ко многим
|
16
|
Район - Адрес
|
В адресе может
находиться один район.
|
Один ко многим
|
17
|
Улица - Адрес
|
В адресе может
находиться одна улица.
|
Один ко многим
|
Для связей «Многие ко многим» создадим дополнительные
ассоциативные объекты, которые будут содержать первичные ключи связанных
сущностей.
. Запрос услуги (КодКлиента, КодУслуги)
. Свойства объекта владельца (КодОбъекта,
КодСвойства,ЗначениеСвойства)
. Свойства Категории (КодКатегории, КодСвойства)
. Свойства объекта покупателя(КодОбъекта,
КодСвойства,КодЛогическойОперации,ЗначениеСвойства)
. Список улиц (КодАдреса, КодУлицы)
. Список районов(КодАдреса, КодРайона)
Определим атрибуты этих ассоциативных объектов.
«Запрос услуги» (КодКлиента, КодУслуги)
КодКлиента - код запрашиваемого услугу клиента.
КодУслуги - код запрашиваемой услуги.
«Свойства объекта владельца» (КодОбъекта,
КодСвойства,ЗначениеСвойства)
КодОбъекта - код объекта.
КодСвойства - код свойства.
ЗначениеСвойства - значение свойства, принадлежащего объекту.
«Свойства Категории» (КодКатегории, КодСвойства)
КодКатегории - код категории.
КодСвойства - код свойства определенного для данной
категории.
«Свойства объекта покупателя» (КодОбъекта,
КодСвойства,КодЛогическойОперации,ЗначениеСвойства)
КодОбъекта - код объекта.
КодСвойства - код свойства.
КодЛогическойОперации - код логической операции по отношению
к значению свойства.
ЗначениеСвойства - значение свойства, принадлежащего объекту.
«Список улиц» (КодАдреса, КодУлицы)
КодАдреса - код адреса.
КодУлицы - код улицы, соответствующей данному адресу.
«Список районов» (КодАдреса, КодРайона)
КодАдреса - код адреса.
КодРайона - код района, соответствующий данному адресу.
Для представления (документирования) модели «Сущность-Связь»
используются графические диаграммы и табличные спецификации, информационно
дополняющие друг друга.
Графическая диаграмма дает наглядное представление о
структуре модели «Сущность-Связь». Основное назначение диаграммы -
представление информации о составе объектов (типов сущностей) и видах связей,
установленных между ними. Для отображения диаграммы принято использовать
следующую графическую нотацию: типы сущностей изображаются прямоугольниками, а
типы связей - ромбами, внутри которых указывается соответственно имя сущности
или имя связи.
Ромб размещается в разрыве линии, соединяющей типы сущностей,
участвующих в связи. Вид связи отображается количеством стрелок на концах
линий: одна стрелка - «один», две стрелки - «много».
Рисунок 1 - ER-модель БД
.2 Разработка реляционной модели данных
От ER-модели перейдем к реляционной модели данных.
Спецификация модели представляет собой множество
поименованных таблиц, каждая из которых описывает тип сущности или тип связи.
Каждая строка таблицы описывает один атрибут и содержит его имя, содержательное
описание и описание типа данных. Среди атрибутов выделяются первичные и
вторичные ключи. При необходимости таблица сопровождается поясняющими
комментариями.
Символом (*) отмечены первичные ключи, а символом («) - внешние ключи,
введенные в состав атрибутов сущностей, участвующих в связях вида 1:N со
стороны «N». Для ассоциативных объектов, описывающих связи вида M:N между
сущностями, первичный ключ образуется парой (или более) внешних ключей -
первичных ключей связанных сущностей.
Тип сущности «Клиенты»
Имя атрибута
|
Описание
|
Тип
|
*КодКлиента
|
Условный код
|
Числовой
|
Фамилия
|
Фамилия клиента
|
Текстовый
|
Имя
|
Имя клиента
|
Текстовый
|
Отчество
|
Отчество
клиента
|
Текстовый
|
Телефон
|
Телефон клиента
|
Текстовый
|
Тип сущности «Владелец»
Имя атрибута
|
Описание
|
Тип
|
*КодВладелеца
|
Условный код
|
Числовой
|
«КодКлиента
|
|
Числовой
|
Тип сущности «Покупатель»
Имя атрибута
|
Описание
|
Тип
|
*КодПокупателя
|
Условный код
|
Числовой
|
«КодКлиента
|
|
Числовой
|
Тип сущности «ОперацияСОбъектом»
Имя атрибута
|
Описание
|
Тип
|
*КодОперации
|
Условный код
|
Числовой
|
Операция
|
Название
операции
|
Текстовый
|
Тип сущности «ТипУслуги»
Имя атрибута
|
Описание
|
Тип
|
*КодУслуги
|
Условный код
|
Числовой
|
Услуга
|
Вид услуги
|
Текстовый
|
Стоимость
|
Стоимость
услуги
|
Денежный
|
Тип сущности «ЗапросУслуги»
Имя
атрибутаОписание Тип
|
|
|
«КодКлиента
|
|
Числовой
|
«КодУслуги
|
|
Числовой
|
Тип сущности «Адрес»
Имя
атрибутаОписание Тип
|
|
|
*КодАдреса
|
Условный код
|
Числовой
|
«КодСубъекта
|
|
Числовой
|
«КодНасПункта
|
|
Числовой
|
«КодРайона
|
|
Числовой
|
«КодУлицы
|
|
Числовой
|
Дом
|
Номер дома
|
Текстовый
|
Квартира
|
Номер квартиры
|
Числовой
|
Тип сущности «ОбъектВладельца»
Имя атрибута
|
Описание
|
Тип
|
*КодОбъекта
|
Условный код
|
Числовой
|
Название
|
Название
объекта
|
Текстовый
|
«КодКатегории
|
|
Числовой
|
«КодАдреса
|
|
Числовой
|
Тип сущности «СвойстваОбъектаВладельца»
Имя атрибута
|
Описание
|
Тип
|
«КодОбъекта
|
|
Числовой
|
«КодСвойства
|
|
Числовой
|
ЗначениеСвойства
|
Значение
свойства объекта
|
Текстовый
|
Тип сущности «Категория»
Имя атрибута
|
Описание
|
Тип
|
*КодКатегории
|
Условный код
|
Числовой
|
Название
|
Название
категории
|
Текстовый
|
Тип сущности «ЗаявкаВладельца»
Имя
атрибутаОписание Тип
|
|
|
*КодЗаявкиВладельца
|
Условный код
|
Числовой
|
«КодВладелеца
|
|
Числовой
|
«КодОбъекта
|
|
Числовой
|
«КодОперации
|
|
Числовой
|
Цена
|
Цена за объект
|
Денежный
|
Исполнена
|
Выполнена ли
заявка
|
Дата
|
Дата
регистрации заявки
|
Дата-временной
|
Тип сущности «ОбъектПокупателя»
Имя
атрибутаОписание Тип
|
|
|
*КодОбъекта
|
Условный код
|
Числовой
|
«КодАдреса
|
|
Числовой
|
«КодКатегории
|
|
Числовой
|
Тип сущности «ЗаявкаПокупателя»
Имя
атрибутаОписание Тип
|
|
|
*КодЗаявкиПокупателя
|
Условный код
|
Числовой
|
«КодПокупателя
|
|
Числовой
|
«КодОбъекта
|
|
Числовой
|
«КодОперации
|
|
Числовой
|
«КодЛогичОперации
|
|
Числовой
|
Цена
|
Цена за объект
|
Денежный
|
Исполнена
|
Выполнена ли
заявка
|
Логический
|
Дата
|
Дата
регистрации заявки
|
Дата-временной
|
Ассоциативный объект «ЛогическиеОперации»
Имя атрибута
|
Описание
|
Тип
|
*КодОперации
|
Условный код
|
Числовой
|
Операция
|
Тип логической
операции
|
Текстовый
|
Ассоциативный объект «СвойстваКатегории»
Имя
атрибутаОписание Тип
|
|
|
«КодКатегории
|
|
Числовой
|
«КодСвойства
|
|
Числовой
|
Ассоциативный объект «Улица»
Имя
атрибутаОписание Тип
|
|
|
*КодУлицы
|
|
Числовой
|
Название
|
Название улицы
|
Текстовый
|
Ассоциативный объект «Субъект»
Имя атрибутаОписание
Тип
|
|
|
*КодСубъекта
|
|
Числовой
|
Название
|
Название
субъекта
|
Текстовый
|
Ассоциативный объект «Район»
Имя
атрибутаОписание Тип
|
|
|
*КодРайон
|
|
Числовой
|
Название
|
Название района
|
Текстовый
|
Ассоциативный объект «НаселенныйПункт»
Имя атрибутаОписание
Тип
|
|
|
*КодНасПункта
|
|
Числовой
|
Название
|
Название
населенного пункта
|
Текстовый
|
Ассоциативный объект «Свойства»
Имя
атрибутаОписание Тип
|
|
|
*КодСвойства
|
|
Числовой
|
Название
|
Название
свойства
|
Текстовый
|
ЕдИзмерения
|
Единица
измерения значения свойства
|
Текстовый
|
Ассоциативный объект «СвойстваОбъектаПокупателя»
Имя
атрибутаОписание Тип
|
|
|
«КодОбъекта
|
|
Числовой
|
«КодСвойства
|
|
Числовой
|
«КодЛогОперации
|
|
Числовой
|
Значение
|
Значение
свойства объекта
|
Текстовый
|
Ассоциативный объект «СписокУлиц»
Имя
атрибутаОписание Тип
|
|
|
«КодАдреса
|
|
Числовой
|
«КодУлицы
|
|
Числовой
|
Ассоциативный объект «СписокРайонов»
Имя
атрибутаОписание Тип
|
|
|
«КодАдреса
|
|
Числовой
|
«КодРайона
|
|
Числовой
|
Ассоциативный объект «ЖелаемыйАдрес»
Имя
атрибутаОписание Тип
|
|
|
*КодЖелаемогоАдреса
|
|
Числовой
|
«КодСубъекта
|
|
Числовой
|
«КодНасПункта
|
|
Числовой
|
Рисунок 2 - Реляционная модель БД
Нормализация БД. Следующим шагом в проектировании реляционной
БД является нормализация отношений. Должны отсутствовать нежелательные
функциональные зависимости между атрибутами. Нормализированный набор таблиц
обладает лучшими свойствами при включении, модификации и удалении данных, чем
любой другой набор таблиц представляющий те же данные. Проектирование
выполняется путем декомпозиции. При проектировании с использованием
декомпозиции переходят от одной нормальной формы к другой нормальной форме
более высокого уровня, сохраняя эквивалентность схем базы данных. Выделяют
несколько нормальных форм (НФ): 1НФ, 2НФ, 3НФ, 4НФ, 5НФ. Каждая следующая НФ
улучшает свойство схемы, сохраняя свойства предыдущей НФ.
1) Все отношения находятся в первой нормальной форме, так как
отсутствуют кортежи дубликаты и все атрибуты атомарные.
) Все отношения находятся во второй нормальной форме, так как
они находятся в первой нормальной форме, и существуют полные функциональные
зависимости любых из не ключевых атрибутов от всех возможных ключей отношения.
Функциональная зависимость A ® B называется полной,
если атрибут В функционально не зависит от любого подмножества атрибута А.
3) Все отношения находятся в третьей нормальной форме, так
как они находятся во второй нормальной форме, и каждый не ключевой атрибут не
транзитивно зависит от всех возможных ключей отношения.
В отношении R{A,B,C} существует транзитивная функциональная
зависимость вида A ® B в том и только в том случае, если имеются
функциональные зависимости (ФЗ) вида A ® С и С ® В и при этом отсутствует
ФЗ вида С ® А.
Для примера рассмотрим таблицу “ЗаявкаВладельца”.
Все атрибуты таблицы атомарные. Ключевой атрибут “КодЗаявки”
исключает появление картежей-дубликатов.
Существуют полные функциональные зависимости любых из не
ключевых атрибутов от всех возможных ключей отношения.
Ключевой атрибут “ КодЗаявки ” не имеет транзитивной
зависимости с не ключевыми атрибутами. Аналогичный вывод можно сделать,
рассмотрев остальные таблицы. Это доказывает, что все отношения находятся в
третьей нормальной форме.
Процесс нормализации можно прекратить, так как третья
нормальная форма является достаточной в данной ситуации.
3. Администрирование базы данных
.1 Разработка подсистемы информационной безопасности БД и
анализ результатов тестирования системы разграничения доступа
Для упрощения управления правами доступа в большинстве
серверных СУБД применяется механизм ролей - наборов прав доступа к объектам
базы данных, присваиваемых некоторой совокупности пользователей. При
использовании ролей управление распределением прав доступа к объектам между
пользователями, выполняющими одинаковые функции и применяющими одни и те же
приложения, существенно упрощается: создание роли и однократное назначение ей
соответствующих прав осуществляется намного быстрее, нежели определение прав
доступа каждого пользователя к каждому объекту.
Привилегиями, или правами, называются действия, которые
пользователь имеет право выполнять в отношении данной таблицы базы данных или
представления. Основные привилегии стандарта SQL:
· SELECT - право выбирать
данные из таблицы;
· INSERT - право вставлять
в таблицу новые строки;
· UPDATE - право изменять
данные в таблице;
Таблица 2. Назначенные права на выборку и изменение данных в
таблицах
Таблица
|
Администратор
|
Директор
|
Сотрудник
|
Адрес
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Владелец
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЖелаемыйАдрес
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗапросУслуги
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗаявкаВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗаявкаПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Категория
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Клиенты
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЛогОперации
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
НаселенныйПункт
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОбъектВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОбъектПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОперацииСОбъектом
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Покупатель
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Район
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Свойства
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваКатегории
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваОбПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваОбъектаВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СписокРайонов
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СписокУлиц
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Субъект
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ТипУслуги
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Улица
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Таблица 3. Назначенные права на выполнение хранимых процедур
Таблица
|
Администратор
|
Директор
|
Сотрудник
|
agency_add_address
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_address_desired
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_category
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_category_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_client
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_community
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_district
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_district_list
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_logic_operation
|
Запрещено
|
Запрещено
|
Запрещено
|
agency_add_object_operation
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_object
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_object_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_request
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_service_request
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_service_type
|
Запрещено
|
Разрешено
|
Разрешено
|
agency_add_street
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_street_list
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_subject
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_taker
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_taker_object
|
Запрещено
|
Запрещено
|
Разрешено
|
программа автоматизированная недвижимость
Приложение
Руководство пользователя
. НАЗНАЧЕНИЕ СИСТЕМЫ
Система обеспечивает выполнение следующих основных функций:
) Предоставление определенного тип услуги без
регистрации новой заявки;
) Регистрацию новой заявки на продажу объекта
недвижимости;
) Регистрацию новой заявки на сдачу объекта
недвижимости в аренду;
) Регистрацию новой заявки на покупку объекта
недвижимости;
) Регистрацию новой заявки на аренду объекта
недвижимости;
) Поиск по зарегистрированной заявке объекта
удовлетворяющего характеристикам, указанным в этой заявке;
) Выполнение заявки.
Система является многопользовательской и может обеспечить
безопасность хранящихся в ней данных. Для разработки использовались средства MS
SQL Server 2008 RC2 Express. Внедрение системы позволяет осуществить удобный
доступ к данным предметной области различным видам пользователей, а также
система может быть использована для извлечения необходимой информации и проведения
дальнейшего анализа.
Виды пользователей:
) «Администратор»
) «Сотрудник»
Для каждого пользователя реализованы отдельные процедуры для
работы с базой.
2. УСЛОВИЯ ПРИМЕНЕНИЯ
.1 Программное обеспечение
Программа требует установки дополнительного программного
обеспечения:
) Microsoft.NET Framework 3.5;
) Microsoft SQL Server 2008 RC2 Express.
) Microsoft SQL Server Management Studio
Программа не требует инсталляции.
.2 Требования к аппаратуре
Данный программный продукт выполняется под управлением
операционной системы Windows 2000/2003/XP/ Vista/7.
Требования к аппаратуре определяются требованиями Microsoft
SQL Server 2008 RC2 Express.
. ВЫПОЛНЕНИЕ ПРОГРАММЫ
.1. Запуск программы
Для начала работы необходимо запустить SQL Server Management
Studio. При соединении необходимо ввести тип сервера, имя сервера, вид проверки
подлинности, а так же имя входа и пароль. После соединения нужно открыть базу
данных «Agency».
Рисунок 1. Аутентификация пользователя
3.2. Работа с программой
Для каждого пользователя предусмотрен специфичный набор
процедур для работы с базой.
Пользователь «Администратор»
Имеет все права доступа без ограничений, а также имеет право
назначать (забирать) права доступа другим пользователям системы.
Пользователь «Директор»
o Добавление типа услуги
o Изменение стоимости типа
услуги
Пользователь «Сотрудник»
· Регистрация клиента(владельца, покупателя)
· Регистрация объекта клиента(владельца,
покупателя)
· Регистрация заявки клиента(владельца,
покупателя)
· Добавление типа услуги
· Изменение стоимости типа услуги
· Регистрация адреса объекта
клиента(владельца)
· Регистрация субъекта, населенного пункта,
района, улицы
· Регистрация операций с объектом
· Регистрация желаемого адреса клиента(покупателя)
Вызов процедуры осуществляется командой Имя процедуры
‘Входные параметры’.
Таблица 1.
Название
процедуры
|
Вызов
|
Описание
|
Добавление
адреса
|
Exec
agency_add_address ‘КодСубъекта’,’ КодНасПункта’,’ КодРайона’,’
КодУлицы’,’Дом’,’Квартира’
|
Регистрация
нового адреса объекта владельца
|
Добавление
желаемого адреса
|
Exec
agency_add_address_desired ‘КодСубъекта’, ’ КодНасПункта’
|
Регистрация
нового адреса объекта покупателя
|
Добавление
категории
|
Exec
agency_add_category ‘Название’
|
Регистрация
новой категории объекта недвижимости
|
Добавление
категории свойств
|
Exec
agency_add_category_propety ‘КодКатегории’, ’ КодСвойства’
|
Сопоставление
данной категории нового свойства
|
Добавление
клиента
|
Exec
agency_add_client ‘Фамилия’, ’Имя’,’ Отчество’,’ Телефон’
|
Регистрация
нового клиента агентства
|
Добавление
населенного пункта
|
Exec
agency_add_community ‘НазваниеПункта’
|
Регистрация
населенного пункта
|
Добавление
района
|
Exec
agency_add_district ‘НазваниеРайона’
|
Регистрация
нового района
|
Добавление
адресу района
|
Exec
agency_add_district_list ‘КодАдреса’, ’ КодРайона’
|
Сопоставление
адресу района
|
Добавление
логической операции
|
Exec
agency_add_logic_operation ‘Операция’
|
Регистрация
новой логической операции
|
Добавление
новой операции
|
Exec
agency_add_object_operation ‘Операция’
|
Регистрация
новой операции с объектом
|
Добавление
владельца
|
Exec
agency_add_owner ‘КодКлиента’
|
Регистрация
владельца
|
Добавление
объекта владельца
|
Exec
agency_add_owner_object ‘НазваниеОб’, ’ КодКатегории’,’ КодАдреса’
|
Регистрация
объекта владельца
|
Добавление
свойств объекту
|
Exec
agency_add_owner_object_propety ‘КодОбъекта’, ’ КодСвойства’, ’
ЗначениеСвойства’
|
Сопоставление
объекту владельца свойств
|
Добавление
заявки владельца
|
Exec
agency_add_owner_request ‘КодВладельца’,’ КодОбъекта’,’ КодОперации’,’
Цена’,’ Исполнена’,’ Дата’
|
Регистрация
заявки владельца
|
Добавление
свойства
|
Exec
agency_add_propety ‘НазваниеСвойства’,’ ЕдИзмерения’
|
Регистрация
нового свойства объекта
|
Добавление
запроса услуги
|
Exec
agency_add_service_request ‘КодКлиента’,’ КодУслуги’
|
Сопоставление
клиенту услуги
|
Добавление типа
услуги
|
Exec
agency_add_service_type ‘Услуга’,’ Стоимость’
|
Регистрация
новой услуги
|
Добавление
улицы
|
Exec
agency_add_street ‘НазваниеУлицы’
|
Регистрация
новой улицы
|
Добавление
списка улиц
|
Exec agency_add_street_list
‘КодАдреса’,’ КодУлицы’
|
Сопоставление
адресу улицы
|
Добавление
субъекта
|
Exec
agency_add_subject ‘НазваниеСубъекта’
|
Регистрация
нового субъекта
|
Добавление
покупателя
|
Exec
agency_add_taker ‘КодКлиента’
|
Регистрация
нового покупателя
|
Добавление
объекта покупателя
|
Exec
agency_add_taker_object ‘КодКатегории’,’ КодАдреса’
|
Регистрация
абстрактного объекта покупателя
|
Добавление
свойств объекту
|
Exec
agency_add_taker_object_propety ‘КодОбъекта’,’ КодСвойства’,’ КодЛогОперац’,’
Значение’
|
Сопоставление
абстрактному объекту свойств
|
Добавление
заявки покупателя
|
Exec
agency_add_taker_request ‘КодПокупателя’,’ КодОбъекта’,’ КодОперации’,’
КодЛогичОп’,’ Цена’,’ Исполнена’,’ Дата’
|
Регистрация
заявки покупателя
|
Выполнение
заявки
|
Exec
agency_perform_request ‘КодЗаявкиВлад’,’ КодЗаявкиПокуп’
|
Регистрация
выполнения заявки
|
Регистрация
абстрактного объекта покупателя
|
Exec
agency_registration_abstract_object ‘КодКатегории’,’ Субъект’,’ НасПункт’
|
Процедура,
объединяющая другие процедуры для добавления объекта
|
Универсальная
регистрация клиента
|
Exec
agency_registration_client ‘Фамилия’,’ Имя’,’ Отчество’,’ Телефон’,’ Группа’
|
Регистрация
клиента и определение его в нужную группу
|
Регистрация
реального объекта
|
Exec
agency_registration_real_object ‘Название’,’КодКатегории’,’Субъект’,’
НасПункт’,’Район’,’ Улица’,’ Дом’,’ Квартира’
|
Процедура,
объединяющая другие процедуры для добавления объекта
|
Добавление
заявки покупателя
|
Exec
agency_select_on_request ‘КодАбстрОбъекта’
|
Регистрация
заявки покупателя
|
Руководство администратора БД
1. НАЗНАЧЕНИЕ СИСТЕМЫ
Система обеспечивает выполнение следующих основных функций:
) Предоставление определенного тип услуги без
регистрации новой заявки;
) Регистрацию новой заявки на продажу объекта
недвижимости;
) Регистрацию новой заявки на сдачу объекта
недвижимости в аренду;
) Регистрацию новой заявки на покупку объекта
недвижимости;
) Регистрацию новой заявки на аренду объекта
недвижимости;
) Поиск по зарегистрированной заявке объекта
удовлетворяющего характеристикам, указанным в этой заявке;
) Выполнение заявки.
Система является многопользовательской и может обеспечить
безопасность хранящихся в ней данных. Для разработки использовались средства MS
SQL Server 2008 RC2 Express. Внедрение системы позволяет осуществить удобный
доступ к данным предметной области различным видам пользователей, а так же
система может быть использована для извлечения необходимой информации и
проведения дальнейшего анализа.
Виды пользователей:
) «Администратор»
) «Директор»
) «Сотрудник»
Для каждого пользователя реализованы отдельные процедуры для
работы с базой.
. ОБЯЗАННОСТИ И ЗАДАЧИ АДМИНИСТРАТОРА
Обычно администратор считается пользователем системы, однако,
при этом он наделен как особыми обязанностями, так и необходимыми для их выполнения
привилегиями.
Работа администратора многопользовательской системы
заключается в управлении учетными записями других пользователей, предоставлении
им полномочий на доступ к данным и выполнение операций, а также в исправлении
сделанных ими ошибок.
Кроме того, администратор может заниматься ведением
нормативно-справочной информации, загрузкой и выгрузкой данных, открытием и
закрытием расчетных периодов и тому подобное.
. ТРЕБОВАНИЕ К ОБЕСПЕЧЕНИЮ РАБОЧЕГО МЕСТА
АДМИНИСТРАТОРА
Данный программный продукт выполняется под управлением
операционной системы Windows 2000/2003/XP/ Vista/7.
Требования к аппаратуре определяются требованиями Microsoft
SQL Server 2008 RC2 Express.
Программа требует установки дополнительного программного
обеспечения:
) Microsoft.NET Framework 3.5;
) Microsoft SQL Server 2008 RC2 Express.
) Microsoft SQL Server Management Studio
. ИНСТАЛЛЯЦИЯ
Для инсталляции базы
данных необходимо:
1) Установить пакет Microsoft SQL Server 2008 RC2 Express и
запустить Microsoft SQL Service Manager
) Пройти процедуру идентификации и аутентификации.
) Подключить к MS SQL Server базу данных, которая находится в
файле «Agency.mdf»
. ПОДСИСТЕМА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ БД
Учетная запись «Администратор» будет обладать полными правами
доступа ко всем объектам и возможность передавать эти права учетным записям.
Созданы три основные роли Admin, db_director, agent.
При помощи процедуры exec sp_addrolemember
<role>,<user> имеется возможность добавлять новых пользователей к
роли, там самым ограничивать их права соответствующим образом.
Таблица 1. Назначенные права на выборку и изменение данных в
таблицах
Таблица
|
Администратор
|
Директор
|
Сотрудник
|
Адрес
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Владелец
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЖелаемыйАдрес
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗапросУслуги
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗаявкаВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЗаявкаПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Категория
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Клиенты
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ЛогОперации
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
НаселенныйПункт
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОбъектВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОбъектПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ОперацииСОбъектом
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Покупатель
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Район
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Свойства
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваКатегории
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваОбПокупателя
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СвойстваОбъектаВладельца
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СписокРайонов
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
СписокУлиц
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Субъект
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
ТипУслуги
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Улица
|
Разрешено
(select,insert,update)
|
Запрещено
|
Запрещено
|
Таблица 2. Назначенные права на выполнение хранимых процедур
Таблица
|
Администратор
|
Директор
|
Сотрудник
|
agency_add_address
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_address_desired
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_category
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_category_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_client
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_community
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_district
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_district_list
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_logic_operation
|
Запрещено
|
Запрещено
|
Запрещено
|
agency_add_object_operation
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_object
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_object_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_owner_request
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_propety
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_service_request
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_service_type
|
Запрещено
|
Разрешено
|
Разрешено
|
agency_add_street
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_street_list
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_subject
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_taker
|
Запрещено
|
Запрещено
|
Разрешено
|
agency_add_taker_object
|
Запрещено
|
Разрешено
|
. СТРУКТУРА ТАБЛИЦ И СХЕМА ДАННЫХ
Структура таблиц
Таблица 1. Структура таблиц БД
Название
таблицы
|
Имена столбцов
|
Тип данных
|
Адрес
|
КодАдресаАдр
|
PK,int, Не NULL
|
|
КодСубъектаАдр
|
FK,int, Не NULL
|
|
КодНасПунктаАдр
|
FK,int, Не NULL
|
|
КодРайонаАдр
|
FK,int, Не NULL
|
|
КодУлицыАдр
|
FK,int, Не NULL
|
|
Дом
|
nvarchar(50),
Не NULL
|
|
Квартира
|
int, NULL
|
Владелец
|
КодВладельца
|
PK,int, Не NULL
|
|
КодКлиента
|
FK,int, Не NULL
|
ЖелаемыйАдрес
|
КодЖелАдреса
|
PK,int, Не NULL
|
|
КодСубъектаЖел
|
FK,int, Не NULL
|
|
КодНасПунктаЖел
|
FK,int, Не NULL
|
ЗапросУслуги
|
КодКлиента
|
FK,int, Не NULL
|
|
КодУслуги
|
FK,int, Не NULL
|
ЗаявкаВладельца
|
КодЗаявкиВлад
|
PK,int, Не NULL
|
|
КодВладельца
|
FK,int, Не NULL
|
|
КодОбъекта
|
FK,int, Не NULL
|
|
КодОперации
|
FK,int, Не NULL
|
|
Цена
|
money, Не NULL
|
|
Исполнена
|
bit, Не NULL
|
|
Дата
|
datatime, Не
NULL
|
ЗаявкаПокупателя
|
КодЗаявкиПокуп
|
PK,int, Не NULL
|
|
КодПокупателя
|
FK,int, Не NULL
|
|
КодОбъекта
|
FK,int, Не NULL
|
|
КодОперации
|
FK,int, Не NULL
|
|
КодЛогичОп
|
FK,int, Не NULL
|
|
Цена
|
money, Не NULL
|
|
Исполнена
|
bit, Не NULL
|
|
Дата
|
datatime, Не
NULL
|
Категория
|
КодКатегории
|
PK,int, Не NULL
|
|
НазваниеКатегории
|
nvarchar(225),
Не NULL
|
Клиенты
|
КодКлиента
|
PK,int, Не NULL
|
|
Фамилия
|
nvarchar(225),
Не NULL
|
|
Имя
|
nvarchar(225),
Не NULL
|
|
Отчество
|
nvarchar(225),
Не NULL
|
|
Телефон
|
nvarchar(225),
Не NULL
|
ЛогОперации
|
КодЛогОп
|
PK,int, Не NULL
|
|
Операция
|
nvarchar(225),
Не NULL
|
НаселенныйПункт
|
КодНасПункта
|
PK,int, Не NULL
|
|
НазваниеПункта
|
nvarchar(225),
Не NULL
|
ОбъектВладельца
|
КодОбъектаВлад
|
PK,int, Не NULL
|
|
НазваниеОбВлад
|
nvarchar(225),
Не NULL
|
|
КодКатегории
|
FK,int, Не NULL
|
|
КодАдреса
|
FK,int, Не NULL
|
ОбъектПокупателя
|
КодОбъектаПокуп
|
PK,int, Не NULL
|
|
КодКатегории
|
FK,int, Не NULL
|
|
КодАдреса
|
FK,int, Не NULL
|
ОперацииСОбъектом
|
КодОперСОб
|
PK,int, Не NULL
|
|
Операция
|
nvarchar(225),
Не NULL
|
Покупатель
|
КодПокупателя
|
PK,int, Не NULL
|
|
КодКлиента
|
FK,int, Не NULL
|
Район
|
КодРайона
|
PK,int, Не NULL
|
|
НазваниеРайона
|
nvarchar(225),
Не NULL
|
Свойства
|
КодСвойства
|
PK,int, Не NULL
|
|
НазваниеСвойства
|
nvarchar(225),
Не NULL
|
|
ЕдИзмерения
|
nvarchar(50),
Не NULL
|
СвойстваКатегории
|
КодКатегории
|
FK,int, Не NULL
|
|
КодСвойства
|
FK,int, Не NULL
|
СвойстваОбПокупателя
|
КодОбъекта
|
FK,int, Не NULL
|
|
КодСвойства
|
FK,int, Не NULL
|
|
КодЛогОперац
|
FK,int, Не NULL
|
|
Значение
|
nvarchar(225),
Не NULL
|
СвойстваОбъектаВладельца
|
КодОбъекта
|
FK,int, Не NULL
|
|
КодСвойства
|
FK,int, Не NULL
|
|
ЗначениеСвойства
|
nvarchar(225),
Не NULL
|
СписокРайонов
|
КодАдреса
|
FK,int, Не NULL
|
|
КодРайона
|
FK,int, Не NULL
|
СписокУлиц
|
КодАдреса
|
FK,int, Не NULL
|
|
КодУлицы
|
FK,int, Не NULL
|
Субъект
|
КодСубъекта
|
PK,int, Не NULL
|
|
НазваниеСубъекта
|
nvarchar(225),
Не NULL
|
ТипУслуги
|
КодТипаУслуги
|
PK,int, Не NULL
|
|
Услуга
|
nvarchar(225),
Не NULL
|
|
Стоимость
|
money, Не NULL
|
Улица
|
КодУлицы
|
PK,int, Не NULL
|
|
НазваниеУлицы
|
nvarchar(225),
Не NULL
|
Схема данных