КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Лабораторная работа №3. Физическая модель базы данных
Физическая модель – логическая модель базы данных, выраженная в терминах языка описания данных конкретной СУБД.
Физическая модель базы данных содержит все детали, необходимые конкретной СУБД для создания базы: наименования таблиц и столбцов, типы данных, определения первичных и внешних ключей и т.п. (рис. 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 в пространстве и времени является гарантированной.
|
Задание: постройтефизическую модель базы данных в соответствии с описанием предметной области из вашего варианта задания. Для этого воспользуйтесь уже имеющейся логической моделью базы данных.
|