
- •Лабораторная работа № 1
- •1. Общие сведения
- •2. Назначение системы
- •2.1. Моделирование в eRwin
- •2.2.1. Процесс построения информационной модели
- •2.1.2 Отображение логического и физического уровня модели данных в eRwin в
- •2.1.3. Сущности (Entity) в eRwin
- •2.3 Описание работы с пакетом
- •Лабораторная работа № 2
- •1 Исходные данные
- •2 Постановка задачи
- •3 Создание логической модели данных
- •4. Контрольные вопросы:
- •Лабораторная работа № 3
- •1. Общие сведения по работе
- •1.1 Создание файла бд в среде субд ms Access
- •2. Порядок выполнения работы
- •3. Контрольные вопросы:
- •Лабораторная работа № 4
- •1. Общие сведения
- •2. Генерация «скелета» sql-кода в пакете eRwin
- •3. Подключение к серверу бд MySql 5.1 с помощью утилиты sql
- •4. Создание таблиц бд на сервере MySql 5.1 с помощью утилиты ems sql Manager for Mysql Lite.
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •Лабораторная работа № 5
- •1. Общие сведения
- •1.1 Язык sql
- •1.2 Тестовая предметная область
- •1.3 Создание и работа с запросами к бд с помощью ems sql Manager
- •2 Запросы insert
- •3 Запросы update
- •4 Запросы delete
- •5 Запросы select
- •6 Порядок выполнения работы
- •7 Контрольные вопросы
- •Лабораторная работа № 6
- •1. Общие сведения
- •1.1 Вычисление дат
- •1.2 Работа с значениями null
- •1.3 Сравнение по шаблонам
- •1.4 Использование нескольких таблиц
- •1.5 Использование вложенных запросов
- •1.6 Использование пользовательских переменных
- •1.8 Использование атрибута auto_increment
- •1.9 Получение системной информации об объектах бд
- •2 Порядок выполнения работы
- •3 Контрольные вопросы
- •Лабораторная работа № 7 Тема: изучение программных средств разработки серверной бизнес-логики в субд mysql 5
- •1. Общие сведения
- •2. Особенности программной разработки обл в среде субд MySql 5.
- •2.1 Представления
- •2.2 Хранимые процедуры
- •2.3. Курсоры
- •2.3 Триггеры
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •5. Список литературы
- •1. Общие сведения
- •2. Особенности разработки правил контроля ссылочной целостности
- •2.1 Ссылочная целостность
- •2.2 Транзакции
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •Лабораторная работа № 2-6
- •1. Общие сведения
- •2. Оптимизация запросов.
- •2.1. Использование оператора explain
- •2.2. Пример использования оператора explain.
- •2.3.Как MySql оптимизирует left join и right join
- •3. Оптимизация структуры бд
- •3.1.Использование индексов в MySql
- •3.2.Индексы столбцов
- •3.2. Многостолбцовые индексы
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
4. Контрольные вопросы
1) Знать определения ОБЛ: представление, хранимая процедура, триггер, и понимать логические схемы их функционирования.
2) Знать синтаксис команд создания / удаления представлений.
3) Знать синтаксис команд создания / изменения / удаления хранимых процедур (синтаксис изменения / удаления в данном документе не приведен и выносится на самостоятельную проработку с использованием рекомендованной литературы – см. ниже).
4) Знать синтаксис команд создания/удаления триггеров (синтаксис удаления в данном документе не приведен и выносится на самостоятельную проработку с использованием рекомендованнойлитературы – см. ниже).
5. Список литературы
1) Лекции по курсу «Организация Баз Данных и Знаний» / каф. АСУ, НТУ «ХПИ».
2) Дэйт К. Дж. Введение в системы баз данных – М-С.Пб-К: Вильямс,2001. – 1072 с.
3) Грабер Мартин. Введение в SQL – М.: Лори, 1996 – 382 с.
4) MySQL 5.1 Reference Manual // http://downloads.mysql.com/docs/refman5.1-en.chm
5) www.mysql.ru
6) Справка SQL Manager 2005 for MySQL
ЛАБОРАТОРНАЯ РАБОТА № 8
Тема: ИЗУЧЕНИЕ СРЕДСТВ ПОДДЕРЖКИ ССЫЛОЧНОЙ
ЦЕЛОСТНОСТИ И УПРАВЛЕНИЯ ТРАНЗАКЦИЯМИ
В СУБД MYSQL 5
Цель работы:
Ознакомиться с основными функциональными возможностями СУБД
MySQL 5 для разработки механизмов поддержки ссылочной целостности и
для упоавления транзакциями.
1. Общие сведения
Ссылочная целостность (англ. referential integrity) – необходимое качество реляционной БД, заключающееся в отсутствии в любой её таблице внешних ключей, ссылающихся на несуществующие записи в непосредственно этой или в других таблицах. Правильно спроектированная и поддерживаемая БД не допускает возможности нарушения ссылочной целостности.
Транзакция (англ. transaction) - группа операций, которая может быть выполнена либо полностью успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще и тогда она не должна произвести никакого эффекта. Для описания возможной степени вмешательства параллельно выполняющихся транзакций в работу заданной транзакции используется понятие уровень изоляции транзакций. В настоящее время большинство современных СУБД использует четыре уровня изоляции транзакций. Уровни изоляции описаны в порядке увеличения изоляции транзакций и надёжности работы с данными:
0 — Read Uncommited (Dirty Read) — чтение незафиксированных изменений своей транзакции и конкурирующих транзакций, возможны некорректные, неповторяемые чтения и фантомы
1 — Read Commited — чтение всех изменений своей транзакции и зафиксированных изменений конкурирующих транзакций, некорректные чтения невозможны, возможны неповторяемые чтения и фантомы
2 — Repeatable Read (Snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые конкурирующими транзакциями после начала своей недоступны, некорректные и неповторяемые чтения невозможны, возможны фантомы
3 — Serializable — cериализуемые транзакции, то есть транзакции, результат действия которых не зависит от порядка выполнения шагов транзакции (запрещено чтение всех данных изменённых с начала транзакции, в том числе и своей транзакцией).
Чем выше уровень изоляции, тем больше требуется ресурсов, чтобы их поддерживать. Чаще всего используется уровень 1 (Read Commited). Уровень 0 используется в основном для отслеживания изменений длительных транзакций. Уровень 2 —соответствует теоретическому пониманию изоляции транзакций. Уровень 3 удобен для оптимизаторов СУБД. Несмотря на то, что наиболее безопасными являются второй и третий уровни изоляции транзакций, в различных ситуациях (когда гарантировано известно, что те или иные проблемы не возникнут) можно использовать и более низкие уровни изоляции с тем, чтобы снизить количество используемых в ходе работы транзакций ресурсов.
Часть СУБД, в которой хранятся записи о планирующихся транзакциях называется журнал транзакций. Работа с ним состоит из трёх шагов:
1. Сделать запись о намерение произвести некоторые операции.
2. Выполнить операции.
3. Внести запись, что операции выполнены безошибочно.
Журнал транзакций в сочетании с сегментом отката (область, в которой хранится копия всех изменяемых в ходе транзакции данных) гарантирует целостность данных. В случае сбоя запускается процедура восстановления, которая просматривает отдельные записи журнала транзакция следующим образом:
Если повреждена запись, то сбой произошёл во время проставления отметки в журнале. Значит, ничего важного не потерялось, игнорируем эту ошибку.
Если все записи помечены как успешно выполненные, то сбой произошёл между транзакциями, здесь также нет потерь.
Если в журнале есть незавершённая транзакция, то сбой произошёл во время записи на диск. В этом случае мы восстанавливаем старую версию данных из сегмента отката.