Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_dlya_laboratornykh_rabot_BD.doc
Скачиваний:
0
Добавлен:
03.01.2020
Размер:
2.57 Mб
Скачать

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: диалог в режиме создания

внешнего ключа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]