Loading article…
SQL :1999標準では、 SQLに多数のオブジェクトリレーショナルデータベース機能が導入されました。その主なものは、通常単に構造化型と呼ばれる構造化ユーザー定義型です。これらは、プレーン SQL を使用して定義することも、 SQL/JRT を介して Java でも定義できます。SQL 構造化型では、単一継承が可能です。
CREATE TYPE
構造化型は、Oracle Database、IBM Db2、PostgreSQL、Microsoft SQL Serverでさまざまな程度にサポートされていますが、後者ではCLRで定義された構造化型のみが許可されます。
SQLの例
オブジェクト構造型
Oracle Database を使用してカスタム構造型を定義するには、次のような文を使用できます。
CREATE TYPE Person_Type AS OBJECT ( person_title VARCHAR2 ( 10 )、person_first_name VARCHAR2 ( 20 )、person_last_name VARCHAR2 ( 20 )、) NOT FINAL ;
このような構造型を使用して、 Person_Typeで定義されたすべての列も保持するテーブルを作成できます。
Person_TypeのテーブルPerson_Tableを作成します。
カスタム構造型は継承をサポートしているため、以前の型から継承する別の型を作成できます。NOT FINALただし、他のサブタイプを作成できるようにするには、基本構造型定義にステートメントを含める必要があります。
Person_Type (入学番号NUMBER ( 10 ) )の下にStudent_Type というタイプを作成します。
Student_Type は、 Person_Typeで定義されたすべての列も含むStudent_Tableを作成するために使用できます。主キーと制約は、テーブルの作成中または作成後に定義する必要があり、構造型自体の中で定義することはできません。
Student_TypeのStudent_Tableテーブルを作成します( matriculation_numberが主キー、制約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 (大学名VARCHAR2 ( 30 ),大学アドレス アドレスタイプ);
さらに読む
- ジム・メルトン (2003)。『Advanced SQL: 1999』。モーガン・カウフマン。ISBN 978-1-55860-677-7。第2章~第4章。
- Suzanne W. Dietrich、Susan D. Urban (2011)。『オブジェクトデータベースの基礎:オブジェクト指向とオブジェクトリレーショナル設計』。Morgan & Claypool Publishers。ISBN 978-1-60845-476-1。第3章。
- キャサリン・リカルド (2011)。データベース・イルミネイテッド(第 2 版)。ジョーンズ & バートレット パブリッシャーズ。ISBN 978-1-4496-0600-8。第8章。
