Другие SQL ОРСУБД предлагают другие
Другие SQL ОРСУБД предлагают другие конструкторы составных типов, например VARRAY или ARRAY вместо SET, и OBJECT вместо ROW. Конструкторы простых встроенных типов с ограничениями как CHAR(5) унаследованы от SQL2. Zigzag принимает вышеупомянутую таблицу без использования конструкторов типов, как ниже, через процедуру readTable (). Первая строка входных данных объявляет названия атрибутов. Имя "id" может быть опущено, а "student" обозначать и первичный ключевой атрибут и таблицу.
$readTable() < student; name:first; name:last; course st031 ; Jane ; Hunter ; Economy, Planning st072 ; Richard ; White ; Computers in Engineering >;
Наследование типа
Иерархия структурных комплексных данных предлагает дополнительное свойство, наследование типа. То есть структурный тип может иметь подтипы, которые используют все его атрибуты и содержат дополнительные атрибуты, специфицированные в подтипе. Рассмотрим следующие данные:
employees
Name |
Salary |
Sylvia Karsen |
30000.00 |
programmers
Name |
Salary |
Language |
Project |
William Helprin |
40000.00 |
C++ |
Seestorm |
representatives
Name |
Salary |
Region |
Akiko Yokomoto |
50000.00 |
Asia |
Типы данных формируют иерархию изображенную ниже.
Employee(Name,Salary) / \ Programmer(Language,Project) Representative(Region)
SQL представление
Для создания базы данных воспользуемся преимуществами Oracle SQL ().
CREATE TYPE Employee AS OBJECT ( Name VARCHAR2(20), Salary NUMBER(6,2) ) NOT FINAL; CREATE TYPE Programmer UNDER Employee ( Language VARCHAR2(12), Project VARCHAR2(30) ); CREATE TYPE Representative UNDER Employee ( Region VARCHAR2(30) ); CREATE TABLE employees OF Employee; CREATE TABLE programmers OF Programmer; CREATE TABLE representatives OF Representative; INSERT INTO employees VALUES (Employee('Sylvia Karsen', 30000.00)); INSERT INTO programmers VALUES (Programmer('William Helprin', 40000.00, 'C++', 'Seestorm')); INSERT INTO representatives VALUES (Representative('Akiko Yokomoto', 50000.00, 'Asia'));
Содержание Назад Вперед