"турбо" курсовая работа специальность "Прикладное программирование" Тема: Создание базы данных «Аэропорт»
Вид материала | Курсовая |
- "турбо" курсовая работа специальность "Прикладное программирование" Тема: Создание, 75.22kb.
- Практическая работа № «Создание базы данных», 21.96kb.
- 11. 09. 2008 Практическая работа №1 ms access. Основные приемы работы с данным Задание, 795.97kb.
- Курсовая работа по дисциплине «Базы данных» на тему: «Разработка базы данных для учета, 154.05kb.
- Лекция 2 10. Полнотекстовые базы данных, 133.46kb.
- Ms access Создание базы данных, 34.31kb.
- Курсовая работа по дисциплине «Базы данных и субд» Тема: «Система автоматизации деятельности, 58.42kb.
- Курсовая работа, 52.16kb.
- Лекция №3. Состав и работа системы программирования Турбо Паскаль Язык программирования, 84.43kb.
- Создание базы данных “Классный, 73.09kb.
Университетский центр компьютерного обучения
"ТУРБО"
КУРСОВАЯ РАБОТА
специальность "Прикладное программирование"
Тема: Создание базы данных «Аэропорт»
-
Работу выполнил студент 3 курса
_____________________Андреева С. А.
-
Научный руководитель:
_______________________Бурлаев С. Ю.
Майкоп, 2009 г.
Оглавление
Введение 3
Анализ предметной области 4
Инфологическая модель базы данных 4
Физическая модель базы данных 5
Таблицы БД 5
Связи между таблицами: 6
Создание генераторов и триггеров 6
Выводы 7
Литература 8
Приложение (SQL – скрипты) 9
Введение
В сетевой архитектуре «клиент-сервер» БД размещается на компьютере-сервере сети и называется также «удаленной БД». Приложение, осуществляющее работу с этой БД, находится на ПК пользователя.
Взаимодействие сервера БД и приложения-клиента происходит следующим образом: клиент формирует SQL-запрос и отсылает его серверу. Сервер, приняв запрос, выполняет его, и результат возвращает клиенту. В клиентском приложении в основном осуществляется интерпретация полученных от сервера данных, реализация интерфейса с пользователем и ввод данных.
Целью данной работы является создание клиент-серверной базы данных (а именно ее серверной части) с использованием SQL-сервера Borland InterBase.
Анализ предметной области
Есть Аэропорт, в нем стоят пассажирские самолеты. Из аэропорта можно летать в Москву, Санкт Петербург и заграницу. Можно узнать тип самолета на каком вы летите, его номер стоянки, и когда вы вылетаете.
Инфологическая модель базы данных
Анализ описанной предметной области и решаемых задач позволяет выделить следующие сущности:
Самолеты (1)
Парк самолётов (2)
Пункты назначения (3)
Рейсы (4)
Вылеты (5)
В таблице Самолеты (1) представлена информация о типе самолета и количеств мест в самолёте.
В таблице Парк Самолетов (2) предоставлена информация о номерах стоянки самолетов и какой тип самолет.
В таблице Пункты Назначения (3) представлена информация о аэропортах.
В таблице Рейсы (4) представлена информация о номере рейса, время вылета и пункте назначения.
В таблице Вылеты (5) представлена информация о дате вылета, рейса и парка самолетов.
Физическая модель базы данных
Авторами была поставлена задача создания клиент серверного приложения. В качестве сервера базы данных было решено использовать сервер FireBird.
Таблицы БД
База данных, как следует из разработки инфологической модели, содержит пять таблиц:
SAM(Самолёты)
Поле | Тип | Описание |
S_KOD | Integer | Код Самолета. |
S_TIPSAM | VARCHAR (20) | Тип Самолёта. |
S_CHISLOPM | Integer | Число пассажирских мест. |
PARK (Парк самолетов)
Поле | Тип | Описание |
P_KOD | Integer | Код Парка самолета. |
S_KOD | Integer | Код Самолета. |
P_NST | VARCHAR (10) | Номер стоянки самолета. |
NAZ (Пункт назначения)
Поле | Тип | Описание |
N_KOD | INTEGER | Код Пункта назначения. |
N_PUNKT | VARCHAR(40) | Пункт назначения. |
REIS (Рейс)
Поле | Тип | Описание |
R_KOD | INTEGER | Код рейса. |
R_NOM | VARCHAR (20) | Номер рейса. |
R_TIME | TIME | Время вылета |
N_KOD | Integer | Код Пункта назначения |
VYLET (Вылеты)
Поле | Тип | Описание |
V_KOD | INTEGER | Код вылета. |
V_DATAV | DATE | Дата вылета. |
R_KOD | Integer | Код Рейса |
P_KOD | Integer | Код парка |
Связи между таблицами:
![](images/19071-nomer-9a340aa.png)
Между таблицами SAM(Самолёты) и PARK (Парк самолетов) установлена связь один-ко-многим по полю S_KOD (код самолета). Один и тот же самолет стоит в парке.
Между таблицами NAZ (Пункт назначения) и REIS (Рейс) установлена связь один-ко-многим по полю N_KOD (код пункта назначения). Один и тот же пункт назначения используется в таблице рейсы.
Между таблицами REIS (Рейс) и VYLET (Вылеты) установлена связь один-ко-многим по полю R_KOD (код рейса). Один и тот же рейс используется в таблице вылеты. Между таблицами PARK (Парк самолетов) и VYLET (Вылеты) установлена связь один-ко-многим по полю P_KOD (Код парка самолета). Один и тот же парк используется в таблице вылеты.
Создание генераторов и триггеров
Все таблицы имеют первичный ключ, представленный полем целочисленного типа. InterBase не поддерживает такой тип данных, как автоинкрементный тип. Поэтому надо заранее побеспокоиться о создании таких полей.
Для реализации этого механизма необходимо два компонента: генератор уникального значения и триггер, который будет присваивать это значение при вставке новой записи.
Для создания генератора необходимо выполнить запрос CREATE GENERATOR, а для присвоения уникального значения первичному ключу – создать триггер типа BEFORE INSERT.
Запрос на создание триггера:
SET TERM ;
CREATE TRIGGER REIS_bi FOR REIS
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.R_KOD IS NULL) THEN
NEW.R_KOD=GEN_ID(g_R_KOD,1);
END
SET TERM ;
Запрос на создание генератора:
CREATE GENERATOR G_R_KOD;
SET GENERATOR G_R_KOD TO 0;
Подобные SQL-запросы должны быть в сценарии создания базы после SQL-запросов создания таблиц CREATE TABLE для каждой таблицы, имеющей автоинкрементный ключ.
Выводы
Автором разработана клиент-серверная база данных (а именно ее серверная часть) «Аэропорт» с использованием SQL-сервера Borland InterBase.
В процессе работы над дипломной работой автором закреплены практические навыки по созданию клиент-серверных приложений для работы с базами данных на основе SQL-сервера InterBase, полученные на занятиях в УЦКО «Турбо».
Данное приложение можно использовать (совместно с серверной частью) на аэропортах.
Литература
- Архангельский А. Я. Программирование в Delphi 7. – М.: ООО "Бином-Пресс", 2003 г. – 1152 с.
- Кандзюба С. П., Громов В. Н. Delphi 6. Базы данных и приложения. Лекции и упражнения. – К.: Издательство «ДиаСофт», 2001. – 576 с.
- Сурков К. А., Сурков Д. А., Вальвачёв А. Н. Программирование в среде Delphi. – Мн.: ООО "Попурри", 1977. – 640 с.
- Фаронов В. В. Программирование баз данных в Delphi 6. Учебный курс. – СПб.: Питер, 2002. –352 с.
- Хендерсон К. Руководство разработчика баз данных в Delphi. – К.: Диалектика, 1966. – 544 с.
- Хомоненко А. Д. идр. Delphi 7 / Под общ. ред. А. Д. Хомоненко. – СПб.: БХВ-Петербург, 2004. – 1216 с.
Приложение (SQL – скрипты)
Таблица SAM(Самолёты):
CREATE TABLE SAM
(S_KOD INTEGER NOT NULL,
S_TIPsam VARCHAR (20) NOT NULL,
S_CHISLOpm INTEGER NOT NULL,
PRIMARY KEY(S_KOD));
CREATE GENERATOR G_S_KOD;
SET GENERATOR G_S_KOD TO 0;
SET TERM ;
CREATE TRIGGER SAM_bi FOR SAM
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.S_KOD IS NULL) THEN
NEW.S_KOD=GEN_ID(g_S_KOD,1);
END
SET TERM ;
Таблица PARK(Парк самолетов):
CREATE TABLE PARK
(P_KOD INTEGER NOT NULL,
S_KOD INTEGER NOT NULL,
P_NST VARCHAR (10) NOT NULL,
PRIMARY KEY(P_KOD));
CREATE GENERATOR G_P_KOD;
SET GENERATOR G_P_KOD TO 0;
SET TERM ;
CREATE TRIGGER PARK_bi FOR PARK
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.P_KOD IS NULL) THEN
NEW.P_KOD=GEN_ID(g_P_KOD,1);
END
SET TERM ;
Таблица NAZ(Пункты назначения):
CREATE TABLE NAZ
(N_KOD INTEGER NOT NULL,
N_PUNKT VARCHAR (40) NOT NULL,
PRIMARY KEY(N_KOD));
CREATE GENERATOR G_N_KOD;
SET GENERATOR G_N_KOD TO 0;
SET TERM ;
CREATE TRIGGER NAZ_bi FOR NAZ
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.N_KOD IS NULL) THEN
NEW.N_KOD=GEN_ID(g_N_KOD,1);
END
SET TERM ;
Таблица REIS(Рейсы):
CREATE TABLE REIS
(R_KOD INTEGER NOT NULL,
R_NOM VARCHAR (20) NOT NULL,
R_TIME TIME,
N_KOD INTEGER NOT NULL,
PRIMARY KEY(R_KOD));
CREATE GENERATOR G_R_KOD;
SET GENERATOR G_R_KOD TO 0;
SET TERM ;
CREATE TRIGGER REIS_bi FOR REIS
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.R_KOD IS NULL) THEN
NEW.R_KOD=GEN_ID(g_R_KOD,1);
END
SET TERM ;
Таблица VYLET(Вылеты):
CREATE TABLE VYLET
(V_KOD INTEGER NOT NULL,
V_DATAV DATE NOT NULL,
R_KOD INTEGER NOT NULL,
P_KOD INTEGER NOT NULL,
PRIMARY KEY(V_KOD));
CREATE GENERATOR G_V_KOD;
SET GENERATOR G_V_KOD TO 0;
SET TERM ;
CREATE TRIGGER VYLET_bi FOR VYLET
ACTIVE BEFORE INSERT
AS
BEGIN
IF(NEW.V_KOD IS NULL) THEN
NEW.V_KOD=GEN_ID(g_V_KOD,1);
END
SET TERM ;