Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2. Физическая модель

.doc
Скачиваний:
21
Добавлен:
07.03.2015
Размер:
282.62 Кб
Скачать

Лабораторная работа №2. Физическая модель базы данных

Физическая модель – логическая модель базы данных, выраженная в терминах языка описания данных конкретной СУБД.

Физическая модель базы данных содержит все детали, необходимые конкретной СУБД для создания базы: наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т.п. (рис. 2.11).

Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в нашем случае - MS SQL Server 2008 R2):

Имена

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

Типы данных

Для каждого атрибута необходимо определить тип данных его значений (табл. 2.2).

Связи

Реляционная модель данных требует преобразования связей «многие ко многим» и иерархии наследования и допускает их только на уровне логической модели базы данных.

Наследование (обобщение) может быть реализовано различными способами; наиболее предпочтительным является преобразование каждого подтипа (дочерние сущности) в отдельную таблицу с включением в нее вторичного ключа, соответствующего первичному ключу таблицы-супертипа (родительская сущность).

Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы развязки и двух новых связей «один ко многим» от старых таблиц к новой.

Рис. 2.11. Физическая модель базы данных в нотации IDEF1X

Таблица 2.2. Основные типы данных в MS SQL Server

Тип данных

Описание

Целые числа

bigint

Целочисленные данные от -263 до 263-1

int

Целые числа от -2147483648 до 2147483647

smallint

Целые числа от -32768 до 32767

tinyint

Целые числа от 0 до 255

Вещественные числа

decimal / numeric

Являются синонимами. Заданная точность и масштаб от -1038-1 до 1038-1

float

Приближенные числовые данные от -1,79Е+308 до 1,79Е+308

real

Частный случай типа float, от -3,40Е+38 до 3,40Е+38

money

Количество денежных единиц от -263 до 263 с точностью до четырех десятичных позиций

smallmoney

Денежные единицы от -214748,3648 до 214748,3647

Дата и время

datetime

Данные о дате и (или) времени, которые относятся к периоду с 1 января 1753 года по 31 декабря 9999 года, определяемые с точностью до трех сотых секунды

smalldatetime

Данные о дате и (или) времени, которые относятся к периоду с 1 января 1900 года по 6 июня 2079 года, определяемые с точностью до одной минуты

date

Дата с точностью до дня, занимает 3 байта

Строки

char (n)

Символьные данные фиксированной длины. Значения данных с длиной короче заданной заполняются пробелами до указанной длины. Максимальное заданное значение длины - 8000 символов.

varchar (n)

Символьные данные переменной длины. Значения данных с длиной короче заданной не дополняются пробелами. Максимальное заданное значение длины - 8000 символов, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы с символьными данными объемом до 231 байтов.

nchar (n)

Символьные данные в кодировке Unicode фиксированной длины. Максимальное заданное значение длины может составлять 4000 символов.

nvarchar (n)

Символьные данные в кодировке Unicode переменной длины. Максимальное заданное значение длины может составлять 4000 символов, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы с символьными данными объемов до 231 байт.

text / ntext

Устаревший тип данных, вместо него следует использовать тип varchar (max) / nvarchar (max).

binary

Двоичные данные фиксированной длины с максимальной длиной 8000 байт.

varbinary

Двоичные данные переменной длины с максимальной указанной длиной 8000 байт, но для обозначения длины можно использовать ключевое слово max, что позволяет определять столбцы типа LOB, имеющие объем до 231 байт

image

Устаревший тип данных, вместо него следует использовать тип данных varbinary (max).

table

Данные типа таблицы, предназначены для использования в работе с результирующими наборами. Как правило, они передаются из пользовательских функций. Применение данных типа table в определениях таблиц не допускается.

sql_variant

Данные различных типов.

xml

Определяет символьное поле как содержащее данные XML.

Timestamp / rowversion

Специальное значение, которое является уникальным в пределах данной базы данных. Устанавливается автоматически.

uniqueidentifier

Специальный глобально уникальный идентификатор (GUID). Уникальность любого идентификатора GUID в пространстве и времени является гарантированной.

Задание: постройте физическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого воспользуйтесь уже имеющейся логической моделью базы данных.