Содержание
ВВЕДЕНИЕ
Темой данного проекта является разработка системы управления базой данных (СУБД) «Аэропорт».
СУБД — это программное обеспечение,
которое взаимодействует с прикладными
программами пользователя, базой данных
и обладает перечисленными ниже возможностями:
- позволяет
создать базу данных, что обычно осуществляется
с помощью языка определения данных (DDL
— Data Definition Language). Язык DDL предоставляет
пользователям средства указания типа
данных и их структуры, а также средства
задания ограничений для информации, хранимой
в базе данных;
- позволяет
вставлять, обновлять, удалять и извлекать
информацию из базы данных, что обычно
осуществляется с помощью языка манипулирования
данными (DML — Data Manipulation Language). Наличие централизованного
хранилища всех данных и их описаний позволяет
использовать язык DML как общий инструмент
организации запросов, который иногда
называют языком запросов (query language);
- предоставляет
контролируемый доступ к базе данных.
СУБД является передаточным
механизмом между прикладной программой
и информационным хранилищем и позволяет сосредоточиться
на работе с данными, абстрагировавшись
от их физического размещения, а также
берет на себя заботу эффективного их
сохранения и выборки. С СУБД связаны такие
понятия, как запрос, транзакция и модель
данных. Разрабатываемая СУБД будет работать
с сервером баз данных MySQL. Для связи классов разрабатываемого
проекта с таблицами базы данных (БД) будет
использоваться библиотека для языка
программирования C# – NHibernate.
NHibernate – инструмент объектно-реляционного
отображения (Object-RelationalMapping, ORM) данных
для C#-окружения. Целью NHibernate является
освобождение разработчика от большинства
общих работ, связанных с задачами получения,
сохранения данных в СУБД. Эта технология
помогает удалить или инкапсулировать
зависящий от поставщика SQL-код, а также
решает стандартную задачу преобразования
типов C#-данных в типы данных SQL и наборов
данных из табличного представления в
объекты C#-классов. [Э1]
Для достижения желаемой цели – разработка
СУБД «Аэропорт», требуется решить следующие
задачи:
- Спроектировать базу данных «Аэропорт»;
- Создать инициализирующий скрипт БД для СУБД MySQL;
- Подключить библиотеку NHibernate;
- Организовать mapping-сущности при помощи аннотаций;
- Реализовать удаление записей из базы
данных;
- Реализовать добавление записей в базу
данных;
- Реализовать просмотр содержимого таблиц
базы данных;
- Реализовать поиск данных по определенным
параметрам.
РАЗРАБОТКАТЕХНИЧЕСКОГО ЗАДАНИЯ
Техническое задание (ТЗ) –
исходный материал для создания информационной
системы или другого продукта. ТЗ, в первую
очередь, должно содержать основные технические
требования к продукту и отвечать на вопрос,
что данная система должна делать, как
работать и при каких условиях.
Таким образом, ТЗ является
документом, который позволяет представить
конечный продукт и требования к нему
для последующей проверки на соответствие
предъявленным требованиям.
Техническое задание для данного
курсового проекта приведено в приложении
А.
Выбор среды проектирования
Среда проектирования – это
программное средство для проектирования
программного обеспечения на начальных
этапах ее разработки, включающее создание
UML-диаграмм, генерация кода для конструируемого
программного обеспечения и в некоторых
случаях реверс-инжиниринг имеющегося
кода на некоторых языках программирования.
Таблица сравнения сред проектирования
приведена в таблице 1.1.
Таблица 1.1 - Сравнение сред
проектирования
Название |
Enterprise Architect |
Microsoft Visual Studio |
Поддержка UMLмоделей и диаграмм |
Да |
Да |
Генерация кода для конструирования программного обеспечения |
Да |
Нет |
Реверс-инжиниринг имеющегося
кода на некоторых языках программирования |
Да |
Нет |
Поддержка тестирования, управления
сопровождением и изменениями программного обеспечения |
Да |
Нет |
Документация на русском языке |
Нет |
Да |
Поддерживаемые языки программирования |
C++, C#, Delphi, Java, Python, PHP, VB.NET, Visual Basic |
C++, C#, Visual Basic |
Возможность создания документации |
Да |
Нет |
В данном курсовом проекте была
выбрана среда проектирования Enterprise Architect
по ряду преимуществ, представленных в
таблице 1.1 по сравнению с другими средами
проектирования. Наиболее важными критериями
выбора среды проектирования были поддержка
языка программирования Javaи реверс-инжиниринг
имеющегося кода на языке Java.
Выбор языка программирования
Язык программирования (ЯП)
– это формальная знаковая система, предназначенная
для записи компьютерных программ. Язык
программирования определяет набор лексических,
синтаксических и семантических правил,
задающих внешний вид программы и действия,
которые выполнит компьютер под ее управлением.
Сравнение языков программирования
представлено в таблице 1.2.
Таблица 1.2 – Сравнение языков
программирования
Название |
Java |
C# |
Простота изучения |
Да |
Да |
Объектно-ориентированный язык |
Да |
Да |
Независимость от платформы |
Да |
Нет |
Автоматический сборщик мусора |
Да |
Да |
Документация на русском языке |
Нет |
Да |
Интерпретируемый |
Да |
Да |
Поддержка интерфейсов |
Да |
Да |
Поддержка множественного наследования классов |
Нет |
Нет |
В данном курсовом проекте был
выбран язык программирования C# по преимуществам, описанным
в таблице 1.2.
C# — это полнофункциональный
объектно-ориентированный язык, который
поддерживает все три «столпа» объектно-ориентированного
программирования: инкапсуляцию, наследование
и полиморфизм. Он имеет прекрасную поддержку
компонентов, надежен и устойчив благодаря
использованию «сборки мусора», обработки
исключений, безопасности типов. Язык
C# разрабатывался «с нуля» и вобрал в себя
много полезных свойств таких языков,
как C++, Java, Visual Basic, а также Pascal, Delphy и др. При
этом необходимость обратной совместимости
с предыдущими версиями отсутствовала,
что позволило языку C# избежать многих
отрицательных сторон своих предшественников.
Как и Java, C# разрабатывался для Интернет
и примерно 75% его синтаксических возможностей
аналогичны языку программирования Java,
его также называют «очищенной версией Java».
10% подобны языку программирования C++,
а 5% – заимствованы из языка программирования
Visual Basic. Объем новых концептуальных идей
в языке C# около 10%. Выделение и объединение
лучших идей современных языков программирования
делает язык C# не просто суммой их достоинств,
а языком программирования нового поколения.
Выбор среды разработки
Среда программирования – это
программа или комплекс программ, предназначенная
для разработки программного обеспечения
и обычно ориентируется на конкретный
язык или несколько языков программирования.
Интегрированная среда программирования
содержит в себе все необходимые компоненты
для разработки программ: редактор с подсветкой
синтаксиса конкретного языка программирования,
отладчик для тестирования программы
и выявления в ней логических ошибок.
Сравнение сред разработки
приведено в таблице 1.3.
Таблица 1.3 – Сравнение сред
разработки
Название |
Microsoft Visual Studio |
SharpDevelop |
Поддержка рефакторинга |
Да |
Да |
Поддержка профилирования |
Да |
Да |
Автодополнение набираемых конструкция на лету |
Да |
Да |
Предопределенные шаблоны кода |
Да |
Да |
Выделение синтаксических конструкций цветом |
Да |
Да |
Открытый исходный код |
Нет |
Да |
Бесплатность |
Нет |
Да |
Поддержка отладки программного обеспечения |
Да |
Да |
Кроссплатформенность |
Нет |
Нет |
Русский язык интерфейса |
Да |
Нет |
Поддерживаемые языки программирования |
C++, C#, Visual Basic |
C#, Visual Basic .NET, Boo, IronPython, IronRuby, F#, C++ |
В данном курсовом проекте была
выбрана среда разработки Microsoft Visual Studio
по некоторым преимуществам, таким, как:
она проще для начинающего потребителя,
в ней лучше инструменты рефакторинга,
больше пользовательских настроек.
ПРОЕКТИРОВАНИЕ СУБД
Выявление необходимого
набора сущностей.
В данном курсовом проекте необходимо
реализовать базу данных «Аэропорт», в
связи с чем выявлены основные сущности:
Airport. Описывает аэропорт. Содержит
следующие атрибуты: ID, название, ID города.
Board. Описывает борт. Содержит
следующие атрибуты: ID, название, ID самолета,
ID компании.
ClassType. Описывает тип класса.
Содержит следующие атрибуты: ID, название.
Company. Описывает компанию. Содержит
следующие атрибуты: ID, название, количество
самолетов, ID страны.
City. Описывает город. Содержит
следующие атрибуты: ID, название, ID страны.
Country. Описывает страну. Содержит
следующие атрибуты: ID, название.
Flight. Описывает рейс. Содержит
следующие атрибуты: ID, ID борта, время взлета,
время посадки, ID аэропорта взлета, ID аэропорта
посадки.
Orders. Описывает заказ. Содержит
следующие атрибуты: ID, ID рейса, дата рейса,
ID типа класса, место, ID пассажира, стоимость,
статус оплаты.
Passenger. Описывает пассажира.
Содержит следующие атрибуты: ID, имя, фамилия,
отчество, номер паспорта, пол, дата рождения.
Plane. Описывает самолет. Содержит
следующие атрибуты: ID, название, количество
мест.
Users. Описывает пользователя.
Содержит следующие атрибуты: ID, логин,
пароль, привилегии.
Сущности "City" и "Airport"
– связь «многие к одному».
Сущности "Plane" и "Board"
– связь «многие к одному».
Сущности "Company" и "Board"
– связь «многие к одному».
Сущности "City" и "Country"
– связь «многие к одному».
Сущности "Country" и "Company"
– связь «многие к одному».
Сущности "Board" и "Flight"
– связь «многие к одному».
Сущности "Airport" и "Flight"
– связь «многие к одному».
Сущности "Flight" и "Orders"
– связь «многие к одному».
Сущности "ClassType" и "Orders"
– связь «многие к одному».
Сущности "Passenger" и "Orders"
– связь «многие к одному».
В таблице 2.1 представлен перечень
сущностей, названия первичных ключей
и атрибуты сущностей.
Таблица 2.1 – Перечень сущностей,
названия первичных ключей и атрибуты
сущностей
Сущность |
Первичный ключ |
Вторичные ключи |
Атрибуты |
Airport |
ID |
id_country |
name, city |
Board |
ID |
id_plane, id_company |
name |
ClassType |
ID |
|
name |
Company |
ID |
id_country |
name, planesCount |
City |
ID |
id_country |
name |
Продолжение таблицы 2.1
Сущность |
Первичный ключ |
Вторичные ключи |
Атрибуты |
Country |
ID |
|
name |
Flight |
ID |
id_board, id_ap_up, id_ap_down |
name, downTime |
Orders |
ID |
id_flight, id_classType, id_passenger |
flightDate, seatNumber, cost, payed |
Passenger |
ID |
|
name, surname, surname, passportNumber, gender, dob |
Plane |
ID |
|
name, seats |
Users |
ID |
|
name, password, admin |
В задании курсового проекта
указано, что база данных должна быть в
третьей нормальной форме.
Под нормальной формой понимается
свойство отношения в реляционной модели
данных, характеризующее его с точки зрения
избыточности, потенциально приводящей
к логически ошибочным результатам выборки
или изменения данных. Третья нормальная
форма определяется как совокупность
требований, которым должна удовлетворять
каждая таблица в базе данных: