Сегментирование (базы данных)
- 1 year ago
- 0
- 0
Домен в реляционной модели данных — тип данных , то есть множество допустимых значений .
Понятие типа данных является фундаментальным; каждое значение, каждая переменная, каждый параметр, каждый оператор чтения, и особенно каждый реляционный атрибут относится к тому или иному типу .
Примерами могут являться типы «целое» (множество всех целых чисел), «строка» (множество всех строк), «номер детали» (множество всех номеров деталей) и т. д. Таким образом, когда мы говорим, что некоторое отношение имеет атрибут типа «целое», мы имеем в виду, что все значения этого атрибута принадлежат множеству «целое» и никакому другому .
По аналогии с математикой, типы данных делят на скалярные и нескалярные . Значение нескалярного типа (нескалярное значение) имеет множество видимых пользователю компонентов, а значение скалярного типа (скалярное значение) не имеет такового. Примерами нескалярного типа являются тип отношения и тип кортежа ; пример скалярного типа — тип «целое» .
Ограничения реализации систем баз данных на компьютерах накладывают на определение типов некоторую условность. Так, теоретически тип INTEGER представляет собой множество всех возможных целых чисел, однако фактически INTEGER — это множество всех целых чисел, которые могут быть представлены в рассматриваемой компьютерной системе (поскольку, безусловно, есть такие целые числа, которые превышают возможности представления в любой компьютерной системе) .
Следует отличать тип как таковой (логическое понятие) и формат физического представления значений этого типа в конкретной компьютерной системе; типы относятся к уровню логической модели , а физическое представление значений — к уровню реализации . Например, операции, определённые для типа «строка», не имеют смысла для типа «число», даже если числа в конкретной реализации физически представлены строками. Значения типа «дата» нередко физически представлены вещественным числом , однако большинство операций, имеющих смысл для типа «число», бессмысленны для типа «дата».
Реляционная модель данных не предписывает обязательной поддержки каких-либо предопределённых типов, за исключением логического типа (BOOLEAN), без которого при выполнении операций обойтись невозможно . Обычно некоторый набор типов поддерживается системой (такие типы называют базовыми, встроенными, или системными), другие типы пользователь может конструировать (определять) дополнительно (такие типы называют пользовательскими, англ. user-defined types ) .