Автор: Пользователь скрыл имя, 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 Макетные данные …….
FROM Countries t1, Resorts t2, Hotels t
WHERE t1.idCountries=t2.idCountries And t2.idResorts=t.idResorts And t1.idCountries=’Италия’;
Результат запроса:
DP |
Название гостиницы |
Де Ла Фьора |
Равиолли |
Запрос 17. Вывести имя ответственного гида , название компании-перевозчика и номер путёвки клиента Путина Владимира Владимировича.
select t3.name,
t2.fio, t4.idpass
from klient t,distributionpass t1,workerpersonner
t2,transportationcompany t3 , pass t4
where t.idklient=t1.idklient and t1.idtransportationcompany=t3.
t2.idworkerpersonner=t4.
Результат запроса:
DP | ||
Номер_путёвки | Гид | Компания_перевозчик |
4 | Шевченко Михаил Евгеньевич | ООО "Вокруг Света" |
Запрос 18. Список самых комфортабельных гостиниц, сотрудничающих с туристической фирмой.
SELECT t.Name AS Название_гостиницы, t2.Name AS Страна, t1.City AS Город, t.Address AS Адрес
FROM Hotels t, Resorts t1, Countries t2
WHERE t.idResorts=t1.idResorts and t1.idCountries=t2.idCountries and t.LevelComfort=”5”;
Результат запроса:
Hotels | |||
Название_гостиницы | Страна | Город | Адрес |
Седьмое небо | Швейцария | Берн | Калинина, 55 |
Великобритания | Англия | Лондон | Английская, 68 |
Альбино | Испания | Барселона | Социалистическая, 17 |
Интес | Болгария | София | Центральная, 12 |
Комос | Турция | Стамбул | Баклановская, 87 |
ПОДЗАПРОСЫ
(запрос
внутри запроса)
Запрос 19. Какие транспортные компании отправят клиентов 06.01.2011?
select t.name AS Название_Транспортной
компании
from transportationcompany t
where idtransportationcompany in
(select idtransportationcompany
from distributionpass t1
where t1.datedeparture='06.01.2011')
Результат
запроса:
|
Запрос 20. (некоррелированный подзапрос – подзапрос, значение которого не зависит ни от какого внешнего запроса). Перечислить гидов закрепленных, за местом отдыха Париж.
select fio AS ФИО
гида
from workerpersonner t
where t.idworkerpersonner in
(select t.idworkerpersonner
from workerpersonner t
where t.idresorts in
(select t1.idresorts
from resorts t1
where t1.city='париж'))
Результат
запроса:
|
EXISTS и NOT EXISTS
(существует
и не существует)
Запрос 21.(коррелированный подзапрос). Перечислить клиентов, которые не живут в гостинице под номером 7 .
select *
from klient t
where not exists
(select *
from distributionpass t1
where t.idklient=t1.idklient and
t1.idhotels=7)
Результат запроса:
Klient | |||||||
idKlient | FIO | NumberRusPassport | NumberForeignPassport | DateBirths | Phone | NumberCount | |
4 | Андреев Борис Петрович | 2305670943 | 9897666899 | 12.04.1960 | 89036560908 | 4564576796578563 | |
5 | Андреева Валентина Александровна | 2305463798 | 6454647688 | 15.08.1955 | 89031299864 | 8767356345768798 | |
6 | Бурухин Константин Петрович | 3003625916 | 4564578789 | 30.01.1979 | 89088764228 | 8735436476876846 | |
7 | Винокуров Павел Михайлович | 5309468201 | 4564989809 | 07.02.1966 | 89097652975 | 6854642342567874 | |
8 | Гуртовой Сергей Андреевич | 5832096931 | 2324344323 | 08.06.1983 | 89289089863 | 3254768768766345 | |
9 | Долгушина Наталья Фёдоровна | 3290458912 | 6543453657 | 20.10.1945 | 89049898988 | 7658768635443563 | |
10 | Елисеев Андрей Иванович | 3109421060 | 7786545667 | 24.09.1957 | 89282223466 | 4365476874523454 | |
11 | Жириновский Владимир Вольфович | 2941383940 | 8798678976 | 12.11.1955 | 89098786430 | 8465723452345768 | |
12 | Иванов Алексей Николаевич | 3859476076 | 2324354324 | 19.04.1965 | 89046876585 | 3264867867462345 | |
13 | Ковалёв Валерий Николаевич | 3205689457 | 3234234354 | 06.03.1970 | 89048790963 | 8678465423564756 | |
14 | Ковалёва Любовь Мартиновна | 3203740928 | 4556565556 | 27.07.1973 | 89288789622 | 4587687967868877 | |
15 | Малыхин Дмитрий Сергеевич | 1001460284 | 5768876546 | 23.12.1978 | 89059877534 | 3787685786787989 | |
16 | Путин Владимир Владимирович | 2195349528 | 8786765546 | 14.06.1954 | 89038976456 | 3214235435656346 | |
17 | Серов Леонид Валерьевич | 1234567890 | 6876856756 | 10.03.1977 | 89068763859 | 7657694534523454 | |
18 | Фролов Константин Николаевич | 2490443355 | 7768787888 | 16.12.1961 | 89288773548 | 6457235342534545 |
Запрос 22. Перечислить гидов, назначенных на место отдыха Испания (может быть реализован при помощи двойного отрицания). Перечислить гидов, для которых не существует место отдыха Испания , на которое они не назначены.
select t.FIO AS
ФИО гида
from workerpersonner t
where not exists
(select idresorts
from resorts t1 where not
exists
(select *
from countries t2
where t.idresorts=t1.idresorts and
t1.idcountries= t2.idcountries
and t1.idcountries='Испания'))
Результат запроса:
|
ВСТРОЕННЫЕ
ФУНКЦИИ
Запрос 23. Какова min и max СТОИМОСТЬ ПУТЕВКИ?
select max(cost), min(cost)
from pass
Результат запроса:
Инфо 3 | |
max(cost) | min(cost) |
40000 | 8000 |
Запрос 24. Прибыль туристической компании.
select sum(Cost)AS Прибыль
from DistributionPass t, Pass t1
where t.idPass=t1.idPass
Результат запроса:
Инфо 4 |
Прибыль |
370 000,00р. |
Запрос 25. Определить среднее число дней пребывания в России.
select avg(duration)
from pass t, countries t1
where t1.idcountries='1'
Результат
запроса:
Инфо 5 |
Cреднее число дней |
12.4210526315789 |
Запрос 26. Сколько путевок имеют длительность 10 дней?
select count(*)
AS число путевок
from pass t
where t.duration='10'
Результат запроса:
Инфо 6 |
Число путевок |
8 |
Запрос 27. Общее количество клиентов, которые воспользовались услугами компании.
SELECT count(*)
AS Количество_клиентов
FROM klient;
Результат запроса:
Инфо 7 |
Количество клиентов |
18 |
Запрос 28. Вывести даты приезда/отъезда и общее время пребывания на курорте клиента Гуртового Сергея Андреевича.
SELECT t1.DateDeparture
AS Дата_отправления, (t1.DateDeparture+t2.Duration)
AS Дата_приезда, t2.Duration AS Длительность_поездки
FROM klient t , DistributionPass t1 , Pass
t2
WHERE t.idklient=t1.idklient And t1.idPass=t2.idPass
And t.FIO='Гуртовой
Сергей Андреевич';
Результат запроса:
DP | ||
Дата_отправления | Дата_приезда | Длительность_поездки |
03.01.2006 | 18.01.2006 | 15 |
GROUP
BY и HAVING
Запрос 29. Для каждого отеля выяснить максимальную комфортность.
select t.name,max(levelcomfort)
from hotels t
group by name
Результат запроса:
Hotels | ||
idHotels | Name | LevelComfort |
1 | Альбино | 5 |
2 | Атлантида | 4 |
3 | Испаньола | 3 |
4 | Эллада | 4 |
5 | Комос | 5 |
6 | Де Ла Фьора | 4 |
7 | Седьмое небо | 5 |
8 | Интурист | 3 |
9 | Прага | 4 |
10 | Звезда | 4 |
11 | Интес | 5 |
12 | Ля Форш | 4 |
13 | Ирис | 3 |
14 | Равиолли | 3 |
15 | Великобритания | 5 |
16 | Инферно | 4 |
Запрос 30. Для каждой страны, у которой больше одной валюты, выяснить максимальный обменный курс.
select t1.names , max(exchangecourse)
from currency t,countries t1
group by t1.names
having count(*)>1
Результат
запроса:
Инфо 8 | |
Names | max(exchangecourse) |
Франция | 35 |
Швейцария | 35 |
Англия | 35 |
Чехия | 35 |
Голландия | 35 |
Испания | 35 |
Италия | 35 |
Австрия | 35 |
Болгария | 35 |
Турция | 35 |
ВСТРОЕННЫЕ
ФУНКЦИИ И ПОДЗАПРОСЫ
Запрос 31. У какой гостиницы уровень комфортности больше среднего?
select name
from hotels
where levelcomfort>
(select avg (levelcomfort)
from hotels)
Результат запроса:
Инфо 9 |
Name |
Альбино |
Комос |
Седьмое небо |
Интес |
Великобритания |
Запрос 32. Клиент у которого длительность путевки выше средней длительности путевки среди остальных клиентов данной туристической фирмы?
select t2.*
from distributionpass t, klient t2 , pass t3
where t3.duration>
(select avg (duration)
from pass t)
Результат
запроса:
Инфо 10 | |||
ФИО_Клиента | Номер_российского_паспорта | Номер_заграничного_паспорта | Дата_рождения |
Алексеенко Татьяна Сергеевна | 6002764913 | 4565456863 | 21.12.1960 |
Информация о работе Проектирование и реализация информационной системы. Туристическая компания