d580a088

Типы ARRAY



Типы ARRAY

Тип данных ARRAY (массив) нарушает первую нормальную форму (1НФ), но делает это иначе, чем тип ROW. Тип ARRAY, относящийся к типу коллекций, в действительности не является отдельным типом данных в том же смысле, что и типы CHARACTER или NUMERIC. Тип ARRAY просто дает возможность одному из других типов иметь множество значений внутри одного поля в таблице. Скажем, например, что для вашей организации важно поддерживать контакт со своими клиентами, находятся ли они на работе, дома или в дороге. Поэтому среди данных о клиенте может потребоваться и несколько телефонных номеров. Такую возможность можно реализовать, объявив атрибут Phone (телефон) массивом, как показано в следующем коде:



CREATE TABLE CUSTOMER (
CustID INTEGER PRIMARY KEY,
LastName CHARACTER VARYING (25),
FirstName CHARACTER VARYING (20),
Address addr_typ
Phone CHARACTER VARYING (15) ARRAY [3]
) ;

Это дает возможность хранить в таблице CUSTOMER (клиент) до трех телефонных номеров каждого клиента. Три телефонных номера являются примером повторяющейся группы. Если следовать классической теории реляционных баз данных, то такие группы делать нельзя, однако они — это только один из нескольких примеров нарушения правил со стороны SQL: 1999. Когда доктор И.Ф. Кодд впервые провозгласил свои правила нормализации, то ради целостности данных он пожертвовал функциональной гибкостью. SQL: 1999 вернул назад часть этой гибкости — впрочем, за счет некоторого усложнения структуры. Такое усложнение может привести к ослаблению целостности данных. Это вам напоминание на тот случай, если вы еще не полностью осознаете последствия всех действий, выполняемых с базой данных. Массивы упорядочены таким образом, что каждый элемент массива связан только с одной порядковой позицией в массиве.



Содержание раздела