операціях не повинна враховуватися внутрішня структура даних. Звичайно, мають бути описані дії, які можна виробляти з даними як з єдиним цілим, наприклад, дані числового типу можна складати, для рядків можлива операція конкатенації і т.д. p> З цієї точки зору, якщо розглядати масив, наприклад, як єдине ціле і не використовувати поелементних операцій, то масив можна вважати простим типом даних. Більше того, можна створити свій, наскільки завгодно складних тип даних, описати можливі дії з цим типом даних, і, якщо в операціях непотрібен знання внутрішньої структури даних, то такий тип даних також буде простим з точки зору реляційної теорії. Наприклад, можна створити новий тип - комплексні числа як запис виду, де. Можна описати функції складання, множення, віднімання і ділення, і всі дії з компонентами і виконувати тільки всередині цих операцій. Тоді, якщо в діях з цим типом використовувати тільки описані операції, то внутрішня структура не грає ролі, і тип даних ззовні виглядає як атомарний. p> Саме так в деяких пост-реляційних СУБД реалізована робота з як завгодно складними типами даних, створюваних користувачами. p>
1.2 Домени p> У реляційній моделі даних з поняттям тип даних тісно пов'язане поняття домену, яке можна вважати уточненням типу даних. p> Домен - це семантичне поняття. Домен можна розглядати як підмножину значень деякого типу даних мають певний сенс. Домен характеризується наступними властивостями:
Домен має унікальне ім'я (в межах бази даних). p> Домен визначений на деякому простому типі даних або на іншому домені. p> Домен може мати деякий логічне умова, що дозволяє описати підмножина даних, допустимих для даного домену. p> Домен несе певне смислове навантаження. p> Наприклад, домен, що має сенс "вік співробітника" можна описати як наступне підмножина безлічі натуральних чисел:
Якщо тип даних можна вважати безліччю всіх можливих значень даного типу, то домен нагадує підмножина в цьому множині. p> Відмінність домену від поняття підмножини полягає саме в тому, що домен відображає семантику, певну предметної областю. Може бути декілька доменів, співпадаючих як підмножини, але несучі різний сенс. Наприклад, домени "Вага деталі" і "Наявне кількість "можна однаково описати як безліч невід'ємних цілих чисел, але зміст цих доменів буде різним, і це будуть різні домени [4] . p> Основне значення доменів полягає в тому, що домени обмежують порівняння. Некоректно, з логічної точки зору, порівнювати значення з різних доменів, навіть якщо вони мають однаковий тип. У цьому проявляється смислове обмеження доменів. Синтаксично правильний запит "Видати список всіх деталей, у яких вага деталі більше наявної кількості" не відповідає змістом понять "кількість" і "вагу". p> Поняття домену допомагає правильно моделювати предметну область. При роботі з реальною системою в принципі можлива ситуація коли потрібно відповісти на запит, наведений вище. Система дасть відповідь, але, ймовірно, ...