Проектирование БД
Цель
Научится проектировать БД используя РЕД Эксперт и СУБД РЕД База Данных.
Порядок выполнения
- Установить РЕД База Данных
- Установить РЕД Эксперт
- Создать базу данных “телефонный справочник”
- Создать таблицу
ABONENTc с полями:ABONENT_ID- первичный ключ, автоинкрементное поле.FIRSTNAME- имя абонента.LASTNAME- фамилия абонента.ADDRESS- адрес абонента.
- Создать таблицу
PHONEc с полями:PHONE_NUMBER- первичный ключ, строковый тип данных.ABONENT_ID- внешний ключ, не автоинкрементное поле.PHONE_TYPE- тип телефона, строковый тип данных.
- Внести 3 абонента и у каждого по 3 номера телефона.
- Построить ER-диаграмму полученной базы данных.
- Написать отчет по лабораторной работе содержащий все этапы выполнения работы и полученные результаты.
Полезная информация
Подготовка
- В учебной виртуальной машине РЕД Эксперт и РЕД База Данных уже установлены.
- Перед созданием БД подготовьте папку, в которой будет размещаться файл БД. Владельцем папки необходимо сделать пользователя reddatabase (firebird для версий СУБД Ред База Данных ниже 5 версии). Например, следующий образом в терминале от пользователя root:
mkdir /db
chown reddatabase. /db
Создание базы данных
Для создания БД используется кнопка “Создать базу данных” на вкладке “Браузера баз данных” или соответствующий пункт меню “База данных/Создать базу данных”.

Далее необходимо заполнить все обязательные поля. Опишем назначение некоторых полей этой вкладки:
Имя подключения- произвольное имя, чтобы обозначить подключение в дереве объектов слева.Имя сервера- доменное имя или IP адрес сервера, на котором запущен сервер БД, к которому мы будем подключаться чтобы создать БД. Для локального компьютера достаточно оставить значение по умолчаниюlocalhost.Файл БД- файл на сервере БД. Обратите внимание. Это файл, к которому будет подключаться сервер СУБД, а не РЕД Эксперт. Если в полеИмя серверауказан удаленный сервер, то с локального компьютера к этому файлу не будет доступа. Но сервер СУБД выполняется на том сервере и, следовательно, доступ у него должен быть. Другими словами, этим значением мы лишь сообщаем серверу, какой файл использовать для БД, но не работаем с этим файлом на нашем компьютере. Это объясняет почему права на каталог с БД должны быть предоставлены пользователю reddatabase (firebird для ранних версий) от которого работает сервер СУБД РЕД База Данных.Пользователь- имя пользователя, от имени которого будет установлено подключение к серверу. sysdba - это имя суперпользователя, который всегда существует в БД и имеет все права. Управлять и создавать новых пользователей также можно с помощью РЕД Эксперт.Пароль- пароль пользователя, который был указан при его создании. Пароль пользователя sysdba указывается при установке сервера СУБД и традиционно для тестовых целей равенmasterkey.Сохранить пароль- можно выставить, чтобы не вводить пароль для этого подключения постоянно.

После нажатия кнопки “Создать”, запрос создания БД будет отправлен на сервер и, если не будет ошибок, БД будет успешно создана, а РЕД Эксперт предложит ее зарегистрировать в дереве объектов.

Нажмите “Да” и вновь созданная БД появится в дереве объектов слева.

Дважды нажмите на ней и РЕД Эксперт установит к ней подключение, покажет все объекты, которые в ней есть. После этого, можно с ней работать.

Создание таблиц
Создание всех объектов, кроме выполнения DDL команд в редакторе запросов, можно делать с помощью графических форм. Для этого нажмите правой кнопкой мыши на нужном узле дерева объектов. В нашем случае это “Таблицы” и выберете соответствующий пункт меню “Создать таблицу”.

Теперь необходимо указать ее имя, поля и другие атрибуты. Учтите, что изменять имя таблицы после ее создания невозможно, поэтому сразу укажите необходимое имя.
Также добавим первое поле ABONENT_ID и укажем его тип данных (INTEGER). Кроме этого, в столбце PK (первичный ключ) необходимо сделать двойной клик мышкой и появится “ключ”. Это означает что это поле входит в первичный ключ.

Первичный ключ не должен содержать NULL значения, поэтому с помощью горизонтального скроллинга найдем соответствующее поле NOT NULL и поставим в нем галочку.

Еще правее есть атрибут “Автоинкремент”. Поскольку это поле первичный ключ и его значение должно генерироваться автоматически, укажем и эту галочку. Появится окно, где надо выбрать каким образом будет генерироваться значение этого поля. Рекомендованным способом по умолчанию является “Использовать IDENTITY”. Начальное значение оставьте по умолчанию.

Похожим образом добавим остальные поля. Учтите что они не все входят в первичный ключ и имеют разный тип данных.

Учтите также что не все они NOT NULL.

Далее, после нажатия на кнопку “Применить”, появится окно выполнения сгенерированных DDL команд, сам текст соответствующих команд, которые выполняет сервер СУБД и возможность “Подтвердить” или “Откатить” эти изменения (транзакцию). Подтвердите ее и созданная таблица ABONENT появится в дереве объектов слева.

Аналогичным образом делаем таблицу PHONE. Обратите внимание, что ее первичный ключ указывается пользователем и не должен быть автоинкрементным.

Также не все поля должны быть NOT NULL.

Поле ABONENT_ID является внешним ключом, ссылающимся на таблицу ABONENT. Это ограничение можно добавить на вкладке “Ограничения”.

Имя ограничения мы указывать не будем. Необходимо выбрать столбец ограничения (ABONENT_ID), внешнюю таблицу, на которую этот столбец ссылается (ABONENT) и столбец внешней таблицы (ABONENT_ID).

После нажатия кнопки “Применить” также появится окно подтверждения DDL операции. Обратите внимание на команды добавления внешнего ключа.

Добавление данных
Посмотреть и изменить данные таблиц можно на вкладке “Данные”. Поскольку телефон не может существовать без абонента, то сначала нужно добавить запись об абоненте. Обратите внимание, что поле ABONENT_ID заполнять не следует, поскольку его значение генерируется автоматически. Адрес можно оставить незаданным, но для остальных записей попробуйте его указать.

Для внесения изменений в БД нажмите кнопку “Фиксировать”. Это выполнит запрос на вставку данных, зафиксирует транзакцию и данные будут записаны в БД. После этого набор данных будет обновлен и можно будет увидеть сгенерированное значение поля ABONENT_ID.

При внесении данных в таблицу PHONE значение первичного ключа надо указать явно, а вот для указания значения внешнего ключа ABONENT_ID редактор предложит список выбора, поскольку “знает” о том, что значение должно ссылаться на внешнюю таблицу.

Аналогичным образом заполняются остальные данные.
Построение ER-диаграммы
Чтобы построить диаграмму, нужно воспользоваться соотвутствующим пунктом меню “Инструменты/Редактор ER-диаграмм”.

Для построения диаграммы для существующей БД, в редакторе ER-диаграмм нужно выбрать кнопку “Реверс-инжиниринг”.

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

Нажмем кнопку “Выбрать все”.

После нажатия на кнопку “Построить” будет построена ER-диаграмма нашей БД.
