Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

SQL: 1999 стандарт ввел ряд объектно-реляционных баз данных функций в SQL , главным образом , среди них структурированы определяемые пользователем типы , обычно называемые просто структурированные типы . Они могут быть определены как в простом SQL, так CREATE TYPEи в Java через SQL / JRT . Структурированные типы SQL допускают одиночное наследование .

Структурированные типы в разной степени поддерживаются в базах данных Oracle , IBM DB2 , PostgreSQL и Microsoft SQL Server , хотя последний допускает только структурированные типы, определенные в CLR .

Примеры SQL [ править ]

Структурированный тип объекта [ править ]

Чтобы определить тип настраиваемой структуры с использованием базы данных Oracle, можно использовать такие операторы, как эти:

CREATE  TYPE  Person_Type  AS  OBJECT  (  person_title  VARCHAR2 ( 10 ),  person_first_name  VARCHAR2 ( 20 ),  person_last_name  VARCHAR2 ( 20 ), )  НЕ  ЗАВЕРШЕНИЕ ;

Такой тип структуры можно затем использовать для создания таблицы, которая также будет содержать все столбцы, определенные в Person_Type :

CREATE  TABLE  Person_Table  OF  Person_Type ;

Типы настраиваемых структур поддерживают наследование, что означает, что можно создать другой тип, унаследованный от предыдущего. NOT FINALОднако оператор должен быть включен в определение типа базовой структуры , чтобы можно было создавать любые другие подтипы.

СОЗДАТЬ  ТИП  Student_Type  UNDER  Person_Type  (  matriculation_number  NUMBER ( 10 ) );

Затем Student_Type можно использовать для создания Student_Table, который также будет включать все столбцы, определенные в Person_Type . Первичный ключ и ограничения должны быть определены во время или после создания таблицы и не могут быть определены внутри самого типа структуры .

CREATE  TABLE  Student_Table  ИЗ  Student_Type  (  matriculation_number  ПЕРВИЧНЫЙ  КЛЮЧ ,  CONSTRAINT  person_title_not_null_constraint  НЕ  NULL  ( person_title ), );

Каждый тип настраиваемой структуры может также содержать другие типы для поддержки более сложных структур:

CREATE  TYPE  Address_Type  AS  OBJECT  (  address_street  VARCHAR2 ( 30 ),  address_city  VARCHAR2 ( 30 ), );CREATE  TYPE  университет  AS  OBJECT  (  university_name  VARCHAR2 ( 30 ),  university_address  Address_Type );

Дальнейшее чтение [ править ]

  • Джим Мелтон (2003). Продвинутый SQL: 1999 . Морган Кауфманн. ISBN 978-1-55860-677-7. Главы 2-4.
  • Сюзанна В. Дитрих; Сьюзан Д. Урбан (2011). Основы объектных баз данных: объектно-ориентированный и объектно-реляционный дизайн . Издатели Morgan & Claypool. ISBN 978-1-60845-476-1. Глава 3.
  • Катрин Рикардо (2011). Освещенные базы данных (2-е изд.). Издательство "Джонс и Бартлетт". ISBN 978-1-4496-0600-8. Глава 8.