
- •Пример проектирования модели и проведения нормализации Выявление существенных объектов
- •Предварительное действие
- •Первая форма нормализации
- •Вторая нормальная форма.
- •Уточнение модели
- •Изучение основных функций пакета eRwin.
- •Построение моделей в eRwin
- •Этапы построения информационной модели:
- •Запуск программы и создание новой модели.
- •Создание сущности.
- •Создание атрибутов.
- •Создание связи.
- •1 Или много
- •Создание физической модели бд
- •Переименование названий таблиц
- •Редактирование свойств полей
- •Генерирование sql-сценария создания бд
- •Использование ib Expert для работы с базой данных1 Создание и регистрация новой базы данных
- •Выполнение sql – скрипта, вероятные ошибки.
- •Вставка триггеров и генераторов
- •Заполнение таблиц
Создание физической модели бд
Конечный этап моделирования БД - переход к физическому уровню модели, на котором модель также представлена в виде диаграммы. Переключите диаграмму на физический уровень. Физический уровень представления модели зависит от выбранного сервера.
Переименование названий таблиц
Сервер InterBase не позволяет называть таблицы, используя буквы русского алфавита, поэтому необходимо переименовать все называния таблиц используя только латинские буквы, цифры и символ подчеркивания, при этом первый символ в имени может быть только буквой. Необходимо обратить внимание, что в названии таблицы не может быть пробелов – они должны быть заменены на символ подчеркивания. Для того чтобы изменить имя таблицы нужно щелкнуть по выбранному имени и отредактировать его.
При переименовании необходимо учитывать, что название таблицы или поля не может совпадать с зарезервированным словом, поэтому вместо зарезервированного слова «ROLE» (роль) будем использовать «RANK» (должность).
Рисунок
18Физический уровень модели.
Редактирование свойств полей
Для редактирования свойств полей таблиц вызываем редактор колонок (Column Editor) В диалоге появляется новая страница с закладкой InterBase - на этой странице можно задать физические свойства колонки: тип данных, опцию NULL, правило валидации (проверки на допустимость) и значение по умолчанию.
Необходимо убедиться, что название поля содержит только латинские буквы, цифры и символ подчеркивания. Особенно нужно следить, чтобы в названии поля отсутствовал символ номера (№), рекомендуется заменять его буквой N. Для переименования колонки (поля таблицы) вызываем диалог при помощи кнопки «Rename».
Проконтролируем тип данных колонки. Сервер InterBase поддерживает типы данных, приведенные в табл.
ТИП |
РАЗМЕР |
ДИАПАЗОН/ТОЧНОСТЬ |
ОПИСАНИЕ |
BLOB |
переменный |
Размер сегмента ограничен 64 К |
Предназначен (только!) для хранения больших массивов данных в произвольном формате (рисунки, видео, и т.д.) |
CHAR(n) |
n символов |
1 - 32767 байт |
Текстовая строка фиксированной длины, дополняется пробелами справа до n |
DATE |
64 бита |
С 1 января 100 г. по 29 февраля 32768 г |
Включает также информацию о времени |
DECIMAL (precision, scale) |
переменный |
precision =1-15 общее число знаков, scale - 1 – 15 число знаков после десятичной точки должно быть < или = precision |
Число с scale знаков после десятичной точки |
DOUBLE PRECISION |
64 бита 1 |
7*10-308- 1.7*1 0308 |
Точность до 15 знаков |
FLOAT. |
32 бита |
3.4*10-38-3.4*1038 |
|
INTEGER -
|
32 бита |
2147483648-2147483647 |
Длинное целое со знаком |
NUMERIC |
переменный |
precision =1-15 общее число знаков, scale - 1 - 15 |
число знаков после деся ичной точки |
SMALLINT |
16 бит |
-32768 - 32767 |
Короткое целое со знаком |
VARCHAR(n) |
n символов |
1 - 32767 байт |
Текстовая строка переменной длины, пробелы справа обрезаются |
Следует обратить внимание на соответствие типа данных колонки характеру информации, которая должна в них храниться.
Проконтролируем допустимость присутствия пустого значения (опцию NULL). Очевидно что «Название Города», «Название аэропорта» и другие подобные поля не должны иметь пустых значений (городов или аэропортов без названий не бывает). Особенно внимательно нужно следить чтобы признак «NOT NULL» стоял у полей входящих в первичный ключ.
Приведем соответствие имен таблиц и полей на логическом и физическом уровне.
Вид объекта |
Название на логическом уровне |
Название на физическом уровне |
Таблица |
Авиамаршрут |
AIRLINE |
Поле |
Номер маршрута |
AL_NUM |
Поле |
Код Типа Самолета |
AL_PL_CODE |
Поле |
Код Авиакомпании |
AL_AC_CODE |
Таблица |
Аэропорт |
AIRPORT |
Поле |
Код аэропорта |
AP_CODE |
Поле |
Название аэропорта |
AP_NAME |
Поле |
Код Города |
AP_CT_CODE |
Таблица |
Авиакомпания |
AIRCOMPANY |
Поле |
Код Авиакомпании |
AC_CODE |
Поле |
Название Авиакомпании |
AC_NAME |
Таблица |
Борт |
BOARD |
Поле |
Борт номер |
BRD_NUM |
Поле |
Код Типа Самолета |
BRD_PL_CODE |
Поле |
Код Авиакомпании |
BRG_AC_CODE |
Таблица |
Город |
CITY |
Поле |
Код Города |
CT_CODE |
Поле |
Название Города |
CT_NAME |
Таблица |
Член Экипажа |
EQUIPAGE |
Поле |
Код Члена Экипажа |
EQ_CODE |
Поле |
Дата вылета |
EQ_FL_DATE |
Поле |
Номер маршрута |
EQ_RNK_CODE |
Поле |
Код Личности |
EQ_PR_CODE |
Поле |
Код роли |
EQ_FL_NUM |
Таблица |
Рейс |
FLIGHT |
Поле |
Дата вылета |
FL_DATE |
Поле |
Номер маршрута |
FL_NUM |
Поле |
Борт номер |
FL_BRD_NUM |
Таблица |
Личность |
PERSON |
Поле |
Код Личности |
PR_CODE |
Поле |
ФИО |
PR_NAME |
Таблица |
Тип Самолета |
PLANE |
Поле |
Код Типа Самолета |
PL_CODE |
Таблица |
Роль члена экипажа |
RANK |
Поле |
Код роли |
RNK_CODE |
Поле |
Роль |
RNK_NAME |
Таблица |
Тип Салона |
SALON |
Поле |
Код Типа Салона |
SL_TYPE |
Поле |
Название Типа Салона |
SL_NAME |
Таблица |
Салон в Самолете |
SALON_IN_PLANE |
Поле |
Код Типа Салона |
SP_SL_TYPE |
Поле |
Код Типа Самолета |
SP_PL_CODE |
Поле |
Количество мест |
SP_COUNT |
Таблица |
Расписание |
TIMETABLE |
Поле |
Код аэропорта |
TBL_AP_CODE |
Поле |
Номер маршрута |
TBL_AL_NUM |
Поле |
Время Прилета |
TBL_DOWN_TIME |
Поле |
Время Вылета |
TBL_START_TIME |
Поле |
Номер в Маршруте |
TBL_NUMBER |
Таблица |
Тариф |
TARIFF |
Поле |
Код Тарифа |
TR_CODE |
Поле |
Код Типа Салона |
TR_SL_TYPE |
Поле |
Номер маршрута |
TR_AL_NUM |
Поле |
Цена билета |
TR_COST |
Поле |
Аэропорт Откуда |
TR_AP_FROM |
Поле |
Аэропорт Куда |
TR_AP_TO |
Таблица |
Билет |
TICKET |
Поле |
Номер билета |
TC_NUM |
Поле |
Код Личности |
TC_PR_CODE |
Поле |
Код Тарифа |
TC_TR_CODE |
Поле |
Дата вылета |
TC_FL_DATE |
Поле |
Номер маршрута |
TC_FL_NUM |