Главная страница


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Victor Metelitsa                     2:5020/400     23 Jan 2002  13:09:25
 To : Serguei Tarassov
 Subject : Re: Проблемы persistent layers
 -------------------------------------------------------------------------------- 
 
 
 Serguei Tarassov wrote:
 [...]
 Попробуй почитать вот это - вдруг понравится?
 
 http://cssc.tat.ru/toplink/TLS_Reference.pdf (7 мегов)
 Это руководство по TOPLink for Smalltalk.
 Serguei Tarassov wrote:
 [...]
 
 > PL работает примерно по такому алгоритму:
 > 1. Разбор запроса
 
 Для TOPLink'а/S: Специальный язык запросов не нужен. Пишется _обыкновенный_ блок
 кода на Smalltalk'е. Его (блок кода) можно выполнять и на клиенте; но TOPLink
 декомпилирует (!) его. Декомпиляция проводится хитрым (но обычным для
 Smalltalk'а любого диалекта) способом. Поскольку в Smalltalk'е есть объекты и
 ничего, кроме объектов, и любому объекту можно послать любое сообщение, и если
 нет метода с соответствующим селектором, то сообщение передается методу
 #doesNotUnderstand:. Таким образом, мы подсовываем блоку в качестве аргумента
 объект, который "ничего не понимаем", и трассируем выполнение.
 
 > 2. Определение (непонятно как) с каких коллекций объектов надо начинать
 > фильтрацию выборки.
 Для TOPLink'а/S: ты создаешь описатель запроса, в котором указываешь 
 класс и условия выборки. После исполнения получаешь на клиенте коллекцию 
 объектов этого класса (или объектов подклассов этого класса).
 > 3. Инициализация этой коллекции
 > 4. Вызов методов для объектов коллекции и отсеивание не подходящих по
 > условию.
 Для TOPLink'а/S: не так. Во-первых, мы знаем класс, а в TOPLink-системе 
 должен существовать объект-сеанс с дескрипторами классов, а дескриптор 
 знает, в каких таблицах экземпляр класса хранится, каким полям атрибуты 
 соответствуют и т.д. Во-вторых, мы разобрали блок кода. Из этого 
 собирается SQL-запрос.
 
 Hапример, мы имеем класс TEmployee с атрибутом firstName. Мы имеем в 
 базе данных таблицу EMPLOYEE с атрибутом FNAME. Мы создали дескриптор, в 
 котором сказали, что классу TEmployee соответствует таблица EMPLOYEE, а 
 атрибут firstName - в поле EMPLOYEE.FNAME.
 
 Если бы мы работали с "родной" Smalltalk-коллекцией, выборка всех 
 Денисов выглядела бы как
 
 someCollection select: [:eachEmployee | eachEmployee firstName = 'Dennis'].
 
 Здесь someCollection - это переменная, указывающая на коллекцию,
 select: - селектор сообщения, посылаемого коллекции,
 
 [:eachEmployee | eachEmployee firstName = 'Dennis'] - блок кода.
 :eachEmployee - описание параметра
 после вертикальной черты идет выражение; на Java оно выглядело бы как
 eachEmployee.firstName().equals('Dennis')
 
 В этом примере блок кода выполняется для каждого элемента 
 someCollection, и если блок возвращает true, то элемент добавляется к 
 результату.
 
 Когда мы работаем с persistent-коллекцией, это выглядит так:
 someSesssion
    readAllFor: TEmployee
    where: [:eachEmployee | eachEmployee firstName = 'Dennis'].
 
 и запрос транслируется в
 SELECT какие-то поля
 FROM EMPLOYEE T1
 WHERE T1.FNAME = 'Dennis'
 
 Строки, считанные из базы, превращаются в объекты. Hикакого FULLSCAN нет.
 
 Тут есть еще масса интереснейших подробностей (поддержка идентичности, к 
 примеру; если мы выполним запрос второй раз, будут ли считаны те же 
 объекты или их копии?), я их опущу.
 > 5. Если есть другие коллекции, то переход к п.3.
 > Тут, конечно, возможны варианты, но в любом случае аналог в РСУБД всегда
 > выглядел бы как FULL SCAN по всем таблицам, участвующим в запросе.
 > 
 > select
 >   Сотрудник_Collection
 > where
 >   Сотрудник.ОтработаноЧасов() < 40 and
 >   Сотрудник.Зарплата.Размер(текущий_месяц()) >=
 > Сотрудник.Зарплата.Размер(текущий_месяц() - 1) and
 >   Сотрудник.Контракт.Длительность() < Сотрудник.Проекты.СрокОкончания() and
 >   Сотрудник.Проекты.Участники.Количество() > 1
 > 
 > Проблемы уровня PL:
 > 1. Оптимизация методов практически невозможна
 > 2. Для вызова метода требуется сначал инициализировать объект
 > 
 > А вот простенький пример. Имеем некий запрос на выборку коллекции объектов и
 > правила проверки прав доступа. В результате должны остаться только те
 > объекты, на которые есть права доступа у текущего пользователя (считаем его
 > однозначно идентифицируемым данной сессией).
 > Имеем persistent layer (PL) и его клиент-приложение (APP). Это вовсе не
 > обязательно конечное клиентское приложение, а может быть приложением на
 > AppServer или сервером CORBA.
 > 1. От APP на PL приходит запрос на выборку коллекции объектов.
 > 2. PL выполняет запрос и возвращает все объекты в APP
 > 3. APP выполняет для каждого объекта правило, определяющеее видимость
 > объекта данным пользователем и отсеивает все недоступные для данного
 > пользователя объекты
 > 4. Готово
 > 
 > По моим представлениям, такой сценарий требует недопустимо больших временных
 > затрат даже при наличии всех трех подсистем (хранилища, PL и APP) на одной
 > ЭВМ. А главный интерес-то в данном подходе в том, чтобы масштабировать
 > решение, размещая подсистемы на узлах в сети.
 По-моему, тут есть два подхода.
 
 Первый из них утверждает, что реляционная СУБД "существует". Тогда 
 проверка делается во VIEW (или хранимой процедуре, если СУБД не 
 позволяет), обращение идет через VIEW/SP.
 
 Второй утверждает, что никакой реляционной СУБД "нет". Мы уславливаемся 
 считать, что PL+APP - это и есть СУБД (а реляционка, которая 
 используется для хранения, мысленно низводится до уровня "умной дисковой 
 подсистемы"). Все данные (объекты) по возможности загружены в 
 оперативную память. Мне этот подход кажется наиболее симпатичным (пускай 
 и требует много оперативки, и не всегда применим).
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Проблемы persistent layers   Serguei Tarassov   19 Jan 2002 01:20:36 
 Re: Проблемы persistent layers   Vladimir Pavlikov   20 Jan 2002 04:40:40 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   20 Jan 2002 18:16:01 
 Re: Проблемы persistent layers   Serguei Tarassov   20 Jan 2002 20:18:16 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   20 Jan 2002 20:55:07 
 Re: Проблемы persistent layers   Serguei Tarassov   21 Jan 2002 03:48:15 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   21 Jan 2002 09:57:25 
 Re: Проблемы persistent layers   Ilya Zvyagin   22 Jan 2002 14:11:10 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   23 Jan 2002 10:12:50 
 Re: Проблемы persistent layers   Ilya Zvyagin   23 Jan 2002 17:29:07 
 Re: Проблемы persistent layers   Victor Metelitsa   23 Jan 2002 18:36:57 
 Re: Проблемы persistent layers   Ilya Zvyagin   23 Jan 2002 20:29:40 
 Re: Проблемы persistent layers   Victor Metelitsa   24 Jan 2002 15:44:28 
 Re: Проблемы persistent layers   Vladimir Pavlikov   24 Jan 2002 16:55:36 
 Re: Проблемы persistent layers   Victor Metelitsa   24 Jan 2002 17:07:55 
 Re: Проблемы persistent layers   Vladimir Pavlikov   24 Jan 2002 19:13:27 
 Re: Проблемы persistent layers   Victor Metelitsa   29 Jan 2002 11:29:02 
 Re: Проблемы persistent layers   Vladimir Pavlikov   29 Jan 2002 15:41:38 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   29 Jan 2002 18:29:58 
 Re: Проблемы persistent layers   Vladimir Pavlikov   29 Jan 2002 19:04:53 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   29 Jan 2002 19:38:01 
 Re: Проблемы persistent layers   Vladimir Pavlikov   29 Jan 2002 20:29:35 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   29 Jan 2002 21:25:07 
 Re: Проблемы persistent layers   Vladimir Pavlikov   31 Jan 2002 03:43:01 
 Re: Проблемы persistent layers   Serguei Tarassov   29 Jan 2002 23:53:16 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   30 Jan 2002 01:05:06 
 Re: Проблемы persistent layers   Serguei Tarassov   30 Jan 2002 01:25:47 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   30 Jan 2002 02:02:35 
 Re: Проблемы persistent layers   Serguei Tarassov   31 Jan 2002 00:05:44 
 Re[2]: Проблемы persistent layers   Belugin Max   30 Jan 2002 12:17:41 
 Re: Проблемы persistent layers   Serguei Tarassov   31 Jan 2002 00:01:36 
 Re[2]: Проблемы persistent layers   Belugin Max   31 Jan 2002 10:27:15 
 Re: Проблемы persistent layers   Serguei Tarassov   01 Feb 2002 00:53:23 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 13:28:54 
 Re: Проблемы persistent layers   Tolik Tentser   29 Jan 2002 20:15:11 
 Re: Проблемы persistent layers   Vladimir Pavlikov   29 Jan 2002 20:29:35 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 15:15:54 
 Re: Проблемы persistent layers   Tolik Tentser   02 Feb 2002 11:55:18 
 Re: Проблемы persistent layers   Vladimir Pavlikov   01 Feb 2002 18:26:23 
 Проблемы persistent layers   oleg taranov   02 Feb 2002 14:56:38 
 Re: Проблемы persistent layers   Vladimir Pavlikov   03 Feb 2002 04:11:03 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   03 Feb 2002 11:56:42 
 Re: Проблемы persistent layers   Vladimir Pavlikov   04 Feb 2002 20:03:12 
 Проблемы persistent layers   Serge Sapozhnikov   05 Feb 2002 00:20:37 
 Re: Проблемы persistent layers   Vladimir Pavlikov   05 Feb 2002 16:26:24 
 Проблемы persistent layers   oleg taranov   03 Feb 2002 15:29:27 
 Re: Проблемы persistent layers   Vladimir Pavlikov   05 Feb 2002 16:24:21 
 Проблемы persistent layers   oleg taranov   07 Feb 2002 02:48:53 
 Re: Проблемы persistent layers   Vladimir Pavlikov   08 Feb 2002 20:28:38 
 Проблемы persistent layers   oleg taranov   08 Feb 2002 23:31:46 
 Re: Проблемы persistent layers   Vladimir Pavlikov   10 Feb 2002 06:15:17 
 Проблемы persistent layers   oleg taranov   10 Feb 2002 13:12:23 
 Re: Проблемы persistent layers   Vladimir Pavlikov   11 Feb 2002 04:07:10 
 Проблемы persistent layers   oleg taranov   12 Feb 2002 20:27:22 
 Re: Проблемы persistent layers   Vladimir Pavlikov   13 Feb 2002 22:41:31 
 Проблемы persistent layers   oleg taranov   14 Feb 2002 21:35:43 
 Re: Проблемы persistent layers   Vladimir Pavlikov   15 Feb 2002 19:46:39 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   11 Feb 2002 12:29:37 
 Re: Проблемы persistent layers   Vladimir Pavlikov   11 Feb 2002 16:45:48 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   23 Jan 2002 18:53:20 
 Re: Проблемы persistent layers   Ilya Zvyagin   23 Jan 2002 20:31:42 
 Re: Проблемы persistent layers   Victor Metelitsa   24 Jan 2002 15:50:39 
 Re: Проблемы persistent layers   Ilya Zvyagin   24 Jan 2002 22:09:44 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   25 Jan 2002 13:09:47 
 Re: Проблемы persistent layers   Victor Metelitsa   29 Jan 2002 11:49:40 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   29 Jan 2002 12:24:40 
 Re: Проблемы persistent layers   Serguei Tarassov   29 Jan 2002 23:47:08 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 14:03:56 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   24 Jan 2002 16:59:44 
 Re: Проблемы persistent layers   Ilya Zvyagin   24 Jan 2002 22:11:49 
 Re: Проблемы persistent layers   Vladimir Pavlikov   21 Jan 2002 16:01:32 
 Re: Проблемы persistent layers   Eugene Karataev   21 Jan 2002 13:35:41 
 Re: Проблемы persistent layers   Ilya Zvyagin   22 Jan 2002 19:50:17 
 Re: Проблемы persistent layers   Serguei Tarassov   23 Jan 2002 01:44:12 
 Re: Проблемы persistent layers   Victor Metelitsa   23 Jan 2002 13:09:25 
 Re: Проблемы persistent layers   Ilya Zvyagin   23 Jan 2002 17:55:51 
 Re: Проблемы persistent layers   Victor Metelitsa   23 Jan 2002 18:45:08 
 Re: Проблемы persistent layers   Ilya Zvyagin   23 Jan 2002 17:22:58 
 Re: Проблемы persistent layers   Serguei Tarassov   27 Jan 2002 15:55:10 
 Re: Проблемы persistent layers   Ilya Zvyagin   28 Jan 2002 11:58:03 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   28 Jan 2002 16:37:34 
 Re: Проблемы persistent layers   Ilya Zvyagin   28 Jan 2002 19:21:48 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   28 Jan 2002 20:04:52 
 Re: Проблемы persistent layers   Ilya Zvyagin   28 Jan 2002 22:59:37 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   28 Jan 2002 23:09:53 
 Re: Проблемы persistent layers   Dmitry V. Liseev   30 Jan 2002 22:16:49 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   31 Jan 2002 09:58:26 
 Hа: Проблемы persistent layers    Sergey Pratch   29 Jan 2002 00:15:50 
 Re: Проблемы persistent layers   Ilya Zvyagin   29 Jan 2002 18:07:27 
 Re: Проблемы persistent layers   Victor Metelitsa   29 Jan 2002 13:13:52 
 Проблемы persistent layers   Michael Demichev   29 Jan 2002 22:21:58 
 Re: Проблемы persistent layers   Victor Metelitsa   02 Feb 2002 03:46:57 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   29 Jan 2002 15:27:19 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 12:04:18 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   01 Feb 2002 12:22:51 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 14:49:13 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   01 Feb 2002 16:53:54 
 Re: Проблемы persistent layers   Dmitry V. Liseev   02 Feb 2002 00:19:26 
 Re: Проблемы persistent layers   Vladimir Pavlikov   02 Feb 2002 04:32:16 
 Re: Проблемы persistent layers   Dmitry V. Liseev   06 Feb 2002 19:40:49 
 Re: Проблемы persistent layers   Ilya Zvyagin   07 Feb 2002 21:59:33 
 Re: Проблемы persistent layers   Vladimir Pavlikov   07 Feb 2002 18:25:33 
 Re: Пpоблемы persistent layers   Pavel Zhdanovich   07 Feb 2002 23:57:04 
 Re: Пpоблемы persistent layers   Ilya Zvyagin   08 Feb 2002 20:12:05 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   02 Feb 2002 14:38:28 
 Re: Проблемы persistent layers   Vladimir Pavlikov   03 Feb 2002 04:11:03 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   03 Feb 2002 11:56:41 
 Re: Проблемы persistent layers   Vladimir Pavlikov   04 Feb 2002 20:03:12 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   04 Feb 2002 22:37:22 
 Re: Проблемы persistent layers   Vladimir Pavlikov   05 Feb 2002 16:26:23 
 Проблемы persistent layers   Roman Dawydkin   05 Feb 2002 19:03:52 
 Re: Проблемы persistent layers   Vladimir Pavlikov   06 Feb 2002 19:45:01 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   06 Feb 2002 21:04:58 
 Re: Проблемы persistent layers   Vladimir Pavlikov   07 Feb 2002 18:25:33 
 Re: Проблемы persistent layers   Tolik Tentser   02 Feb 2002 11:59:22 
 Re: Проблемы persistent layers   Victor Metelitsa   01 Feb 2002 18:05:53 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   01 Feb 2002 19:21:43 
 Re: Проблемы persistent layers   Vladimir Pavlikov   01 Feb 2002 18:26:23 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   01 Feb 2002 19:21:44 
 Re: Проблемы persistent layers   Vladimir Pavlikov   02 Feb 2002 04:32:16 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   02 Feb 2002 14:38:28 
 Re: Проблемы persistent layers   Vladimir Pavlikov   03 Feb 2002 04:11:03 
 Re: Проблемы persistent layers   Andrei N.Sobchuck   03 Feb 2002 11:56:41 
Архивное /su.dbms/536427976242.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional