Лаб-2-Антипов-М.М.. Лабораторная работа 2 Построение логической модели бд Информационная система аэропорта Вариант 1 Группа ивтз192у 3 курс. Студент Антипов М. М. Преподаватель Линкина А
Скачать 0.79 Mb.
|
ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ, НАУКИ И МОЛОДЕЖНОЙ ПОЛИТИКИ ВОРОНЕЖСКОЙ ОБЛАСТИ Государственное бюджетное профессиональное образовательное учреждение Воронежской области «Воронежский институт высоких технологий» Кафедра «Вычислительная техника» ЛАБОРАТОРНАЯ РАБОТА №2 «Построение логической модели БД» Информационная система аэропорта Вариант №1 Группа: ИВТз-192у 3 курс. Студент: Антипов М. М. Преподаватель: Линкина А. Цель работы: Осуществить проектирование логической модели БД. Введение Развитие средств вычислительной техники обеспечило возможность для создания и широкого использования систем обработки данных разнообразного назначения. Разрабатываются информационные системы для обслуживания различных систем деятельности, систем управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы. Одной из важных предпосылок создания таких систем стала возможность оснащения их "памятью" для накопления, хранения и систематизация больших объемов данных. Другой существенной предпосылкой нужно признать разработку подходов, а также создание программных и технических средств конструирования систем, предназначенных для коллективного пользования. В этой связи потребовалось разработать специальные методы и механизмы управления такого рода совместно используемыми ресурсами данных, которые стали называться базами данных. Исследования и разработки, связанные с проектированием, созданием и эксплуатации баз данных, а также необходимых для этих целей языковых и программных инструментальных средств привели к появлению самостоятельной ветви информатики, получившей название системы управления данными. В литературе предлагается множество определений понятия "база данных", отражающих скорее субъективное мнение тех или иных авторов, однако общепризнанная единая формулировка отсутствует. Согласно ГОСТ Р ИСО МЭК ТО 10032-2007: База данных - совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных. Существует огромное количество разновидностей баз данных, отличающихся по различным критериям. Примеры: Иерархическая Объектная и объектно-ориентированная Объектно-реляционная Реляционная Сетевая Функциональная. Задача создания базы данных первым делом подразумевает её проектирование: Проектирование баз данных - процесс создания схемы базы данных и определения необходимых ограничений целостности. Основные задачи проектирования баз данных: Обеспечение хранения в БД всей необходимой информации. Обеспечение возможности получения данных по всем необходимым запросам. Сокращение избыточности и дублирования данных. Обеспечение целостности базы данных. Создание БД производится посредством СУБД. Система управления базами данных (СУБД) - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных. Основные функции СУБД управление данными во внешней памяти (на дисках); управление данными в оперативной памяти с использованием дискового кэша; журнализация изменений, резервное копирование и восстановление базы данных после сбоев; поддержка языков БД (язык определения данных, язык манипулирования данными). Разработка приложения производится путем написания программного кода в специальной среде программирования. Таким образом, имея в руках весь инструментарий можно приступать к делу. 1. Анализ предметной области1.1 Цель создания базы данныхГлавная цель создания базы данных "Аэропорт" состоит в том, чтобы обрабатывать информацию о рейсах, о расписании самолетов и о билетах. 1.2 Перечень решаемых базой данных задачС помощью БД "Аэропорт" можно будет получать следующую информацию: - о самолетах (тип самолета, места, скорость, высота полета); - о расписании (№ рейса, пункт отправления, пункт назначения, время отправления, время полета, наличие мест, стоимость билета); - о авиакомпаниях (название, телефон, сайт); В приложении для работы с БД "Аэропорт" реализовано разделение пользователей по ролям: Кассир (продажа билетов и работа с пассажирами) - Диспетчер (ввод служебной информации об аэропортах, рейсах, вылетах, и т. д…) 1.3 Перечень задач данной лабораторной работыТемой данной работы является проектирование и реализация приложения для базы данных "Аэропорт". Проектирование базы данных включает в себя: - знакомство с предметной областью на примерах существующих БД - определение главных сущностей базы - присвоение атрибутов для сущностей - создание модели в приложении Erwin - построение соответствий и отношений межу таблицами и атрибутами в модели БД Реализация приложения базы данных состоит из: - создания интерфейса приложения, понятного обычному пользователю - возможности разделения пользователей при работе с базой данных - правильного представления данных и возможности без затруднений вносить новые и редактировать уже имеющиеся данные в базе данных 1.4 Принцип работы моделиПроанализировав объекты реального мира, была проведена идентификация сущностей баз данных. После анализа необходимо провести нормализацию данных. Процесс нормализации заключается в приведении таблиц в так называемые нормальные формы. Существует несколько видов нормальных форм: первая нормальная форма (1НФ), вторая нормальная форма (2НФ), третья нормальная форма (3НФ). Этот процесс включает: устранение повторяющихся групп (приведение к 1НФ); удаление частично зависимых атрибутов (приведение к 2НФ); удаление транзитивно зависимых атрибутов (приведение к 3НФ). В нашем случае процесс нормализации привёл к тому, что данные теперь можно привести к форме модели. В итоге мы имеем такие сущности как Авиакомпании, Аэропорты, Страны, Модели самолетов, Билеты, Классы мест, Расписание и Рейсы. Идентификация характеристик сущностей: Сущность Модели самолётов включает в себя следующие характеристики: Марка самолета; Количество мест на каждый из трёх классов; Высота полета; Скорость полета; Сущность Авиакомпании включает в себя следующие характеристики: Код авиакомпании; Наименование; Страна; Телефон; Сайт; Самолетный парк; Сущность Аэропорт включает в себя следующие характеристики: Код аэропорта; Название аэропорта; Город; Страна; Сущность Страны включает в себя следующие характеристики: Код страны; Страна; Сущность Расписание включает в себя следующие характеристики: Код вылета; Имя рейса; Дата вылета; Сущность Класс включает в себя следующие характеристики: Класс; Сущность Рейс включает в себя следующие характеристики: Имя рейса; Код авиакомпании; Время в пути; Аэропорт отправления; Аэропорт прибытия; Марка самолета; Сущность Билет включает в себя следующие характеристики: Код билета; Имя рейса; Дата вылета; ФИО; Паспортные данные; Цена; Место; Класс; Аэропорт вылета; Аэропорт прилета; Марка самолета; Заключительным шагом является установление соответствия между сущностями и характеристиками предметной области и отношениями с атрибутами в нотации IDEFX. Таковые соответствия и отношения просматриваются на моделях данных, представленных ниже. Рисунок 1 - Логическая модель данных ERwin 2. Разработка программы2.1 Как создавалось приложениеПрограмма представляет собой приложение для работы с базой данных "Аэропорт". После проектирования БД, для неё было запрограммировано пользовательское приложения для 3-х видов пользователей: Кассир, Диспетчер и Пассажир. Процесс разработки (проектирования) базы данных включает два этапа: разработку логической организации базы данных и создание ее на носителе. Логическая организация базы данных - это предоставление пользователя о предметной области, информация о которой должна храниться в базе данных. Под физической организацией базы данных понимается совокупность средств и методов размещения данных во внешней памяти и на их основе внутренняя модель данных. Внутренняя модель является средством отображения логической модели данных, показывает, каким образом записи размещаются в базе данных, как они упорядочиваются, как организуются связи, каким путем можно осуществить выборку и так далее. Проектирование начиналось "от слов к цифре", т.е. идеи, сущности, атрибуты, связей и прочих нюансов от листочка перешли в ERWin модель. Собственно модель: Рисунок 2 - Физическая модель данных ERWinбаза предметная область аэропорт 2.2 Подробнее о модели и приложенииЧтобы обеспечить целостность БД и не нарушить правильности форм, было решено построить базу следующим образом. Основополагающей сущностью является "Рейсы", в один рейс входит множество вылетов, которые отображены в таблице "Расписание" и каждый вылет самолета конкретного рейса вводится диспетчером вручную! Для определения рейса выделены поля "Аэропорт отправления" и "Аэропорт прибытия", с помощью которых Кассир ищет необходимый пассажиру рейс, и которые задают сам рейс. Атрибуты "Вид самолета" и "Время в пути" показывают говорящие за себя характеристики рейса. Вид самолета вынесен в отдельную сущность "Самолеты", где хранится информация о его названии, высоте полета, скорости и количестве мест по классам, что особо важно, поскольку для построения таблицы, в которой визуально отображены места по рейсам и вылетам самолетов, необходимо количество мест по классам, для идентификации их общего количества. Также Количество мест по классам самолета играет первоочередную роль при определении количества свободных мест в общем. Это незаменимый параметр для кассира, который продает билеты пассажирам. Время полета используется как для информации, так и для вычисления поля "Цена" сущности "Билеты", дабы не загромождать БД своего рода коэффициентами цен, которые уникальны для каждого самолета, для каждого сезона и типа места, и пр. пр. пр…было принято решение считать цену по билета по двум факторам, это время полета в секундах, умноженное на постоянный коэффициент привязанный к классу места, будь-то эконом, бизнес или первый класс. Таблица "Билеты" содержит в себе всю информацию о билетах как действующих, так и уже использованных. Билет несет в себе всю информацию о рейсе, времени вылета, номере места, классе места, аэропорте отправления и прибытия, цене билета, типе самолета, личных данных пассажира: ФИО и № паспорта. Атрибут "Авиакомпания" необходим для информации. Информация об авиакомпаниях хранится в таблице "Авиакомпании". Таблица "Страны" содержит в себе список стран. Внедрение необходимо для соблюдения первой нормальной формы проектирования баз данных. Таблица "Классы" содержит в себе список существующих классов мест по самолетам. Таблица "Пользователи" служит для авторизации пользователей в приложении для работы с базой данных. При запуске программа сама активизирует себя в режиме пассажира. Идея приложения заключается в следующем: пользователи с ролью "Диспетчер", имеют доступ к созданию, редактированию и удалению всех элементов БД кроме Сущности "Билеты", также Диспетчер не имеет права на редактирование и удаление полей, которые уже задействованы в документообороте, а также записи, которые уже участвуют в обороте билетов. Таким образом, диспетчер задаёт рейсы, которые являются основой БД, задаёт рейсам "Вылеты", заносит их в "Расписание", и заполняет и редактирует информацию о существующих аэропортах, странах, авиакомпаниях, моделях самолетов, классах мест в самолетах и непосредственно пользователях БД. Пользователь с ролью "Кассир" имеет возможность просматривать информацию о билетах, смотреть расписание и искать информацию о рейсах и билетах с помощью встроенных фильтров и сортировок, визуально смотреть наличие мест по расписанию. На этом возможности кассира исчерпаны. Пассажир имеет возможность искать информацию по рейсам и расписанию полетов, а также просматривать наличие мест по классам на интересующие его рейсы. Посредством СУБД Firebird была создана база данных, в связке утилитой IBExpert открылись визуально новые возможности создания и редактирования компонентов БД. Каркас базы был готов к внедрению с последующим использованием. 2.3 Задачи, решаемые приложениемПри разработке программного продукта стояли следующие задачи: Разделить работу между пользователями БД "Кассир" и "Диспетчер". Создать форму "Кассир" с отведенными для этого пользователя функциями и возможностями, которые включают в себя: Просмотр всей справочной информации по БД за исключением возможности редактирования этой информации. Форму для ввода данных о новом билете. Быстрый поиск рейса, необходимого пассажиру. Автоматическое определение свободных мест на рейс по классам. Просмотр информации по существующим билетам, и её редактирование. Создать форму "Диспетчер" с отведенными для этого пользователя функциями и возможностями, которые включают в себя: Просмотр всей информации по БД с возможностью редактирования этой информации, за исключением случаев, когда эта информация уже используется в рейсах, вылетах и/или билетах. Редактирование информации по билетам не разрешается, поскольку это не предусмотрено в разделении прав пользователей. Создание новых пользователей и удаление существующих. Создать форму "Расписание", по типу информационного табло, отображающего информацию по интересующему рейсу для пользователя, а также визуально представляет наличие мест по каждому интересующему вылету согласно расписанию. Задача создания формы "Авторизация" как следствие само собой разумеющегося вывода из первого пункта списка. Возможность просматривать расписание должна быть доступна любым пользователям, даже не зарегистрированным в БД. 2.4 Итог проделанной работыПриложение реализовано следующим образом: При запуске перед нами открывается форма "Авторизация". Рисунок 3 - форма "Авторизация"Далее есть 3 пути развития событий: Нажимаем на кнопку расписание Вводим логин и пароль пользователя с ролью "Диспетчер" Вводим логин и пароль пользователя с ролью "Кассир" Согласно первому сценарию мы переходим в окно "Расписание": Рисунок 4 - форма "Расписание"В этом окне, согласно подсказкам, пользователь может выбрать аэропорт из списка, после чего выбрать дату отправления рейса и ему будет предоставлена информация о количестве мест всего, о модели самолета и визуально отобразятся все места рейса, как свободные, так и выкупленные. Согласно второму сценарию мы переходим в окно "Диспетчер": Рисунок 5 - форма "Диспетчер"В этом окне, согласно подсказкам, пользователь "Диспетчер" имеет право создавать, редактировать и удалять информацию, расположенную во вкладках. Помимо этого, информация по билетам доступна только для просмотра. Для создания и удаления пользователей используется форма следующего вида: Рисунок 6 - вкладка "Пользователи"Причем редактирование существующих пользователей не предусмотрено. Только удаление и создание. Согласно третьему сценарию мы переходим в окно "Кассир": Рисунок 7 - форма "Кассир"В этом окне, согласно подсказкам, пользователь "Кассир" создаёт билеты и заносит их в БД. Помимо этого, информация по Рейсам, Расписанию полетов, Самолетам, Авиакомпаниям, Странам и Аэропортам доступна только для просмотра. 2.5 Особенности реализацииВ большинстве случаев при формировании данных для отображения, создания и редактирования были использованы компоненты Delphi XE5: interbase - ibquery и ibtable. Во многих случаях были использованы Lookup поля для выборки данных с перекрестных таблиц. Также было использовано вычисляемое поле, для определения цены билета. На форме "Расписание" для отображения таблиц с данными была применена операция соединения (join), которая предназначена для обеспечения выборки данных из двух таблиц и включения этих данных в один результирующий набор. При создании кассиром билета и занесении его в БД, используется ёмкая и громоздкая запись поэлементного определения атрибутов записи, которую предстоит занести в БД. Посредством заранее написанной "Хранимой процедуры", можно сократить написание кода в повторяющихся местах программы. К примеру, была создана процедура для уменьшения кода операции добавления билета в БД: SET TERM ^; CREATE OR ALTER PROCEDURE ADDTICKET ( f varchar (20), i varchar (20), o varchar (20), pas integer, cl integer, pl integer, fl2 integer, fl integer, cost integer) as begin insert INTO TICKET (SIRNAME, NAME,FATHER_NAME, PASSPORT, CLASS, PLACE, ID_FLIGHT2, ID_FLIGHT, COST) VALUES (: F,: I,: O,: Pas,: Cl,: Pl,: Fl2,: Fl,: Cost); end^ SET TERM; ^ Так созданная процедура применяется в самом приложении: Рисунок 8 - использование "Хранимых Процедур"ЗаключениеТаким образом, БД является важнейшей составной частью информационных систем, которые предназначены для хранения и обработки информации. Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги. Развитие средств вычислительной техники обеспечило возможность для создания и широкого использования автоматизированных информационных систем. Разрабатываются информационные системы для обслуживания различных систем деятельности, системы управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы. Современные информационные системы основаны на концепции интеграции данных, характеризующих большими объектами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей. Для управления этими данными и обеспечения эффективности доступа к ним были созданы системы управления данными. Список использованных источниковГОСТ 2.105 - 95. Общие требования к текстовым документам. - Взамен ГОСТ 2.105 - 79, ГОСТ 2.906 - 71; Введен с 01.07.96. - М.: Издательство стандартов, 1996. - 36 с. - (Гос. стандарт Российской Федерации). Группа ЕСКД. СТП 3.4.104 - 01. Курсовое проектирование. Требования к выполнению и представлению. - Взамен СТП 17 - 87; Введен с 24.06.02. - Красноярск, СибГТУ, 2002. - 12 с. СТП 3.4.204-01. Стандарт предприятия. Требования к оформлению текстовых документов. - Красноярск: СибГТУ, 2001. - 46 с. Ачкасов В.Ю. - Программирование баз данных в Delphi. pdf - 255 c. http://firebirdsql.org/ - официальный сайт Firebird. Ковязин А.Н., Востриков С. М.; - Архитектура, разработка и администрирование приложений баз данных в Interbase, Firebird, Yaffil; - 2003 - 473 c. Wikipedia®2001- ru. wikipedia.org/wiki/Система_управления_базами_ данных. Wikipedia®2001 - http://ru. wikipedia.org/wiki/Проектирование_баз_ данных. Wikipedia®2001 - http://ru. wikipedia.org/wiki/База_данных. Сорокин А.В. - Delphi. Разработка базы данных; - Изд-во: Питер; - 2005. - 474с. Размещено Контрольные вопросы: Перечислить существующие уровни моделирования данных? В чем состоит концептуальный уровень моделирования? Как осуществляется переход от концептуального к логическому уровню проектирования? Дать определение понятия «Домен» Дать определение понятия «Сущность» На чем основан выбор системы управления и программных средств БД? 1)Различают два уровня моделирования данных: стратегический и аналитический: Стратегическое моделирование — это часть создания стратегии информационной системы компании, которая определяет ее общее представление и архитектуру. Аналитическое моделирование — моделирование данных в процессе системного анализа, когда логические модели данных создаются как часть разработки новых баз данных. 2) Концептуальный - этот этап подразумевает идентификацию ключевых бизнес сущностей и системных сущностей и их взаимосвязей, которые определяют границы задач, решаемых системой. Эти ключевые бизнес сущности и системные сущности определяются с помощью элементов моделирования профайла UML для бизнес моделирования, включенного в модель бизнес анализа и элементов модели класс анализа в модели анализа. 3) Этап создания логической модели называется логическим проектированием. При переходе от концептуальной (инфологической) модели к логической (даталогической) следует иметь в виду, что концептуальная модель должна включать в себя всю информацию о предметной области, необходимую для проектирования базы данных 4) Домен — это онлайн-адрес сайта, место его размещения в интернете. С технической позиции доменный адрес — запись в базе данных. Когда пользователь указывает в поисковой строке доменное имя, компьютер понимает, какой сайт необходимо показать и по какому адресу отправить запрос. 5)Сущность— смысл данной вещи, то, что она есть сама по себе, в отличие от всех других вещей и в отличие от изменчивых (под влиянием тех или иных обстоятельств) состояний вещи. По Э. Корету, сущность — внутренне конститутивный принцип конечного сущего, через ограничение и выделение его из иных содержаний бытия конституирующий его определённость. 6) Выбор системы управления баз данных (СУБД) представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала. Кроме того, необходимо убедиться, что новая СУБД способна принести предприятию реальные выгоды. Вывод: Осуществил проектирование логической модели БД. |