Смекни!
smekni.com

Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры автоматики и компьютерных систем «29» (стр. 1 из 16)

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Утверждаю

Декан (директор)

С. А. Гайворонский

« » 2009 г.

А.А. Пономарев

Создание структуры БД и манипулирование данными в СУБД MySQL

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

по курсу «Базы данных» для студентов III курса специальностей 230105 «Программное обеспечение вычислительной техники и автоматизированных систем». 230201 «Информационные системы и технологии».

Издательство

Томского политехнического университета

2009

УДК 681.324.016

ББК 00000

П00

Пономарев А.А.

П00 Базы данных: методические указания по выполнению лабораторного практикума для студентов специальностей 230105 «Программное обеспечение вычислительной техники и автоматизированных систем», 230201 «Информационные системы и технологии». В трех частях, часть первая. /Сост. А.А. Пономарев. – Томск: Изд-во ТПУ, 2009. – 80 с.

УДК 681.324.016

ББК 00000

Методические указания рассмотрены и рекомендованы
к изданию методическим семинаром кафедры
автоматики и компьютерных систем

« 29 » октября 2009 г.

Зав. кафедрой АиКС

доктор технических наук __________Г.П. Цапко

Председатель учебно-методической

комиссии __________Е.А. Кочегурова

Рецензент

Доктор технических наук, профессор

Д.Г. Копаница

© Пономарев А.А., 2009

© Томский политехнический университет, 2009

©Оформление. Издательство Томского
политехнического университета, 2009


Оглавление

Лабораторная работа №1. Интерфейс СУБД MySQL. Предоставление доступа и привилегий. Утилиты, входящие в состав СУБД.. 4

Лабораторная работа №2. Моделирование баз данных средствами Erwin. 16

Лабораторная работа №3. Создание баз данных и таблиц в среде MYSQL. Информационное наполнение. 26

Лабораторная работа №4 Создание запросов и модификация таблиц базы данных. 35

Лабораторная работа №5. Работа с внешними базами данных. 46

Ограничение доступа. 46

Лабораторная работа №6. Представления, хранимые процедуры, функции, триггеры. 51

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

Хранимые процедуры и функции. 52

Триггеры.. 57

Словарь данных. 57

Курсоры.. 60

Лабораторная работа №1. Интерфейс СУБД MySQL. Предоставление доступа и привилегий. Утилиты, входящие в состав СУБД

Цель работы: Ознакомиться с приложениями, включенными в состав СУБД MySQL. Получить навыки управления учетными записями пользователей и определения привилегий. Ознакомиться с утилитами, входящими в состав СУБД MySQL, получить навыки работы с ними.

Запуск MySQL

Управление сервером обычно осуществляется из командной строки. Запуск в Windows 95/98/2000/XP осуществляется через сеанс DOS выполнением следующей команды:

D:\usr\local\Mysql\bin\mysqld --standalone

Эта команда запустит демон mysql в фоновом режиме. В Windows 95/98 не предусмотрен запуск mysqld в виде службы. В Windows 2000 демон mysql запускается в виде службы.

Можно осуществить запуск winmysqladmin.exe, в этом случае все настройки перечисляются в файле my.ini

При запуске mysqld можно указывать следующие опции:

Таблица 1- Опции команды MySQLD

-?, --help Справка
-b, --basedir=[path] Путь к каталогу в котором установлен mysql
-h, --datadir [homedir] Путь к каталогу, в котором хранятся базы данных.
-l, --log=[filename] Имя журнала транзакций
-L, --language=[language] Язык по умолчанию(обычно English).
-P, --port=[port] Порт для соединения.
--skip-grant-tables Игнорировать таблицы привилегий. Это дает любому ПОЛНЫЙ доступ ко всем таблицам. Не следует предоставлять обычным пользователям разрешений на запуск mysqld.
--skip-name-resolve Позволяет предоставлять доступ только тем хостам, чьи IP-адреса указаны в таблицах привилегий. Ипользуется для более высокого уровня защиты.
--skip-networking Использовать подключения только через интерфейс localhost.
-V, --version Вывести информацию о версии.

Наличие в статусной строке иконки светофора с активным зеленым цветом указывает на то, что сервер запущен (см. рис 1).

Рисунок 1 - Приложение winmysqladmin запущено

