Физическая модель базы данных
Физическая модель – логическая модель базы данных, выраженная в терминах языка описания данных конкретной СУБД.
Физическая модель базы данных содержит все детали, необходимые конкретной СУБД для создания базы: наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т.п. (рис. 2.11).
Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в данном случае - MS SQL Server 2012).
Имена
Имена сущностей и полей (таблиц и столбцов) должны быть записаны латинскими буквами, без пробелов, начиная с буквы.
Типы данных
Для каждого атрибута необходимо определить тип данных его значений (табл. 2.2).
Связи
Реляционная модель данных требует преобразования связей «многие ко многим» и иерархии наследования и допускает их только на уровне логической модели базы данных.
Приведенные три варианта физической модели различаются способами реализации наследования:
§ миграция первичного ключа и неключевых атрибутов в иерархии от потомков к предку (рис. 2.11);
§ миграция первичного ключа и неключевых атрибутов в иерархии от предка к потомкам (рис. 2.12);
§ замена иерархии наследования идентифицирующими связями (рис. 2.13).
Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы-развязки и двух новых связей «один ко многим» от старых таблиц к новой.
Таблица 2.2. Основные типы данных в MS SQL Server | |
Тип данных | Описание |
Целые числа | |
bigint | Целочисленные данные от -263 до 263-1 |
int | Целые числа от -2147483648 до 2147483647 |
smallint | Целые числа от -32768 до 32767 |
tinyint | Целые числа от 0 до 255 |
Вещественные числа | |
decimal (n, m) / numeric (n, m) | Числа с фиксированной точностью (n) и масштабом (m). Максимальная точность от -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 байтов |
Продолжение табл. 2.2 | |
Тип данных | Описание |
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 в пространстве и времени является гарантированной. |
Рис. 2.11. Физическая модель базы данных: реализация наследования через миграцию потомков в предка
Рис. 2.12. Физическая модель базы данных: реализация наследования через миграцию предка в потомков
Рис. 2.13. Физическая модель базы данных: реализация наследования через замену иерархии идентифицирующими связями
Задание: постройтефизическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого воспользуйтесь уже имеющейся логической моделью базы данных.
Контрольные вопросы
1. Дайте определение реляционной модели базы данных.
2. Какие ограничения целостности поддерживаются на уровне реляционной модели?
3. Дайте определение нормализованному отношению, которое лежит в основе реляционной модели базы данных.
4. Что такое первичный ключ нормализованного отношения? Определите свойства первичного ключа.
5. Как реализуются связи между сущностями в реляционной модели?
6. Что такое логическая модель базы данных?
7. Что такое физическая модель базы данных?
8. Что такое «зависимая сущность» в нотации IDEF1X?
9. Какие отношения допустимы в нотации IDEF1X?
10. Каким образом определяется степень связи в нотации IDEF1X?
11. Какие отношения между сущностями отсутствуют в физической модели базы данных в нотации IDEF1X?
12. Как реализуется отображение ассоциативных связей из концептуальной модели ПО в реляционную модель БД?
13. Охарактеризуйте отображение агрегативной связи концептуальной модели ПО в реляционную модель данных.
14. Как реализуется связь «многое ко многим» на уровне физической модели реляционной базы данных?
15. Как реализуется отношение «наследование» на уровне физической модели реляционной базы данных?
16. Какие варианты реализации наследования на уровне физической модели базы данных существуют?
17. Приведите пример справочника в разработанной модели базы данных.
Дата добавления: 2015-03-03; просмотров: 31728;