- •Содержание
- •1 Анализ предметной области
- •Функциональная структура
- •1.2 Диаграмма потоков данных
- •1.3 Выделение информационных объектов и их атрибутов
- •2 Концептуальная модель
- •3 Логическое моделирование
- •3.1 Построение логической модели
- •3.2. Нормализация отношений.
- •3.3 Целостность данных
- •3.3.1 Целостность объекта
- •3.3.2 Целостность приложения
- •3.3.3 Ссылочная целостность
- •4 Выбор субд
- •5. Физическая модель
- •6 Проектирование и реализация информационной системы
- •6.1 Описание средств, использованных при реализации
- •6.2 Тексты sql-запросов и результаты их выполнения
- •Многотабличные запросы
- •Подзапросы (запрос внутри запроса)
- •Exists и not exists (существует и не существует)
- •Встроенные функции
- •Group by и having
- •Встроенные функции и подзапросы
- •7 Заключение
- •8 Список литературы
- •9. Приложение a. Макетные данные.
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 Номер_банковского_счёта
Fromklient t
WHERENumberRusPassport='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
Запрос 4 .Вывести ФИО, номер российского паспорта, дату рождения, номер банковского счета клиента по номеру заграничного паспорта «8786765546».
SELECT t.FIO AS ФИО_Клиента, t.NumberRusPassport AS Номер_российского_паспорта, t.DateBirths AS Дата_рождения,t.NumberCount AS Номер_банковского_счёта
FROM klient t
WHERE NumberForeignPassport=’ 8786765546’;
Результат запроса:
-
Klient
ФИО_Клиента
Номер_российского_паспорта
Дата_рождения
Номер_банковского_счёта
Путин Владимир Владимирович
2195349528
14.06.1954
3214235435656346
Запрос 5. Вывести ФИО, номер российского паспорта, номер загранпаспорта, дату рождения клиента по номеру банковского счёта «874545454878696».
SELECT t.FIO AS ФИО_Клиента, t.NumberRusPassport AS Номер_российского_паспорта, t.NumberForeignPassport AS Номер_заграничного_паспорта, t.DateBirths AS Дата_рождения
FROM klient t
WHERE NumberCount=’ 874545454878696’
Результат запроса:
-
Klient
ФИО_Клиента
Номер_российского_паспорта
Номер_заграничного_паспорта
Дата_рождения
Алексеенко татьяна Сергеевна
6002764913
4565456863
21.12.1960
Запрос 6. Вывести ФИО, номер российского паспорта, номер загранпаспорта, номер банковского счета о клиенте по дате рождения «14.06.1954».
SELECT t.FIO AS ФИО_Клиента, t.NumberRusPassport AS Номер_российского_паспорта, t.NumberForeignPassport AS Номер_заграничного_паспорта, t.NumberCount AS Номер_банковского_счёта
FROM klient t
WHERE DateBirths=’14.06.1954’
Результат запроса:
-
Klient
ФИО_Клиента
Номер_росс.паспорта
Номер_загран.паспорта
Номер_банковского_счёта
Путин Владимир Владимирович
2195349528
8786765546
3214235435656346
Запрос 7. Вывести список всех предлагаемых фирмой путёвок, стоимость которых составляет меньше или равно 20000 руб.
SELECT t4.Name AS Страна, t2.City AS Город, t.Name AS Класс, t.Duration AS Длительность, t.Cost AS Стоимость,t1.FIO AS Гид
FROM Pass t, WorkerPersonner t1, Resorts t2, Countries t4
WHEREt.idWorkerPersonner=t1.idWorkerPersonnerAndt1.idResorts=t2.idResortsAndt2.idCountries=t4.idCountriesAndt.Cost<=’ 30000’;
Результат запроса:
Pass | |||||
Страна |
Город |
Класс |
Длительность |
Стоимость |
Гид |
Франция |
Париж |
Высший |
20 |
30 000,00р. |
Черников Алексей Алексеевич |
Франция |
Париж |
Средний |
10 |
10 000,00р. |
Черников Алексей Алексеевич |
Швейцария |
Берн |
Средний |
10 |
15 000,00р. |
Шевченко Михаил Евгеньевич |
Швейцария |
Берн |
Низкий |
15 |
12 000,00р. |
Шевченко Михаил Евгеньевич |
Англия |
Лондон |
Низкий |
10 |
20 000,00р. |
Титов Сергей Николаевич |
Чехия |
Прага |
Средний |
18 |
25 000,00р. |
Сидоров Павел Дмитриевич |
Голландия |
Амстердам |
Низкий |
15 |
20 000,00р. |
Зайцева Ирина Викторовна |
Испания |
Барселона |
Высший |
10 |
30 000,00р. |
Петренко Валентина Алексеевна |
Испания |
Барселона |
Средний |
12 |
20 000,00р. |
Петренко Валентина Алексеевна |
Испания |
Барселона |
Низкий |
8 |
10 000,00р. |
Петренко Валентина Алексеевна |
Австрия |
Вена |
Высший |
10 |
30 000,00р. |
Резников Михаил Анатольевич |
Австрия |
Вена |
Средний |
10 |
15 000,00р. |
Резников Михаил Анатольевич |
Болгария |
София |
Средний |
15 |
25 000,00р. |
Орехова Валентина Андреевна |
Болгария |
София |
Низкий |
10 |
10 000,00р. |
Орехова Валентина Андреевна |
Турция |
Стамбул |
Высший |
8 |
14 000,00р. |
Калашникова Юлия Ивановна |
Турция |
Стамбул |
Низкий |
10 |
8 000,00р. |
Калашникова Юлия Ивановна |
Запрос 8. Вывести полную информацию о путёвке № 7.
SELECT t4.Name AS Страна, t2.City AS Город, t.Name AS Класс, t.Duration AS Длительность, t.Cost AS Стоимость, t1.FIO AS Гид
FROM Pass t, WorkerPersonner t1, Resorts t2, Countries t4
WHERE t.idWorkerPersonnel=t1.idWorkerPersonnel And t1.idResorts=t2.idResorts And t2.idCountries=t4.idCountries And t.idPass=’7’;
Результат запроса:
Pass | |||||
Страна |
Город |
Класс |
Длительность |
Стоимость |
Гид |
Чехия |
Прага |
Средний |
18 |
25 000,00р. |
Сидоров Павел Дмитриевич |
Запрос 9. Список путёвок, длительность которых не превышает 15 дней.
SELECT t4.Name AS Страна, t2.City AS Город, t.Name AS Класс, t.Duration AS Длительность, t.Cost AS Стоимость, t1.FIO AS Гид
FROM Pass t, WorkerPersonner t1, Resorts t2, Countries t4
WHERE t.idWorkerPersonnel=t1.idWorkerPersonnel And t1.idResorts=t2.idResorts And t2.idCountries=t4.idCountries And t.Duration<=’ 15’;
Результат запроса:
Pass | |||||
Страна |
Город |
Класс |
Длительность |
Стоимость |
Гид |
Франция |
Париж |
Средний |
10 |
10 000,00р. |
Черников Алексей Алексеевич |
Швейцария |
Берн |
Средний |
10 |
15 000,00р. |
Шевченко Михаил Евгеньевич |
Швейцария |
Берн |
Низкий |
15 |
12 000,00р. |
Шевченко Михаил Евгеньевич |
Англия |
Лондон |
Высший |
15 |
40 000,00р. |
Титов Сергей Николаевич |
Англия |
Лондон |
Низкий |
10 |
20 000,00р. |
Титов Сергей Николаевич |
Голландия |
Амстердам |
Низкий |
15 |
20 000,00р. |
Зайцева Ирина Викторовна |
Испания |
Барселона |
Высший |
10 |
30 000,00р. |
Петренко Валентина Алексеевна |
Испания |
Барселона |
Средний |
12 |
20 000,00р. |
Петренко Валентина Алексеевна |
Испания |
Барселона |
Низкий |
8 |
10 000,00р. |
Петренко Валентина Алексеевна |
Италия |
Рим |
Средний |
15 |
35 000,00р. |
Романцова Светлана Владимировна |
Австрия |
Вена |
Высший |
10 |
30 000,00р. |
Резников Михаил Анатольевич |
Австрия |
Вена |
Средний |
10 |
15 000,00р. |
Резников Михаил Анатольевич |
Болгария |
София |
Высший |
15 |
37 000,00р. |
Орехова Валентина Андреевна |
Болгария |
София |
Средний |
15 |
25 000,00р. |
Орехова Валентина Андреевна |
Болгария |
София |
Низкий |
10 |
10 000,00р. |
Орехова Валентина Андреевна |
Турция |
Стамбул |
Высший |
8 |
14 000,00р. |
Калашникова Юлия Ивановна |
Турция |
Стамбул |
Низкий |
10 |
8 000,00р. |
Калашникова Юлия Ивановна |
Запрос 10. Вывести информации о компании Аэрофлот, отвечающей за доставку клиентов.
SELECT t.NumberLicenses AS Номер_лицензии, t.LegalAddress AS Юридический_адрес, t.Fax AS Факс
FROM TransportationCompany t
WHERE t.idTransportationCompany=’Аэрофлот’;
Результат запроса:
TC | ||
Номер_лицензии |
Юридический_адрес |
Факс |
675454766 |
Москва, ул. Пушкина 286 |
798787454545 |