Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Тип (шаблон) может быть, но только в целях вспомогательных (ну, типа :) что бы облегчить создания нового объекта).

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

Модифицируемым вручную - обязательно, самообучаемым - а где брать инфу для обучения ?
Сахават Юсифов
Основа классификации - пользовательские классификаторы и их комбинации.

Да, конечно.
Сахават Юсифов
А где есть?

Искал, не нашел, пришлось самому сделать. На реальной эксплуатации хорошо видны все подводные камни "объектного" подхода.
11 сен 07, 09:39    [4646738]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
MasterZiv
Лучше в сторону LISP.

Именно так - в лиспе все списки одного типа и, теоретически, разобрав сруктуру списка, можно динамически определить его тип. Но на практике всегда вводят метаописание типов и динамический разбор становится не нужен.
11 сен 07, 09:45    [4646781]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
nkulikov
Guest
Если автор не бредит, то ему скорее нужен не Smalltalk, а Self



Traditional class-based OO languages are based on a deep-rooted duality:

Classes define the basic qualities and behaviours of objects.
Object instances are particular manifestations of a class.
For example, suppose objects of the Vehicle class have a name and the ability to perform various actions, such as drive to work and deliver construction materials. Porsche 911 is a particular object (instance) of the class Vehicle, with the name "Porsche 911". In theory one can then send a message to Porsche 911, telling it to deliver construction materials.

This example shows one of the problems with this approach: Porsches are not able to carry and deliver construction materials (in any meaningful sense), but this is a capability that Vehicles are modelled to have. One way to create a more useful model is use subclassing to create specializations of Vehicle; for example Sports Car and Flatbed Truck. Only objects of the class Flatbed Truck need provide a mechanism to deliver construction materials; sports cars, which are ill suited to that sort of work, need only drive fast!

This issue is one of the motivating factors behind prototypes. Unless one can predict with certainty what qualities a set of objects and classes will have in the distant future, one cannot design a class hierarchy properly. All too often the program would eventually need added behaviours, and sections of the system would need to be re-designed (or refactored) to break out the objects in a different way.[citation needed] Experience with early OO languages like Smalltalk showed that this sort of issue came up again and again. Systems would tend to grow to a point and then become very rigid, as the basic classes deep below the programmer's code grew to be simply "wrong". Without some way to easily change the original class, serious problems could arise.[citation needed]

Dynamic languages such as Smalltalk allowed for this sort of change via well-known methods in the classes; by changing the class, the objects based on it would change their behaviour. But in other languages like C++ no such ability exists, and making such changes can actually break other code, a problem known as the fragile base class problem. In general, such changes had to be done very carefully, as other objects based on the same class might be expecting this "wrong" behavior: "wrong" is often dependent on the context.

In Self, and other prototype-based languages, the duality between classes and object instances is eliminated.

Instead of having an "instance" of an object that is based on some "class", in Self one makes a copy of an existing object, and changes it. So Porsche 911 would be created by making a copy of an existing "Vehicle" object, and then adding the drive very fast method. Basic objects that are used primarily to make copies are known as prototypes. This technique is claimed to greatly simplify dynamism. If an existing object (or set of objects) proves to be an inadequate model, a programmer may simply create a modified object with the correct behavior, and use that instead. Code which uses the existing objects is not changed.


11 сен 07, 12:18    [4648174]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод

Не простой это вопрос. В мумпсе и в лиспе нет типов, при этом структуру объектов (т.е. набор свойств) программист держит в голове. Явное метаописание структуры типа полезно, но проблемы возникают при его модификации - требуется реорганизация БД (правда не всегда).


Вот я и подумал, что метаинформация не первична. Не объект созадется по мета, а наоборот. Тогда не нужны реорганизации.

мод

Модифицируемым вручную - обязательно, самообучаемым - а где брать инфу для обучения ?


Допустим полльзователь ввел новое свойство. Допустим система создает отдельную таблицу - ИД, Свойство.
По ходу дела система на основании статистики объединяет новую таблицу с основной таблицей или нет.

мод

Искал, не нашел, пришлось самому сделать. На реальной эксплуатации хорошо видны все подводные камни "объектного" подхода.

Просто надо наверное не переборщить. Межобъектные отношения надо оставить как есть.
11 сен 07, 13:04    [4648625]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
nkulikov

...


Self c 94 никто не поддерживает.
11 сен 07, 13:05    [4648640]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Допустим полльзователь ввел новое свойство.

А куда ? При создании конкретного объекта плохо - остается одно - сначала добавить в метаописание, а потом создавать объект. Получается что метаописание вперед. По крайней мере у меня так.
Сахават Юсифов
Межобъектные отношения надо оставить как есть.

Таковых при ближайшем рассмотрении не обнаружено. Т.е. объект м.б. свойством другого объекта (1:n), а отношение n:m - это всегда новый объект (1:n, 1:m).
11 сен 07, 14:23    [4649407]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод
Сахават Юсифов
Допустим полльзователь ввел новое свойство.

А куда ? При создании конкретного объекта плохо - остается одно - сначала добавить в метаописание, а потом создавать объект. Получается что метаописание вперед. По крайней мере у меня так.
Сахават Юсифов
Межобъектные отношения надо оставить как есть.

