Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 2013.doc
Скачиваний:
73
Добавлен:
07.03.2015
Размер:
3.81 Mб
Скачать
  1. Проектирование базы данных

    1. Логическая модель базы данных

Концептуальная модель базы данных (Логическая модель базы данных) описывает объекты предметной области, их атрибуты и взаимосвязи между ними в том объеме, в котором они подлежат непосредственному хранению в базе данных системы (рис. 2.1).

Рис. 2.1. Концептуальная модель базы данных

Методология IDEF1х– один из подходов к семантическому моделированию данных, основанный на концепции "сущность – связь" (Entity – Relationship). Информационная модель, построенная с помощью IDEF1х‑методологии, отображает логическую структуру информации об объектах системы, т.е. является логической схемой базы данных.

Независимая сущностьпредставляет независимые данные, которые всегда присутствуют в системе. Отношения с другими сущностями у нее могут отсутствовать. Изображается в виде прямоугольника с прямыми краями.

Зависимая сущностьпредставляет данные, которые зависят от других сущностей в системе. Например, строка документа не может существовать без самого документа. Зависимая сущность всегда имеет отношения с другими сущностями. Изображается в виде прямоугольника с закругленными краями.

Таблица 2.1. Концептуальная модель базы данных

Сущность

Нотация

Сущность (Entity)

Наименование

Уникальный идентификатор

Атрибуты

Зависимая сущность

Наименование

Ссылка на идентификатор (FK)

Атрибуты

Связь (Relationship)

Идентифицирующая связь

Независ.

Связь «Многие ко многим»

Наследование (обобщение)

Полное

Неполное

Родит.

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

    1. Физическая модель базы данных

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

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

Имена

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

Типы данных

Для каждого поля необходимо определить тип данных, которые в нем содержатся. В таблице

Связи

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

На физическом уровне эти связи должны быть преобразованы.

Приведенные три варианта физической модели различаются способами реализации наследования:

  • миграция первичного ключа и неключевых атрибутов в иерархии от потомков к предку (рис. 2.2);

  • миграция первичного ключа и неключевых атрибутов в иерархии от предка к потомкам (рис. 2.3).

  • замена иерархии наследования идентифицирующими связями (рис. 2.4);

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

Таблица 2.2. Основные типы данных в СУБД MSSQLServer

Тип данных

Описание

bigint

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

int

Целые числа от -214748364

до 2147483647

smallint

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

tinyint

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

decimal или numeric

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

money

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

smallmoney

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

float

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

datet

me

Данные о да

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

smalldatetime

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

деляемые с точностью до одной минуты

cursor

Указатель на курсор

Timestamp / rowversion

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

uniqueidentifier

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

ой.

char(n)

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

анное значение длины может составлять 8000 символов.

varchar(n)

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

text

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

nchar (n)

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

nvarchar (n)

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

ntext

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

binary

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

ой длиной 8

00 байт.

varbinary

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

image

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

table

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

sql_variant

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

xml

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

Рис. 2.2. Физическая модель базы данных: реализация наследования через миграцию потомков в предка

Рис. 2.3. Физическая модель базы данных: реализация наследования через миграцию предка в потомков

Рис. 2.4. Физическая модель базы данных: реализация наследования через замену иерархии идентифицирующими связями

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