Добавлен: 31.01.2019
Просмотров: 940
Скачиваний: 9
Федеральное государственное автономное
образовательное учреждение
высшего профессионального образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Хакаский технический институт» - филиал ФГАОУ ВПО СФУ
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Институт
Электроэнергетика
кафедра
Расчетно-пояснительная записка к курсовому проекту по дисциплине:
«Базы данных»
наименование дисциплины
«Проектирование реляционной базы данных каталог музыкальных компакт-дисков»
тема
Преподаватель: ________ В.И. Кокова
подпись, дата инициалы, фамилия
Студент: 53-1 __________ ________ В.В. Вакулина
номер группы, зачетной книжки подпись, дата инициалы, фамилия
Абакан 2015
Введение…………………………………………………………………………...………2
1. Логическое проектирование……………………………………….…..………..3
1.1. Нормализация…………………………………………….…..…………4
2. Visual FoxPro
2.1. Создание проекта и базы данных………………………………….......7
2.2. Установка целостности данных………………………………………11
2.3. Создание форм для работы с таблицами……………………………..12
2.4. Создание запросов……………………………………………………..17
2.5. Создание отчетов………………………………………………………21
2.6. Создание главной формы……………………………………………..26
2.7. Создание главного меню……………………………………………...29
2.8. Создание приложения…………………………………………………30
3. MySQL.
3.1. Создание и редактирование базы данных……………………………31
3.2. Запросы в MySQL…………………………………………………..…35
Заключение……………………………………………………………………………….39
Список используемой литературы……………………………………………………...40
В ведение
Перемены, происходящие в мире в последние десятилетия, не могли не затронуть областей информатики и вычислительной техники. Еще десять лет назад работа с базами данных была уделом профессиональных программистов. Сами системы не были предназначены для простого пользователя. Основным потребителем таких систем был военно-промышленный комплекс. С появлением банков, акционерных обществ, частных компаний базы данных нашли более широкое применение. Люди понимают, что информация — это деньги. Ее потеря или несвоевременное получение могут дорого стоить. Именно этим можно объяснить столь бурный рост информационных технологий и стремительное развитие систем управления базами данных (СУБД).
Целью курсовой работы является создание системы управления базами данных каталога компьютерных компакт-дисков средствами Visual FoxPro.
Требуется создать непосредственно базу данных, а также средства управления и отображения данными (формы, запросы и отчеты). Все эти компоненты необходимы для создания проекта наиболее приближенного к коммерческому.
В ходе выполнения работы будут определены типы входных данных, созданы таблицы базы данных с учетом нормализации и созданы запросы и отчеты для получения выходных данных, необходимых для решения поставленных вопросов.
1. Логическое проектирование
1.1. Нормализация
Для создания базы данных необходимо определить структуру таблиц, которые будут содержать данные, и нормализовать эти таблицы.
Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации.
База данных для выполнения задачи должна содержать следующую информацию: стиль, автор, страна, вид диска, название альбома, продолжительность, год поступления в продажу, количество композиций.
Первая нормальная форма требует удаления повторяющихся групп, то есть создания отдельной записи для каждого элемента группы (таблицы 1.1, 1.2).
Таблица disks Таблица 1.1
Название альбома |
Автор |
Стиль |
Количество композиций |
Продолжительность |
Californication |
Red Hot Chill Peppers |
Rock |
15 |
73 |
Banlieue |
Da Octopusss |
Soundtrack |
16 |
78 |
Камикадзе |
##### |
Hardrock |
13 |
64 |
Club Rotation |
Brooklyn Bounce |
House |
18 |
84 |
Kazantip 2014 Euro session |
Kazantip |
Club |
20 |
96 |
Таблица disks Таблица 1.2
Год |
Страна |
Вид диска |
1999 |
США |
Сольный |
2004 |
Франция |
Сборник |
2006 |
Россия |
Концерт |
2013 |
Франция |
Сборник |
2014 |
Казантип |
Сборник |
Вторая нормальная форма требует удаления функциональных зависимостей. Таблица находится во второй нормальной форме, если она удовлетворяет определению первой нормальной формы и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом
Так как поля Автор, Стиль, Страна и Вид диска могут повторяться, то логично присвоить каждому полю ключ и для избавления от функциональных зависимостей вынести в отдельные таблицы (табл. 1.3, табл. 1.4, табл. 1.5, табл. 1.6).
Таблица autors Таблица 1.3
Код автора |
Автор |
1 |
Red Hot Chill Peppers |
2 |
Da Octopusss |
3 |
##### |
4 |
Brooklyn Bounce |
5 |
Kazantip |
Таблица mus_styles Таблица 1.4
Код стиля |
Стиль |
1 |
Club |
2 |
Rock |
3 |
Soundtrack |
4 |
Hardrock |
5 |
House |
Таблица countries Таблица 1.5
Код страны |
Страна |
1 |
США |
2 |
Россия |
3 |
Франция |
4 |
Казантип |
Таблица type_dsk Таблица 1.6
Код вида диска |
Вид диска |
1 |
Сольный |
2 |
Концерт |
3 |
Сборник |
Так как созданы новые таблицы, необходимо в таблице первой нормальной формы (табл. 1.1) удалить поля: Автор, Стиль, Страна и Вид диска. После удаления добавляются новые: Код автор, Код стиль, Код страны, Код вида диска (табл. 1.7).
Таблица disks Таблица 1.7
Название альбома |
Код автора |
Код стиля |
Количество композиций |
Продолжительность |
Год |
Код страны |
Код вида диска |
Californication |
1 |
2 |
15 |
73 |
1999 |
1 |
1 |
Banlieue |
2 |
3 |
16 |
78 |
2004 |
3 |
3 |
Камикадзе |
3 |
4 |
13 |
64 |
2006 |
2 |
2 |
Club Rotation |
4 |
5 |
18 |
84 |
2013 |
3 |
3 |
Kazantip 2014 Euro session |
5 |
1 |
20 |
96 |
2014 |
4 |
3 |
Таблица находится в третьей нормальной форме, если она удовлетворяет определению 2NF и ни одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля. Следовательно, необходимо проверить таблицы на транзитивные зависимости.
В таблице disks зависимостей нет. Остальные таблицы имеют следующие зависимости:
-
Код автора → Автор (Таблица autors).
-
Код стиля → Стиль (Таблица mus_styles).
-
Код страны → Страна (Таблица countries).
-
Код вида диска → Вид диска (Таблица type_dsk).
Так как транзитивных зависимостей не обнаружено, можно сделать вывод, что таблицы находятся в третьей нормальной форме. На этом процесс нормализации заканчивается.
Спроектирована реляционная база данных, состоящая из пяти таблиц: таблица 1.7, 1.3, 1.4, 1.5, 1.6.
После определения структуры таблиц, связей между ними и ключей, которые будут использованы для связывания отдельных таблиц, можно создавать реляционную базу данных в СУБД.
На рис. 1.1 показана схема данных разработанной базы данных.
Рис. 1.1 Схема данных разработанной базы данных
2. Visual FoxPro .
2.1. Создание проекта и базы данных.
Первое действие при создании базы данных в Visual FoxPro это создание проекта. Для его создания необходимо выбрать в главном меню «File/New» и в открывшемся диалоговом окне выбрать тип файла «Project», нажать кнопку «New file» и в открывшемся диалоговом окне сохранить файл (рис. 2.1).
Рис. 2.1 Окно создания проекта
Для создания базы данных необходимо в окне проекта (рис. 2.2) выделить пункт «Database», нажать «New/New Database» и в открывшемся диалоговом окне сохранить файл базы.
Рис. 2.2 Окно проекта
Для создания таблиц необходимо выделить появившуюся вкладку «Tables» в окне проекта и нажать кнопку «New». Все таблицы базы данных создаются в режиме конструктора. На рис. 2.3 представлены поля таблицы disks.
Рис. 2.3 Поля таблицы disks
Так как все имена полей прописываются английскими символами для увеличения стабильности работы базы данных, в поле «Caption» пишется пояснение на русском языке.
Данная таблица содержит следующие поля:
-
kod_style (Код стиля, Integer, 4 символа, Regular key)
-
kod_autor (Код автора, Integer, 4 символа, Regular key)
-
kod_countr (Код страны, Integer, 4 символа, Regular key)
-
kod_type (Код вида диска, Integer, 4 символа, Regular key)
-
name_album (Название альбома, Character, 40 символов)
-
prodolgit (Продолжительность, Integer, 4 символа)
-
year (Год, Integer, 4 символа)
-
kol_vo_kom (Количество композиций, Integer, 4 символа)
Рис. 2.4 Ключевые поля таблицы Catalogue
Аналогично создаются остальные таблицы их поля и ключи приведены ниже:
Таблица autors:
-
kod_autor (Код автора, Integer, 4 символа, Primary key)
-
name_autor (Автор, Character, 40 символов)
Таблица mus_styles:
-
kod_syle (Код стиля, Integer, 4 символа, Primary key)
-
name_style (Стиль, Character, 40 символов)
Таблица countries:
-
kod_country (Код страны, Integer, 4 символа, Primary key)
-
name_country (Страна, Character, 40 символов)
Таблица type_dsk:
-
kod_type (Код вида диска, Integer, 4 символа, Primary key)
-
name_type (Вид диска, Character, 10 символов)
Для установления связей между таблицами необходимо в окне проекта выделить базу и нажать «View/Database Designer», в открывшемся окне перетаскиванием ключевых полей устанавливаются связи между таблицами (рис. 2.5).
Рис. 2.5 Связи между таблицами
2.2. Установка целостности данных
Для сохранения целостности данных устанавливаются разрешения на определенные события. Чтобы открыть окно редактирования разрешений необходимо в главном меню выбрать «Database/Edit Referential Integrity».
Для того, чтобы при изменении ключевых данных в родительской таблице так же изменялись данные и в дочерней таблице в поле «Update» устанавливается значение «Cascade». Для запрета удаления данных в дочерней таблице, при удалении данных в родительской в поле «Update» устанавливается значение «Restrict». Для запрета вставления новой записи или обновления текущей в родительскую таблицу, при отсутствии соответствующего ключевого поля родительской таблицы в поле «Insert» устанавливается значение «Restrict» » (рис. 3.1).
Рис. 3.1 Целостность данных
2.3. Создание форм для работы с таблицами
Все формы для работы с таблицами создаются с помощью мастера форм. Для запуска мастера форм необходимо в окне проекта выделить вкладку «Forms» и нажать «New/Form Wizard».
На первом шаге создания формы выбираются поля, которые будут отображены в создаваемой форме (рис 4.1). Дополнительные поля можно будет разместить на форме при редактировании ее в режиме конструктора. Форма может содержать связанные данные максимум из 2-х таблиц. Это ограничение можно обойти, используя в качестве источника данных результаты запросов (курсоры или данные, сохраненные непосредственно в постоянную таблицу) или локальные представления данных.
Рис. 4.1 Первый шаг «Мастера форм»
Следующим шагом выбирается внешний вид формы (рис. 4.2). На этом этапе выбирается стиль формы и внешний вид кнопок управления которые будут размещены на форме при ее создании.
Рис. 4.2 Второй шаг «Мастера форм»
Третий шаг - выбор по какому полю будет производиться сортировка данных в форме (рис. 4.3).
Рис. 4.3 Третий шаг «Мастера форм»
В четвертом шаге есть возможность предпросмотра созданной формы, ввода заголовка формы и выбора события при выходе из мастера. Возможны варианты:
-
Для сохранения и запуска формы в режиме редактирования выбирается «Save form and modify in the Form Designer» (рис. 4.4).
-
Для сохранения формы для дальнейшего использования выбирается «Save form for later use».
-
Для сохранения формы и запуска для просмотра формы в режиме выполнения «Save and run form».
Рис. 4.4 Четвертый шаг «Мастера форм»
Внешний вид форм представлен на рисунках:
-
Исполнители – Рис. 4.5
-
Музыкальные стили – Рис. 4.6
-
Страны – Рис. 4.7
-
Тип диска – Рис. 4.8
-
Диски – Рис. 4.9
Рис. 4.5 Форма «Исполнители» в режиме выполнения
Рис. 4.6 Форма «Музыкальные стили» в режиме выполнения
Рис. 4.7 Форма «Страны» в режиме выполнения
Рис. 4.8 Форма «Тип диска» в режиме выполнения
Рис. 4.9 Форма «Диски» в режиме выполнения
2.4. Создание запросов
Все запросы создаются в режиме конструктора.
1) Для создания запроса, выводящего альбомы стиля trance на вкладке Fields добавляются таблицы name_autor, name_style, name_album, year (рис. 5.1).
Поскольку имена полей в запросе выводятся на английском языке логично дать пояснение на русском языке. Для этого в поле «Functions and expressions» перед переносом выбранного поля после имени поля прописывается AS <Пояснение>, затем нажать кнопку «Add>» для добавления нового поля. Также возможен вывод пояснения при редактирование кода SQL запроса.
Рис. 5.1 Конструктор запроса, вкладка Fields
Фильтры применяемые в запросе отображаются на рис. 5.2. Выполненный запрос представлен на рис. 5.3.
Рис. 5.2 Конструктор запроса, вкладка Filter
Рис. 5.3 Запрос по стилю trance в режиме выполнения
2) Запрос на выборку альбому в стиле Pop и R&B, длительностью свыше 60 минут. Фильтры запроса на рис. 5.4, выполненный запрос представлен на рис. 5.5.
Рис. 5.4 Конструктор запроса, вкладка Filter
Рис. 5.5 Запрос на альбомы по жанру и продолжительности в режиме выполнения
3) Запрос на количество альбомов по странам. Фильтры запроса на рис. 5.6. , выполненный запрос представлен на рис. 5.7
Рис. 5.6 Конструктор запроса
Рис. 5.7 Запрос на количество альбомов по странам в режиме выполнения
2.5. Создание отчетов
Отчеты в данной курсовой работе создавались с помощью мастера и в дальнейшем редактировались в режиме конструктора для большей информативности и органичности.
1) Для создания 2-х табличного отчета, распределяющего диски по странам необходимо запустить мастер отчетов.
На первом шаге выбираются поля родительской таблицы отчета (рис. 6.1)
Рис. 6.1 Первый шаг мастера отчетов
Следующим шагом выбираются поля дочерней таблицы отчета (рис. 6.2).
Рис. 6.2 Второй шаг мастера отчетов
Третьим шагом устанавливается связь между таблицами (рис. 6.3)