Наследование и реляционная модель

6yrop

Приведите пример наследования, который не укладывается в реляционную модель. Желательно простой и ясный пример.

Marikun

Гм, у нас в курсе по UML был как раз пунктик о том, как наложить наследование на реляционную модель. Никаких ограничений этому там вроде не было.

6yrop

ну не знаю, вроде везде пишут, что у реляционки проблемы с наследованием

Dasar

На реляционку плохо ложится скорее полиморфизм, а не наследование.
ps
Но как только появляется наследования, то почти всегда сразу автоматом появляется полиморфизм.
pps
Пример:
Библиотека.
В библиотеке хранятся книги, газеты, журналы.
Эти книги, газеты, журналы наследуются от того-что-хранится, от того-что-можно-выдать-клиентам, от того-что-может-искать-клиент и т.д.
Как это, нормально, положить на реляционку?

6yrop

Dasar

Т.е. название у тебя хранится в двух местах?
Как выглядит карточка клиента?
как выглядит запрос, который выводит в читабельном виде, что именно взял клиент?
Как хранится в базе: журнал огонек за январь 2003, и компьютерра за вторую неделю 2004?

Dasar

Как хранится книга у которой несколько авторов?

6yrop

Т.е. название у тебя хранится в двух местах?
так же как любая связь PK->FK
Как выглядит карточка клиента?
как нарисуют дизайнеры так и будет выглядеть
как выглядит запрос, который выводит в читабельном виде, что именно взял клиент?
уточни вопрос

6yrop

Как хранится книга у которой несколько авторов?
как обычно, если нужно, то еще одна табличка для связи многие ко многим, если не нужно, то как строка с авторами

Dasar

>> Как выглядит карточка клиента?
>как нарисуют дизайнеры так и будет выглядеть
Какие нахрен дизайнеры?
Как хранится в базе карточка клиента (т.е. что именно он взял)?
>> как выглядит запрос, который выводит в читабельном виде, что именно взял клиент?
>уточни вопрос
как выглядит запрос, который выводит в читабельном виде, что именно взял клиент?
читабельный вид - это такой вид, по которому понятно, что именно взял клиент без обращения к другим таблицам.
например, как получить такой вид (если клиент взял две книжки и два журнала)
Русские народные сказки
Мария Дяченко, Сергей Дяченко, Ритуал
Огонек, 2003, январь
Компьютерра, 2004, 2

Dasar

ок, считаем, что нужно.

Dasar

Каким образом обеспечивается целостность базы?
т.е. как обеспечивается, что если есть запись в таблице ТоЧтоХранится, то она обязательно есть, или в таблице Книга, или в таблице Журнал?

bastii

Не знаю какие там проблемы с наследованием, думаю суть не в наследовании.
В объектной модели данных суперклассы содержать все объекты своих подклассов. С учетом этого, и того что захочется иметь полиморфизм, получается сложно (эффективно) реализовать на реляционной модели данных.
Оставить комментарий
Имя или ник:
Комментарий: