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.