Полная версия

Главная arrow Информатика arrow Базы данных: проектирование

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Выделение типов сущностей

Документарный подход, основанный на классическом рассмотрении предметной области, предполагает создание типов сущностей, основываясь на атрибутах каждого документа, формируя общую совокупность таких типов сущностей (атрибутивных сущностей), что их объединение представляет отношение в первой нормальной форме (рис. 4.2).

Под типом сущности (атрибутивной сущностью) понимается такое представление сущности, когда она состоит из одного атрибута простого типа данных, т.е. является типизированной сущностью.

image213

Рис. 4.2. Набор типов сущностей по анализу атрибутов


В рассматриваемом примере предварительный анализ документов выявил набор атрибутов, которые необходимо представить при построении модели базы данных. Пусть нам необходимо построить модель базы данных для формирования документа Д1 "Заказ". Документ содержит 10 атрибутов, каждый из которых представляется отдельным типом сущности, содержащим соответствующий атрибут простого типа. Однако это представление нельзя считать абсолютно корректным, поскольку в документе есть один атрибут, который нецелесообразно рассматривать, учитывая, что он имеет смысл только в рамках документа и характеризует некоторый экземпляр отношения в его представлении в документе. Таким атрибутом является "Номер товара". По сути, его представление в документе, это показывает анализ документа, реализуется в процессе отражения заказанных товаров, а нумерация формируется в отношении документа как объекта предметной области, а не области хранения сведений о заказанных товарах. Таким образом, поскольку в примере не стоит задача хранения сведений об объекте "Документ" и его представлении пользователю, то и атрибут "Номер товара" является бессмысленным с точки зрения отношения к заказу и товару. Тем не менее, сейчас убирать его из списка рассматриваемых атрибутов и типов сущности не будем, рассматривая его в качестве атрибута, характеризующего порядок товаров в заказе.

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

Таблица 4.5

Описание типов сущностей

п/п

Атрибут

Тип сущности

Tun

/lamihix

Размер

ность

Примечание

1

Номер заказа

Номер заказа

Character

7

2

Дата заказа

Дата заказа

Date

{"}

3

Клиент

Клиент

V archar

150

4

Номер товара

Номер товара

Integer

{4}

5

Товар

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

товара

Varchar

150

6

Цена товара

Цена товара

Decimal

7,2

7

Стоимость

товара

Стоимость

товара

Decimal

7,2

Вычисляется:

<6>*<10>

8

Стоимость

заказа

Стоимость

заказа

Decimal

7,2

Вычисляется: 511М(<7>) по заказу <1>

9

Символьная

стоимость

заказа

Символьная стоимость заказа

Varchar

200

Формируется переводом числового значения в символьное выражение

10

Количество

товара

Количество

товара

Integer

{4}



Данное описание представляет характеристики, важные для модели базы данных:

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

В представленной таблице описания типов сущностей колонка "Размерность" для некоторых типов данных содержит числовое значение, обрамленное в фигурные скобки. Делается это по той причине, что целочисленные, логические данные, а также дата и время в базах данных представляются стандартными механизмами представления и для хранения данных этих типов всегда известен размер в байтах.

Числовые тины данных и приравненный к ним логический тип данных всегда имеют фиксированную размерность:

  • • Boolean, Logical, Tinylnt, Bit — логический (Boolean, Logical) тин данных, содержащий значения "True" (истина) и "False" (ложь), идентичен малому целочисленному тину (Tinylnt) или биту (Bit) с минимальной размерностью 1 байт (1 бит при идентичности типу Bit) и значениями "О" или "1";
  • • Bit — целочисленный тип данных, представляющий значения "О" или "1", размерностью 1 бит;
  • • Tinylnt — целочисленный тип данных размерностью 1 байт;
  • • Smalllnt — целочисленный тип данных размерностью 2 байта;
  • • Integer — целочисленный тип данных размерностью 4 байта;
  • • Biglnt, Long — целочисленный тип большой размерности (8 байт);
  • • Date — тип данных даты, представляемый в символьном варианте, размерностью 8 символов (байт);
  • • Time — тип данных времени, представляемый в символьном варианте, размерностью 8 символов (байт).

Для типов данных с фиксированной размерностью обычно колонку "Размерность" не заполняют, подразумевая, что указание самого типа данных уже определяет се и дополнительного указания не требуется. Для всех остальных типов данных важно указывать максимальную размерность, учитывая особенности значений, которые могут присутствовать в документе. Для числовых типов данных указывается количество байт, которое должно занимать число и количество знаков после десятичной запятой, определяя точность вещественного числа. По символьным типам данных указывается количество символов, которое должно храниться для соответствующего атрибута. Символьный тип может представляться тремя разными вариантами:

Text, CLOB — текстовый тип данных, представляющий большие текстовые сведения, хранимые особым образом, а в таблице базы данных показываются набором первых символов, количество которых является размерностью атрибута данного типа;

  • — Character — строковый тип данных, хранящий ровно то количество символов, которое указано в качестве размерности, заполняя отсутствующие символы в конце строки пробелами;
  • - Varchar — строковый тип данных переменной длины, для которого размерность определяет максимальное количество символов, которое может быть у хранимой строки.

Типы Character и Varchar очень близки по сути, поскольку определяют тип строковых данных, но особенности представления данных определяют условия, при которых применяется тот или иной тип. Так, для хранения данных, имеющих фиксированный размер (например, ИНН (идентификационный номер налогоплательщика), БНК (банковский идентификационный код) банка, номер заказа, артикул товара и т.д.), обычно используют тип Character, поскольку для таких данных не может быть вариантов, когда количество символов может отличаться от указанных в размерности атрибута. Тип Varchar используется во всех остальных случаях, когда нет необходимость хранить точное количество символов.

 
<<   СОДЕРЖАНИЕ   >>