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

12. Проектирование физической модели бд и ее реализация

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

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

Чтобы приступить к реализации БД, необходимо сначала проработать все атрибуты таблиц, указав у них типы и размерность данных.

СУБД MySQL также как и другие реляционные СУБД, для создания и управления таблицами предлагает собственный диалект DML-подмножества языка SQL.

SQL расшифровывается как Structured Query Language, т.е. Язык Структурированных Запросов, а DDL как Data Definition Language, Язык Определения Данных.

Основные типы данных MySQL

В MySQL в качестве основных типов данных используются:

Код типа

Назначение

Примечание

INT[(M)],

INTEGER[(M)]

Целое число нормального размера

Диапазон со знаком от -2147483648 до 2147483647.

М показывает кол-во разрядов, отводимых под число, необязательно.

TINYINT[(M)]

Очень малое целое число

Диапазон со знаком от -128 до 127

SMALLINT[(M)]

Малое целое число.

Диапазон со знаком от -32768 до 32767.

Диапазон без знака от 0 до 65535.

FLOAT [(M,D)]

Число с плавающей точкой удвоенной точности нормального размера

Допустимые значения: от

-1,7976931348623157E+308 до

-2,2250738585072014E-308.

Атрибут M указывает количество выводимых пользователю знаков, а атрибут D — количество разрядов, следующих за десятичной точкой.

DATE

Дата

Поддерживается интервал от '1000-01-01' до '9999-12-31'. MySQL выводит значения DATE в формате 'YYYY-MM-DD', но можно установить значения в столбец DATE, используя как строки, так и числа.

TIME

Время

Интервал от '-838:59:59' до '838:59:59'.

MySQL выводит значения TIME в формате 'HH:MM:SS', но можно устанавливать значения в столбце TIME, используя как

строки, так и числа.

CHAR(M)

Строка фиксированной длины.

При хранении всегда дополняется пробелами в конце строки до заданного размера.

Диапазон аргумента M составляет от 0 до 255 символов.

Концевые пробелы удаляются при выводе значения.

VARCHAR(M)

Строка переменной длины.

Концевые пробелы удаляются при сохранении значения.

Диапазон аргумента M составляет от 0 до 255 символов.

Термин VARCHAR является сокращением от CHARACTER VARYING.

TEXT / BLOB

Двоичный объект большого размера, который может содержать переменное количество данных.

Столбец типа BLOB или TEXT с максимальной длиной 65535 (2^16 - 1) символов.

Единственное различие между типами BLOB и TEXT состоит в том, что сортировка и сравнение данных выполняются с учетом регистра для величин BLOB и без учета регистра для величин TEXT. Другими словами, TEXT — это независимый от регистра BLOB.

Если размер задаваемого в столбце BLOB или TEXT значения превосходит максимально допустимую длину столбца, то это значение соответствующим образом усекается.

ENUM

('значение1', 'значение2',...)

Перечисление.

Перечисляемый тип данных.

Объект строки может иметь только одно значение, выбранное из заданного списка величин 'значение1', 'значение2', ..., NULL или специальная величина ошибки "".

Список ENUM может содержать максимум 65535 различных величин.

SET ('значение1', 'значение2',...)

Набор (множество).

Объект строки может иметь ноль или более значений, каждое из которых должно быть выбрано из заданного списка величин 'значение1', 'значение2', ...

Список SET может содержать максимум 64 элемента.

Задавая типы и размерность данных столбцов, получим следующую модель:

Наложение ограничений целостности данных

Для обеспечения целостности данных при физическом проектировании таблиц имеет смысл накладывать определённые ограничения.

Существуют следующие виды ограничений:

Название ограничения

Действия

NULL / NOT NULL

Столбец может (не может) содержать пустые значения. Показывает обязательность заполнения столбца.

UNIQUE

Значения столбца должны быть уникальны — столбец не должен содержать повторяющихся значений.

DEFAULT 'value'

Значение столбца по умолчанию. Используется, если в столбец вставляется значение NULL.

PRIMARY KEY (...)

Поле является первичным ключом. Эквивалентно сочетанию ограничений NOT NULL и UNIQUE.

AUTO_INCREMENT

Поле заполняется автоматическим счётчиком. Применяется только для полей типа INT, являющихся первичным ключом.

FOREIGN KEY (...)

REFERENCES ...

ON UPDATE ...

ON DELETE ...

Поле является внешним ключом.

В первых скобках указывается имя поля, являющегося ключом, после слова REFERENCES — название таблицы и поля в скобках, на которое ссылается данное.

С помощью опций ON UPDATE / ON DELETE можно задавать

правила поведения, при изменении или удалении родительской

таблицы:

● NO ACTION — не производить никаких действий;

● SET NULL — заполнить пустым значением;

● SET DEFAULT — заполнить значением по умолчанию;

● RESTRICT — запретить операции над родительским значением;

● CASCADE — произвести каскадное обновление зависимых значений.

CHECK (expr)

Значение поля должно удовлетворять логическому условию expr.

Не следует забывать, что необходимо добавить внешние ключи (FOREIGN KEY) в соответствующие таблицы и связать их с первичнами ключами родительских сущностей!!!

Задание: Создайте физическую модель БД из логической модели, дополнив её типами данных и указав ограничения. Постройте и сохраните диаграмму БД.

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