Структурированный тип - Structured type
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),
)
NOT FINAL;
Такой тип структуры затем можно использовать для создания таблицы, которая также будет содержать все столбцы, определенные в Person_Type :
CREATE TABLE Person_Table OF Person_Type;
Типы настраиваемых структур поддерживают наследование, что означает, что можно создать другой тип, унаследованный от предыдущего. NOT FINAL
Однако оператор должен быть включен в определение типа базовой структуры , чтобы можно было создавать любые другие подтипы.
CREATE TYPE Student_Type UNDER Person_Type (
matriculation_number NUMBER(10)
);
Затем Student_Type можно использовать для создания Student_Table, который также будет включать все столбцы, определенные в Person_Type . Первичный ключ и ограничения должны быть определены во время или после создания таблицы и не могут быть определены внутри самого типа структуры .
CREATE TABLE Student_Table OF Student_Type (
matriculation_number PRIMARY KEY,
CONSTRAINT person_title_not_null_constraint NOT NULL (person_title),
);
Каждый тип настраиваемой структуры может также содержать другие типы для поддержки более сложных структур:
CREATE TYPE Address_Type AS OBJECT (
address_street VARCHAR2(30),
address_city VARCHAR2(30),
);
CREATE TYPE University 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-е изд.). Jones & Bartlett Publishers. ISBN 978-1-4496-0600-8 . Глава 8.