Физическая модель базы данных
Реляционная модель данных требует преобразования связей «многие ко многим» и иерархии наследования и допускает их только на уровне логической модели базы данных. Данные о дате и (или) времени, которые относятся к периоду с 1 января 1753 года по 31 декабря 9999 года, определяемые с точностью до трех сотых секунды. Физическая модель строится на основе логической с учетом ограничений, накладываемых… Читать ещё >
Физическая модель базы данных (реферат, курсовая, диплом, контрольная)
Физическая модель — логическая модель базы данных, выраженная в терминах языка описания данных конкретной СУБД.
Физическая модель базы данных содержит все детали, необходимые конкретной СУБД для создания базы: наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т. п. (рис. 2.11).
Физическая модель строится на основе логической с учетом ограничений, накладываемых возможностями выбранной СУБД (в нашем случае — MS SQL Server 2012):
Имена
Имена таблиц и столбцов должны быть записаны латинскими буквами, без пробелов, начиная с буквы.
Типы данных
Для каждого атрибута необходимо определить тип данных его значений (табл. 2.2).
Связи
Реляционная модель данных требует преобразования связей «многие ко многим» и иерархии наследования и допускает их только на уровне логической модели базы данных.
Наследование (обобщение) может быть реализовано различными способами; наиболее предпочтительным является преобразование каждого подтипа (дочерние сущности) в отдельную таблицу с включением в нее вторичного ключа, соответствующего первичному ключу таблицы-супертипа (родительская сущность).
Преобразование связи «многие ко многим» (таблицы «Поставка» и «Способ доставки») включает создание новой таблицы развязки и двух новых связей «один ко многим» от старых таблиц к новой.
Таблица 2.2. Основные типы данных в MS SQL Server.
Тип данных. | Описание. | |
Целые числа. | ||
bigint. | Целочисленные данные от -263 до 263-1. | |
int. | Целые числа от -2 147 483 648 до 2 147 483 647. | |
smallint. | Целые числа от -32 768 до 32 767. | |
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. | Денежные единицы от -214 748,3648 до 214 748,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 в пространстве и времени является гарантированной. | |
Рис. 2.11. Физическая модель базы данных в нотации IDEF1X
Задание: постройте физическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого воспользуйтесь уже имеющейся логической моделью базы данных.
Контрольные вопросы
- 1. Дайте определение реляционной модели базы данных.
- 2. Какие ограничения целостности поддерживаются на уровне реляционной модели?
- 3. Дайте определение нормализованному отношению, которое лежит в основе реляционной модели базы данных.
- 4. Что такое первичный ключ нормализованного отношения? Перечислите свойства первичного ключа.
- 5. Как реализуются связи между сущностями в реляционной модели?
- 6. Что такое логическая модель базы данных?
- 7. Что такое физическая модель базы данных?
- 8. Что такое «зависимая сущность» в нотации IDEF1X?
- 9. Какие отношения допустимы в нотации IDEF1X?
- 10. Каким образом определяется степень связей в нотации IDEF1X?
- 11. Какие отношения между сущностями отсутствуют в физической модели базы данных в нотации IDEF1X?
- 12. Посредством чего реализуется отображение ассоциативных связей из концептуальной модели ПО в реляционную модель базы данных?
- 13. Как реализуется связь «многое ко многим» на уровне физической модели реляционной базы данных?
- 14. Как реализуется отношение «наследование» на уровне физической модели реляционной базы данных?
- 15. Приведите пример справочника в разработанной модели базы данных.