Курсовая работа

Проектирование базы данных птицефабрики средствами MySQL

Категория:

Курсовая работа

Дисциплина:

Система управления базами данных (СУБД)

Город:

Беларусь, Минск

Учебное заведение:

БНТУ, ФИТР

Стоимость работы:

16 руб.

Оценка: 10
Объем страниц: 29
Год сдачи: 2020
Дата публикации: 07.05.2021

Фрагменты для ознакомления

КУРСОВОЙ ПРОЕКТ

Проектирование базы данных птицефабрики средствами MySQL

по дисциплине: «Системы управления базами данных»

 

Содержание

1. Начало работы с MySQL. 4

2. Типы и структура таблиц. 6

3. Создание таблиц и импорт данных. 7

4. Типы ENUM и SET. 11

4.1 Тип перечисления ENUM.. 11

4.2 Тип множества SET. 13

4.3 Кодировки и сопоставления. 15

5. Оптимизация запросов. 17

5.1 Индексы.. 17

5.2 Составные индексы.. 18

5. 3 Внешние ключи. 20

5.4 GROUP_CONCAT. 21

5.5 Транзакции. 21

5.5 Уровни изоляции транзакций. 23

5.6 Вложенные подзапросы.. 24

5.7 Коррелированные подзапросы.. 24

5.8 Представления. 26

6. Резервное копирование. 27

Заключение. 28

Литература. 29

Введение

Система управления базами данных (СУБД) MySQL – разработка шведской компании MySQL AB. СУБД MySQL является программным обеспечением с открытым исходным кодом, распространяемым по лицензии GNU (GPL) и коммерческой лицензии для ситуаций, не подпадающих под действие лицензии GPL. MySQL поддерживает реляционную модель данных, т. е. представляет собой реляционную СУБД.

Целью курсового проекта является:

  1. Оптимизация структуры таблиц базы данных
  2. Оптимизация запросов базы данных
  3. Оценка производительности запросов и экономии пространства на диске
  4. Демонстрация работы вложенных и коррелированных запросов
  5. Знакомство с механизмами хранения данных в MySQL

 

1. Начало работы с MySQL

Работа с MySQL начинается с запуска сервера MySQL (основной программы, которая управляет базами данных). Сервер MySQL имеет имя mysqld.exe (в Windows).

В стандартном дистрибутиве MySQL поставляются клиентские программы (утилиты), взаимодействующие с MySQL-сервером: mysql (консольный клиент для доступа к MySQL-серверу, позволяющий выполнять SQL-запросы), mysqladmin (утилита для выполнения административных функций, таких как создание или удаление баз данных, получение информации о процессах, состоянии сервера и т. п.), mysqldump (утилита для вывода содержимого базы данных MySQL в виде текстового файла с SQL-операторами), mysqlimport (выполняет перенос информации из текстового файла в таблицы баз данных) и mysqlshow (отображает информацию о существующих базах данных, таблицах, полях и индексах).

К утилитам, которые могут функционировать без подключения к серверу MySQL, относятся: myisampack (сжимает таблицы типа MylSAM, уменьшая их в размере и делая доступными только для чтения), mysqlcheck (утилита, используемая для описания, проверки, оптимизации и восстановления таблиц), mysqlbinlog (данная утилита используется для чтения содержимого журнала двоичной регистрации при восстановлении данных в нештатных ситуациях) и perror (утилита, которая выводит расшифровку кодов системных ошибок и ошибок MySQL).

Консольный клиент mysql часто называют "терминальным монитором" или просто «монитором». В Windows для запуска mysql необходимо перейти в каталог C:\mysql5.5\bin (конечно, если MySQL установлен в каталог C:\mysql5.5) и набрать в командной строке имя утилиты. Для соединения с сервером базы данных в параметрах утилиты mysql необходимо указать имя пользователя и его пароль. Команды и SQL-инструкции, за редким исключением (exit, quit, use), должны заканчиваться точкой с запятой.

Параметры в утилитах MySQL могут иметь две формы: полную, начинающуюся с двух дефисов (например, --user), и краткую, которая начинается с одного дефиса (например, -u). Можно применять оба варианта, но для ряда параметров имеется только полная форма.

Когда пользователь вводит команду, она отправляется на сервер для выполнения, и, если нет ошибок в синтаксисе, на экран выводится результат в виде результирующей таблицы, а на новой строке приглашение mysql>, после которого можно вводить новые команды. Для ввода ключевых слов можно использовать любой регистр символов.

Если команда не помещается на одной строке, возможен переход на другую строку, после нажатия клавиши <Enter> — запрос отправляется серверу только после того, как консольный клиент mysql встретит символ точки с запятой. Приглашение командной строки после ввода первой строки этого запроса меняется с mysql > на -> .

 

2. Типы и структура таблиц

