Правильно заполненные таблицы в объектно-реляционной базе данных - PullRequest
0 голосов
/ 14 июня 2010

У меня есть домашнее задание, которое требует использования Oracle 10g Express для реализации базы данных Object Relational для отслеживания данных телефонных счетов. У меня есть суперкласс Communications с подклассами Call, Text и Data. Я столкнулся с проблемой правильного заполнения этих таблиц, чтобы найти соответствующие данные в различных таблицах.

Мои типы и таблицы объявлены так:

create type CommunicationType as object (
  -- column names here
) not final;
create type CallType under CommunicationType (
  -- column names here
);
create type TextType under CommunicationType (
  -- column names here
);
create type DataType under CommunicationType (
  -- column names here
);
create table Communications of CommunicationType (
  -- Primary and Foreign key constraints here
);
create table Calls of CallType;
create table Texts of TextType;
create table Datas of DataType;

Когда я пытаюсь insert данных в один из подклассов, их запись не появляется в суперклассе. Аналогично, если я insert в суперкласс, он не отображается в соответствующем подклассе. Например, insert into Calls values (CallType( -- Values -- )); не показывает никаких данных в сообщениях. insert into Communications values (CallType( -- Values -- )); также ничего не показывает в Calls.

Что я делаю не так?

1 Ответ

1 голос
/ 15 июня 2010

Вы создали четыре отдельные таблицы.Если вы вставляете строку в одну таблицу, нет никаких оснований ожидать, что ваша строка появится в другой таблице.

Ваши таблицы, основанные на CallType, TextType и DataType, наследуют свою структуру и поведение отCommunicationType, но это не значит, что данные реплицируются.Я подозреваю, что вам, вероятно, вообще не нужна таблица Communications.

<в сторону> Лично, если я использую базу данных Oracle, я бы отказался от использования типов объектов полностью ипросто смоделируйте вещь, используя чисто реляционную модель, но это, вероятно, только я - и это вам не сильно поможет, поскольку ваш учитель, похоже, ожидает, что вы реализуете базу данных «объектно-реляционная» ...:)

...