Краткий обзор различных субд

Методические указания по выполнению лабораторной работы №2

СУБД MySQL

Работа со структурой БД и

манипулирование данными

Оглавление

Введение. 2

1. Краткий обзор различных СУБД.. 3

3. Проектирование БД.. 7

3.1 Общие сведения о SQL. 8

3.2 Сведения об операторах SQL. 10

3.3 Сведения о типах данных. 10

4. Методические указания по выполнению практической части лабораторной работы на тему «Разработка базы данных в СУБД MySQL». 13

4.1 На что следует обратить внимание перед началом работы.. 14

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

4.3 Рассмотрим создание БД на примере БД для Интернет-продаж.. 14

4.3.1 Создадим новую БД.. 15

4.3.2 Создадим таблицу «Интернет-Магазины». 15

4.3.3 Создадим таблицу «Товары». 16

4.3.4 Создадим таблицу «Клиенты». 17

4.3.5 Создадим таблицу «Доставка». 19

4.3.6 Заполним таблицу «Интернет-Магазины». 20

4.3.7 Заполним таблицу «Товары». 20

4.3.8 Заполним таблицу «Клиенты». 21

4.3.9 Заполним таблицу «Заказы». 23

4.3.10 Заполним таблицу «Доставка». 24

4.3.11 Отобразим графически структуру созданной таблицы с помощью программного средства MySQL Workbench. 25

5. Варианты заданий для лабораторной работы на тему «Разработка базы данных в СУБД MySQL» 28

Список литературы.. 31

Введение

Физическое проектирование является третьим и последним этапом создания проекта базы данных, при выполнении которого проектировщик принимает решения о способах реализации разрабатываемой базы данных. Во время предыдущего этапа проектирования была определена логическая структура базы данных (которая описывает отношения и ограничения в рассматриваемой прикладной области). Хотя эта структура не зависит от конкретной целевой СУБД, она создается с учетом выбранной модели хранения данных, например реляционной, сетевой или иерархической. Однако, приступая к физическому проектированию базы данных, прежде всего, необходимо выбрать конкретную целевую СУБД. Поэтому физическое проектирование неразрывно связано с конкретной СУБД. Между логическим и физическим проектированием существует постоянная обратная связь, так как решения, принимаемые на этапе физического проектирования с целью повышения производительности системы, способны повлиять на структуру логической модели данных.

Как правило, основной целью физического проектирования базы данных является описание способа физической реализации логического проекта базы данных. В случае реляционной модели данных под этим подразумевается следующее:

· создание набора реляционных таблиц и ограничений для них на основе информации, представленной в глобальной логической модели данных;

· определение конкретных структур хранения данных и методов доступа к ним, обеспечивающих оптимальную производительность СУБД;

· разработка средств защиты создаваемой системы.

Именно этому этапу и посвящена разрабатываемая ЛР.

Краткий обзор различных СУБД

Система управления базами данных (СУБД) - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

СУБД также имеют различные классификации, например, по модели данных:

· Иерархические

· Сетевые

· Реляционные

· Объектно-ориентированные

По степени распределенности:

· Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)

· Распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах)

Подробнее рассмотрим классификацию по способу доступа к БД:

· Файл-серверные

В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость централизованного управления; затруднённость обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД.

На данный момент файл-серверная технология считается устаревшей.

Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.

· Клиент-серверные

Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность.

Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.

· Встраиваемые

Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL[1] либо через специальные программные интерфейсы.

Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.

Наибольшее распространение получили, как можно сделать вывод из краткого описания, клиент-северные СУБД. Потому как в большинстве случаев клиент-серверная СУБД гораздо менее требовательна к пропускной способности компьютерной сети, чем файл-серверная СУБД, особенно при выполнении операции поиска в базе данных по заданным пользователем параметрам, т.к. для поиска нет необходимости получать на клиент весь массив данных: клиент передаёт параметры запроса серверу, а сервер производит поиск по полученному запросу в локальной базе данных. Результат выполнения запроса, который обычно на несколько порядков меньше по объёму, чем весь массив данных, возвращается клиенту, который обеспечивает отображение результата пользователю.

Далее в основном будем вести разговор именно о реляционных БД и файл-серверных СУБД.

Существует множество SQL-серверов[2] для управления реляционными базами данных. Каждый из них обладает своими достоинствами и недостатками. Рассмотрим некоторые из них:

Таблица 1 – Сравнение SQL-серверов

Сервер Достоинства Недостатки
IBM DB2 Universal Database Ниболее развитый язык запросов, лучший оптимизатор, возможность писать функции на других языках. Высокая стоимость.
Oracle Database Великое множество дополнительных возможностей. Версионный сервер. Очень высокая стоимость сервера и поддержки.
Microsoft SQL Server Быстро развивающийся продукт, уже вплотную приближающийся к своим более развитым конкурентам. Средняя стоимость. Существует только для одной платформы (Win32).
Borland InterBase Приличный набор возможностей. Версионный сервер. Бесплатный. Относительно медленно работает.
PostgreSQL Поддерживает историческую модель. Возможность создавать свои типы данных. Бесплатный. Медленная работа некоторых команд.
MySQL В настоящее время самый распространенный сервер. Очень быстро работает на простых запросах. Бесплатный. Мало дополнительных возможностей.

В таблице приведены лишь основные относительные плюсы и минусы разных СУБД. В действительности же имеется целых ряд отличий и к выбору СУБД следует подходить, в первую очередь, исходя из требований к конкретной базе данных и экономической целесообразности.

В данных методических указаниях рассматривается создание базы данных на примере MySQL-сервера, как наиболее простого, понятного и доступного из вышеперечисленных.

Проектирование БД

Создание БД на этапе физического проектирования может происходить несколькими способами. Выделим два фундаментальных способа создания БД:

· С помощью командной строки.

· С помощью специальных инструментов визуального проектирования БД.

В разработанной ЛР создание и наполнение БД предлагается выполнить с помощью командной строки. Это менее удобный и реже используемый способ, но он позволяет увидеть процесс моделирования БД «изнутри», более полно понять назначение операторов языка SQL, без знания которых проектирование с помощью специальных инструментов может быть затруднительным.

В процессе выполнения работы, будут подробно рассмотрены следующие операторы:

o CREATE

o DESC

o INSERT

o ALTER

o UPDATE

o DELETE

И использованы следующие типы данных:

o Числовые типы данных

o Типы данных даты и времени

o Символьные типы данных

Для создания структуры простой БД в рамках лабораторной работы необходимо пройти три упрощенных ключевых этапа:

· Определение сущностей БД

· Определение взаимосвязей между сущностями

· Нормализация БД

На четвертом и пятом листах показаны структуры БД, разрабатываемых в лабораторной работе, выполненные в приложение MySQL Workbench.

Общие сведения о SQL

Фактически стандартным языком доступа к базам данных в настоящее время стал язык SQL (Structured Query Language).

Данная лабораторная работа посвящена использованию языка SQL(Structured Query Language) для работы с базами данных в СУБД MySQL.

Текущая версия стандарта языка SQL принята в 1992 г. (Официальное название стандарта - Международный стандарт языка баз данных SQL (1992) (International Standart Database Language SQL), неофициальное название - SQL/92, или SQL-92, или SQL2). Документ, описывающий стандарт, содержит более 600 страниц. Здесь описывается только основная часть операторов языка.

Язык SQL стал фактически стандартным языком доступа к базам данных. Все СУБД, претендующие на название "реляционные", реализуют тот или иной диалект SQL. Многие нереляционные системы также имеют в настоящее время средства доступа к реляционным данным. Целью стандартизации является переносимость приложений между различными СУБД.

Нужно заметить, что в настоящее время, ни одна система не реализует стандарт SQL в полном объеме. Кроме того, во всех диалектах языка имеются возможности, не являющиеся стандартными. Таким образом, можно сказать, что каждый диалект - это надмножество некоторого подмножества стандарта SQL. Это затрудняет переносимость приложений, разработанных для одних СУБД в другие СУБД.

Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".

Стандарт языка SQL, хотя и основан на реляционной теории, но во многих местах отходит он нее. Например, отношение в реляционной модели данных не допускает наличия одинаковых кортежей, а таблицы в терминологии SQL могут иметь одинаковые строки. Имеются и другие отличия.

Язык SQL является реляционно полным. Это означает, что любой оператор реляционной алгебры может быть выражен подходящим оператором SQL.

SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования.

Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям:

· Операторы DDL (Data Definition Language) - операторы определения объектов базы данных.

· Операторы DML (Data Manipulation Language) - операторы манипулирования данными.

· Операторы защиты и управления данными, и др.

Каждое предложение SQL — это запрос или обращение к базе данных, которое приводит к изменению в базе данных. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

· запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

· запросы на получение данных;

· запросы на добавление новых данных (записей)

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы — это операции над таблицами. В соответствии с этим, запросы делятся на:

· запросы, оперирующие самими таблицами (создание и изменение таблиц);

· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Наши рекомендации