Информационная система "Туристическая компания"
Основы проектирования реляционных баз данных. Определение предметной области и информационных потребностей пользователей. Разработка логической модели базы данных туристической компании средствами MySQL. Создание запросов для отбора информации из таблиц.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 19.03.2012 |
Размер файла | 575,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1
Содержание
1. Постановка задачи
2. Инфологическая модель
3. Разработка таблиц и схемы данных
4. Запросы системы
Выводы
1. Постановка задачи
База данных - центральная часть информационной системы, совокупность данных для машинной обработки, которая отражает информационную модель некоторой предметной области. Современные БД (базы данных) хранят данные в виде таблиц, которые определенным образом связаны между собой, по этому свойству БД называются реляционными.
БД создается с помощью СУБД (системы управления БД).
СУБД - программная инструментальная система, основные назначения которой:
описать БД, таблицы и связи между ними, описать операции над данными в таблицах;
контролировать целостность и непротиворечивость данных;
автоматически отображать описанную информационную модель в физическую БД на магнитных носителях компьютера.
Основы проектирования реляционных БД
Жизненный цикл БД можно разбить на три основные стадии:
проектирование (на бумаге или с помощью специальных программ);
программная реализация;
эксплуатация.
На этапе проектирования решаются следующие вопросы:
изучение задачи (обследование предметной области), выделение объектов и связей, о которых надо хранить информацию;
составление исходных таблиц БД;
нормализация (декомпозиция) таблиц и назначение ключевых полей.
На этапе реализации происходит:
описание полученных таблиц средствами СУБД и ввод их в компьютер;
разработка отчетов, экранных форм, запросов, макросов и программ;
отладка и тестирование программ из ИС и обучение персонала.
На стадии эксплуатации происходит наполнение ИС реальными данными, использование, доработка и сопровождение.
2. Инфологическая модель
Цель инфологического этапа проектирования состоит в получении концептуальных моделей, отражающих предметную область и информационные потребности пользователей.
Предметная область (ПО) - часть реального мира, подлежащая изучению с целью организации управления и, в конечном итоге, автоматизации.
Имеется целый ряд методик моделирования предметной области. Одна из наиболее популярных в настоящее время методик базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов ERD (Entity-Relationship Diagrams).
Модель ERD была предложена в 1976 г. Питером Пин-Шэн Ченом. В дальнейшем многими авторами были разработаны свои варианты подобных моделей: нотация (notation - система обозначения, записи) Мартина, нотация IDEF1X, нотация Баркера, но все они базируются на графических диаграммах, предложенных Ченом.
В данной работе для разработки ER-диаграммы использована нотация Баркера.
Выделим сущности.
Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. Каждая сущность должна иметь наименование, выраженное существительным в единственном числе. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое.
Сущности
1. Маршруты
2. Выполнение маршрута
3. Клиент
4. Путевка
Выделим атрибуты данных сущностей.
Атрибут сущности - это поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Атрибуты используются для определения того, какая информация должна быть собрана о сущности.
Атрибуты сущности:
1. «Маршруты»: номер, название, страна, продолжительность, вид транспорта, стоимость.
2. «Выполнение маршрута»: номер, дата отправления, номер группы, ФИО сопровождающего.
3. «Клиент»: №паспорта, ФИО, возраст, семейное положение, адрес.
4. «Путевка»: №паспорта, №группы дата продажи.
Выделим ключи сущностей.
Ключ сущности - минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.
Ключ сущности:
1. «Маршруты»: номер.
2. «Выполнение маршрута»: номер группы,
3. «Клиент»: №паспорта.
4. «Путевка»: нет.
Определим связи между сущностями.
Связь - это некоторая ассоциация между двумя сущностями. Одна сущность может быть связана с другой сущностью или сама с собою. Связи позволяют по одной сущности находить другие сущности, связанные с нею.
Каждая связь может иметь один из следующих типов связи:
1. Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
2. Связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи.
3. Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности.
Каждая связь может иметь одну из двух модальностей связи:
1. Модальность "может" означает, что экземпляр одной сущности может быть связан с одним или несколькими экземплярами другой сущности, а может быть и не связан ни с одним экземпляром.
2. Модальность "должен" означает, что экземпляр одной сущности обязан быть связан не менее чем с одним экземпляром другой сущности.
Связь может иметь разную модальность с разных концов.
Связи между сущностями:
В результате анализа предметной области была получена ER-диаграмма.
3. Разработка таблиц и схемы данных
Для создания данной системы управления данными понадобятся следующие таблицы klient, marhrut, putevka, vipolnenie_marshrut, которые необходимо связать для обеспечения непротиворечивости данных.
Для создания таблиц, ключей и связей в MySQL были написаны следующие команды: CREATE TABLE, INSERT INTO, PRIMARY KEY.
Создание таблицы Маршрут
CREATE TABLE `kursovaya`.`marshrut` (
`number` INT(20) NOT NULL,
`name` VARCHAR(25) NOT NULL,
`strana` VARCHAR(20) NOT NULL,
`prodolgitelnost` INT(20) NOT NULL,
`vid transport` VARCHAR(30) NOT NULL,
`cost` INT(10) NOT NULL
) ENGINE = MYISAM
ALTER TABLE `marshrut` ADD PRIMARY KEY (`number`)
Заполнение таблицы Маршрут
INSERT INTO `kursovaya`.`marshrut` (`number`, `name`, `strana`, `prodolgitelnost`, `vid_transport`, `cost`) VALUES ('3002', 'Россиятур', 'Россия', '4', 'газель', '500'), ('3003', 'Русстур', 'Россия', '12', 'автобус', '3000');
Создание таблицы Выполнение маршрута
CREATE TABLE `kursovaya`.`vipolnenie_marshrut` (
`number` INT(20) NOT NULL,
`date_otprav` DATE NOT NULL,
`number_grupp` INT(20) NOT NULL,
`FIO_otprav` VARCHAR(100) NOT NULL
) ENGINE = MYISAM
ALTER TABLE `vipolnenie_marshrut` ADD PRIMARY KEY (`number_grupp`)
Заполнение таблицы Выполнение маршрута
INSERT INTO `kursovaya`.`vipolnenie_marshrut` (`number`, `date_otprav`, `number_grupp`, `FIO_otprav`) VALUES ('3000', '2011-06-01', '5000', 'Григорьев Иван Петрович'), ('3001', '2011-03-15', '5001', 'Саратова Инна Владимировна');
Создание таблицы Путевка
CREATE TABLE `kursovaya`.`putevka` (
`number_pasport` INT NOT NULL,
`number_grupp` INT NOT NULL,
`date` TEXT NOT NULL,
`prodolgitelnost` INT NOT NULL
) ENGINE = MYISAM ;
Заполнение таблицы Путевка
INSERT INTO `kursovaya`.`putevka` (`number_pasport`, `number_grupp`, `date_prodag`) VALUES ('1011', '5010', '2011-06-24'), ('1012', '5011', '2011-06-26');
Создание таблицы Клиент
CREATE TABLE `kursovaya`.`klient` (
`number_pasport` VARCHAR NOT NULL,
`FIO` VARCHAR NOT NULL,
`age` INT NOT NULL,
`sem_polog` VARCHAR NOT NULL,
`adres` VARCHAR NOT NULL
) ENGINE = MYISAM ;
ALTER TABLE `klient` ADD PRIMARY KEY (`number_pasport`)
Заполнение таблицы Клиент
INSERT INTO `kursovaya`.`klient` (`number_pasport`, `FIO`, `age`, `sem_polog`, `adres`) VALUES ('1000', 'Семенов Роман Сергеевич', '45', 'женат', 'ул. Н. Панова 64'), ('1001', 'Петровская Нина Григорьевна', '23', 'разведена', 'ул. Масленникова 56')
4. Запросы системы
база данные туристический запрос
Запросы позволяют отбирать необходимую информацию из таблиц и представлять ее в табличном виде.
Существует четыре типа запросов для различных целей:
Запросы на выборку отображают данные из одной или нескольких таблиц в виде таблицы.
Перекрестные запросы собирают данные из одной или нескольких таблиц в формате, похожем на формат электронной таблицы. Эти запросы используются для анализа данных и создания диаграмм, основанных на суммарных значениях числовых величин из некоторого множества записей.
Запросы на изменение используются для создания новых таблиц из результатов запроса и для внесения изменений в данные существующих таблиц. С их помощью можно добавлять или удалять записи из таблицы и изменять записи согласно выражениям, задаваемым в режиме конструктора запроса.
Многотабличные запросы, в свою очередь, делятся по типу используемого соединения таблиц:
- внутреннее соединение по одному полю,
- внутреннее соединение по нескольким полям,
- косвенное соединение таблиц,
- внешнее соединение
- рекурсивное соединение
- соединение по отношению
Для данной системы было разработано в СУБД MySQL 10 запросов.
Запрос 1 создается по данным таблиц Путевка и Клиент и является запросом внутреннего соединения по одному полю
SELECT putevka.number_pasport, klient.FIO
FROM putevka
INNER JOIN klient ON putevka.number_pasport = klient.number_pasport
ORDER BY putevka.number_pasport
Запрос 2 создается по данным таблиц Выполнение маршрута, Путевка и Клиент и является запросом косвенного соединения
SELECT DISTINCT (
vipolnenie_marshrut.FIO_otprav
), putevka.date_prodag
FROM vipolnenie_marshrut
INNER JOIN putevka ON vipolnenie_marshrut.number_grupp = putevka.number_grupp
INNER JOIN klient ON klient.`number_pasport` = putevka.`number_pasport`
Запрос 3 создается по данным таблиц Маршрут и Выполнение маршрута внешним соединением (левое):
SELECT marshrut.strana, vipolnenie_marshrut.date_otprav
FROM marshrut
LEFT OUTER JOIN vipolnenie_marshrut ON marshrut.`number` = vipolnenie_marshrut.`number`
Запрос 4 создается по данным таблиц Маршрут и Выполнение маршрута ремонта и является запросом с подзапросом:
SELECT name, cost
FROM marshrut
WHERE number = (
SELECT number
FROM vipolnenie_marshrut
WHERE number_grupp =5003
Запрос 5 создается по данным таблиц Выполнение маршрута и является рекурсивным соединением:
SELECT DISTINCT (
c1.FIO_otprav
), c2.date_prodag
FROM vipolnenie_marshrut AS c1, putevka AS c2
WHERE c1.number_grupp = c2.number_grupp
Запрос 6 создается по данным таблиц Клиент и Путевка и является соединением по отношению
SELECT klient.FIO, putevka.number_grupp
FROM klient
INNER JOIN putevka ON klient.number_pasport = putevka.number_pasport
WHERE klient.number_pasport =1007
Запрос 7 создается по данным таблицы Маршрут и является запросом с использование функций агрегирования
SELECT sum(cost)
FROM marshrut
Запрос 8 создается по данным таблицы Маршрут и является запросом группировки запросом
SELECT strana, COUNT(number)
FROM marshrut
GROUP BY strana
Запрос 9 создается по данным таблицы Маршрут и является запросом с объединением.
SELECT prodolgitelnost, 'остановка'
FROM marshrut
WHERE `prodolgitelnost` > '12'
UNION
SELECT prodolgitelnost, 'нет остановки'
FROM marshrut
WHERE `prodolgitelnost` < '12'
Запрос 10 создается по данным таблиц Клиент и Путевка и является внешним соединением (правое):
SELECT klient.FIO, putevka.date_prodag
FROM putevka
RIGHT OUTER JOIN klient ON putevka.number_pasport = klient.number_pasport
Выводы
В данной работе была исследована предметная область по теме "Информационная система «Туристическая компания»";
- построена инфологическая модель;
- разработана логическая модель базы данных средствами MySQL, включающая 4 таблицы и связи между ними;
- разработано 10 запросов для отображения данных из таблиц в соответствии с условиями отбора.
Размещено на Allbest.ru
Подобные документы
Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.
контрольная работа [648,7 K], добавлен 13.04.2012Описание первичных и результатных документов, типа связи информационных объектов. Построение информационно-логической модели базы данных и её реализация в СУБД Access (создание таблиц, запросов, форм, отчётов). Разработка интерфейса пользователя.
курсовая работа [2,1 M], добавлен 14.11.2013Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Рассмотрение теоретических основ проектирования. Анализ предметной области и разработка таблиц базы данных. Заполнение таблиц, поиск данных с помощью фильтра. Создание форм, разработка запросов. Создание и настройка отчетов, составление приложения.
курсовая работа [2,8 M], добавлен 01.06.2014Построение инфологической, логической и физической модели предметной области. Ограничения целостности базы данных. Организация ввода и корректировки данных. Описание информационных потребностей пользователей. Реализация запросов, построение отчетов.
курсовая работа [2,9 M], добавлен 22.01.2015Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.
курсовая работа [981,4 K], добавлен 05.11.2011Разработка базы данных для предметной области "Подразделения предприятия – Рабочие помещения". Описание используемых данных, предметной области и результатной информации. Создание запросов, форм и отчетов в базе данных. Описание построения диаграмм.
курсовая работа [5,6 M], добавлен 24.07.2014Анализ предметной области, определение сущностей и связей. Разработка базы данных, создание таблиц и запросов. Исходные тексты процедур модулей. Тестирование информационной системы на корректность работы. Схема инфологической модели предметной области.
курсовая работа [4,3 M], добавлен 19.12.2011Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.
курсовая работа [1,4 M], добавлен 25.04.2012Анализ предметной области, концептуальных требований и информационных потребностей к разрабатываемой базе данных студентов. Выбор информационных объектов и проектирование информационной структуры. Создание таблиц, отчетов, запросов на выборку и форм.
курсовая работа [69,4 K], добавлен 18.11.2010