Re: Объектная модель данных

From: Dmitriy Igrishin <dmitigr(at)gmail(dot)com>
To: "Andrey N(dot) Oktyabrski" <ano(at)bestmx(dot)ru>
Cc: pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org>
Subject: Re: Объектная модель данных
Date: 2011-02-25 14:38:22
Message-ID: AANLkTinfDJaQLdfkBW-NahyR5bzwxb4LECGXAyZwMwuM@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

25 февраля 2011 г. 17:23 пользователь Andrey N. Oktyabrski
<ano(at)bestmx(dot)ru>написал:

> On 02/25/11 15:06, Dmitriy Igrishin wrote:
>
>> Пример:
>> create table A (id int, name text);
>> create table B (txt text) inherits A;
>>
>> select id, name from A;
>>
>> Выбраны все записи как из A, так и из B. Чего тут сложного-то?
>> Никаких чрезмерных усилий :-)
>>
>> Или это не о том?
>>
>> Пример является надуманным. Даже имена выбраны так, что понять
>> их предназначение невозможно.
>>
> Естественно, я не буду приводить тут примеры из реальных приложений. Они
> занимают слишком много места.
>
>
> На практике же, когда анализ предметной области выявляет концепции
>> проекта, следующим шагом после установления связей между ними,
>> является определение операций над этими концепциями. И если две
>> концепции связаны наследованием, то последнее не очень полезно
>> без полиморфизма.
>>
> И он есть, как показал мой надуманный пример. Как минимум, для операции
> select над концепциями A & B :-)
>
>
> Так вот определить полиморфные операции непосредственно в
>> PostgreSQL (в том же PL/pgSQL) невозможно. Возможно только
>> прилагая большую сообразительность и мастерство.
>>
> Не, мы всё-таки о разных вещах. Я о том, что операций над данными только
> четыре штуки - select, insert, update, delete.
>
>
> Что касается понятия наследования, реализованного в
>> PostgreSQL (INHERITANCE clause). Принимая в расчёт ограничения,
>> указанные в п. 5.8.1, я вообще не понимаю зачем этот функционал был
>> добавлен в PostgreSQL? Разве что только для выборки из всех таблиц,
>> олицетворяющих производные классы, через таблицу, представляющую
>> базовый класс (как в примере выше)? :-)
>>
> Почему только выборки? UPDATE/DELETE тоже.
>

SELECT - это не операция, присущая концепциям, а средство
выборки сущностей концепций (т.е. объектов классов) по определённым
условиям.
Операции манипуляции с данными не дают даже малейшего
представления о том, что можно сделать с проектными понятиями,
то есть они являются лишь конструкциями SQL для создания новых и
изменения существующих объектов.

--
// Dmitriy.

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Andrey N. Oktyabrski 2011-02-25 15:08:14 Re: Объектная модель данных
Previous Message Andrey N. Oktyabrski 2011-02-25 14:23:02 Re: Объектная модель данных