Автор работы: Пользователь скрыл имя, 23 Марта 2011 в 18:23, курсовая работа
Интернет-провайдер, иногда просто Провайдер, (англ. Internet Service Provider, ISP, букв. "поставщик Интернет-услуги") — организация, предоставляющая услуги доступа к Интернету и иные связанные с Интернетом услуги.
Пользователь - лицо заключившее договор с провайдером на предоставление каких либо услуг.
Пользователь может заключить только один договор. Срок действия договора год, по истечении срока автоматически продляется.
1 Анализ предметной области 2
1.1 Деловой регламент 2
1.2 Функциональная структура 4
1.3 Диаграмма потоков данных 4
1.4 Выделение информационных объектов и их атрибутов 8
2 Концептуальная модель 10
3 Логическое моделирование 12
3.1 Построение логической модели 12
3.3 Целостность данных 13
3.3.1 Целостность объекта 13
3.3.2 Целостность приложения 14
3.3.3 Ссылочная целостность 14
4 Выбор СУБД 16
5 Физическая модель 18
5.1 Нормализация……………………………………………………..18
6 Проектирование и реализация информационной системы 21
6.1 Описание средств, использованных при реализации 21
6.2 Тексты SQL-запросов и результаты их выполнения 21
6.3 Клиентская часть 30
7 Заключение 38
8 Список литературы 39
9 Приложения 40
Приложение A Макетные данные 40
Приложение B Код клиентской части 46
Рисунок 2.1 Предварительная концептуальная модель
По концептуальной модели необходимо построить логическую модель. При этом атрибуты добавляются, в сущности, соответственно связям, показанным на концептуальной модели.
Например, в сущность «Oplata» добавляются атрибуты «Useri» (Id клиента – первичный ключ сущности «Useri»). Таким же образом добавляются атрибуты и в другие сущности.
Добавленные,
в сущности-потомки, атрибуты являются
внешними ключами для сущностей-предков,
в которых данные атрибуты являются
первичными ключами. Логическая модель
приведена на (рис. 3.1).
Рисунок 3.1 Логическая модель
Ограничения целостности объектов защищают отношения (таблицы-объекты) от неправильного внесения изменений, связанных с удалением существующих картежей и вставкой новых.
Например, в нашей базе данных в отношение «Пользователь» при вставке информации о новом клиенте, необходимо сначала вставить значение в поле, являющееся первичным ключом («id»), а затем уже заносить информацию в остальные поля. Аналогично и с удалением, например, при удалении картежа из таблицы «Dogovor», необходимо сначала удалить информацию из вторичных атрибутов, а затем уже удалять значение первичного ключа. Целостность объекта реализуется самой СУБД, и обычно пользователю нет необходимости об этом беспокоиться.
Ограничения целостности приложения определяют отношения, в которые пользователь может вносить изменения, связанные с удалением, обновлением и вставкой. Ведь в базе данных существуют и такие отношения, в которые изменения вноситься не должны (по крайней мере, пользователем) – эти отношения формируются один раз при создании базы данных и далее в течение долгого времени данные в них не меняются. Эти отношения называются «справочниками» (точнее, некоторые из них).
В базе данных «Провайдер» это отношения «Usluga» (хотя, возможность изменения этой таблицы реализована в приложении).
Ограничения
ссылочной целостности
Ссылочная целостность отражает взаимосвязь между значениями атрибутов, входящих в разные таблицы – родительские и дочерние
Ограничения
ссылочной целостности
Требования
к родительскому ключу –
Значения внешнего ключа должны совпадать с одним из значений родительского ключа, либо должны быть неопределёнными. Значения внешнего ключа могут повторяться в различных картежах дочерней таблицы (конечно, если это поле не является первичным ключом для этой таблицы).
Таким образом, значения ссылочной целостности защищают базу данных от ошибок, связанных с вставкой, удалением и обновлением данных.
Например, в нашу базу данных в таблицу «Dogovor» нельзя занести информацию о новом клиенте без внесения данных об этом клиенте в таблицу «Useri», т.к. отношение «Useri» является родительским для отношения «Dogovor». А в таблицу «Ip» нельзя внести информацию о работнике, которого нет в отношении «Dogovor» (т.е. нельзя указать расходование трафика не указав причины(пользователя)).
Такая же ситуация обстоит и с удалением и обновлением картежей в отношениях.
Например, нельзя удалить картеж из отношения «Useri», так как у него имеется потомок – отношение «Dogovor», а если возникает необходимость удаления, то соответствующие картежи необходимо удалить и из всех дочерних отношений.
Аналогичная связь прослеживается и в других отношениях.
Для реализации базы данных «Провайдер» я выбрал СУБД Oracle 10g . Это объясняется следующими возможностями данной СУБД:
- Поддержка языка SQL, который достаточно прост в обращении и позволяет без особых затрат времени извлекать любую информацию из базы данных;
- Real Application Cluster (RAC) обеспечивает работу одного экземпляра базы данных на нескольких узлах grid, позволяя управлять нагрузкой и гибко масштабировать систему в случае необходимости;
- Automatic Storage Management (ASM) позволяет автоматически распределять данные между имеющимися ресурсами систем хранения данных, что повышает отказоустойчивость системы и снижает общую стоимость владения (TCO);
- Производительность. Oracle Database 10g позволяет автоматически управлять уровнями сервиса и тиражировать эталонные конфигурации в рамках всей сети;
- Простые средства разработки. Новый инструмент разработки приложений HTML DB позволяет простым пользователям создавать эффективные приложения для работы с базами данных в короткие сроки;
- Самоуправление. Специальные механизмы Oracle Database 10g позволяют самостоятельно перераспределять нагрузку на систему, оптимизировать и корректировать SQL-запросы, выявлять и прогнозировать ошибки;
- Большие базы данных. Максимальный размер экземпляра базы данных Oracle может достигать 8 экзабайт;
- Недорогие серверные системы. Oracle Database 10g может использовать недорогие однопроцессорные компьютеры или модульные системы из "серверов-лезвий";
- Обеспечение транзакционной целостност, связана с организацией одновременного доступа значительного количества пользователей к данным размещенным на физическом носителе. Доступ производится в процессе выполнения транзакций представляющей собой логическую связь последовательных запросов и операций манипулирования данных;
- Буферирование. На обработку первого запроса уходит больше времени, чем на все последующие запросы это характеризуется тем, что их повторное использование позволяет исключить физический ввод данных с дискового устройства и уменьшает время выполнения запроса, ограничение объема буфера приводит к перманентному вытеснению из него раннее считанных блоков.
-
Ряд вышеперечисленных возможностей,
выделяет СУБД Oracle 10g как наиболее подходящую
для реализации нашей базы данных по предоставляемым
возможностям.
Физическая модель данных представлена реляционными таблицами, в которых в виде кортежей реляционных отношений хранится информация. Для хранения информации выбраны Oracle 10g таблицы, как удобные в работе и распространенные. Таблицы Oracle 10g поддерживают многие приложения, что обеспечивает более высокую универсальность системы.
Таблица 5.1 Типы данных
Тип | Наименование типа | Размер (байты) | Содержание |
Текстовый | Varchar | каждый символ по 1 | Буквы, цифры, спец. символы(%, &, #) |
Числовой | Integer | 4 | Планируется выполнять арифме тические операции над значениями из этого поля |
Денежный | Integer | 8 | Числовое поле, содержимое которого изображается с дробной частью и денежным символом |
Дата | Date | 8 | Даты до 31 декабря 9999 года. |
Для создания таблиц мы использовали следующие скрипты:
-- Create table
create table USLUGI
(
shifr INTEGER not null,
name1 VARCHAR2(250),
stoimost FLOAT,
type_us VARCHAR2(250)
);
-- Create/Recreate primary, unique and foreign key constraints
alter table USLUGI
add primary key (SHIFR);
-- Create table
create table USLUGA_DOGOVOR
(
shifr INTEGER not null,
nomer CHAR(7) not null
)
-- Create/Recreate primary, unique and foreign key constraints
alter table USLUGA_DOGOVOR
add foreign key (SHIFR)
references USLUGI (SHIFR);
alter table USLUGA_DOGOVOR
add foreign key (NOMER)