Таковых при ближайшем рассмотрении не обнаружено. Т.е. объект м.б. свойством другого объекта (1:n), а отношение n:m - это всегда новый объект (1:n, 1:m).

Объекты - (ИД, {системные свойства})
Собственные свойства - (обектьИД,{свойства})
Приобретенные свойства - ({обектьИД},{свойства})
11 сен 07, 15:10    [4649886]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов

Объекты - (ИД, {системные свойства})
Собственные свойства - (обектьИД,{свойства})
Приобретенные свойства - ({обектьИД},{свойства})

Тогда уж так:
x=дать_системное_свойство(объектИД,имя_системного_свойства)
x=простое_свойство(объектИД)
x=свойство_список(объектИД).свойство_элемента_списка(ИДэлемента_списка) - причем вложенность м.б. любая ( обычная структура)
но это все св-ва одного объекта, никаких межобъектных отношений нет.
11 сен 07, 15:58    [4650318]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
nkulikov
Guest
Компашку которая разрабатывала Self промежду прочим купил примерно в 2003 году Sun. Чем сильно улучшил свой JIT.

Как мимнимум вы можете получить версию от SUN 2004 года

http://research.sun.com/spotlight/2004-05-24.self.html
11 сен 07, 16:16    [4650516]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
nkulikov
Компашку которая разрабатывала Self промежду прочим купил примерно в 2003 году Sun. Чем сильно улучшил свой JIT.

Как мимнимум вы можете получить версию от SUN 2004 года

http://research.sun.com/spotlight/2004-05-24.self.html

Попробую, спасибо. :)
12 сен 07, 00:11    [4653091]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод
Сахават Юсифов

Объекты - (ИД, {системные свойства})
Собственные свойства - (обектьИД,{свойства})
Приобретенные свойства - ({обектьИД},{свойства})

Тогда уж так:
x=дать_системное_свойство(объектИД,имя_системного_свойства)
x=простое_свойство(объектИД)
x=свойство_список(объектИД).свойство_элемента_списка(ИДэлемента_списка) - причем вложенность м.б. любая ( обычная структура)
но это все св-ва одного объекта, никаких межобъектных отношений нет.


Не, я имел ввиду "приобретенные" совместно и указал на множество {ОбъектИД} и их общие(пробретенные в любви :) множество свойств.
12 сен 07, 00:14    [4653097]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
Это и есть межобъектные отношения.
12 сен 07, 00:15    [4653102]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
Сахават Юсифов
nkulikov
Компашку которая разрабатывала Self промежду прочим купил примерно в 2003 году Sun. Чем сильно улучшил свой JIT.

Как мимнимум вы можете получить версию от SUN 2004 года

http://research.sun.com/spotlight/2004-05-24.self.html

Попробую, спасибо. :)

Там только МАС и SOLARIS
12 сен 07, 00:22    [4653116]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
тлгдшлщм
Guest
В принципе MaxOSX можно запустить на любом x86 c некоторыми ограничениями, а Self под эту платформу есть.
12 сен 07, 08:17    [4653348]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Это и есть межобъектные отношения.

Зачем вводить новое понятие, если понятие Свойство уже определено. Значением св-ва м.б. ИД другого объекта. То, что при этом возникает связь между объектами, так это побочный эффект (которым можно воспользоваться для навигации например).
12 сен 07, 09:31    [4653600]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Не, я имел ввиду "приобретенные" совместно и указал на множество {ОбъектИД} и их общие(пробретенные в любви :) множество свойств.

ПМСМ общих св-в не бывает, т.е. св-во всегда принадлежит одному объекту. Например, Количество применения ДСЕ1 в ДСЕ2 - это св-во объекта Применяемость, а не общее св-во ДСЕ1 и ДСЕ2.
12 сен 07, 09:43    [4653663]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод
Сахават Юсифов
Не, я имел ввиду "приобретенные" совместно и указал на множество {ОбъектИД} и их общие(пробретенные в любви :) множество свойств.

ПМСМ общих св-в не бывает, т.е. св-во всегда принадлежит одному объекту. Например, Количество применения ДСЕ1 в ДСЕ2 - это св-во объекта Применяемость, а не общее св-во ДСЕ1 и ДСЕ2.

Ну, я не наставиваю на названиях и т.д.. Просто я думаю, для того, что бы появилось свойство "применяемость", надо что бы были оба объекта в наличии и воля пользователя. Я для себя такие свойства называю свойствами приобретенными через связи (отношения) объектов. А у Вас получается, что эти свойства должны (или может) быть описаны для одного из объектов заранее. Т.е., опять "классы", а не объекты с динамическими свойствами и связями. Я думаю, что связи суть "ленивые", и не надо их описывать заранее.
12 сен 07, 18:35    [4658951]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
тлгдшлщм
В принципе MaxOSX можно запустить на любом x86 c некоторыми ограничениями, а Self под эту платформу есть.

Ну, я же прогу для продажи (полузаказная :) ) пишу, а не исседователь. Я даже от SQLServer не могу отойти, не то чтоб MaxOS запустить на клиенте.
12 сен 07, 18:39    [4658981]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
Сахават Юсифов

