Разработка распределенной базы данных турфирма на
Скачать 0.91 Mb.
|
_type_pitaniya
Страны
Рисунок 11 – Диаграмма баз данных 3. 4 Создание запросов Запрос 1 на выборку городов Великобритании с использованием соединения: select gorog.name from gorog inner join land on gorog.land=land.id where land.name='Великобритания' Рисунок 12 – Результат запроса 1 Запрос 2 на выборку всех отелей Великобритании с использованием соединения и сортировка по количеству звезд, а так же по цене проживания за ночь: select hotel.name, stars, price from hotel inner join gorog inner join land on gorog.land=land.id on gorod=gorog.id where land.name='Великобритания' order by stars asc, price asc Рисунок 13 – Результат запроса 2 Запрос 3, подсчитывающий среднюю стоимость ночи проживания в отеле в каждой из стран: select land.name, AVG(hotel.price) as [Средняя стоимость] from hotel inner join gorog inner join land on gorog.land=land.id on gorod=gorog.id group by (land.name) Рисунок 14 – Результат запроса 3 Запрос 4, отображающий отели, стоимость проживания в которых ниже либо равна средней стоимости проживания в отелях за одну ночь с сортировкой по названию страны, цене и количеству звезд: select hotel.name as [Отель], stars as [Звезды], gorog.name as [Город], land.name as [Страна], price as [Цена] from hotel inner join gorog inner join land on gorog.land=land.id on gorod=gorog.id where hotel.price <= (select AVG(hotel.price) from hotel) order by land.name, price asc, stars asc Рисунок 15 – Результат запроса 4 Запрос 5, отображающий продажи клиентам и подсчитывающий общую сумму продаж каждому из клиентов: select f, prodazha.date, prodazha.price, type_tour.type from clients inner join prodazha inner join tour inner join type_tour on tour.type_tour=type_tour.id on prodazha.tour=tour.id on prodazha.client=clients.id order by f compute sum(price) by f Рисунок 16 – Результат запроса 5 Запрос 6 на нахождение разницы суммы продаж: select ((select MAX(price)from prodazha) - (select MIN(price) from prodazha)) as 'Разница' Рисунок 17 – Результат запроса 6 Запрос 7, отображающий продажи текущего месяца: select type_tour.type, prodazha.date from prodazha inner join tour inner join type_tour on tour.type_tour=type_tour.id on prodazha.tour=tour.id where DATEPART(month, prodazha.date)=DATEPART(month, getdate()) Рисунок 18 – Результат запроса 7 3. 5 Создание представлений Код создания представления: CREATE VIEW hotel1 as select hotel.name as [Отель], stars as [Звезды], gorog.name as [Город], land.name as [Страна], price as [Цена] from hotel inner join gorog inner join land on gorog.land=land.id on gorod=gorog.id where hotel.price <= (select AVG(hotel.price) from hotel) Рисунок 19 – Представление «Отели» 3. 6 Создание процедур и триггеров Код создания процедуры добавления данных о новом клиенте в таблицу «Клиент»: create procedure clients1 (@f varchar(30), @i varchar(30), @o varchar(30), @date date, @adres varchar(30), @telefon varchar(30)) as declare @id int set @id = (select MAX(id) from clients) set @id=@id+1 insert into clients values ( @id, @f, @i, @o, @date, @adres, @telefon) execute clients1 'Иванов', 'Иван', 'Иванович', '1987-10-25', 'Балаково', '+79283854875' Код создания триггера удаления сведений о стране и связанных с ней записях: create trigger landdelete on land for delete as begin declare @a int set @a = (select id from deleted) delete from gorog where gorog.land=@a end 3. 7 Создание транзакции Код создания транзакции на добавление данных о новом городе и отеле: begin tran insert into gorog values ('57', 'Balakovo', '6') insert into hotel values ('169', 'Balakovo', '4', '57', '2', '4230') if (@@ERROR=0) begin commit tran end else begin print 'Error' rollback tran end ЗАКЛЮЧЕНИЕ В ходе выполнения курсового проекта «Разработка распределенной базы данных на основе MS SQL Server» были получены навыки концептуального, логического и физического проектирования распределенных баз данных. Были изучены синтаксис и основные команды языка Т-SQL. Освоено создание базы данных, таблиц, запросов, триггеров, процедур, представлений и транзакций, а так же установка ограничений. Итогом выполнения курсового проекта стала распределенная база данных «Турфирма», которая позволяет хранить, обрабатывать и изменять информацию о клиентах, турах, продажах и авиарейсах. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ Виейра Р. Программирование баз данных Microsoft SQL Server 2005. Базовый курс. / Роберт Виейра. – М.: Диалектика, 2008. – 1066с. Голицына О.Л. Базы данных. / О.Л. Голицина, Н.В. Максимов, И.И. Попов. – М.: Форум – Инфра-М, 2007. – 400с. Грабер М. SQL. Справочное руководство. 2-е изд. / М. Грабер. – М.: Лори, 2006. – 354с. Грабер М. Введение в SQL. / М. Грабер. – М.: Лори, 2010. – 238с. Диго С.М. Базы данных. Проектирование и использование: учебник. / С.М. Диго. – М.: Финансы и статистика, 2005. – 592с. Клайн К. SQL. Справочник. – 2-е изд. / К. Клайн, Д. Клайн, Б. Хант. – М.: Кудиц-образ, 2006. – 832с. Крёнке Д. Теория и практика построения баз данных. – 9-е изд./ Д. Крёнке. – СПб.: Питер, 2005. – 864с. Малыхина М.П. Базы данных: основы, проектирование, использование. / М.П. Малыхина. – СПб.: БХВ-Петербург, 2004. – 512с. Пирогов В.Ю. Информационные системы и базы данных: организация и проектирование. / В.Ю. Пирогов. – СПб.: БХВ-Петербург, 2009. 528с. Фленов М. Transact-SQL. / М. Фленов. – СПб.: БХВ-Петербург, 2006. – 576с. ПРИЛОЖЕНИЕ А (обязательное) Информация предоставлена на цифровом носителе. |