Проектирование и реализация информационной системы. Туристическая компания

Автор: Пользователь скрыл имя, 04 Декабря 2011 в 12:00, курсовая работа

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

Туристическая компания предоставляет свои услуги по обеспечению отдыха клиентам на определённый период времени на предлагаемых компанией курортах на территории различных стран. Предлагается рассмотреть типичную туристическую компанию, предоставляющую свои услуги клиентам на наиболее популярных курортах в различных странах мира.

Оглавление

1 Анализ предметной области…………………………………………………2
1.1 Функциональная структура……………….…………………………………4
1.2. Диаграмма потоков данных…………………………………………………5
1.3. Выделение информационных объектов и их атрибутов…………………..8
2 Концептуальная модель……………………………………………………...9
3 Логическое моделирование…………………………………………………13
3.1 Построение логической модели………………………………………..…..13
3.2 Нормализация отношений………………………………………………….13
3.3 Целостность данных…………………………………………………….….19
3.3.1 Целостность объекта……………………………………………………..19
3.3.2 Целостность приложения………………………………………………..19
3.3.3 Ссылочная целостность……………………………………………….…20
4 Выбор СУБД.....................................................................................................21
5 Физическая модель………………………………………………….………22
6 Проектирование и реализация информационной системы …………...23
Описание средств, использованных при реализации…………………....23
6.2 Тексты SQL-запросов и результаты их выполнения…………………….24
7 Заключение………………………………………………………….…….…36
8 Список литературы ……………………………………………………...…36
9 Приложение A Макетные данные …….

Файлы: 1 файл

начало курсача.doc

— 1.40 Мб (Скачать)

         3.3.3 Ссылочная целостность

     Ссылочная целостность отражает взаимосвязь между значениями атрибутов, входящих в разные таблицы – родительские и дочерние

         Ограничения ссылочной целостности предполагают:

  1. Задание пары ключей родительского и внешнего ключей;
  2. Родительский и внешний ключи могут быть простыми, либо составными. Для простых ключей должно совпадать количество атрибутов, входящих в родительский и внешний ключи, а также попарно типы и размеры данных.

         Требования  к родительскому ключу – уникальность, либо неопределённость, поэтому в качестве родительского ключа выбирается либо первичный ключ, либо потенциальный ключ.

         Значения  внешнего ключа должны совпадать  с одним из значений родительского  ключа, либо должны быть неопределёнными. Значения внешнего ключа могут повторяться в различных картежах дочерней таблицы (конечно, если это поле не является первичным ключом для этой таблицы).

         Таким образом, значения ссылочной целостности  защищают базу данных от ошибок, связанных  с вставкой, удалением и обновлением данных.

         Например, в нашу базу данных в таблицу «DistributionPass» нельзя занести информацию о новом клиенте без внесения данных об этом клиенте в таблицу «Klient», т.к. отношение «Klient» является родительским для отношения «DistributionPass». А в таблицу «Pass» нельзя внести информацию о работнике, которого нет в отношении «WorkerPersonner» (т.е. нельзя назначить на путёвку гида, если он не существует в данной компании).

         Такая же ситуация обстоит и с удалением  и обновлением картежей в отношениях.

         Например, нельзя удалить картеж из отношения  «Hotels», так как у него имеется потомок – отношение «DistributionPass», а если возникает необходимость удаления, то соответствующие картежи необходимо удалить и из всех дочерних отношений.

         Аналогичная связь прослеживается и в других отношениях.

4 Выбор СУБД

         Для реализации базы данных «Туристическая компания» я выбрала СУБД  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 как наиболее подходящую для реализации нашей базы данных по предоставляемым возможностям.
 

         5.  Физическая модель

         Физическая модель данных представлена реляционными таблицами, в которых в виде кортежей реляционных отношений хранится информация. Для хранения информации выбраны Oracle 10g таблицы, как удобные в работе и распространенные. Таблицы  Oracle 10g поддерживают многие приложения, что обеспечивает более высокую универсальность системы.

Таблица 5.1Типы данных