:) Возможно, что MS движется в "этом" направлении - .NET FW 3.0, Dependency Properties (в частности, Attached Properties)
13 сен 07, 01:14    [4660000]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Т.е., опять "классы", а не объекты с динамическими свойствами и связями.

Если каждый объект будет иметь свой собственный набор св-в, то это полное отсутствие типизации, т.е. хаос. Я придерживаюсь статической типизации, т.е. каждый объект имеет тип и все объекты одного типа один набор св-в. При этом сам тип может модифицироваться.
Сахават Юсифов
Я думаю, что связи суть "ленивые", и не надо их описывать заранее.

Это возможно только при отсутсвии типизации.
Такой пример: тип Договор имел св-во Поставщик типа строка, потом появился тип Поставщик и в типе Договор св-во Поставщик изменилось на ссылку на объект типа Поставщик. В результате появилась связь Договор->Поставщик.
13 сен 07, 09:35    [4660383]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод
Сахават Юсифов
Т.е., опять "классы", а не объекты с динамическими свойствами и связями.

Если каждый объект будет иметь свой собственный набор св-в, то это полное отсутствие типизации, т.е. хаос.


А зачем нужен тип? ( Я вижу только одно достоинство, предложить пользователю заранее сформированный набор свойств для конструирования нового объекта, т.е. облечить жизнь при воде). Но, для этого эсть необъязательные шаблоны (избыточны (можно выбрать определенные свойства) или наоборот (добавить на ходу пару свойств)) (назвать это типом или классом рука не поднимается).

мод
Я придерживаюсь статической типизации, т.е. каждый объект имеет тип и все объекты одного типа один набор св-в. При этом сам тип может модифицироваться.


Ну, посмотрите. Допустим, "Лом" относится к типу "Инструмент". Но, я уверен, что "Лом гнутый" туда уже не попадает или попадает, но не отражает важное свойство объекта. Для того, что бы отразить все нужные свойства всех объектов приходится либо расширять тип до безобразия, либо создавать новые типы-наследники.


Сахават Юсифов
Я думаю, что связи суть "ленивые", и не надо их описывать заранее.

Это возможно только при отсутсвии типизации.
Такой пример: тип Договор имел св-во Поставщик типа строка, потом появился тип Поставщик и в типе Договор св-во Поставщик изменилось на ссылку на объект типа Поставщик. В результате появилась связь Договор->Поставщик.[/quot]

И это хорошо. :)
13 сен 07, 09:54    [4660491]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
А зачем нужен тип?

В принципе можно жить вообще без типов (мумпс, лисп, питон, клиппер), но ...
Пусть есть коллекция разных объектов. Если тип можно определить, то понятно что с каждым объектом можно делать, если типов нет, то придется анализировать св-ва, причем имена этих
св-в неизвестны. Т.е. черная кошка в темной комнате.
Сахават Юсифов
добавить на ходу пару свойств

Вот вот - и потом никто и никогда не обнаружит, что у этого оригинального объекта есть пара нестандартных св-в. В этом и проблема.
Сахават Юсифов
Для того, что бы отразить все нужные свойства всех объектов приходится либо расширять тип до безобразия, либо создавать новые типы-наследники.

Да, приходится, но это нормальный процесс модификации системы.
13 сен 07, 11:38    [4661293]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
Нам не о чем спорить.
Просто я думаю, что система может сама потихоночку классифицировать объекты. Тем более, что свойства выбираются из предопределенного домена свойств. А может и сам пользователь.
13 сен 07, 11:54    [4661435]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
мод
Guest
Сахават Юсифов
Просто я думаю, что система может сама потихоночку классифицировать объекты.

Это интересная тема, но нужны критерии близости - численные !.
Сахават Юсифов
Тем более, что свойства выбираются из предопределенного домена свойств.

А это не то же самое, что предопределнные типы ? Ведь общий список св-в придется как-то упорядочить.
Сахават Юсифов
А может и сам пользователь.

У меня новые типы ессно создает пользователь, но до того.
13 сен 07, 12:08    [4661555]     Ответить | Цитировать Сообщить модератору
 Re: ОБД  [new]
Сахават Юсифов
Member

Откуда: Орел
Сообщений: 3992
мод
Сахават Юсифов
Просто я думаю, что система может сама потихоночку классифицировать объекты.

Это интересная тема, но нужны критерии близости - численные !.


Близость по ИД свойств (можно задать и количество, что бы не плодить "маленькие" :) типы
Сахават Юсифов
Тем более, что свойства выбираются из предопределенного домена свойств.

А это не то же самое, что предопределнные типы ? Ведь общий список св-в придется как-то упорядочить.
[/quot]

Нет. Именно предопределенные (тоже пользователем) свойства. Объект из них собирается.
А ссылки на приобретенные свойства (и сами эти свойства) по другому (через коллекции).
Можно все сделать внешним (приобретенным), но тогда семантика :) слишком сложная получается. А так можно важные вещи предопределить и запретить (логику приложения).
13 сен 07, 12:17    [4661647]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить