
- •Лабораторная работа № 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. Создание таблиц бд на сервере MySql 5.1 с помощью утилиты ems sql Manager for Mysql Lite.
EMS Manager позволяет создавать таблицы и другие объекты БД в интерактивном режиме. Данный режим доступен в контекстных меню соответствующих объектов БД. Но так как ранее был сгенерирован скрипт для создания таблиц (см. п. 2), он может быть использован для этой цели..
В приведенном примере ЛМД (Рисунок 1.2) связываются таблицы «Студенческие группы» и «Студенты». Так как данные в таблицах нормализованы до 3 НФ, в каждой из таблиц введен первичный реляционный ключ (соответственно group_id и student_id). Для обозначения первичного реляционного ключа в языке SQL используется ключевое слово Primary Key (имя поля). Также поля, входящие в первичный реляционный ключ, не должны иметь неопределенные значения (null), для введения данного ограничения в SQL используется директива not null. Для обеспечения уникальности первичного реляционного ключа в современных СУБД используются так называемые последовательности. Последовательности – это отдельные объекты БД, особенность которых состоит в том, что при каждом обращении к последовательности, она возвращает некоторое уникальное значение (числовое или строковое, полученное по определенному правилу). Для простоты в MySQL последовательности отсутствуют, а присвоение уникальных значений первичному реляционному ключу осуществляется с помощью директивы auto_increment (автоинкрементное поле принимает последовательные целые значения). Естественно, что если в таблице существует такое поле, то его не нужно указывать в запросе INSERT, либо если существует необходимость перечислять в запросе все поля таблицы, то такому полю следует явно указать значение null (в этих случаях MySQL присвоит данному полю новое автоинкрементное значение автоматически в случае корректного добавления записи).
Наконец, в код генерации соответствующей ЛМД необходимо добавить код, связывающий таблицу «Студенты» с таблицей «Студенческие группы». В СУБД MySQL это реализуется с помощью стандартного синтаксиса языка SQL (constraint references…). Таким образом, модифицированный код для создания этих таблиц выглядит следующим образом:
CREATE TABLE Groups (
group_id INTEGER NOT NULL auto_increment,
group_name VARCHAR(20),
PRIMARY KEY(group_id)
);
CREATE TABLE Students (
student_id INTEGER NOT NULL auto_increment,
group_id INTEGER,
FirstName VARCHAR(20),
LastName VARCHAR(20),
CONSTRAINT `students_fk` FOREIGN KEY (`group_id`) REFERENCES
`groups` (`group_id`),
PRIMARY KEY(student_id)
);
Для выполнения данного кода в EMS Manager нажмем клавишу F12 (консоль выполнения команд), скопируем туда данный код, и нажмем мышкой на надпись Execute Query (находится в центре экрана, справа от зеленого треугольника), что запустит данные команды на выполнение. В случае успешного выполнения команд, внизу экрана появятся (лог сообщений СУБД) появятся надписи вида (Query OK, 0 rows affected (94 ms)), в случае ошибки будет показана информация об ошибке. После успешного выполнения команд щелкнем мышью на объект БД таблицы и нажмем клавишу F5 (в данном контексте Refresh Tables), которая обновит список таблиц. Вообще клавиша F5 всегда обновляет активные объекты БД. В случае успешного выполнения всех предыдущих манипуляций успешно, возле объекта таблицы появится номер, означающий количество таблиц в БД и объект таблицы станет распадающимся. При навигации в этом меню можно получить доступ к свойствам созданных таблиц, а именно:
Полям (Fields)
Индексам (Indices)
Внешним ключам (Foreign Keys)
Триггерам (Triggers)
Данным (Data)
Описанию (Description)
Коду создания (DDL)
Интуитивно понятные операции с этими свойствами (двойные нажатия, контекстные меню и т.д.) позволяют редактировать таблицы (добавлять/удалять поля, создавать/удалять индексы, изменять значения по умолчанию, управлять ключами и т.д.). В частности, создание первичного ключа (в том числе и автоинкрементного) доступно из меню Fields текущей таблицы (необходимо выбрать поле, которое должно быть таким ключом и придать ему необходимые свойства путем пометки соответствующих checkboxes); внешние ключи создаются в закладке Foreign Keys (см. рис 4.5).
Рисунок 4.5 – Утилита EMS SQL Manager Lite for MySQL: диалог в режиме создания
внешнего ключа.