Тип Наименование типа Размер(байты) Содержание
Текстовый varchar каждый символ по 1 Буквы, цифры, спец. символы(%, &, #)
Числовой integer 4 Планируется выполнять  арифме тические операции над значениями из этого поля
Денежный integer 8 Числовое поле, содержимое которого изображается с дробной частью и денежным символом
Дата date 8 Даты до 31 декабря 9999 года
 

      Для создания таблицы «Klient» мы использовали следующие скрипты:

    CREATE TABLE klient

    (

    idklient varchar2(40) primary key not null,

    FIO varchar2(40) unique,

    NumberRusPassport  integer,

    NumberForeignPassport integer,

    DateBirths date,

    Phone integer,

    NumberCount integer

    )

      Для  создания таблицы «Pass»:

    CREATE TABLE Pass 

    (

    idPass  integer PRIMARY KEY NOT NULL,

    Class varchar(20) CHECK (Class IN('ВЫСШИЙ',

                                       'СРЕДНИЙ',

                                       'НИЗШИЙ')),

    Duration integer,

    Cost integer,

    idWorkerPersonner varchar(20),

    FOREIGN KEY (idWorkerPersonner)REFERENCES WorkerPersonner)

      Для  создания таблицы «DistributionPass»:

    CREATE TABLE DistributionPass

    (

    idDistributionPass integer PRIMARY KEY NOT NULL,

    idklient varchar2(40) unique not null,

    idpass integer,

    idHotels integer,

    DateDeparture integer,

    idTransportationCompany integer,

    FOREIGN KEY (idklient)REFERENCES klient,

    FOREIGN KEY (idpass)REFERENCES pass,

    FOREIGN KEY (idHotels)REFERENCES Hotels,

    FOREIGN KEY (idTransportationCompany)REFERENCES TransportationCompany

    )

         Для  создания таблицы «Countries»:

    CREATE TABLE Countries

    (

    idCountries integer PRIMARY KEY NOT NULL,

    Name varchar2(40) unique not null,

    idCurrency integer,

    FOREIGN KEY (idCurrency)REFERENCES Currency

    )

         Для создания таблицы «TransportationCompany» мы использовали следующие скрипты: 

    CREATE TABLE TransportationCompany

    (

    idTransportationCompany integer PRIMARY KEY NOT NULL,

    Name varchar2(40),

    LegalAddress varchar2(40),

    NumberLicenses integer NOT NULL,

    Fax integer NOT NULL

    )

         Для  создания таблицы «Hotels»:

    CREATE TABLE Hotels

    (

    idHotels integer PRIMARY KEY NOT NULL,

    Name varchar2(40) unique not null,

    Address varchar2(40),

    Phone integer,

    Fax integer,

    LevelComfort integer,

    idResorts varchar2(40),

    FOREIGN KEY (idResorts)REFERENCES Resorts

    )

         Для  создания таблицы «WorkerPersonner»:

    CREATE TABLE WorkerPersonner

    (

    idWorkerPersonner varchar2(40) PRIMARY KEY NOT NULL,

    idResorts  varchar2(40),

    FIO varchar2(40),

    DateAcceptare integer,

    Phone integer,

    FOREIGN KEY (idResorts)REFERENCES Resorts)

         Для  создания таблицы «Currency»:

    CREATE TABLE Currency

    (

    idCurrency integer PRIMARY KEY NOT NULL,

    Names varchar2(40) unique not null,

    ExchangeCourse integer

    ) 
     
     

         6 Проектирование и реализация информационной системы

         6.1 Описание средств, использованных при реализации

         1 Создание базы данных.

         Для создания базы данных, сначала создаются  таблицы с помощью средств, предлагаемых  СУБД Oracle 10g :

  • Создание таблицы помощью графического инструментального     средства конфигурирования Oracle Database Configuration Assistant (DBCA);
  • Создание таблицы шаблонов баз данных (database templates),;
  • Создание таблицы путём ввода данных.

         При создании таблиц был использован 1-й  вариант, как наиболее удобный из всех предлагаемых. Сначала создаётся  каркас таблицы, отмечаются ключевые поля, устанавливаются типы данных для каждого поля, а уже потом таблицы заполняются макетными данными (приведены в приложении A).

         После того, как таблицы созданы, необходимо их связать по ключевым полям.  

         2 Создание запросов

         Уже на данном этапе можно сформулировать достаточно большое количество запросов, которые понадобятся в дальнейшем при создании форменного приложения.

         При создании запроса в СУБД Oracle 10g   был использован режим SQL . Это объясняется удобством и простотой языка SQL, который представляет достаточно богатый набор средств для формирования запросов. 
     
     
     
     

6.2 Тексты SQL-запросов и результаты их выполнения

         Ниже  приведены все SQL-запросы, использованные в процессе создания информационной системы.

         Запрос 1. Вывести информацию о клиенте по номеру российского паспорта «2490443355». 

    SELEСT t. FIO AS ФИО_Клиента, t.NumberForeignPassport AS Номер_заграничного_паспорта, t.DateBirths AS Дата_рождения, t.NumberCount AS Номер_банковского_счёта

    From klient t

    WHERE NumberRusPassport='2490443355'

        Результат запроса:

    Klient
    ФИО_Клиента Номер_заграничного_паспорта Дата_рождения Номер_банковского_счёта
    Фролов Константин Николаевич 7768787888 16.12.1961 6457235342534545
 

         Запрос  2. Вывести информацию о клиенте под номером 10.

    SELECT    t.idklient AS № t. FIO AS ФИО_Клиента,  t. NumberRusPassport AS №русс.паспорта, t.NumberForeignPassport AS №загран.паспорта, t.DateBirths

    AS Дата_рождения, t.NumberCount AS Номер_банк.счёта

    FROM    klient t

    WHERE   idklient=10;

        Результат запроса:

        Klient
     
    ФИО_Клиента  
    №русс.паспорта
    №загран.паспорта Дата_рождения №банк._счёта
    10 Евсеев

     Андрей Иванович

    3109421060 7786545667 24,04,1957 6457235342534545
 

        Запрос 3. Вывести информацию о клиенте по Ф.И.О. «Путин Владимир Владимирович».

    SELECT  t.NumberRusPassport AS Номер_российского_паспорта, t.NumberForeignPassport AS Номер_заграничного_паспорта, t.DateBirths AS Дата_рождения, t.NumberCount AS Номер_банковского_счёта

    FROM       klient t

    WHERE           ((FIO)='Путин Владимир Владимирович')

        Результат запроса:

    Klient
    Номер_росс.паспорта Номер_загран.паспорта Дата_рождения Номер_банк._счёта
    2195349528 8786765546 14.06.1954 3214235435656346

Информация о работе Проектирование и реализация информационной системы. Туристическая компания