Создание, заполнение и изменение таблиц в MySQL осуществляются с помощью стандартных SQL операторов CREATE TABLE, ALTER TABLE, INSERT, UPDATE, DELETE. Определен также оператор REPLASE, который действует аналогично INSERT, но таким образом, что если значение индекса unique или primary KEY в старой записи таблицы такое же, как и в новой, то старая запись перед занесением новой будет удалена. Оператор TRUNCATE TABLE предназначен для полного очищения таблицы.

Просмотреть список таблиц текущей базы данных позволяет конструкция SHOW TABLES, а получить описание столбцов конкретной таблицы можно при помощи оператора DESCRIBE, который не является стандартным и присутствует лишь в MySQL SQL.

СУБД MySQL поддерживает несколько типов таблиц.

Тип MyISAM назначается по умолчанию при создании таблицы. Каждая MyISAM-таблица хранится на диске в трех файлах, имена которых совпадают с названием таблицы table_name: table_name.frm, table_name.myd и table_name.myi. Первый из них содержит структуру таблицы и информацию о столбцах и индексах. Второй содержит данные таблицы, а третий – ее индексы. Таблицы типа MyISAM можно переносить с сервера простым копированием файлов.

Таблицы типа InnoDB могут достигать объема в 1 Тбайт. Таблицы этого типа хранятся в едином табличном пространстве. Данный тип таблиц поддерживает транзакции, блокировки на уровне отдельных записей и – единственный из типов таблиц MySQL – поддерживает внешние ключи и каскадное удаление (обновление). Впрочем, таблицы InnoDB уступают в скорости обработки таблицам MyISAM.

Для создания InnoDB-таблицы применяется ключевое слово ENGINE= InnoDB в операторе CREATE TABLE.

 

3. Создание таблиц и импорт данных

Для начала нужно создать базу данных аптеки:

CREATE DATABASEapteka;

Для того чтобы работать с созданием таблиц для новой базы данных apteka, нам надо выбрать ее в качестве текущей базы данных.

USE apteka;

Далее необходимо создать таблицы и импортировать в них данные.

О каждом препарате должна храниться следующая информация: масса, дата изготовления, наименование, количество продаж за месяц, а также информация о местонахождении препарата в городских аптеках (АПТЕКА №1 и т.п).

Create table preparati (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, massa INT, naimenovanie VARCHAR(30), prodaji INT, mestonaxogdenie INT) engine=myisam;

Сведения о наименовании включают в себя: вид препарата, среднее количество проданных медикаментов в месяц (спрос) и доступная масса, номер рецепта врача.

Create table naimenovanie ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, vid VARCHAR(30), spros INT, dost_massa INT, nomer_recepta VARCHAR(30)) engine=myisam;CREATE TABLE dieti (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, dieta VARCHAR(30)) engine=myisam;

О работниках аптек в БД должна храниться следующая информация: паспортные данные, зарплата, закрепленная за работником аптека.

CREATE TABLE rabotniki (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, familia VARCHAR(30), imya VARCHAR(30), otchestvo VARCHAR(30), pasport VARCHAR(30), ceh INT, status VARCHAR(30), ustroen DATE, uvolen DATE) engine=myisam;

После того, как все таблицы созданы, загрузим в них данные из предварительно подготовленных файлов с помощью команды LOAD DATA INFILE.

Команда LOAD DATA INFILE читает строки из текстового файла и вставляет их в таблицу с очень высокой скоростью. Если задано ключевое слово LOCAL, то файл читается с клиентского хоста. Если же LOCAL не указывается, то файл должен находиться на сервере. (Опция LOCAL доступна в версии MySQL 3.22.6 и более поздних.)

Если текстовые файлы, которые нужно прочитать, находятся на сервере, то из соображений безопасности эти файлы должны либо размещаться в директории базы данных, либо быть доступными для чтения всем пользователям. Кроме того, для применения команды LOAD DATA INFILE к серверным файлам необходимо обладать привилегиями FILE для серверного хоста.

load data infile 'e:\\kuri.txt'

into table kuri

fields terminated by ','

lines terminated by '\n';

load data infile 'e:\\porodi.txt'

into table porodi

fields terminated by ','

lines terminated by '\n';

load data infile 'e:\\dieti.txt'

into table dieti

fields terminated by ','

lines terminated by '\n';

load data infile 'e:\\rabotniki.txt'

into table rabotniki

fields terminated by ','

lines terminated by '\n';

Заключение

 

В результате выполнения курсового проекта была спроектирована БД, предназначенная для директора птицефабрики. Структура таблиц базы данных была оптимизирована. Было оценено занимаемое место для движка myISAM с использованием типов ENUM/SET и без использования. Были изучены и заданы первичные и внешние ключи. Запросы так же оптимизированы с помощью индексов. Так же изучены и составлены некоторые коррелирующие и вложенные запросы. Резервное копирование базы, необходимое для использования в будущих проектах, было проведено.

255