Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Primer_proektirovania_modeli_i_normalizatsii.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
243.87 Кб
Скачать

Создание физической модели бд

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

Переименование названий таблиц

Сервер 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