Теперь можно попытаться войти в сервер. В случае, если предполагается управление сервером через консоль, то необходимо использовать команду mysql. Изначально существует единственный пользователь, которому предоставляется право входа - root, которая не имеет пароля. Первое, что нужно сделать войти под именем root и зарегистрировать нового пользователя и установить для него пароль. Команда mysql может использовать следующие опции:

Таблица 2 - Опции команды MySQL

-?, --help Справка
-h,--hostname=[hostname] Имя сервера mysql.
-u, --user=[user] Имя пользователя для доступа к mysql.
-p, --password=[password] Пароль пользователя для доступа к mysql.
-P, --port=[port] Порт для соединения с сервером.
-V, --version Информация о версии

Примечание. Команды mysqld и mysql имеют еще некоторые опции, но в данный момент они особого интереса не представляют.

Запуск из сеанса ДОС осуществляется как показано на Рисунок 2 (в указанном случае осуществляется подключение к БД mysql).

Рисунок 2 - Запуск консоли MYSQL

Для выполнения в строке наберите команду: mysql –u root

Рисунок 3 - Успешный запуск консоли

Если вы это получили, значит вы успешно вошли в консоль mysql, которая используется для администрирования сервера.

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

\T filename

!!! обязательно в верхнем регистре. Filename – имя файла, в который будут записываться команды (создается автоматически при выполнении команды, и действует во время жизни сеанса, т.е. в случае отключения от сервера лог прерывается и для возобновления необходимо повторить команду с выводом в новый файл, так как команда затирает имеющиеся в файле данные).

Просмотр списка БД, доступных на сервере осуществляется командой SHOW DATABASES.

Для выполнения в строке наберите команду: show databases.

Командой: USE MYSQL; – выбираем текущую БД где MYSQL имя БД.

Система привилегий и безопасность в MySQL

· User

· Db

· Host

· Пользовательские привилегии

База данных mysql и таблицы привилегий.

Итак, вы успешно вошли в базу данных mysql, которая используется для администрирования сервера. Что же здесь находится? А находятся здесь 5 таблиц, которые ничем не отличаются от других таблиц баз данных, за исключением того, что эти таблицы используются для предоставления доступа к базам данных и таблицам в них пользователям. Рассмотрим каждую из них.

Введите следующую команду, show tables, которая покажет таблицы в базе данных mysql.

Кратко рассмотрим функции каждой из таблиц:

Таблица User

Определяет, разрешено ли пользователю, пытающемуся подключиться к серверу делать это. Содержит имя пользователя, пароль а также привилегии. Если ввести команду show columns from user; то получим следующее:

Таблица 3- Структура таблицы User

Field

Type

Null

Key

Default

Extra

Host

char(60)

PRI

User

char(16)

PRI

Password

char(41)

Select_priv

enum('N','Y')

N

Insert_priv

enum('N','Y')

N

Update_priv

enum('N','Y')

N

Delete_priv

enum('N','Y')

N

Create_priv

enum('N','Y')

N

Drop_priv

enum('N','Y')

N

Reload_priv

enum('N','Y')

N

Shutdown_priv

enum('N','Y')

N

Process_priv

enum('N','Y')

N

File_priv

enum('N','Y')

N

Grant_priv[1]

enum('N','Y')

N

References_priv

enum('N','Y')

N

Index_priv

enum('N','Y')

N

Alter_priv

enum('N','Y')

N

Show_db_priv

enum('N','Y')

N

Super_priv

enum('N','Y')

N

Create_tmp_table_priv

enum('N','Y')

N

Lock_tables_priv

enum('N','Y')

N

Execute_priv

enum('N','Y')

N

Repl_slave_priv

enum('N','Y')

N

Repl_client_priv

enum('N','Y')

N

Create_view_priv

enum('N','Y')

N

Show_view_priv

enum('N','Y')

N

Create_routine_priv

enum('N','Y')

N

Alter_routine_priv

enum('N','Y')

N

Create_user_priv

enum('N','Y')

N

Event_priv

enum('N','Y')

N

Trigger_priv

enum('N','Y')

N

ssl_type

enum('','ANY','X509','SPECIFIED')

ssl_cipher

blob

NULL

x509_issuer

blob

NULL

x509_subject

blob

NULL

max_questions

int(11) unsigned

0

max_updates

int(11) unsigned

0

max_connections

int(11) unsigned

0

max_user_connections

int(11) unsigned

0

Изначально эта таблица содержит пользователя root без пароля. По умолчанию root может входить с любого хоста, имеет все привилегии и доступ ко всем базам данных.Также в таблице содержится запись для пользователя '%'.