|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Я здесь давеча обещал статью, в которой даю формальное обоснование сабжа. Обещанное можно посмотреть здесь . Быстрой реакции не жду, но что-нить умное :) услышать хотелось бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2003, 14:51 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Наверное это надо было в "проектировании... " обсуждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2003, 14:57 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
В ссылке оказалось два лищних слэша в конце. Откуда они взялись, ума не приложу. Номальная ссылка здесь . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2003, 15:01 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Та-а-а-к, тут что-то интересное. Надо почитать... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 16:05 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"формальное обоснование сабжа" Читать лень. Ты лучше объясни что значит формально обосновани. Если под этим понимаеться построение теоретико-множественной модели сабджа, то это просто описание и не более. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 16:17 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Ну что же сделать - лень так лень. Мне тоже иногда лень писать бывает (особенно когда написанное "читать лень"). Что бы понять о чем речь можно прочитать начало, вместе с оглавлением, и заключение. Может понятней станет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 18:23 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
мда ... чо за ахинея ? сломался на введении ... ОЗУ ... бля :) а если на флаше ? Для доступа к данным реляционные системы используют непроцедурный высокоуровневой язык, реализующий ненавигационный доступ к данным реляционная модель языками не владеет ... фокс 2.0 - процедурный язык, реляционная модель. Используемые в настоящее время СУБД представляют собой результат развития средств управления внешними запоминающими устройствами no coments :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 18:52 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Существуют ОС, позволяющие при выключении компьютера сохранить на диске полный образ ОЗУ Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде Существующая реляционная модель данных не нуждается в каких-либо изменениях или дополнения. ^^^ так и просится (C) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 18:59 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene нужно мнение человека которому можно доверять. я пытался сказать, что слова "формальное обоснование сабжа" настораживают и скорее всего там ахинея. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 19:17 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
А по-моему, пока не почитаешь как следует, невозможно определить, ахинея это или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 19:25 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 wara . Может ты прочтешь и выскажешь свое мнение? обрати плиз внимание на модель которая там вводиться. И какие свойства этой модели исследуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 19:49 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Анализируются свойства системы, основанной на предлагаемом подходе" Скажи всем потом, что за свойства такие ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 19:52 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Напомню свойства формальных систем. Свойства формальных систем: непротиворечивость, полнота, разрешимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2003, 20:07 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 all Людям сломавшимся на введении отвечать не буду :) 2 Gt_ Ну коль ты дошел до "Из теории реляционных БД известно,..." то ты уже вышел из введения и я тебе попытаюсь ответить. 0) употребляя термин ОЗУ я оговариваюсь, что это не более чем метафора, которую я считаю удачной. А насчет фл э ша - интерсный вопрос. ИМХО развитие инф. систем - крайне эволюционный процесс и неясно, что было бы сейчас с СУБД, если скажем в 60-х резко развилась какая-нибудь магнито-ферритовая память, которая, подобно. фл э ш, позволяет хранить данные постоянно. 1) Для доступа к данным реляционные системы используют непроцедурный высокоуровневой язык, реализующий ненавигационный доступ к данным. Модель языками не владеет - это точно. Модель владеет операциями (если не ошибаюсь, то модель данных по Кодду - это множество типов + множество операций + множество ограничений). И ненавигационный язык высокого уровня - это язык, который эти операции реализует. Например SQL - реляционно полный язык, поскольку он реализует основные операции реляционной алгебры. 2) Используемые в настоящее время СУБД представляют собой результат развития средств управления внешними запоминающими устройствами Я даю ссылку на очень хорошую (хотя и достаточно старую) книгу "Дж.Мартин. Организация баз данных в вычислительных системах. Изд. 2-е 1980 Мир (Москва)". Там этот процесс (системы управления ВЗУ - файловые системы как средство позволяющее реализовать независимоть данных от физических устросйв - БД как совместно используемая совокупность файлов - СУБД как средство позволяющее реализовать принцип логической независимости данных) достаточно подробно рассматривается. Так что NO CO MM ENTS - это, в основном, к "Дж. Мартин"у. Я просто все это в одной фразе уместил. 3) Существуют ОС, позволяющие при выключении компьютера сохранить на диске полный образ ОЗУ Разве не существует? У меня на ноутбуке такая стоит... 4) Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде ....Даже ссылки есть :) 5) Существующая реляционная модель данных не нуждается в каких-либо изменениях или дополнения. И это правильно!.... 2 Жучило Есть такая очень цитируемая работа "Манифест баз данных третьего поколения". Там определяется набор свойств, которыми должны обладать эти самые информационные системы.Так вот - я пытаюсь показать, что основные из перечисленных свойств можно достичь, оставаясь в рамках реляционной модели данных (другими словами, формально это по-прежнему реляционная система). В результате получается система (не формальная алгебраическая система, а информационная система) котрая оставаясь реляционно-полной, является в тоже время объектно-ориентированной. И вообще - чем вопросы в воздух задавать, лучше прочитали бы, что-ли. А то, отвечая на эти вопросы, я в конце концов перескажу все по второму разу. :) На самом деле идея очень простая. Ну очень простая. И то, что предложеный подход будет работать - в этом я абсолютно уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 00:18 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
мда ... помню я пытался поспорить с foxpro монстром :) неудалось ... он как привязался к PC платформе и досу ... и тоже все на книжки 60-х ссылался. нечитайте советскую пресу до обеда: файловая система никак (!) не связана с хранением на устройствах, устройство само по себе - файловая система - сама по себе, просто иногда хранит на жестком диске данные. то же самое субд - она иногда (!) работает с файловой системой, а иногда не работает (raw device в Oracle). работой с устройствами хранения занимаются драйвера ... операционка частенько и не вкурсе куда данные сохраняются - куда-то в ОЗУ, в сеть, или на ODFS - распределенную файловою систему. пример: беру комп, выдераю hdd, запускаю linux knoppix (http://www.knoppix.com) ставлю субд mysql - работаю ... ну и какие нафиг внешние запоминающие ? файловая система монтируется в ОЗУ. Существуют ОС, позволяющие при выключении компьютера сохранить на диске полный образ ОЗУ мда ? :) боюсь что если вырубить питание ОС уже ничего вам не позволит. Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде чушь. беру XML/iso диска С и сваливаю в CLOB, кто мне запретит ? Для доступа к данным реляционные системы используют непроцедурный высокоуровневой язык ложь. foxpro 2.0 использует процедурный, навигационный язык. sql - выдумали в 80-х, это просто один из многих. да и помрет он наверника. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 12:51 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Gt_, Чем Вам советская пресса не угодила? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 13:03 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Gt_ Это называется - спор ради спора.Это очень просто - выхватываешь фразу из текста и начинаешь по ней кататься. Я выглядишь таким таким умным и крутым программером что просто круче вареных яиц. Флаг тебе в руки и перо в зад. Я же говорю (точнее не я, а книги), что концепция файла позволяет реализовать независимость данных от физических устройств. Это что - не так? Ты же сам только что фактически то же самое сказал, но , блин, умудрился преподнести это в контру. Ну давай, напиши мне на процедурном языке выражение связывающее две таблицы по полю, производящую выборку по значению другого поля, и объединяющее результат с третьей таблицей. Ты что, будешь циклы и проверку условий использовать, навигацию по таблице организовывать, построчно записи выбирать? ИМХО ты не понимаешь о чем говоришь и путаешь понятие "операция" с понятием "последовательность операций". беру XML/iso диска С и сваливаю в CLOB, кто мне запретит ? ГЫ!!! Никто не запретит. А еще ты можешь это "XML/iso диска С" на бумажке записать и этой бумажку потом использовать (только возьми бумажку помягче:), потому что этой твоей записью пользоваться мягко говоря трудно (что например ты будешь делать, если в начало байт потребуеться добавить?). Действительно, зачем нормализовать? И хто ето выдумал - "избыточность данных", "функциональные и многозначные зависимости", "нормальные формы" и т.п. Наверное дураки каки-нить? надо взять CLOB ("о, я какие слова знаю!") и запихнуть все туда.... И, что самое интересное - ведь запихивают..... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 14:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде чушь. беру XML/iso диска С и сваливаю в CLOB, кто мне запретит ? " нихрена не чушь. Просто конечно говорить надо белее точнее. Например так: Реляционая модель предполагает, что значения атомарны. Кто не знает этого пусть ознакомиться с теорией множеств и прочтет еще раз определение реляционной модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 14:56 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Просто конечно говорить надо белее точнее. U-gene просто иногда лучше жевать, а не говорить ... 3 класса образования не повод писать такие опусы, сдесь же дети читают. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 15:32 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Gt_ Я так понял, что аргументы по делу иссякли. А то, что в любом споре самое главное - это вовремя перейти на личности, так это Жванецкий уже давно озвучил. А коли ты ты так за детей (может ты себя имел в виду?) волнуешся, взял бы орфографический словарь для начала. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2003, 23:38 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
> sql - выдумали в 80-х, это просто один из многих. да и помрет он наверника. Глубоко копает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2003, 02:20 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Gt_>sql - выдумали в 80-х, это просто один из многих. да и помрет он наверника.\r \r гы\r Gt_ раньше помрет, имхо.\r \r /topic/34002&pg=1\r \r \r tchingiz>Следствие 1\r tchingiz>sql - не будет заменен ничем на протяжении следующих \r tchingiz>100 лет\r \r /topic/17882 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2003, 02:21 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2U-gene правильно делаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2003, 02:24 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene 1 ты хоть summary на английском сделай и ключевые слова повставляй английские. что бы в поисковики попадать 2 тебе статьи по мультимедийным базам дать? есть короткая - обсуждение SQL/MM и MPEG-7 and Multimedia DataBase System. в мультимедии - обьектов как собак нерезанных. можешь попробовать применять свои мысли тама. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2003, 06:39 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
А нет пдф или постскрипт варианта статей? А то броузеры вместо формул показывают нечто нечитабельное. Например: ...одинаковой схемой: объекты oi {OIDi, Si, oVi} и oj {OIDj, Sj, oVj} принадлежат одному... или O = (OID --> oV). где oV = {oV| oV = oa--Schema(C)-->R} <3> или O М R' , R' = { R'i| R'i М DOID ґ DA ґ Ri, Ri О R} <5>. Тут все как у меня на экране, пропали только sub и sup символы, но они-то как раз отображаются правильно. Невозможно разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2003, 02:33 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
писал:"Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде" Ну это не чушь, с практической точки зрения. В базе с нормализованными таблицами легче поддерживать целостность и непротиворечивость данных. Но реляционная модель базы не запрещает всю инфу свалить в один файл. Просто не надо смешивать признаки реляционных баз (правила Кодда) и методы их проектирования. Нормализация - это метод, позволяющий строит эффективные базы. Всякого рода ОЗУ и файловые системы ту ни к селу ни к городу. Сколько железо позволяет, столько в память и тащится. Как-там и что в чем хранится - не приципиально. На MS SQL, например, никогда не знаешь, откуда дата тянется, с диска или из кэша. На мой взгляд на требуемом уровне абстракций, достаточно понятий хранилища данных и исполнителя команд. Притом, что в дальнейшем эти понятия не используются. писал:Однако возможен и другой случай, когда значение атрибута объекта вычисляется исходя из значений других атрибутов данного объекта. Будем называть такие атрибуты вычисляемыми. В нормализованой базе невозможен. писал: Одной из наиболее актуальных проблем, существующих в области хранения данных, является проблема объединения свойств, присущих объектно-ориентированным программам и реляционным системам хранения данных, в рамках единой универсальной системы обработки и хранения информации. Обращает на себя степень единодушия в отношении желаемых возможностей такой системы [1,2,3]. Не знаю, не знаю. На мой взгляд, средства доступа клиентов к база данных уже давно объектно- ориентированы, а нужно ли это для самих данных? Инкапсуляция и наследование Как правило, нам вовсе не нужны методы и свойства класса. Наиболее распространенная операция - получение пересечений свойств классов. То бишь - множественное наследование. Пожалуй, прямое наследование подходит только для класса "Справочников". Родительския класс может содержать два поля ID и Name. А на нем можно строить множество дочерних классов, расширяющих его свойства. Только вот методы наследовать бесполезно. Разве что select * from... Пример в статье о наследовании класса "Отгрузка товаров" классом "Продажа товара" неудачен. На самом деле это абсолютно идентичные таблицы, а разница между базами в том, что если склад начинает продавать товары, то в базу добавляется таблица - "Оплата товара" (не будем придираться к структурам таблиц, к чему там она будет привязана, к документу или к товару, в данном случае неважно). А вот тут появится интерфейс наследующий свойства "Отгрузка-Продажа товара" и "Оплата товара". View, по нашему ======= Мне много лень писать, пока ограничусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2003, 20:25 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Cat2 Фразу "Из теории рел БД известно..." переделал.... Спасибо :). Уболтали :). Далее писал: Однако возможен и другой случай, когда значение атрибута объекта вычисляется исходя из значений других атрибутов данного объекта. Будем называть такие атрибуты вычисляемыми. В нормализованой базе невозможен. Здесь я не понял... Почему невозможно? Одной из наиболее актуальных проблем, существующих в области хранения данных, является проблема объединения свойств, присущих объектно-ориентированным программам и реляционным системам хранения данных, в рамках единой универсальной системы обработки и хранения информации. Обращает на себя степень единодушия в отношении желаемых возможностей такой системы [1,2,3]. Не знаю, не знаю. На мой взгляд, средства доступа клиентов к база данных уже давно объектно- ориентированы, а нужно ли это для самих данных? Может я не в курсе, но все OO-средства доступа к БД, что я видел до сих пор (допускаю, что я мало видел), былы именно средствами доступа к БД и не более. То есть речь идет об объектах БД или об объектах доступа (всякие там Connection'ы, Recordset'ы). А клиетское приложение рабает с этими объектами. А для чего оно работает? Что бы сохратить данные объектов, моделирующих предметную область в таблицах БД, или достать эти данные оттуда. То есть в клентском приложении есть объекты, моделирующие объекты предметную область, и есть объекты, представляющие БД. И вот что получается (предположим, что объект был создан ранее). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Разые системы реализуют этот процесс по разному, и (насколько я в курсе) этот процесс дошел уже до того, что в приложении можно описать "перситный" класс, в костукторе объекта указать БД, в которой этот объект будет храниться, и, затем , в процессе работы вызыват специфические методы, приводящии к сохранению актуальных данных. Но схема работы в общем то сохранена. Кроме того (ИМХО это крайне важно для систем хранения данных),с групповым доступом какая то неопределенка. С поиском так всяким. Я же пытаюсь показать, что объекты моделирующие предметную оласть могут существовать непосредсвенно в БД. То есть это уже и не БД ( не среда хранения данных, со специфическими объектами, предназначенными для хранения данных), а среда СУЩЕСТВОВАНИЯ объектов (вместе со всеми их методами, ограничениями, ссылками - при необходимости и тд и тп). Клиентская же программа - это, говоря по простому, может быть не более чем форма. Типа как в Акцессе, только еще проще, потому как все логика предметной области может быть определена в среде существования объектов. Задача этой формы проста - показывать актуальные данные и позволять воздествовать на объекты. Например (совсем по простому) - нажатие на кнопку приводит в вызову метода, а свойсва отображаются в строковых или табличных элементах формы. ИМХО работа, при такой организации, может выглятеть приблизительно так. Код: plaintext 1. 2. 3.
Причем все данные (в том числе и описание формы), могут храниться на сервере, у клиентов же есть только маленькая такая програмуля (типа браузер, значица:) которая эту форму загружает. В общем это все ИМХО и фантазии , касающиеся визуализации данных и клиентской части. Однако, с другой стороны, среда существования объектов должна управляться языковыми выражениями. Требование такое - вполне серьезное ( точнее, насколько я себе это представляю, языка может и не быть, однако нужно показать что он возможен, что я и пытаюсь сделать). И, потом, - групповой доступ - это тоже важно. Наиболее распространенная операция - получение пересечений свойств классов. То бишь - множественное наследование Не знаю, насколько это распростанено, но у меня мн. наследование вполне возможно. Только я в этой статье про это не уточнил :) Можно использовать в качестве предка одно именованное подмножество атрибутов, а можно - несколько. Самое главное - с реализацией потом определиться. Пример в статье о наследовании класса "Отгрузка товаров" классом "Продажа товара" неудачен. Может быть... Но здесь важен не столько пример, сколько... мммм.... сама демонстация понятия "переопределяемый атрибут", и последующии действия с ним. Точнее факт того, что последующих действий может и не быть, посколку эти действия МОГУТ БЫТЬ УЖЕ ОПИСАНЫ - поскольку они описываются для спецификации этого атрибута. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2003, 11:53 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene куда статья делась? как теперь тебя ругать? WWW - страница не найдена Извините, запрошенная вами страница не найдена. Вы можете вернуться на первую станицу COMAIL.RU и попытаться найти нужную вам страницу по ссылкам. --------- 1 выкини слово кибернетические. 2 линейное озу, имхо, тоже ни к чему. тем более в тексте очень долго идет просто озу. а на картинке - данные в линейное озу. 3 через прямоугольник обьекты, данных реализуемые программой проходят два потока команды и данные - ответы. а прямоугольник (по названию), вроде как только работает только с одним потоком. преобразования команд и данных (как название прямоугольника) мне бы больше понравилось 4 на второй картине избыточна большая белая стрелка, в которой две черные. что она такого специального значит? 5 введение излишне длинное, имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2003, 22:16 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
зы если меньше использовать всякие красоты (в смысле значков) а больше - аски символы, по моему будут меньше болеть мозги о том как статья выглядит в разных браузерах. то на что с127 жаловался. кто захочет дочитать статью из за смысла. будет читать в аски символах все равно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2003, 22:19 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Gt_: \\r боюсь что если вырубить питание ОС уже ничего вам не позволит. \\r \\r Вот к чему приводит неточность и вольность в обращении с языком. Конечно имелось в виду "до выключения", например, как с режимом hibernate в Win2000/XP: A state in which your computer shuts down but first saves everything in memory on your hard disk. When you bring your computer out of hibernation, all applications and documents that were open are restored to your desktop. \\r \\r sql - выдумали в 80-х, это просто один из многих. да и помрет он наверника. \\r \\r Когда помрет-то хоть? Может начинать изучать какой0-нибудь OQL или XQL уже щас. А то изучишь, а он собака пригодится только пальцы веером бросать :о)\\r \\r 2 U-gene: \\r Работу вашу "Объектно-ориентированная организация реляционных данных" прочитал, изучил пока поверхностно, но по ней чуть ниже.\\r \\r 1) Для доступа к данным реляционные системы используют непроцедурный высокоуровневой язык, реализующий ненавигационный доступ к данным. \\r \\r SQL - да, непроцедурный. А что там с оракловским PL/SQL? Вроде говорят он как бы процедурный ( Дед Маздай : врут что ли паразиты!?)\\r \\r 4) Из теории реляционных БД известно, что для того, что бы сохранить данные в реляционной БД, эти данные должны быть представлены в нормализованном виде \\r \\r В дополнение к тому, что сказал "Cat2": во всех авторитетных книжках (Дейт, Коннолли и т.д) говорится о преимуществах нормализации и форм, но не о том, что необходима хотя бы 1NF. К тому же вопреки этой "теории" многие разработчики часто держат таблицы в форме порой ниже 2NF (умышленная денормализация), например, для ускорения исполнения запросов и уж тем более ни одна известная РСУБД не помешает вам создать ненормализованную таблицу и вставить в нее данные, перезапустить сервер и выбрать эти же самые данные\\r \\r Ну давай, напиши мне на процедурном языке выражение связывающее две таблицы по полю, производящую выборку по значению другого поля, и объединяющее результат с третьей таблицей. Ты что, будешь циклы и проверку условий использовать, навигацию по таблице организовывать, построчно записи выбирать? \\r \\r В процедурном языке именно так и придется делать\\r \\r Может я не в курсе, но все OO-средства доступа к БД, что я видел до сих пор (допускаю, что я мало видел), былы именно средствами доступа к БД и не более. То есть речь идет об объектах БД или об объектах доступа (всякие там Connection\\\'ы, Recordset\\\'ы). \\r \\r К какой именно СУБД? Пожалуйста, IS Cache\\\' - ООСУБД с реляционными возможностями при этом имеет ОО-интерфейсы (Java, ActiveX) и таковые средства доступа. Вам об этом уже говорил "Garya" в Сравнение объектно-ориентированных, реляционных и объектно-реляционных СУБД (стр.3-5)\\r \\r Разые системы реализуют этот процесс по разному, и (насколько я в курсе) этот процесс дошел уже до того, что в приложении можно описать "перситный" класс, в костукторе объекта указать БД, в которой этот объект будет храниться, и, затем , в процессе работы вызыват специфические методы, приводящии к сохранению актуальных данных. Но схема работы в общем то сохранена. Кроме того (ИМХО это крайне важно для систем хранения данных),с групповым доступом какая то неопределенка. С поиском так всяким. \\r \\r К сказаному: да, в Delphi или в VB легко можно написать (и их уже много написано) свой контрол типа ClientDataSet или компонент с разными наворотами типа локальной персистенции данных или динамического обновления, к примеру, но естественно в его "внутренностях" будет скрываться работа с нижележащим механизмом типа ADO или OLEDB к-рый был доступен из средств разработки этого контрола - это закономерное следствие архитектуры "платформы" в рамках к-рой остается автор. Вы предлагаете использовать какую-то свою архитектуру, заменяющую промежуточные интерфейсы данных типа ADO?\\r \\r Причем все данные (в том числе и описание формы), могут храниться на сервере, у клиентов же есть только маленькая такая програмуля (типа браузер, значица:) которая эту форму загружает. \\r \\r В общем это все ИМХО и фантазии , касающиеся визуализации данных и клиентской части. \\r \\r Вы делаете эту работу для какой-нибудь защиты, как факультативное исследование или это хобби? Просто в вашей статье об этом кажется ничего. Вы не боитесь повторить путь знаменитого "1024" с его VisualER только у вас будет ваша статья? Я припоминаю, вы же были в ветке Междумордие (стр.17-18)? А там как раз были подняты 3 очень полезных вопроса прагматического характера:\\r \\r 1. Можно ли обойтись без ЭТОГО?\\r 2. Чего мне ЭТО будет стоить?\\r 3. Что можно с ЭТОГО поиметь?\\r - - - - - - - - - - - - - - - - - - - - \\r Но это так шутка, дерзайте! Теперь пара комментариев по "Объектно-ориентированная организация реляционных данных" :\\r \\r Присоединяюсь к "чингизу" по поводу "ОЗУ" (непонятно зачем это) и "кибернетических систем" (не следует в суе о том, что здесь вообще не причем). (кстати, вы "чингиза" упомяните в качестве корректора/рецензента? :о) Далее:\\r 1. Название статьи. Просмотрев ее я понял, что речь идет о работе и хранении объектов\\r в реляционной модели/схеме в чем-то аналогично Тенцеру в его статье "Реляционная БД как хранилище объектов " .\\r Сбивают с толку "реляционные данные". Такого термина по-мойму нет. Есть реляционная модель,\\r реляционная схема, исчисление и т.д. Данные - это некая информация (т.е как бы содержательная\\r категория) и она может быть представлена в различных формах (видах) , например,\\r неструктурированном, реляционном, объектном и т.д. Т.е получается как бы тавтология:\\r объектная организация реляционных данных (подразумевается модель/схема) .\\r У вас реляционная схема была и остается в первозданной форме внизу под ее ОО-представлением.\\r \\r 2. "Терминальный механизм" что он есть такое и какое он имеет значение?\\r \\r 3. IMHO слишком затянутая постановка задачи, лучше разбить ее на краткую и полную формы.\\r Даже для "тяжелых" научных статей по механике (20-40 с.) постановка задачи - это краткая \\r постановка (список из нескольких пуктов-предложений) и полная с формулами (макс. на 1 стр.\\r Worda), а иначе нельзя ухватить смысл. У вас цель:\\r Покажем, что информация, представленная в виде множества объектов вида 0,\\r может быть полностью сохранена в реляционной системе хранения данных. \\r \\r сидит в "труднодоступной" в середине параграфа или есть еще какие-то цели? Потом постановку\\r задачи следует выносить в отдельный параграф Постановка задачи . Хотя у вас цель\\r статьи была не только доказательная , но еще и описательная или ознакомительная\\r судя по Заключению \\r \\r 4. Из теории реляционных БД известно, что для того, что бы сохранить данные\\r в реляционной БД, эти данные должны быть представлены в нормализованном виде[8,9,10]. \\r См. комментрий выше. Интересно, если вы приведете цитату в к-рой говорится о необходимости\\r нормализации для сохранеия данных в РБД. У Коннолли (кстати, с двумя "н") этого по-мойму\\r точно нет ни в 1-м, ни во 2-м издании просто я им достаточно часто пользуюсь\\r \\r 5. Между исходным множеством объектов и результирующим множеством отношений \\r существует отношение "многие ко многим": каждое отношение может состоять из кортежей,\\r описывающих \\r Тут не используется один и тот же термин для обозначения разных понятий? Если "отношение"\\r у вас означает аналог сущности/таблицы, то используйте термин "связь" (relationship, association)\\r \\r 6. В статье предлагается подход, позволяющий создать объектно–ориентированную\\r информационную систему на основе терминального механизма хранения данных, описываемого\\r реляционной моделью. Вводятся правила, позволяющие преобразовать схему данных, возникшую\\r в результате нормализации, к объектной схеме данных. Исследуются свойства, которыми может\\r обладать система, основанная на предлагаемом подходе. Показано, что такая система\\r \\r позволяет описывать перманентно хранящиеся данные в виде сложных идентифицируемых объектов,\\r инкапсулирующих состояние и поведение, \\r реализует концепции наследования и полиморфизма, \\r позволяет организовать как навигационный, так и ненавигационный доступ к данным, \\r позволяет организовать групповой доступ к данным, в основе которого лежат операции\\r реляционной алгебры.\\r \\r \\r По-мойму это должно быть во Введении , а не в Заключении \\r \\r 7. Автор надеется, что предлагаемые в статье решения могут быть интересны\\r специалистам, занимающихся проблемами хранения и обработки данных. Конечно, в небольшой\\r статье невозможно предусмотреть все вопросы, которые могут возникнуть при знакомстве\\r с предложенным подходом. Однако она может быть вполне достаточной для его практической\\r реализации в виде системы.... \\r \\r IMHO немного похоже на рекламу. Никто не будет читать статью, перегруженную мат.выражениями\\r точно также как никто из разработчиков или проектировщиков БД не будет читать реляционную\\r теорию Кодда или ISO/IEC SQL чтобы создать БД (практическая реализация). Только для общего\\r образования. Возможен вариант, когда в одной части вы даете мат.описание системы, а в другой\\r ее описание в терминах, понятных прикладникам (ERD, UML, SQL, Java) и еще лучше с маленьким\\r примером практической реализации (как вы привели для отгрузки товара) в виде отдельной главы\\r Пример практической реализации \\r \\r 8. 2) нормализовать имеющуюся схему данных. В процессе нормализации мы получили\\r несколько 3НФ отношений (первый столбец содержит имя атрибута, второй – накладываемые на него ограничения) \\r Читая вашу статью поначалу путался в атрибутах и столбцах. Я бы вообще без стеснений\\r посвятил терминологии, используемой в статье, отдельный маленький параграф поскольку\\r используются разные словари (реляционный, объектный)\\r - - - - - - - - - - - - - - - - - - - - - - - -\\r Пока все. Буду знакомиться и спрашивать/комментировать по мере сил и наличия времени потому как давно отвык от науки и глаз устает от обилия мат.выражений. Удачи!\\r \\r 2 чингиз: \\r если меньше использовать всякие красоты (в смысле значков) а больше - аски символы, по моему будут меньше болеть мозги о том как статья выглядит в \\r разных браузерах. то на что с127 жаловался. кто захочет дочитать статью из за смысла. \\r будет читать в аски символах все равно. \\r \\r Имелись в виду скорее всего HTML entities , т.е Ø или Ø для отображения символа пустого множества:\\r ...Microsoft® Internet Explorer interprets the bytes in your document according to the applied character set translations. It interprets numeric character references ("〹") as ISO10646 code points, consistent with the Unicode Standard, version 2.0, and independent of the chosen character set. Named entities ("&") are displayed independently of the chosen character set as well. The display of an arbitrary numeric character reference requires the existence of a font that is able to display that particular character on the user\\\'s system.... \\r \\r Хотя зачем тархаться с HTML когда можно было сделать в том же Worde и выложить его в Zipе?\\r \\r 2 Cat2: \\r >Однако возможен и другой случай, когда значение атрибута объекта вычисляется\\r >исходя из значений других атрибутов данного объекта. Будем называть такие атрибуты вычисляемыми.\\r В нормализованой базе невозможен. \\r \\r В нормализованной точно возможен. Нормализованность - это выполнение 1NF. Если будет 2NF и выше, то может и невозможен в случае, если имелась в виду зависимость не от PK потому что 2NF - это полная функциональная зависимость неключевых атрибутов от PK. Хотя "зависимость" и "вычисляемость" это вообще разные понятия. Можно иметь факт зависимости, но вовсе не иметь возможности вычислить значение одного на основе только значения другого или я чего-то не понял? :о) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2003, 00:09 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Репликант. Возможен, возможен . Просто я писал под впечатлением статьи. А там про объекты. А у ж если объекты, то нужна нормализация по крайней мере до 3 формы. Иначе, на мой взгляд, странно будет - какие-то объекты зависят от других. "Вычисляемые поля" в статье я понял как данные, которые можно вычислить на основании других, содержащихся в базе данных. Впрочем, объект может выдавать наружу какие-то данные, вычисленные на основании своих данных. Как это сейчас делается в MS SQL 2000. Только хранятся в табле не данные, а формулы. U-gene Где-то на форуме MS SQL народ делился опытом создания объектов в среде MS SQL. Уж точно не помню, как там все было реализовано, вроде через таблицы с метаданными. Помню, что по словам автора время разработки снижалось в 2-3 раза, но во столько же снижалась производительность. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2003, 12:35 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Огромное спасибо свсем заинтересовавшимся. Посколька опыта написания совсем нет, то рассмартиваю все замечания и, вношу необходимые изменения. Все, принявщие участие, будут упомянуты в части "Благдорности" :) 2 Репликант 1) Для доступа к данным реляционные системы используют непроцедурный высокоуровневой язык, реализующий ненавигационный доступ к данным. SQL - да, непроцедурный. А что там с оракловским PL/SQL? Вроде говорят он как бы процедурный (Дед Маздай: врут что ли паразиты!?) Я говорю не про управления данными в среде СУБД , а про доступ ....ммммм..... снаружи. Написав процедурку на PL/SQL или на Т-SQL мы должны использовать команду CREATE PROCEDURE в которой наша процедура рассматривается практически как строковый аргумент. Вот это и есть непроцедурный доступ. Обращаясь с СУБД, дабы эта процедура была выполнена, мы будем использовать команду EXEC - и это тоже непроцедурный доступ. В данном случае я имею в виду то же самое, что имели в виду авторы "Манифеста СУБД третьего поколения" , когда писали следующее - "Все программируемые доступы к базам данных должны осуществляться через непроцедурный язык доступа высокого уровня". Мда. Что мы имеем сейчас в SQL. Мы имеем несто типа "CREATE TABLE...", "CREATE VIEW...", "CREATE PROCEDURE..." (еще мне нравиться "CREATE FUNCTION"? которое есть в MS SQL) - и это все мы имеем по отдельности. ИМХО все это можно заменить на нечто типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Команды высокого уровня остаются, но описание данных в них нескоько иное. Я пытаюсь показать, что вся это хренотень будет работоать и в ОО- и в реляционном- жанрах. Аналогия: раньше в языках програмирования мы описывали структуры и функции (по отдельности), а потом стали работать с объектами. Что мы получаем в конце концов? С одной стороны - гибкость и расширяемось объектных систем, с другой стороны - мы остаемся в рамках реляционной модели данных. 1. Можно ли обойтись без ЭТОГО? Конечно можно :) До сих пор обходились. С другой стороны есть "Манифест СУБД третьего поколения", в котором приведен ряд требований к этим самым СУБД3пок. ИМХО, то что я пытаюсь описать, очень хорошо на основные из этих требований ложиться. Опять же, можно писать на ассемблере (очень эффективно), но почемуто все пользуют всякие С++, Java и BASIC. Видимо потому, что это позволяет увеличить размер контролируемой сложности. 2. Чего мне ЭТО будет стоить? Дык, я уже написал. :) - мне уже ничего не стоит. 3. Что можно с ЭТОГО поиметь? Минимум ничего. Ну не убьют же меня за это, в самом деле? :) Я не знаю, как это будет реализовано. ИМХО как угодно. Мне это видится в виде сервера, представляющего собой среду существования объектов и управляемого непроцедурными выражениями. Как этот сервер будет реализован - тоже как угодно. Например, можно взять существующие SQL-сервера и иcпользовать их в качестве основы. Можно написать с нуля. Можно попросить производителей железа , что бы они спаяли :) "реляционное ОЗУ" и строить систему на нем. Речь идет не о реализации. Я просто взял рел. модель данных (домены,отношения, рел.операции, ключи) и попытался показать, что на основе описываемой реляционной моделью системы хранения данных (уж не знаю, что это за система), можно создать объектно-ориентированную информационную систему, которая работает в терминах "свойство", "класс", "атрибут", "метод", "объект" и реализует ОО-"". И что такое описание не противоречти реляционной модели и позволяет организавать основанный на рел. операциях групповой доступ к данным. Далее о терминах. "терминальный механизм" я вроде бы определяю - "механизм хранения с неизвестным устройством, который определен только через способ обращения к нему и действия, которые он производит по отношению к другим частям системы" (эту фразу я практически без изменений взял изочень умной монографии, найденной в сети, но, блин, сослаться не смог, потому что монография исчезла и "Cannot find server"...). Можно сказать, что терминальный механизм, это механизм, который обеспечивает поддержку переменных базовых типов (INT,FLOAT и т.п.). Слово "киберентическая" значит "управляемая". Система может определенным изменяться в ответ на определнные внешние воздействия (команды). Мож это и вправду не надо? Насчет данные "должны быть нормализованы" давно уболтали :). Как вам фраза "для обеспечения эффективного хранения данных (что подразумевает их целостность и непротиворечивость) , эти данные должны быть нормализованы "? 5. Между исходным множеством объектов и результирующим множеством отношений существует отношение "многие ко многим": каждое отношение может состоять из кортежей, описывающих Тут не используется один и тот же термин для обозначения разных понятий? Если "отношение" у вас означает аналог сущности/таблицы, то используйте термин "связь" (relationship, association) А фиг ё знает... Если у меня мат. статья, то надо писать "отношение". Если статья по БД - то "связь". Но раз в начале предложения говорится о двух множествах, то ИМХО "отношение" тоже уместно. Насчет терминологии - это правда трындец :) Но я могу оправдаться! Ортогональности объектных и реляционных типов в том числе подразумевает, что множество атрибутов класса и множество атрибутов отношения - это два разных множеста - и мы должны их как то отличать, в том числе и в тексте. Поэтому я всегда стараюсь уточнить - o a или r a - а порой перехожу на терминологию таблиц и столбцов, применительно ес-но к реляционным делам. Кстати 2 Cat2 ! Может быть именно со этим связано Ваша реплика Однако возможен и другой случай, когда значение атрибута объекта вычисляется исходя из значений других атрибутов данного объекта. Будем называть такие атрибуты вычисляемыми. В нормализованой базе невозможен . Я имел в виду атрибуты объекта. У меня вычисляемые атрибуты объектов по смыслу близки к видам SQL-систем. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
во втором классе, схема табличного значения, возвращаемого SELECT, должна совпадать со схемой, заданной в определии TABLETYPE. Простой пример (опять же - я не знаю насколько он жизненен - в связи с этим я прошу спецов по зарплате не пинать меня строго:) ). Итак, атрибут класса "служащий" содержит записи о его зарплате помесячно. Для класса "офисный работник" это хранимый атрибут, для класса "менеджер по продажам" этот атрибут вычисляется из объемов продаж. Но! обращаться к классу "служаший" мы будем одним запросом, и он вернет информацию, и для "офисных работников" и для "менеджеров по продажам". Создана форма (зарплатная ведомость) основанная на этом запросе. Предположим, что у нас появился новый тип работников, для которых мы расчитываем зарплату как-то по другому. Что нам надо было делать в традиционных системах? Нам надо было делать или пределывать UNION и добавлять в него записи из вновь созданного вида, когторый возвращает данные именно для этого типа служащих. Что нам надо делать здесь? Надо переопределить класс, после чего данные для вновь созданных объектов этого класса автоматично появется в расчетной ведомости. Именно для этого и нужны переопределяемые атрибуты. Аналогия: в дообъектных языках для обработки близких структур приходилось писать и переписывать IFы и CASEы (если флаг=1 то функция1 иначе если флаг = 2 то функция2); в объектных же мы просто переопределяем метод класса. О названии . Может я не прав, но из моего названия (даже не смотря на отсутсвие термина "реляционные данные") более-менее ясно о чем идет речь. Или название "Объектно-ориентированная организация данных в реляционных системах хранения" будет лучше? Насчет Word в ZIP'e.... Дело в том, что статья выложена на ряд источников именно в HTML-формате. И, поскольку приходиться вностить исправления, то желательно использовать более-менее один источник в одном формате. Вот. Ух. Писал пять часов. Плохой из меня поветсвователь, в связи с чем Ваши замечания очень кстати. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 15:24 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
По поводу производительности... Для начала приведу цитату из того же "Манифеста СУБД третьего поколения" - "Показатели производительности не имеют почти ничего общего с моделями данных и не должны в них проявляться". Для себя я это понимаю как "можно извращаться как угодно, только модель не трогай..." И все же. Если кто в моей статье прочитал часть "проектированние данных", то он смог увидеть, что схема данных уровня хранения определяется схемой данных, возникшей в результате нормализации. Число таблиц уровня хранения, содержащих информацию например об отгрузках, не больше, чем число таблиц, которое существовали бы в традиционной отгрузочной РБД. И эти таблицы будут содержать практически те же записи, что и в традиционной реляционной СУБД (например для для отгрузки - одна запись на шапку и по одной на каждый отгруженный артикул). Именно это позволяет мне надеятся, что предлагаеемый мною подход достаточно эффективен. Что я видел в обсуждении на форуме MS SQL (если не ошибаюсь это статья Тенцера)? Создана таблица для целых, таблица для строк, таблица для чисел с плавающей точкой и т.п., и объектные атрибуты базовых типов храняться в соответсвйющих таблицах. То есть, если есть в объекте десять атрибутов типа INT- тупо получишь десять записей таблицы, предназначенной для хранения INT. Например, если шапка отгрузки содержит пять атрибутов - получим пять записей, если каждый отгруженный артикул описывается тремя атрибутами - получим еще три записи на каждый артикул (кстати! я не понял,как при этом подходе реализуются повторяющиеся группы). Естественно, что в этом случае об эффективной работе с БД говорить не приходится. ИМХО предложение Тенцера можно прочитать так: "Объектная системы строяться на основании терминального механизма, поддерживающего ограниченное число примитивных типов (int, char, float) и, следовательно БД должна хранить значения этих примитивных типов." Тем самым он кастрирует реляционный механизм, лежащий в основе БД, по самые уши. У меня совершенно другой подход- в качестве терминального механизма я использую реляционную систему хранения всю, целиком. Базовым типом у меня является отношение (а у отношения в свою очередь есть домены, которые и есть эти примитивные типы). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2003, 18:43 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene Еще раз. Наверное статья интересная, но читать ее невозможно. Можно ли убрать как-нибудь иероглифы, т.е. заменить их на человеческие символы, или выложить статью в человеческом формате (pdf,ps)? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 01:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene что значит слово кибернетическая, я догадываюсь. у нас любая интерактивная система - кибернетическая. там есть прямая и обратная связи между управляющим (оператор) и управляемым (программа). просто это слово у тебя появилось только один раз в статье, и поэтому его появление достаточно бессмысленно. как и "линейная оперативная" память на картинке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 21:47 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
ssss ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2003, 08:42 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 чингиз Да, само это слово появляется один раз. Но ведь потом я практически постоянно рассматриваю возможнось однозначного преобразования выражений (которые можно рассматривать как команды или части команд) обращающихся к данным, описанным в терминах уровня представления (объекты), к выражениям,обращающимся к данным, представленным в терминах уровня хранения, т.е. в терминах реляционной модели. Может эта мысль не прозвучала достаточно явно? В тех строчках, где встречается обозначение "о(эквиваленитно)r" часть слева есть выражнений обращающееся к объектам, а часть справа есть выражение, обращающееся к отношениям. Причем слева как правило простые выражения, представляющие собой обращение к атрибуту объекта и группы объектов, а справа выражения, использующие операции реляционной алгебры. Таким образом, если есть команда, обращающаяся к атрибуту объекта, то ее можно однозначно (конечно, с учетом некоторых заранее определенных ...мммм... соотношений между уровнем представления и уровнем хранения) преобразовать в команду обращающуюся к подмножеству строк определенного отношения на уровне хранения. Опять же аналогия: Обращения к атрибуту объекта в традиционных объектных языках приводит к генерации ассемблерного кода, использующего адрес некого объекта как базу и некое смещение, однозначно соответсвеющее требуемому атрибуту указанного объекта. Фактически, описание структуры объекта, будучи преобразованным к терминам линейного ОЗУ (терминальной системы) - представляет собой набор смещений, который может быть применен к любой базе, т.е. к адресу любого объекта. Я же пытаюсь использовать в качестве терминальной систему, реализующую реляционую модель, являющуюся ИМХО единственно существующей моделью данных (во всяком случае математически обоснованной). Возвращаясь к термину "кибернетичесие", мне кажется, что я каким-то образом должен в самом начале определиться о каких системах я говорю, как-то навести читателей на мысль о их управляемости. ИМХО если написать просто "система", то это будет как-то...мммм... ненопределнно, что-ли.... А давайте поставим вопрос так - по-вашему, этот термин просто ни к чему, или он все же вредит восприятию написанного? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2003, 10:34 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Тема меня интересует, но вот статью прочитать никак не могу - сервер попадает в запрещенный список нашей конторы. Может, если уж предполагается обсуждение на этом сервере, и статью выложить суда же? А то обсуждение - отдельно, статья - отдельно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2003, 12:10 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Здравствуйте-здравствуйте ! :) Прошу прощения за то, что оставил без ответа несколько последних сообщений. В связи с рождением дочки голова был сильно занята вещами, достаточно далекими от БД и СУБД и тп. Ну разве инода заглядывал... мимо пробегал, значица. :) Потенциальному читателю хочу сказать, что статья доступна на сервере CITFORUM по адресу http://www.citforum.ru/database/articles/ooo_rel_data/ . Кстати, ссылка имеется и на этом сервере - в разделе статьи от 26.06.03 c127 по этому же адресу может скачать файл в Вордовском формате. К сожалению PDF сделать не смог (4-й акробат рухает вместе с системой а 5-го у меня нет). Если у кого есть возможность конвертнуть (только 5-м!!! 4-й рухнет:) )- если не трудно, сделайте милость, а результат вышлите мне. По поводу благодарностей :) Я упомянул участников активного :) обсуждения на SQL.ru, но было бы неплохо, что бы Чингиз, репликант и Саt2 дешифровались и прислали мне свои мирские имена, если посчитаете нужным, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2003, 14:56 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
UG>связи с рождением дочки голова был сильно занята поздравляю -)) у меня первый ребенок тоже дочка. UG>авайте поставим вопрос так - по-вашему, этот термин просто ни к чему, UG> он все же вредит восприятию написанного? все что не помогает - мешает. (свободный пересказ бритвы оккама) -) все интерактивные системы - подпадают под это определение. если бы Вы сужали класс рассматриваемых систем, то был бы смысл вводить его определение и говорить о этом. а так - ни к чему, имхо. только отвлекает. если у Вас есть еще интерес к обсуждению - я могу почитать дальше. -)). тоже был занят. зы Ваше мыло скрыто. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2003, 01:03 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
>поздравляю Спасибо >у меня первый ребенок тоже дочка. У меня их две (довелось услышать "бракодел".... естественно от бездетного человека ) >все что не помогает - мешает. Беда видимо в том, что я попытался запихнуть в одну кучу саму идею (типа "концепцию" значица), подводимый под нее формализм и вдобавок приправил это вариантами использования, причем эти варианты можно назвать деталями....достаточно существенными(такие как проектирование данных) и не очень. И даже не объяснил, что же это такое "объектно-ориентированная система управления реляционными базами данных". У меня возникает мысль написать что-то в виде "вопрос - ответ(на пару абзацев)" - типа ФАКа, начав с "что таке ООСУРБД?" и "а причем здесь реляционные БД?". Достаточно много такого рода вопросов я уже получил,в том числе и здесь. И возникающие вопросы мне очень интересны. >если у Вас есть еще интерес к обсуждению - я могу почитать дальше. Конечно интересует!!! Еще как. Поскольку я заморачиваюсь темой практически в одиночку, то отсутсвие обратной связи жутко угнетает. Два года назад я опубликовал статью "модель объект-качество" и уже думал, что про нее забыли.... и вдруг начал встечать какие то ссылки, в конфах вспоминают, а кто-то даже сказал, что это статья "формирует требования к универасльной модели данных" .... но два года - это очень много. -)). тоже был занят. А кому сейчас легко? :) >Ваше мыло скрыто. Это вряд ли ( (C) тов.Сухов) :) Адрес есть во всех статьях прямо под названием. Никак не могу понять почему , но как только в очередной публикуешь свой адрес в каком-нить открытом источнике, так количество спама увеличивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2003, 18:09 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene . А ты бы не мог произвести сравнительный анализ ОО и реляционных БД? Но сделать это по всем правилам т.е описать их мат модели и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2003, 18:42 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Я конечно извиняюсь но ... в чем глубинный смысл статьи? :) Если это просто описание идеи object-relational mapping математическим языком, то по этому поводу уже слишком много работ написано имхо Очень похоже на переливание из пустого в порожнее... Вот ежели бы кто-нибудь предложил проект языка программирования, сочетающего в себе декларативные конструкции реляционной алгебры и императивные конструкции объектно-ориентированных языков, ну такой язык, который мог бы стать стандартом для написания хранимых процедур в современных субд вместо всяких убогих PL/SQL, вот это было бы сильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2003, 20:14 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Вот ежели бы кто-нибудь предложил проект языка программирования, сочетающего в себе декларативные конструкции реляционной алгебры и императивные конструкции объектно-ориентированных языков, ну такой язык, который мог бы стать стандартом для написания хранимых процедур в современных субд вместо всяких убогих PL/SQL, вот это было бы сильно." 1)ну если Вы такой умный. Объясните что значит убогий PL/SQL. В теории формальных я такого слова не встречал :-). 2)И конечно, хорошо бы после ответа на пункт 1 услышать ответ на вопроса- А ЗАЧЕМ :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2003, 21:10 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 GrimReaper777 >Вот ежели бы кто-нибудь предложил проект языка программирования, сочетающего в себе декларативные конструкции реляционной алгебры и императивные конструкции объектно-ориентированных языков, ну такой язык, который мог бы стать стандартом для написания хранимых процедур в современных субд вместо всяких убогих PL/SQL, вот это было бы сильно. RSL (RAISE Specification Language). Не только проект - готовый язык с компилятором. Посмотреть можно например здесь: http://i.com.ua/~agp1 2 n >А ты бы не мог произвести сравнительный анализ ОО и реляционных БД? Но сделать это по всем правилам т.е описать их мат модели и т.д ИМХО главная проблема как раз в том, чтоб построить строгую модель ОО, причем чтоб все были довольны. Такой общепризнанной модели сейчас нет. Как мы только что видели в соседнем топике по ООДБ, взаимопонимания в области ОО нет даже в элементарных вещах. А сравнение это уже дело техники, хоть и тут попотеть придется, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 01:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Гы, ОО-модель говорите? а что это такое? Поди туда- не знаю куда, найдит то - не знаю что... Я уже писал тут, пробегая мимо, но не довел свою мысль до конца. Цитирую (сам себя :) >>>Мысль первая! вспомним определение модели данных: "1)множество типов, 2)множество операций над экземплярами типов, 3)множество ограничений, применимых к экземплярам типов". Мысль вторая! в ООП есть такие понятия как спецификация класса и реализация класса. Через эти понятия могут быть опрелены все три обсуждаемые концепции 1) Инкапсуляция означает, что пользователю предоставляется только спецификация класса, данные же о реализации для него недоступны 2) Наследование означает, что мы можем определить класс, спецификация которого повторяет спецификацию уже существующего класса. В этом случае пользователь будет обращаться с объектами класса-наследника точно также как с объектами базового класса. 3) Полиморфизм означает, что классы с одинаковой спецификацией могут иметь различную реализацию - например, в процессе наследования (см. выше) реализация класса может быть изменена. Итак, как мы видим, все три важнейшии ОО-концепции имеют прямое отношение к РЕАЛИЗАЦИИ. Так вот - фишка заключается в том, что говоря (в определении модели данных) про множествах типов, опреций и ограничений, мы фактически говорим о множестве классов, для которых совершенно четко определна их СПЕЦИФИКАЦИЯ - и ни слова о их РЕАЛИЗАЦИИ. <<< Конец цитаты. < Другими словами МОДЕЛЬ ДАННЫХ - это некая цель, а ОО - это способ достижения этой цели. Если модель данных соверщенно четко описывает некий набор ТИПОВ и определяет СПЕЦИФИКАЦИЮ этих типов , то ОО-парадигма утверждает, что имея некий исходный набор "примитивных" типов для которых определный исходный набор "примитивных" операторов, мы можем РЕАЛИЗОВАТЬ (описать) ЛЮБЫЕ типы. Именно поэтому я и говорю, что математическая модель ОО - это химера. Говоря образно, мы можем нарисовать чертеж детали (модель), но сделать деталь мы можем абсолютно разными способами, но если мы создали деталь, то пофигу, работали ли мы напильником (писали на ассемблере, значица:) или использовали роботизированную линию (испльзовали что-нить типа C++). Пример (я продолжаю цитирование) >>>Предположим, что используя ОО язык програмирования я создал класс "Абстрактная таблица" для которой определи набор методов, реализующих реляционные операторы, и два класса-наследника "Хранимая таблица" и "Вид" (у них могут быть конструкторы, принимающие в качестве параметров выраженияч типа "CREATE TABLE" и "CREATE VIEW"). Ну, я надеюсь вы понимаете, что у нас в конце концов должно получиться . И, наконец, мой вопрос - это объектная система или реляционная? Правильный ответ такой - для создания системы, реализующе реляционную модель использовалось средство, реализующее ОО парадигму. <<< Конец цитаты. < Используя это же средство мы можем написать систему моделирующую географические объекты, производственные процессы или реализующую виртальную Java-машину. В каждом случае у нас разная моделируемая предметная область - т.е. разная спецификация. Реляционеая моель полностью описывает СПЕЦИФИКАЦИЮ математическим языком, виртуальная Java-машину моделирует железо, а чем описываются производственные процесы? Далее... >>> ИМХО здесь надо отличать СИСТЕМУ от ИНСТРУМЕНТА, служащего для создания этой системы. Термин ОО в применении к СИСТЕМЕ действительно значит, что она состоит из объектов - а больше ничего и не нужно. Части системы - т.е. объекты - взаимодействуют на основании некой СПЕЦИФИКАЦИИ. Выполнена спецификация - есть рабочая система. Термин ОО в применении к ИНСТРУМЕНТУ создания системы означает некую методологию позволяющую описывать эти объекты на основанни существующих типов и операций. Другими словами речь идет о способах РЕАЛИЗАЦИИ заданной СПЕЦИФИКАЦИИ и именно на этом этапе возникают все эти вещи - инкап.,насл. и полиморф. То есть эти понятия нужны на этапе создания - когда же система функционирует то уже по барабану, является данный объект объектом наследуемого класса или же его класс написан с нуля. <<< Конец цитаты. < ...только я погорячился, обозвав СИСТЕМУ(результат) объектно-ориентированной. СИСТЕМА на самом деле просто ОБЪЕКТНАЯ, а вот ИНСТРУМЕНТ может быть ОБЪЕКТНО_ОРИЕНТИРОВАННЫМ. А может и не быть - в конце концов любую ОО-программу можно изобразить на ассемблере, но каких трудов это будет стоить? С другой стороны, используя ОО-инструмент легко можно написать какую-нить ерунду. Например, создавая прогамму можно ВСЕ впихнуть в один класс с кучей PRIVATE-арибутов примитивных типов, кучей таких же PRIVATE-методов и единственным PUBLIC-методом "run". Соответсвенно этот класс реализует функциональный подход к созданию программы ... но разве такая система объектная? (конечно она объектная, только в этом случае любую выполняемую программу можно рассматривать как объект, но разве мы этого хотели?) В общем я повторяю - ИМХО "строгая модель ОО" есть химера, этакий филосовсий камень, о которм все мечтают, но который, увы..... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 10:53 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Далее... про глубинный смысл и язык. И не слово о маппинге! Кстати, а что это такое? Не, я читал что-то, но объясните мне это на словах, как Вы это понимаете..... Ах да, глубинный смысл :) Ну если возвращаться к моему предыдущему посту, то я хочу показать, что если мы используем в качестве исходного "примитивного" типа то, что называется "отношением", то мы получяем огромное количестов очень интересных эффектов, и одним из этих эффектов как раз является возможность создания "языка программирования, сочетающего в себе декларативные конструкции реляционной алгебры и императивные конструкции объектно-ориентированных языков". Надо только включить воображение и прочитать внимательно. В том числе и мои предыдущие сообщения. Но на всякий случай повторюсь (на пальцах конечно) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Здесь я хотел бы обратить внимание на то факт, что атрибут t локально в классе представляет собой...мммм...... табличку - с ней мы може работать в области видимости класса, например выбирая из нее записи - SELECT ... FROM t (это может быть оформлено в виде хранимых процедур этого класса) . В случае, если атрибут является публичным, мы можем работать с ним, как с атрибутом объекта определенного некой ссылкой obj и написать SELECT ... FROM obj.t (Это может быть в другой хранимой процедуре, где такая ссылка определена). Важнейшая же фишка заключается в том, что, поскольку каждому объекту соответсвует некий уникальный OID , то АБСОЛЮТНО законным является также выражения SELECT ... FROM base_c.t! То есть становиться возможным групповой доступ ко множеству объектов, причем в это множество входит и объекты производного класса, в которых указанный атрибут переопределяется (это может быть и в хранимой процедуре и ...мммм.....как команда доступа к данным извне). И все это выражение является абсолютно реляционным. Развивая мысль мы можем дать абсолютно реляционное определние объекта "объект - это декартово произведение своих атрибутов", что позволяет смело написать SELECT ... FROM base_c - то есть организовывать групповой доступ к объектам класса. И поскольку класс inh_c наследует класса base_c (в.тч. и его спецификацию...т.е. набор сигнатур атрибутов) то этот SELECT относится и к объектам класса inh_c, тем самым являясь командой доступа к данным НАСЛЕДУЕМОГО ПОЛИМОРФНОГО класса не выходя за пределы реляционной модели данных. То есть классы как типы данных имы описываем ....мммм.....императивно :) но работать с ними можем и декларативно :)) ну или что-то типа того. Возвращаясь к предыдущему посту можно сказать так. Создавая объектную систему на базе аппратного компьютера мы ВЫНУЖДЕНЫ представлять наши объекты как набор переменных простых типов. Создавая объектную систему на базе реляционной БД мы должны представить ее как совокупность переменных типа "отношение", поскольку это единтсвенный тип, реализуемый реляционными системами. Можем ли мы это сделать? А нормализация то на что нам дана? именно для этого. В результате нормализации мы и получаем требуемую струкутру атрибутов объекта. Это не маппинг. Маппинг подразумевает, что данные преобразуются из "объектных структук в реляционные". У меня объекты изначально представляют собой совокупность реляционных структур. А зачем преобразовывать что-то во что-то если требуемое уже и так есть? Вот такой вот "глубинный смысл".... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 11:56 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
1)ну если Вы такой умный. Объясните что значит убогий PL/SQL. В теории формальных я такого слова не встречал :-). Ну конечно это не на формальном уровне, а на уровне ощущений. Как бы это обьяснить... Basic - убогий по сравнению с C++ Язык машины Тьюринга хоть и встречается в теории формальных систем но с точки зрения практического программирования он - убогий CURSOR C1 IS SELECT ... FROM ... WHERE ... OPEN C1; LOOP FETCH C1 INTO ... EXIT WHEN C1%NOTFOUND; <действия> END LOOP; CLOSE C1; выглядит убого по сравнению с foreach( i in c1 = <реляционное выражение>) { <действия> } 2)И конечно, хорошо бы после ответа на пункт 1 услышать ответ на вопроса- А ЗАЧЕМ :-) Для того чтобы работа программиста приносила моральное и эстетическое удовлетворение :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 12:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
А такой вариант цикла не пробывали использовать?: for переменная in наименование_курсора(список параметров) /*можно и сразу select без объявления курсора писать*/ loop список операторов; end loop; На мой взгляд тоже самое что foreach( i in c1 = <реляционное выражение>) { <действия> } ИТОГО: Возможно стоит лучше изучить синтаксис PL/SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 12:35 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
А такой вариант цикла не пробывали использовать?: for переменная in наименование_курсора(список параметров) /*можно и сразу select без объявления курсора писать*/ loop список операторов; end loop; В любом случае эта конструкция подразумевает FETCH то есть 1. Сформировать текст запроса (если запрос динамический то путем хитроумных строковых операций) 2. Скопировать параметры в запрос 2. Выполнить запрос 3. Скопировать данные из результата запроса в переменные То есть по сути это не один язык программирования с единой системой типов а язык слепленный из трех частей 1. Язык запросов - SQL 2. Императивный язык 3. Механизм перегонки данных из запросов в переменные императивного языка и наоборот Вот этого механизма перегонки и хочется избежать. Хочется чтобы система типов данных в языке запросов была та же что и в императивном языке. Хочется чтобы в этой системе типов были объекты, такие как в C++, Java или С#. Хочется напрямую использовать эти объекты в запросах, вызывать методы. Хочется не делать различий между реляционными операторами и остальными операторами языка. Динамические запросы хочется формировать средствами языка а не путем конкатенации строк. Есть подозрение что оптимизатор для такого языка будет работать эффективнее так как получит возможность оптимизировать запросы в контексте всей программы а не сами по себе. Вместо этого имеем различные диалекты SQL и узенькое горлышко для перекачки данных между SQL-сервером и программами на объектно-ориентированных языках: текст запроса -> курсор -> буферные переменные -> свойства объектов Ok, возможно PL/SQL вуалирует этот механизм , но дотягивает ли система типов PL/SQL до языков типа Java/C++? Сильно сомневаюсь ИТОГО: Возможно стоит лучше изучить синтаксис PL/SQL. Да уж, придется изучить синтаксис PL/SQL, а потом еще Transact-SQL, а потом еще кучу недоделаных языков от различных поставщиков субд ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 15:00 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Андрей, я не совсем понял что значит подразумевает использование FETCH. В приведленном мною псинтаксисе Вам не надо делать FETCH явно. Пример: -- begin for var in ( select * from all_objects) loop dbms_output.put_line(var.object_name); end loop; end; -- "То есть по сути это не один язык программирования с единой системой типов а язык слепленный из трех частей" Нет это один язык программирования. Если уж на то пошло.(постараемся придерживаться формального подхода.) "Вот этого механизма перегонки и хочется избежать." Вопрос зачем. Пока механизм "перегонки" проблем не приносит. "Есть подозрение что оптимизатор для такого языка будет работать эффективнее так как получит возможность оптимизировать запросы в контексте всей программы а не сами по себе." Интерестно увидеть математическое доказательство. "дотягивает ли система типов PL/SQL до языков типа Java/C++? Сильно сомневаюсь" а зачем? "Да уж, придется изучить синтаксис PL/SQL, а потом еще Transact-SQL, а потом еще кучу недоделаных языков от различных поставщиков субд" опять же что значит недоделанных. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 15:19 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Вот этого механизма перегонки и хочется избежать." Вопрос зачем. Пока механизм "перегонки" проблем не приносит . Имхо 90% программирования состоит в конвертации данных между различными системами типов. Платформы типа Java или .NET пытаются как-то эту проблему решить, а вот в мире SQL похоже полный застой. "дотягивает ли система типов PL/SQL до языков типа Java/C++? Сильно сомневаюсь" а зачем? Так как PL/SQL не является языком общего назначения, для решения реальных задач приходится применять его вместе еще с чем-то, например с java. Опять возникает проблема конвертации данных из одного языка в другой "Да уж, придется изучить синтаксис PL/SQL, а потом еще Transact-SQL, а потом еще кучу недоделаных языков от различных поставщиков субд" опять же что значит недоделанных . Ок, пусть будет "нестандартизированных" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 15:52 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Имхо 90% программирования состоит в конвертации данных между различными системами типов." Если под программированием понимать полько написания прикладного исходного кода. то тоже не совсем понятно. Сразу встает вопрос что подразумевать под конвертацией. если оператор присваивания, то сомневаюсь что 90% операторов - это операторы присваивания. "Платформы типа Java или .NET пытаются как-то эту проблему решить, а вот в мире SQL похоже полный застой." так потому что не надо. в мире SQL все ok. Язык SQL более чем реляционно полный. а тут еще процедурные расширения имеются. "Так как PL/SQL не является языком общего назначения, для решения реальных задач приходится применять его вместе еще с чем-то, например с java. Опять возникает проблема конвертации данных из одного языка в другой" да PL/SQL - язык для манипуляции реляционными данными и использовать его для чего-то друго порою не целесообразно. Ок, пусть будет "нестандартизированных". Ну с этим есть проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 16:03 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Что значит - PL/SQL не сявляется языком общего назнчения? А, пардон, С (без ++) является языком общего назначения или не является? Дык PL/SQL ничуть не хуже - те же языковые конструкции, те же переменные.... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 16:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Что значит - PL/SQL не сявляется языком общего назнчения?" напишите мне пожалуйста текстовый редактор на PL/SQL :-)) или операционную систему или скажем драйвер. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 16:08 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Ну я бы не стал говорить, что прямо все так и ОК. Являясь реляционно-полным он не яляется реляционно-точным :). Здесь есть повод вернуться к нашим баранам.... в смысле к САБЖУ. Что подразумеают языки типа С++ или Java. То, что любой объект представлен в памяти как совокупность переменных примитивных типов. Что подразумевает реляционные системы? Что данные о любой предметной области будучи нормализованными могут быть представлены как набор значений отношений,(таблиц значица :)) причем в качестве доменов(типов атрибутов) мы используем те же самые примитивные типы. Ну и поскольку инф . сиcтемы традиционно (в силу так скаать эволюционных причин) деляться на программы и системы хранения данных, то возникает этакий пинг-понг: Int -сюда, Сhar - туда.... и все это описывается определенными языковыми конструкцими (я сознательно упрощаю, потому как сейча вокруг этого все столько понакручено, что за деревьями леса не видно). Но люди ленывые даже для того, что бы описать это туда-сюда :) к тому же в сложных проектах очень много разного туда-сюда получается и от этого мелькания голова пухнуть начинает. А поскольку производительность растет, то возникает желание ....как-нить изобразить, что бы данные были представлены одновременно и как объекты и как отношения... ... И вообще, что бы это лежало в одном месте и там же же вычислялось... жило в общем своей жизнью...Эту жизнь конечно надо описать, причем описать так, что бы это на что-то было похоже... желательно на то, о чем речь... ну например на склад....или на карту....иля на производство.... ну в общем на все, что угодно... То есть речь идет о том, что бы было то, что в Манифесте БД третьего поколения называется "богатая система определяемых пользоватем типов? служащих для описания персистных данных" Отвлекусь.... вот тут прозвучало "в мире SQL все ok". Ну да действительно все ОК. Есть таблицы и любые данные мы можем нормализовать до набора таблиц, а для работы с ними использовать стандартные операции, определнные в реляционной модели. Но таблица - это не есть способ описания объектов - это есть способ описания данных. В конце концов, точно так же можно сказать, что в мире аппаратной памяти все ОК - ведь (в конце концов!) все данные размещаются в аппаратной памяти а процессор может складывать числа или копировать байты. Ситуация заключается в том, что сегоднящянии языки реляционных систем по сути своей являются ФУНКЦИОНАЛЬНЫМИ - типа раннего фортрана значит. Критерий очень простой - у фортана был нерасширяемый набор типов, реализуемых в аппаратной памати. У соременных языков реляционных систем единтственным типом является тип "отношения" - они работают с таблицами... и все. То сеть то, что говорит GrimReaper777 мне кажется достаточно оправданным... но не все.... то есть для меня курсор в целом - это допустимый аналог FOREACH, поскольку они служат одним целям, но вот FETCH мне активно не нравиться, поскольку он подразумевает тот пинг-понг, от которого начиает пухнуть голова. А вот вопрос "дотягивает ли система типов PL/SQL до языков типа Java/C++? Сильно сомневаюсь..." вместе с ответом я целиком и полностью поддерживаю - не дотягивает нифига. У меня вопрос... вот вы тут обсуждетет тему, которая неким образом касается сабжа... но вес же вы в сабж ...в статью то бишь... вчитались? Там речь все же немножко о другом...но если напрячь фантазию...может найдете и для себя ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:02 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для n А Вы попробуйте напишите на С.... только чур - ТОЛЬКО ЯЗЫКОМ, т.е. без функций ввода-вывода и операций с файлами ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:05 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Если под программированием понимать полько написания прикладного исходного кода. то тоже не совсем понятно. Сразу встает вопрос что подразумевать под конвертацией. если оператор присваивания, то сомневаюсь что 90% операторов - это операторы присваивания. Под конвертацией я понимаю взаимодействие программных компонентов написанных с использованием различных систем типов. Самый простой пример: массивы и строки в C/C++. Есть сишные массивы (указатель на первый элемент) причем с различными стратегиями выделения/освобождения памяти. Есть STL. Плюс в каждой крупной базовой библиотеке, типа ATL от Microsoft, есть свои классы реализующие массивы. Плюс каждый программист считает своим долгом создать свой собственный фирменный класс для работы с массивами. Плюс удаленные вызовы где нужно эти массивы как-то маршаллизовать. Плюс модули написанные на других языках программирования. Отсюда - килобайты программного кода который занимается конвертацией одних и тех же данных в разные форматы для того чтобы передать их в другой модуль, или хотя бы в другую функцию в том же модуле. Все эти тонкости по взаимодействию программных компонентов сводят "объектную ориентированность" на нет, и ведут к тому что прикладной код содержит 90% логики по взаимодействию компонент, и лишь 10% непосредственно бизнес-логики, хотя должно быть наоборот. Java, .NET пытаются решить эту проблему за счет введения единой системы типов, прозрачного механизма удаленных вызовов, использования XML ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Являясь реляционно-полным он не яляется реляционно-точным :). " 1)Определения реляционно-точного языка не встречал нигде. Если это Ваше, то дайте четкое определение. 2) Приведите определение функционального языка и покажите почему SQL Или PL/SQL является функциональным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:25 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"А Вы попробуйте напишите на С.... только чур - ТОЛЬКО ЯЗЫКОМ, т.е. без функций ввода-вывода и операций с файлами " так занчит и C без функций ввода-вывода и операций с файлами не является языком общего назначения. НО это другой вопрос. ТО что PL/SQL не является таковым я показал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:26 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
А Вы попробуйте напишите на С.... только чур - ТОЛЬКО ЯЗЫКОМ, т.е. без функций ввода-вывода и операций с файлами Ну естественно что любому языку необходима привязка с системным сервисам. Разница в том, что в C или Java такая привязка делается естественным образом, а в PL/SQL приходится извращаться , например делегировать вызовы расширениям на других языках ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:27 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Плюс каждый программист считает своим долгом создать свой собственный фирменный класс для работы с массивами" это не проблема языка . Это проблема проета или руководителя этого проекта. А все описанное вами это тоже не проблема конкретного языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:29 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"Разница в том, что в C или Java такая привязка делается естественным образом, а в PL/SQL приходится извращаться , например делегировать вызовы расширениям на других языках" так не надо на PL/SQL писать текстовый редактор. Вдумайтесь в его название. procedure sql. т.е процедурное расширения языка манипуляции реляционными данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:31 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
"в C или Java такая привязка делается естественным образом" Что? Естественным образом? Ну если ассемблер для С - это естественный образ (а все стандартные библиотеки ввода-вывода для каждой машины свои и в конце концов реализуются на ассемблере конкретной машины ) то почему бы для PL SQL не написать что-нить на С? разве это извращение? :) А в Java так вообще - целая ВИРТУАЛЬНАЯ МАШИНА для каждого железа своя. Ребяты!!! Вы чем говорите то.... какие операции ввода-вывода? Причем здесь язык вообще? Именно что, "процедурное расширения языка манипуляции реляционными данными" поскольку без такого расширения реляционные системы являются фактчески непрограмируемыми . Она может выполнять отдельные операции, и все... этакий табличный калькулятор. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 17:53 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
это не проблема языка . Это проблема проета или руководителя этого проекта. А все описанное вами это тоже не проблема конкретного языка. В любом проекте есть взаимодействие с внешними проектами и системами. Платформы а-ля Java или .NET предлагют определенный стандарт на такое взаимодействе. В C++ такого стандарта нет, каждый творит как хочет, и в этом проблема данного языка. В мире СУБД примерно та же беда - каждый поставщик сам себе изобретает велосипед а пользователи отгребают глюки. так не надо на PL/SQL писать текстовый редактор. Вдумайтесь в его название. procedure sql. т.е процедурное расширения языка манипуляции реляционными данными. Зато хочется на Java писать доступ к реляционным данным. И тут начинается гемморой и пинг-понг. Так что необходимы еще и реляционные расширения процедурного языка :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 18:00 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Что? Естественным образом? Ну если ассемблер для С - это естественный образ (а все стандартные библиотеки ввода-вывода для каждой машины свои и в конце концов реализуются на ассемблере конкретной машины) то почему бы для PL SQL не написать что-нить на С? разве это извращение? :) А в Java так вообще - целая ВИРТУАЛЬНАЯ МАШИНА для каждого железа своя. небольшая поправка: писать библиотеки нужно не для каждой конкретной машины, а для каждой конкретной операционной системы, которая и обеспечивает абстрагирование от железа. А в Java пошли чуть дальше и сделали что-то вроде виртуальной операционной системы и правильно сделали PL/SQL сам по себе уже извращение. Вот в DB2 например более грамотный подход: все хранимые процедуры пишутся на внешних языках, а не на каких-то костылях. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 18:13 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
О, блин! Хоть кто-то на меня внимание обратил.... :) 1)Определения реляционно-точного языка не встречал нигде. Если это Ваше, то дайте четкое определение. Четкого определния нет, но попробуйте почитаnь здесь . Или зайдите на сайт www.dbdebunk.com и посмотрите, почему Крис Дейт не любит SQL/ 2) Приведите определение функционального языка и покажите почему SQL Или PL/SQL является функциональным. Сорри, давайте делить SQL и PL/SQL. SQL - вообще непроцедурный и описывает отдельные операции. PL/SQL - процедурный и описывает последовательность таких операций. А почему он является функциональным я уже написал - потому что все опреации выполняются над переменными типа "отношения" (т.е. над таблицами), который является предопределённым,а другие типы определять нельзя. Я конечно понимаю, что есть TABLE и RECORD... но ИМХО это у них от непонимания ситуации получилось Ну и примитивные типы INT, CHAR а куда ж без них? Домены все ж... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 18:14 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 т >так занчит и C без функций ввода-вывода и операций с файлами не является языком общего назначения. НО это другой вопрос. ТО что PL/SQL не является таковым я показал. Неверно. На PL/SQL можно написать все что угодно, в том числе и операционную систему. Напиши себе виртуальную машину и в ней (для нее) напиши ОС. Как только в языке появился цикл либо рекурсия, он становится равномощным всем языкам типа C и вместе с ним машинам Тьюринга, Поста и пр. В PL/SQL присутствуют и цикл и рекурсия. А вот на SQL многого сделать нельзя, там нет рекурсии. Как всегда вопрос сводится не к можно-нельзя, а к удобно-неудобно. Еще иногда играет роль производительность результирующей системы. Поэтому появились попытки ввести в SQL сервера поддержку джавы, считается, что на ней писать удобнее. >2) Приведите определение функционального языка и покажите почему SQL Или PL/SQL является функциональным. Нужно выбрать другой термин, "функциональный" - название группы языков типа LISP. PL/SQL к ним не относится, он процедурный. Впрочем совсем точных определений по-видимому нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2003, 23:50 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для c127 Спасибо...:)...Ну конечно же процедурный..... (Может быть можно скзать алгоритмический ?) В общем язык, который описывает последовательность вычисления значений переменных фиксированного набора простых типов. Про них Г.Буч в книжке "ООП с примерами применения"пишет как про языки первого и второго поколения. PL\SQL очень к этому близок, только там наряду с поддержкой доменных типов (всяких int и char) поддерживается тип отношение и опреации надпераменными этого типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2003, 10:44 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Еще про "глубинный смысл". Меня фраза c127 некоторым образом....мммм... задела .... не в том смысле, что она плоха.... а... мммм.... выказывает некое непонимание. "На PL/SQL можно написать все что угодно, в том числе и операционную систему. Напиши себе виртуальную машину и в ней (для нее) напиши ОС" Зачем на нем писать какую-то машину? Статье о САБЖе предполагает, что реляционную СУБД саму надо рассматривать как МАШИНУ. СУБД поддерживает табличные переменные (то есть выполняет функции памяти) и выполняет операции над ними (то есть выполняет функции...мммм... процессора). Только там память не линейно-адресуемая, а таблично-ассоциативная и команды "процессора" соответсвенно заточены под это дело. В принципе PL/SQL можно рассматривать как МАШИННЫЙ язык (а так же Т-SQL и т.п. - в общем для каждой машины свой машинный язык). Обсуждаемая статья собственно и показывет, что для этой машины можно сделать ОО-систему програмирования, и объясняет, как ее можно сделать. И заодно рассказывает, что мы с этого можем поиметь. Жаль, конечно, но возникает впечатление, что кусок между вступлением и заключением никем еще не прочитан.:( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2003, 15:22 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene Да, я теперь понял, оракл, в котором живет PL/SQL, по-видимому можно рассматривать как машину и тогда PL/SQL превращается в подобие машинного языка. Это гораздо лучше того, что я предлагал. Но ведь никто не запрещает написать эмулятор классического процессора с регистрами, памятью и пр. Тоже решение, не такое красивое, но более понятное присутствующим здесь сишникам/плюсплюсникам. В любом случае с PL/SQL все ясно и обсуждать нечего. Я частично прочитал вторую часть статьи и теперь вспомнил, что где-то там этот вопрос обсуждался. Просто забыл. Теперь скачал вордовый файл, почитаю на досуге с нормальными обозначениями. Но меня лично на сегодняшний день больше интересует формализация понятия объект, т.е. первая статья, с ней разбираюсь потихоньку. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2003, 23:14 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene Только сейчас прочитал статью. Мыслишь абсолютно в правильном направлении. Я уже давно экспериментирую в этом направлении, правда больше с позиций разработчика. То, что такую систему можно реализовать - это очевидно, но ... Давай представим, что мы решили разработать эту систему. Далее все идет уже с подробностями реализации. Имеем: - набор целевых объектов, связанных посредством ссылок между собой (граф такой). - Размер ОЗУ на порядки меньше общего размера данных. - Хранить данные в реляционной базе теряет смысл, т.к. в любом случае весь механизм запросов реализован над теми данными, что в ОЗУ, т.е. нужен просто низкоуровневый механизм хранения данных, типа такого которым пользуются реляционные БД. - Данные ссылаются друг на друга индентично в ОЗУ и ВЗУ (!!!) иначе нет смысла во всем этом. Ссылка возвращает адрес объекта в ОЗУ. Далее. Разработка прикладной базы данных в этом случае - это суть разработка структуры и методов всех классов, а также глобальных операций (не относящихся к конкретным экземплярам). Следующий шаг - компиляция двоичного модуля, содержащего имплементацию всех описанных методов и процедур. Система работает непосредственно вместе с скомпилированной прикладной библиотекой в одном процессе. Т.е. мы полностью объединили те серверные уровни, которые сейчас разносят в классической 3-х звенке. Далее. Метод хранения. Под большим вопросом. Ведь нам надо индентично хранить данные в ОЗУ и ВЗУ, иначе придется изобретать глобальный уникальный идентификатор объектов (или ключи, порой суррогатные), и действительно использовать промежуточную реляционную субд только лишь с целью физического хранения наших объектов. (из пушки - по воробьям) Представим, что разрядности адреса платформы хватает для вмещения всего требуемого объема данных (64 хватит до конца века). В этом случае, для хранения данных в ВЗУ можно использовать обычный механизм виртуальной памяти современных ОС. Он как нельзя лучше отображает ОЗУ на ВЗУ, да еще с максимальной для данной платформы скоростью. Чтобы не создавать "кашу" в файле подкачки (это и есть НАША БАЗА в ВЗУ), необходимо при выделении памяти в ОЗУ группировать объекты по классам, и размещать их на страницах равных или кратных по размеру страницам виртуальной памяти целевой платформы. Всем этим будет заниматься обычный менеджер памяти, которые многие программисты на С++ наверняка не раз писали, если участвовали в разработке серверных приложений. Я малость углубился в детализацию/оптимизацию :) Вернемся к сущности. А суть состоит в том, что конкретная прикладная система - это конечное множество алгоритмов над (теоретически) бесконечым количеством данных. Я побоялся сказать сразу, без вступления, но теперь, когда публика немного подготовлена, говорю: следовательно, нашей системе вообще необязательно иметь механизм динамической компиляции и исполнения запросов (то, что является сердцем СУБД). Т.к. описание классов и всех их методов, а так же описание методов из прикладного уровня известно уже на этапе компиляции, то все это уже скомпилировано в систему. Те кто всю жизнь администрил ораклы и сиквели, те кто написал ручками не один километр скриптов на обслуживание, тюниг, индексирование и пр.пр.пр подумают, что я сошел с ума. Если бы не одно но! В предлагаемой U-gene схеме все данные УЖЕ СВЯЗАНЫ между собой всеми возможными связями, которые могут существовать между ними в принципе, исходя из предметной области. Да потому, что у нас нет и не может быть UserID в таблицах, а есть адрес конктретного экземляра объекта User или его потомка, а значит нам не нужны ни индексы, ни ключи, ничего. Небольшая загвоздка в языке, на котором можно описывать целевую программу (со всякими групповыми операциями). Хотя и это решаемо, - можно сделать макро-язык, который сгенерит код на С++ или там на С#, а дальше уже легко - классы есть - вперед!!! Подытожим и вернемся к "но..." которое в самом начале. 1. Необходимо средство для генерации двоичного кода из некоего описания (предположим - есть макро-надстройка, предложенная выше) 2. Это средство генерит на основе описания код, реализующий обычные и групповые операции над объектами (см. статью в самом начале топа) 3. Автоматически генерит специальные объекты-хелперы для каждого прикладного класса, через которые можно перебрать все объекты класса, которые распределяют память под экземпляры класса, которые знают об устройстве "опекаемого" класса и т.д. и т.п. 4. После компиляции все это просто запускается и работает как обычное приложение с предкомпиленным набором операций, используя в качестве средства хранения файл подкачки операционной системы. Натянуто, да, особенно для моментов включения и выключения питания, но ради ТАКОГО случая ведь и менеджер виртуальной памяти можно слегка подшаманить (на всяких Linux), в этом случае я бы его подшаманил в сторону добавления некоторый простейших свойств. Например, добавить возможность задавать конкретный файл подкачки для конкретных процессов. Или же просто возможность "сбрасывать" а потом "поднимать" процесс из файлов подкачки. (опять полез в тонкости реализации, да если пораскинуть мозгами, то это все вообще не проблема) 5. Если ориентироваться на .NET, то динамика (как на обычных СУБД) вполне допустима через скриптовые возможности, возможности компиляции на "лету" и reflection. 6. НО... Это СУБД??? Или просто получили прикольную приложуху? (Хотя быстродействие этого хозяйства, если ориентироваться на С++ должно быть просто запредельным - никаких тебе JOIN). Вот так вроде выходит, что объектно-ориентированная СУБД просто вырождается в обычное объектно-ориентированное приложение, которое, правда, должно иметь некие средства для групповых операций (известных на момент компиляции, ни тебе стаистики, ни экзекушн-плана, абалдеть!!!), а так же учета целевых хранимых объектов (метаданные, да коллекции ссылок, для возможностей перебирать все существующие экземпляры объектов). ЗЫ То, что здесь описано - описано весьма и весьма поверхностно, дабы не захламлять топик. Но, поверьте, на многие очевидные вопросы, которые могут возникнуть у прочитавшего и вдумавшегося, уже есть ответы. (типа - а как мы можем изменить тип некоторого объекта, и при этом сохранить целлостность? - да более чем просто!). Пишите, пообщаемся. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2003, 08:41 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Vdimas\r \r Читал Ваше сообщение, касающееся возможной реализации неделю :) Ну что сказать?\r \r Для начала хочу припомнить топик "Система с изменяющимися алгоритмами рассчета". Наскоолько я понял, ее автор ASCRUS , посчитал возможности, предоставляемые совпременными реляционными СУБД (то есть того, что я в предыдущих выступлениях называю "табличными машинами") вполне достаточными для реализации, причем не только по языковым возможностям, но и по производительности (и вообще если говорить про то, что реализовал ASCRUS (насколько я это понял), то ИМХО - еще немного, и мы получим то, о чем я говорю....2 ASCRUS - наверное, это намёк:) )\r \r Я по поводу разговора по ОЗУ и ВЗУ, и про адресацию в ОЗУ и в ВЗУ. В том то все и дело, что реляционные СУБД ушли от этого деления. В них существуют просто данные. Как и где они храняться в данный момент в железной машине, как ОЗУ отображать в ВЗУ - все эти вопросы рещаются внутри РСУБД внутри нашей табличной машины. Сама же она предоставляет данные в виде того, что я называю "табличной" памятью.\r \r Давайте дальше. Можно выделить два типа - адресный и ассоциативный. Первый означает, что для доступа к данным мы используем адрес переменной, где эти данные храняться. Второй означает, что для доступа к данным мы должны найти их, среди других данных. Первый конечно быстрее, но за счет чего? за счет того, что мы используем возможности, предоставляемые системой хранения, то есть наши данные к этой системе хранения привязаны Второй способ (реализуемый реляционными системами), конечно медленнее, но зато он опирается только на данные, то есть от системы хранения не зависит. Если же разбирать этот вопрос более детально, то выясниться, что быстродействие - это единственный козырь адресного доступа (мы нашли быстро или не очень быстро, но в любом случае нашли). В конце концов, если бы дело упиралось только в быстродествие, то реляционные СУБД никогда не победили бы иерархические и сетевые системы, поскольку последние всегда будут быстрее.\r \r Зачем вообще говорить про адреса в ОЗУ и ВЗУ и про их привязку, если "табличная" машина позволяет вызвать некую процедуру просто по имени, то есть ассоциаивно? И OID у меня явлется "системным" только на уровне представления данных, а на уровне хранения он, наравне с другими данными, храниться в таблице и, следовательно, доступ к объекту реализуется так же ассоциативно (то ест OID вообще никаким боком к адресам на уровне железа не относиться).\r \r О чем я гвоврю? Например, следующий код, ОПИСЫВАЮЩИЙ данные на уровне представления данных\r \r Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
\r на уровне хранения фактически будет преобразован в набор хранимых ПРОЦЕДУР.\r \r CREATE TABLETYPE будет преобразован в процедуру создающую таблицу system_sometable уровня хранения, причем структура этой таблицы будет соответсвовать описанию полей sometable, плюс два системных поля 1)для OID и 2)для имени атрибута объекта (эта таблица будет использоваться для ВСЕХ объектных атрибутов типа sometable - это может быть t, это может быть другой атрибут этого класса или атрибут другого класса). Эта процедура будет вызвана либо сразу, либо тогда когда появиться первый хранимый объектный атрибут типа sometable. \r \r CREATE CLASS base_c будет преобразовано в процедуру, добавляющее в таблицу атрибута t (то есть в таблицу system_sometable) новой записи, системные поля которой будут содержать 1) OID создаваемого объекта и 2) имя атрибута "t". К тому же на этом этапе в каталог будет занесена информация, что значение атрибута t класса base_c хранится в таблице system_sometable.\r \r Теперь можно создавать объект Код: plaintext
Код: plaintext
Код: plaintext 1. 2. 3.
Соответсвенно и вся процедура уровня представления (например метод класса), где мы работаем со ссылочными переменными, объектными атрибутами и т.п. вещами присущими ОО языкам, на уровне хранения может быть преобразована в хранимую процедуру реляционной СУБД.\r \r И еще раз повторю - я не озабочен производительностью. Есть несколько причин\r 1) я не озабочен ей как ..мммм...теоретик :) По мне, так "табличные" машины (реляционные СУБД) работают бесконечно бысто. Для меня более важно, что бы троица "входное воздействие, реализация, результат" были ОДНОЗНАЧНО определены\r 2) Реальность такова, что "табличная" машина уже работают с приемлемой скоростьтю (в качестве примера можно привести все тот же топик "Система с изменяющимися алгоритмами рассчета".\r 3)В конце концов, я думаю, что UPDATE, подобный последнему не такая уж и страшная штука. Такие UPDATE\'ы приходиться делать много раз на дню, но то их пишут вручную, а тут их сгенерила система. Я уже писал, что ИМХО для производительности гораздо важнее то, что стуктура таблиц на уровне хранения определяется в общем то нормализацией данных, и практически не отличается от структуры аналогичной "традиционной" РБД. \r \r И если мы так сделаем, что вопрос\r >>6. НО... Это СУБД??? Или просто получили прикольную приложуху? \r отпадает сам собой. По большому счету он отпадает именно потому, что мы сохраняем главное преимущество РСУБД - ассоциативный доступ к данным, доступ по значениям и по именам, определенным в описании данных. Нам не обязательно хранить ссылку на объект. Мы можем всегда найти его среди других объектов класса base_c по его атрибуту t.i который равен единице. И никакие "объекты-хелперы для каждого прикладного класса, через которые можно перебрать все объекты класса" для этого в принципе не нужны. Система просто преобразует запрос, обращенный к классу base_c и к его атрибуту t в запрос к таблице system_sometable (так записано в каталоге классов). Там она может по i = 1 найти любые данные, и самое главное, она может найти OID(!) объекта, который может быть в дальнейшем использован. Другим словами, мы можем вернуть ссылку на объект по данным объекта . Реализация такого процесса в ОЗУ или ВЗУ (то есть в адресной памяти) дело ИМХО по крайне мере нетривиальное :).\r \r Далее. Если мы опишем конструктор\r \r Код: plaintext 1. 2. 3. 4.
то операцию\r Код: plaintext
мы сможем использовать не только в теле некоего метода, но и как команду НЕПРОЦЕДУРНОГО доступа к нашей системе (вот вам и расширение SQL). В принципе мы можем написать и просто\r Код: plaintext
однако в этом случае объект будет потерян, но не потому, что на него нет ссылки, а потому, что он не инициализирован какими-либо данными (то есть вновь всплывает различие между адресным и ассоциативным доступом). \r \r Так что я вижу реализацию иключительно средствами, предоставляемыми реляционными СУБД или, как я писал выше, "табличными" машиной. И (еще раз повторю) возможность такой реализации ИМХО очень убедительно показана в топике "Система с изменяющимися алгоритмами рассчета"....и все же это намек :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2003, 00:57 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
в продолжение темы www.fub.it/res/Tableofcontents.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2003, 02:02 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 tchingiz А как это тему продолжает? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 21:01 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Не поленился распечатать исходную статью. Видимо придётся ещё и обсуждение тоже завтра на работе на лазерник вывести (дома долго и чернила жалко :) ). Пока лишь о том, что увидел при беглом просмотре. Идеи объединить ООП и реляционную модель бродят давно, есть даже варинаты решения, тот же e-Cache. Но при всём при этом ничего более-менее стоящего пока, увы, не появилось. Мне кажется не появилось во многом потому, что всё время делаются попытки объединить две концептуально разные модели в нечто единое, чтобы попытаться поиспользовать приемущества того и другого подхдов. Но по ходу получается также объединение и имеющихся недостатков, что сводит в большинстве случаев сводит преимущества такого объединения к нулю. И концепция реляционных баз данных, и концепция ООП возникли как способ решения изначально разных задач. Реляционные БД - способ представления данных таким образом, чтобы это было в первую очередь удобно компьютеру и относительно понятно человеку. Если применить к реляционной БД все правила номрализации, то в 99% случаев человеку напрямую пользоватся такой базой будет невозможно. То есть, нормализация расчитана в большей степени на ускорение обработки данных компьютером и обеспечения "целостности данных". За счёт нормализации мы сокращаем количество операций, которые выполняет компьютер при анализе данных, хотя и увеличиваем при отображении их пользователю. То есть, для просмотра таких данных необходимо написать соответсвующий запрос или создать программу-клиента. ООП создавалось как способ облегчить разработку программ для программиста. Если смотреть на эту концепцию с точки зрения компьютера, то она усложняет ему жизнь, поскольку для вызоыв тех же перекрываемых методов необходимо произвести допольнительную обработку. Но писать программы с использованием ООП в большинстве случаев человеку легче (мой личный опыт это также подтверждает :) ). Теперь мы пытаемся эти два подхода объединить в нечто общее. Что и почему будем "приносить в жертву"? Если положить ООП струткуру в реляционную модель хранения данных, то мы неизбежно получим дополнительную нагрузку на компьютер, хотя одновременно можем существенно упростить написание программы. Особенно если для хранения данных попытаемся использовать какие-то стандартные существующие БД. Мне приходилось видеть примеры практической реализации механизма метатаблиц. В теории тоже звучит красиво, но работает на практике крайне медленно. Мне кажется, что реляционная модлель с одной стороны и объектно-ориентированная модель с другой очень хорошо отражают разные способы "мышления" современного компьютера и человека. При этом то, что удобно одному, в большинстве случаев совершенно неудобно другому и наоборот. И если их объединить "в лоб", то мы в итоге получим систему, которая неудобна всем. ИМХО. Когда появилась первая концепция реляционных БД? Она появилась в те времена, когда компьютерные ресурсы были дорогие и их старались экономить всеми возможными способами. Когда появилась вторая концепция ООП? Она появляется тогда, когда становится очевидно, что прогресс в аппаратной части первосходит возможности программистов по написанию программ старыми методами. То есть, появилась потребность экономить "ресурсы программистов". :) Какая потребность сейчас и что мы хотим "сэкономить"? Это и будет определять новую концепцию. А без красивой новой концепции (сути того, что мы пытаемся реализовать), ничего путного по моему не выйдет. При этом мы должны оперделиться с тем, чего у нас на самом деле в избытке и "принести это в жертву". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 23:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Смешались в кучу кони, люди :) Давайте не по порядку 1) первые РСУБД были УЖАСНО медленные. И созданы они были практически в тоже время, в какое возникли ОО языки програмирования. К производительности это не имеет никакого отношения. Более того - буквално пару мессагов назад я писал, что асссоциативный способ доступа к данным, используемый в реляционных системах, требует гораздо больших вычислительных затроат, чем адресный(ссылочный). Это только кажеться просто - реально РСУБД устроены очень сложно и даже при элемнтарных запросах выполняют коллосальную вычислительную работу с многочисленными перемещениями данных между ОЗУ и дисками. Транзакции, контроль целостности.....Прикинте сами, по сравнению с этим перекрываемые методы - это просто такое тьфу :) .Точно также (если не сильнее) как ОО облегчает програмирование, реляционная модель и реализующие ее системы облегчает работу с данными. И созданы они были именно потому, что человеку потребовался основанной на формальной модели механизм работы с большими объемами информации. 2)Я утверждаю(еще раз), что я ничем не жертвую. Оговорюсь - то, что я предлагаю, не есть конкурет систамам ОО-програмирования. Объектно-ориентирванные системы управления РБД есть инструмент, 1)позволяющий описывать моделируемую предметной области, и 2)среда согласовооного существования информационных объектов, соответсвующих этому описанию 3) механизм, позволяющий изменять состояние этих объектов и получать данные о их состоянии. Мне не нравится то, что мы должны описвать данные,хранящимися в таблицах, как набор таблиц. Мне не нравиться то, что мы должны управлять этими данными, используя операции над таблицами. Я хочу показать, что есть иной путь описание и управления данными, хранящимися в таблицах, причем сами таблицы (схема данных на уровне хранения) остаются практически без изменений. Поэтому совершенно уместно следующее сравнение: объектно-ориентирванные системы управления РБД настолько же менее эффективные по сравнению с традиционными РСУБД, насколько, скажем, С++ менее эффективен чем С (во всех аспектах, в т.ч. эффективность использования труда программиста). 3) ИМХО и реляционная модель и ОО парадигма отражают именно человеческое восприятие окружающего мира. ОО позволяет описать объекты. Рел.МД. в свою очередь, предназначччена для операций со значениями, а значения являются продуктом ...мммм....субъективного восприятия этих объектов ....вооот.... (это было как бы филосовское обоснование ООСУРБД ) 4) Выбросте из головы идеи о "совмещении". Для того, что бы понять как у меня соотносятся ОО и реляцинная БД, надо понять, как соотносятся, скажем, С++ и оперативная память (если кто сможет сформулирвать - напишите, ежели не в лом:). То, что я предлагаю - это удобный способ описанные данных, хранящихся в реляционной БД. Причем этот способ позволяет описать и сохранить ВСЕ об объекте - его состояние, поведение, связи и т.п. Воооот....:) Но ничего ....Просто сейчас период такой.... додарвиновский еще.... догматично-авторитарный. Факты, идеи и нужные технологии уже накоплены, осталось только выложить все в праильном порядке...типа....реляционные системы как универсально-формальная память, ОО как идельное ср-во описание окружающего мира и XML(или что-то типа) как универсальный способ передачи и представления данных.... и станет хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 02:06 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene> а как это тему продолжает? 1 это полушутка. я привел ссылку на систему со большим набором сложных обьектов. в идеале ты мог бы переписать часть их обьектов по своему. (только лучше не пробуй) - и показать как им все стало проще. гы 2 не могу добраться до чтения. 3 с127 нашел неточности (с которыми я согласен) на 4 странице и собирается написать тебе. 4 как там ребенок растет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 06:03 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Во, U-gene, можешь же, когда захочешь, изясняться и простым языком. :) Давай по порядку. Все эти механизмы поддержки целсотности и т.п., которые требуют кучу ресурсов, появились позже базовой концепции. Ты видел когда нибудь что из себя представляли самые первые РБД? Да и в чём основная суть табличного хранения и реляционной модели с точки зрения компьютера? А в том, что в изначальной модели размер записи в таблице фикисированный, что позвляет сразу перемещаться на выбранный номер записи. То есть, мы не прсоматриваем весь фал данных от начала к концу, а используя прямой доступ к файлу перемещаемся в нужное место. Достигается это в том числе и путём использования индексов, которые в первых системах просто указывали на первый байт нужной записи в файле. И даже если мы делаем выборку с условием, то можем не просматривать файл подряд, а перепрыгивать к следующей записи как только условие нарушилось. Это ведь сейчас у нас много ОЗУ и база или достаточно большая её часть грузиться в память. А раньше каждый байт был на счету. Формальный механизм работы с данными? Да, согласен, формальный. Но сам по себе этот механизм уже есть определённый способ моделирования реальности. А Вы предлагаете этот механизм нагрузить сверху ещё одним механизмом. В чём прелесть ООП? В том, что там, если всё делаеться согласно исходной модели, объекты не просто хранят данные, но ещё сами умеют их правильно обрабатывать. То есть, объединяется хранение данных и реакция на различные события. В вашей же схеме мы опять по сути разделяем данные объектов, кторые хранятся в РБД и методы обработки этих данных. Такое решение может быть допустимым как некий компромис, но не более. Кстати, понимать как соотносится тот же C++ и оперативная память очень полезно (хотя я так сходу вряд ли смогу это "описать" :) ). Одна из проблем, которая сегодня прослеживается, это как раз то, что большая часть людей уже практически не представляют что и как в компьютере соотносится. Причём большей части людей этого, видимо, и не требуется, но вот разработчикам такое понимание просто необходимо. А как иначе они будут находить эффективные решения? Кстати, я вашей модели я не уловил каким образом опиясывается "поведение" средсвами РБД? Состояние - понятно, связи - тоже понятно. А поведение? Особенно если учесть, что вы постоянно ссылаетесь в своей работе на манифест, в котором как основа утверждается использование непроцедурных языков. :) Я вот так и не смог придумать способ описать поведение на непроцедурном языке. Может быть разъясните мне, тёмному? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 08:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene Дочтал статью, понравилось. Очень хорошо получилось разделение на уровень представления и уровень хранения. Конечно не все прочитал с одинаковым вниманием, мог легко что-то пропустить. Нельзя ли в следующий раз выкладывать статью в интернет не в формате DOC, а в формате RTF, или же выложить два варианта? Вам это ничего не стоит, а читателям спокойнее. Все изложенное ниже – чистое ИМХО, на абсолютность я не претендую ни в коем случае, за исключение пары технических моментов. *) определение <0> - определение объекта. Чингиз обратил внимание, что поскольку {OID,a,r} включает разнородные упорядоченные элементы, его нельзя определять как трехэлементное множество, необходимо определять как тройку, т.е. o={OID,a,r} необходимо заменить на o=(OID,a,r). *) определение <0>. Элемент r нельзя определять как множество, иначе будут проблемы с одинаковыми значениями: множество {1,1,1} есть просто {1}. Возможно это же касаетя элемента a, но тут я не уверен, не понимаю, что в данном случае понимается под именем. Самое простое – перейти от множеств к спискам. Но по-моему лучше объединить a и r в множество пар: x={(a1,r1),…,(an,rn)}, где имя уникально по крайней мере в пределах одного объекта. Тогда объект это o=(OID,x). Определение схемы в остается аналогичным данному в статье: Schema:x|->{a1,…,an}. *) “Теория реляционных БД предполагает, что для обеспечения эффективного хранения данных (что подразумевает их целостность и непротиворечивость) , эти данные должны быть нормализованы [8,9,10].”. Тут Cat2 уже говорил, и я присоединяюсь, что требование нормализации данных (т.е. соблюдение всех нормальных форм одновременно) не следует с необходимостью ни из требования их эффективного хранения, ни из требования целостности и непротиворечивости, ни тем более из реляционной модели. *) соотношение <7>. Если это соответствие есть изоморфизм, то можно использовать обозначение изоморфизма, будет проще и понятнее. *) На стр. 3: “Предполагается, что возможность, позволяющая описать объектную переменную и задать множество значений отношений {r1,r2….rn}, не может быть выражена в терминах реляционной модели данных и, следовательно, ортогональна ей.” Необходимо сказать более подробно о статусе этого утверждения, например что это аксиома. Тем более, что в статье оно повторяется еще по крайней мере трижды: на стр. 6,7 и косвенно на стр.9: “Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).“ Последнее ставит под сомнение, что изначально предполагалась аксиома. *) “Крайне важен тот факт, что предлагаемая формализация однозначно определяет способ, позволяющий представить информацию, описывающую множество O объектов вида <0>, в терминах реляционной модели данных.” Нет доказательства. К тому же это неверно, таких представлений может быть несколько, например всякие ненормализованные, да и нормализованных наверное может быть несколько, ведь нет теоремы о единственности нормализованного представления данных. Возможно имелось в виду, что существует единственный оптимальный способ представления, но тогда нужно доказывать соответствующую теорему. Возможно в данном случае вместо “однозначно определяет” лучше сказать: “определяет естественным образом”. *) В статье встречается несколько утверждений, аналогичных двум предыдущим, к которым непонятно как относится: то ли как к теоремам, то ли как к аксиомам, то ли как к разъяснительным и не несущим формальной нагрузки. *) Вместо словосочетания “существует функциональная зависимость” по-моему лучше использовать “существует функция” или “ существует отображение” *) Непонятно как записывается наследование классов на уровне храненния. *) Непонятно как записываются методы на уровне хранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2003, 07:44 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Дмитрий Мыльников >Мне кажется, что реляционная модлель с одной стороны и объектно-ориентированная модель с другой очень хорошо отражают разные способы "мышления" современного компьютера и человека. При этом то, что удобно одному, в большинстве случаев совершенно неудобно другому и наоборот. Не знаю как там объектно-ориентированная модель, а реляционная модель это в чистом виде (счетные) множества и отношения. На этой основе строится вся математика, которая всех устраивала вот уже несколько тысяч лет. А теперь вдруг в терминах множеств мыслить стало неудобно. Да RDBMS так успешны именно потому, что, что модель ОЧЕНЬ удобна для человека и достаточно удобна для компьютера. А проблемы от того, все множества, живущие в компьютере все-таки "сильно конечны", если бы они были равномощными счетным множествам, то проблем бы не было вообще. ИМХО. > И если их объединить "в лоб", то мы в итоге получим систему, которая неудобна всем. ИМХО. Не нужно их объединять, нужно записать в строгом смысле что мы понимаем под объектом и объектно-ориентированным подходом и многие вопросы сразу снимутся. Потом будем думать что делать дальше. А пока это не сделано - непонятно что с чем объединять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2003, 22:09 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
В теории всё выглядит красиво. А как оно будет на практике. ВОт U-gene интересовался представляет ли кто-нибудь как объекты C++ отображаются на память (ОЗУ)? На счёт С++ сказать не могу, но как объекты Delphi (точнее Object Pascal) отображаются в ОЗУ я очень хорошо себе представляю. Что получится в предлагаемой U-gene системе? Получится, что данные одного объекта будут разнесены по разным таблицам. То есть, чтобы получить данные одного объекта серверу или приложению (смотря где будет происходить "сборка") придётся проделать достаточно много операций. И всё для чего? Для того, чтобы было удобнее хранить? Но это вопрос спорный. Чтобы было удобнее описывать модель? А чем неудобна собственно ОП? На мой взгляд существенный недостаток предлагаемого подхода как раз в том, что добавляется очередное разделение. При этом на уровне реляционной модели что там будет хранится совершенно всё равно. Если в ОЗУ обезличенный набор байт, то в РСУБД уже менее обезличенный, но всё ещё набор байт, но уж никак не объект в смысле ОП. И не надо путать "строгое математическое описание" и реальные РСУБД. Хотя, возможно, это разный взгляд на вещи теоретиков, которым важно именно "строгое мат. описание" и практиков, которые потом вынуждены придумывать как при реализации конкретных проектов выйти за рамки этого "строгого мат. описания", которые не позволяют решить поставленную задачу. И, что интересно, при выходе за эти самые рамки "строгого мат. описания" решение получается гораздо эффективнее, чем если пытаться всё сделать согласно теории. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2003, 23:35 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Я тоже склоняюсь к мнению, что использовать РЕЛЯЦИОННУЮ БД только как хранилище объектов немного неоправданно. В качестве хранилища объектов нужна специальная СУБД (ссылки на Cache не давать :) ), предназначенная именно для хранения объектов. Причем, никто не мешает применять наработки в области реляционной алгебры к подобной объектной базе данных. Несомненно от SQL придется отойти, как от языка, предназначенного для манипулирования "плоскими" таблицами. Не сомневаюсь, что SQL-для-объектов может быть очень похож на современный SQL. Но, вот, андеграунд, двоичная структура возвращаемых записей, должна соответствовать объектной структуре. Причем, необязательно возвращать все поля объекта, как необязательно возвращать все поля из таблиц. Более того, идя дальше в рассуждениях, можно создавать объекты из комбинаций полей других объектов, и т.д. (незаметно углубился...) Что касается отображения объектов С++ на память - очень даже просто отображаются. Только ведь это не важно (как не важен способ бинарного хранения данных в современных реляционных БД), важен ИНТЕРФЕЙС, который предоставляет ООСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2003, 05:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
И так мы постепено придём к тому, что вопрос нужно ставить не о том, "можно ли отобразить объекты на реляционную модель?", а о том, что необходимо разработать удобный способ описания объектной модели, чтобы он позволил работать с объектами так же, как реляционная алгебра позволяет работать с реляционной моделью. Соответсвенно, следующим шагом будет разработка некоего языка, подобного исходному SQL, но для объектной модели. Кстати, судя по имеющимся на сегодняшний день наработкам, в том числе и по работе уважаемого U-gene, реляционная модель должна быть частным случаем объектной модели, а язык SQL как бы частнм случаем этого нового языка (назвать можно например OML - язык манипулирования объектами :) ). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2003, 09:26 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
В порядке FIFO, если не возражаете... 2 Дмитрий Мыльников (28.08.03) >>Все эти механизмы поддержки целсотности и т.п., которые требуют кучу ресурсов, появились позже базовой концепции. Ну... базовая концепция включает по крайней мере понятие "ключ" (первичный, внешний) - это уже требованеи к целостности данных. Т.е. без ключей - это не РБД. >>Ты видел когда-нибудь что из себя представляли самые первые РБД? Не видел, только читал. Сильная весчь, между прочим >>Да и в чём основная суть табличного хранения и реляционной модели с точки зрения компьютера? Ага, я же говорю, смещались в кучу таблицы, реляционная модель... тут еще паскалевских файлов с записями не хватает для полноты картины. >>А в том, что в изначальной модели размер записи в таблице фикисированный, что позвляет сразу перемещаться на выбранный номер записи. Вот это вообще вышак :). Все мои предыдушие распинания про адресный и ассоциативный доступ к данным прошли мимо. Совсем...... Какой-такой номер записи в таблице? С этого места можно поподробнее плиз?... Нехай местный народ поразвлекается..... >>То есть, мы не прсоматриваем весь фал данных от начала к концу, а используя прямой доступ к файлу перемещаемся в нужное место. Угу... нужное место - это прально (особливо ежели там бумажка мягкая:). Вот, скажем, мне нужно что-гить типа Код: plaintext
>>Формальный механизм работы с данными? Да, согласен, формальный. Но сам по себе этот механизм уже есть определённый способ моделирования реальности. Реляционная модель - это модель данных! и к реальности она имеет такое же отношение как орфографический словарь к роману за жисть :) >>А Вы предлагаете этот механизм нагрузить сверху ещё одним механизмом. А пардон, мы это наблюдаем постоянно! Вон в передаче данных аж семь уровней, сидящих друг на друге... А команды процессора 8086 в современных процессорах тоже транслируются в какой-то внутренний код и только так выполняются. А Java с ее виртуальной машиной...иж понакрутили...:) >>В чём прелесть ООП? В том, что там, если всё делаеться согласно исходной модели, объекты не просто хранят данные, но ещё сами умеют их правильно обрабатывать Супер-супер! Волга впадает в Каспийское море.... Я же не против, я только за. >>В вашей же схеме мы опять по сути разделяем данные объектов, кторые хранятся в РБД и методы обработки этих данных. Такое решение может быть допустимым как некий компромис, но не более. Я понял - Вы не читали статью:).... ну или читали ее невнимательно Конечно, на уровне хранения код и данные храняться в множестве разных записей. Но эта кухня скрыто от пользователя-прогаммиста, который описывает данные и работает на уровне представления , а там все....весьма объектно, то есть очень даже объектно, в т.ч. вместе с методами. >>Кстати, я вашей модели я не уловил каким образом опиясывается "поведение" средсвами РБД? Состояние - понятно, связи - тоже понятно. А поведение? Особенно если учесть, что вы постоянно ссылаетесь в своей работе на манифест, в котором как основа утверждается использование непроцедурных языков. :) Я вот так и не смог придумать способ описать поведение на непроцедурном языке. Может быть разъясните мне, тёмному? Я понял - Вы и обсуждение в этом топике тоже не читали :) Ну ладно...Я ссылаюсь на манифест, который утверждает, что для управления БД и для доступа к данным должен использоваться непроцедурный язык. И это никак не противоречит тому, что сами данные (точнее их функциональность, их поведение) могут описываться процедурно, алгоритмично. В общем, прочитайте мое сообщение от 7-го июля, мож Вам темному (это не я придумал:) яснее станет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 01:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для c127 Спасибо большое! наконец услышал что-то умное!!!! *) ...т.е. o={OID,a,r} необходимо заменить на o=(OID,a,r). Согласен... *) определение <0>. Элемент r нельзя определять как множество, иначе будут проблемы с одинаковыми значениями: множество {1,1,1} есть просто {1}. Возможно это же касаетя элемента a, но тут я не уверен, не понимаю, что в данном случае понимается под именем. Самое простое – перейти от множеств к спискам. Но по-моему лучше объединить a и r в множество пар: x={(a1,r1),…,(an,rn)}, где имя уникально по крайней мере в пределах одного объекта. Тогда объект это o=(OID,x). Определение схемы в остается аналогичным данному в статье: Schema:x|->{a1,…,an}. Буду думать... *) “Теория реляционных БД предполагает, что для обеспечения эффективного хранения данных (что подразумевает их целостность и непротиворечивость) , эти данные должны быть нормализованы [8,9,10].”. Тут Cat2 уже говорил, и я присоединяюсь, что требование нормализации данных (т.е. соблюдение всех нормальных форм одновременно) не следует с необходимостью ни из требования их эффективного хранения, ни из требования целостности и непротиворечивости, ни тем более из реляционной модели. Ребяты! Ё , ну есть же в теории нормализация.. В Майере это ж есть, а там только теория. НУ прям не знаю как эту мысль выразить... для чего ж это надоть то, а? Буду думать :) *) соотношение <7>. Если это соответствие есть изоморфизм, то можно использовать обозначение изоморфизма, будет проще и понятнее. Наверное,да... *) На стр. 3: “Предполагается, что возможность, позволяющая описать объектную переменную и задать множество значений отношений {r1,r2….rn}, не может быть выражена в терминах реляционной модели данных и, следовательно, ортогональна ей.” Необходимо сказать более подробно о статусе этого утверждения, например что это аксиома. Тем более, что в статье оно повторяется еще по крайней мере трижды: на стр. 6,7 и косвенно на стр.9: “Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).“ Последнее ставит под сомнение, что изначально предполагалась аксиома. Ну... Если Кодд говорит что реляцирнная БД есть множество значений отношений, то я рассматриваю некое идентифицируемое (в смысле - отличное от других) подмножество таких значений, причем подмножества не пересекаются. То есть такое разбиение просто вводиться... Наверное аксиома. .... Уберу нафиг "и, следовательно, ортогональна ей." и про цель построений тоже *) “Крайне важен тот факт, что предлагаемая формализация однозначно определяет способ, позволяющий представить информацию, описывающую множество O объектов вида <0>, в терминах реляционной модели данных.” Нет доказательства. К тому же это неверно, таких представлений может быть несколько, например всякие ненормализованные, да и нормализованных наверное может быть несколько, ведь нет теоремы о единственности нормализованного представления данных. Возможно имелось в виду, что существует единственный оптимальный способ представления, но тогда нужно доказывать соответствующую теорему. Возможно в данном случае вместо “однозначно определяет” лучше сказать: “определяет естественным образом”. Здесь не согласен. Во всяком случае указанная формализация (отображение) и является основой перехода от уровня представления к уровню хранения. ИМХО никаких теорем доказывать не нужно - отображение из множества в множество может быть представлено как отношения, что я собсно и делаю. *) В статье встречается несколько утверждений, аналогичных двум предыдущим, к которым непонятно как относится: то ли как к теоремам, то ли как к аксиомам, то ли как к разъяснительным и не несущим формальной нагрузки. Можно поконкретней?... а то там много всяких утверждений... *) Вместо словосочетания “существует функциональная зависимость” по-моему лучше использовать “существует функция” или “ существует отображение” Конечно....даже потому, что так короче ;) *) Непонятно как записывается наследование классов на уровне храненния. Мне кажется, в описании каталога (3) на этом останавлявался. Таблице ISA содериж полную информацию о наследовании. Только она содержит избыточную информацию, котррая позволяет вытащить информацию о потомках (предках) класса одним запросом. На самом деле я не настаиваю, что именно так должно быть, просто ИМХО это важнее, чем дерево наследования, представленное в чистом виде. *) Непонятно как записываются методы на уровне хранения. Сечас опять начнуться споры :) но для меня, что метод, что вычисляемый атрибут - в общем то одна фигня. То есть ежели речь идет о параметризованном вычисляемом атрибуте, то то тут уже их по спецификации не отличить. А что касается реализации... ну в методе алгоритмическая последовательность, в вычисляемом атрибуте некая совокупность элементарных реляционных операций. Ну вот взять, скажем, T-SQL. Там есть пользовательская функция. Когда мы ее используем, мы не думаем, есть ли там внутри последовательность вычислений, некий алгоритм, или это будет простой SELECT с параметрами. И здесь тоже самое, только речь идет об атрибуте. Как они записываются - не знаю. Куда - знаю, в каталог , в таблицу ATTRrealization в поле Expr , служащее для хранения "Выражения, вычисляющего значение атрибута (может переопределяться в процессе наследования классов, отсутствует для хранимых атрибутов)." Я, собственно, дальше( методы ) так и написал, что "для хранения методов можно использовать уже описанный каталог системы, где организация описывающих их метаданных не будет принципиально отличаться от организации метаданных, описывающих вычисляемые атрибуты объектов" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 01:49 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Дмитрий Мыльников (30.082003) >>Что получится в предлагаемой U-gene системе? Получится, что данные одного объекта будут разнесены по разным таблицам. То есть, чтобы получить данные одного объекта серверу или приложению (смотря где будет происходить "сборка") придётся проделать достаточно много операций. И всё для чего? Для того, чтобы было удобнее хранить? Но это вопрос спорный. Чтобы было удобнее описывать модель? А чем неудобна собственно ОП? Это мидыцынский факт! Вы не читали ничего! :) Какая-такая сборка объектов? Ни хочу я их собирать! Поясняю. Раз Вы так дельфи себе хорошо представляете, то скажите, где собирается дельфийский объект? В одном месте (или в нескольких) кусочек байт-данных, совсем в другом месте(или местах) - кусочки байт с откомпилированными методами.... Где это собирается? У Вас множество Байт и система представляет это как объект. У меня набор строк и система представляет это как объект. Где принципиальная разница? А то что много уровней... так у меня нижележащий реляционный уровень решает огромное количество вопросов - например перманентность данных, групповой доступ к данным... в общем все положительные свойства РСУБД сохраняются в полном объеме. >>На мой взгляд существенный недостаток предлагаемого подхода как раз в том, что добавляется очередное разделение. Эта....."Разделяй и властвуй!"...вот. В качестве примера опять же приведу модель OSI. Там семь уровней и каждый успешно ещает свою задачу. А если бы этого не было, то был бы жуткий бардак. Именно такой, какой наблюдается в современных программах. Мне например не нравится то, что в современных языках объект-коннекш(к БД), объект-форма(на экран) и объект-накладная(моделируемая предметная область) могут болтаются как-то где-то рядом, и надо каким то образом описать их взаимодействие. То, чтоя предлагаю сделать хотя бы позволяет отделить предметную область. >>При этом на уровне реляционной модели что там будет хранится совершенно всё равно. Если в ОЗУ обезличенный набор байт, то в РСУБД уже менее обезличенный, но всё ещё набор байт, но уж никак не объект в смысле ОП. Скажу так - если в ОЗУ объект выглядит как обезличенный набор байт, то в РБД он выглядит как обезличенный набор строк. Разницы нет (за исключением того, что в случае Дельфи и т.п. уровень хранения линейно-адресуемый, а у меня, таблично-ассоциативный) >>И не надо путать "строгое математическое описание" и реальные РСУБД. Реальные SQL-СУБД являются реляционно-полными, а мне больше ничего и не надо. А то, что сейчас они снабжены процедурными расширениями SQL-я, так это просто замечательно. >>Хотя, возможно, это разный взгляд на вещи теоретиков, которым важно именно "строгое мат. описание" и практиков, которые потом вынуждены придумывать как при реализации конкретных проектов выйти за рамки этого "строгого мат. описания", которые не позволяют решить поставленную задачу. И, что интересно, при выходе за эти самые рамки "строгого мат. описания" решение получается гораздо эффективнее, чем если пытаться всё сделать согласно теории. Живо впоминаются десятилетней давности (или даже более того) обсуждения о том как оптимизировать код на ассемблере. Типа "я в центре цикла иногда по условию на конец перехожу и на 5% быстрее получается". А сейчас ляпнут DO...WHILE и хорошо. Я это к тому, что если бы эффективность было настолько важна, все до сих пор пользовали бы только ассемблер. А теория - это ..мммм.... формальное обоснование стандарта... типа значит того самого DO...WHILE , которым сейчас все пользуются ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 02:29 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для Дмитрия Мыльникова Какую то кривую ссылку дал О первой экспериментальной реляционной СУБД - СИЛЬНАЯ ВЕСЧЬ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 03:28 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для vdimas >>Я тоже склоняюсь к мнению, что использовать РЕЛЯЦИОННУЮ БД только как хранилище объектов немного неоправданно. В качестве хранилища объектов нужна специальная СУБД, предназначенная именно для хранения объектов. Причем, никто не мешает применять наработки в области реляционной алгебры к подобной объектной базе данных. Ой, блин, ну когда же это кончится :) Ну вот Вы, когда говорите про объекты, ведь вы же фактически говорите про объекты как они существуют в линейной адресуемой памяти. Говоря образно, вы ограничиваетесь Фон-Неймановской машиной и утверждаете, что объекты в том виде, как они есть в этой Фон-Неймановской машине, плохо ложаться на реляционную СУБД. Я ведь и не спорю с этим, но! я говорю немного совсем про другое. У меня объекты фактически существуют в машине у которой память организована на иных принципах чем в машине Фон-Неймана (то, что эта машина является виртуальной и реализована все же на Фон-Неймановской машине - это не имеет к делу никакого отношения:) ). И я уже говорил, что ООСУРБД не является хранилищем объектов (фактически подразумевая , что она не предназначена для хранения объектов из Фон-Неймановской машины). Зто среда существования объектов в том виде, как я их представил и описал. И это вполне объектные объекты. >>Несомненно от SQL придется отойти, как от языка, предназначенного для манипулирования "плоскими" таблицами. Не сомневаюсь, что SQL-для-объектов может быть очень похож на современный SQL. Но, вот, андеграунд, двоичная структура возвращаемых записей, должна соответствовать объектной структуре. Причем, необязательно возвращать все поля объекта, как необязательно возвращать все поля из таблиц. Более того, идя дальше в рассуждениях, можно создавать объекты из комбинаций полей других объектов, и т.д. (незаметно углубился...) Во-во! Фактически речь идет о том, что двоичная структура должна соотвествовать машине Фон-Неймана. Но мои объектам этого не надо - им эта машина для...мммм... функционирования (непосредственно) не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 04:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
И наконец Для Дмитрия Мыльникова >>И так мы постепено придём к тому, что вопрос нужно ставить не о том, "можно ли отобразить объекты на реляционную модель?".... Только ваш вопрос звучит по другому "можно ли отобразить объекты из машины Фон-Неймана, обладающей адресуемой линейной памятью, на реляционную модель?" >>... а о том, что необходимо разработать удобный способ описания объектной модели, чтобы он позволил работать с объектами так же, как реляционная алгебра позволяет работать с реляционной моделью. Соответсвенно, следующим шагом будет разработка некоего языка, подобного исходному SQL, но для объектной модели. Кстати, судя по имеющимся на сегодняшний день наработкам, в том числе и по работе уважаемого U-gene, реляционная модель должна быть частным случаем объектной модели, а язык SQL как бы частнм случаем этого нового языка (назвать можно например OML - язык манипулирования объектами :) ). Да...мыдысынскый факт.... :) ИМХО мой пост о том, что объектная модель - это химера... остался непрочтенным :) . Не будет объектной модели! ООП есть, это средство, а модель данных - это цель. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 05:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene >Здесь не согласен. Во всяком случае указанная формализация (отображение) и является основой перехода от уровня представления к уровню хранения. ИМХО никаких теорем доказывать не нужно - отображение из множества в множество может быть представлено как отношения, что я собсно и делаю. Мое замечание относилось к слову “однозначно”. То, что можно представить никто не сомневается, но когда говорится, что представление единственно, то нужно доказывать. >Ребяты! Ё , ну есть же в теории нормализация.. В Майере это ж есть, а там только теория. НУ прям не знаю как эту мысль выразить... для чего ж это надоть то, а? Буду думать :) Тут проблема в том, что нормализация это важная часть построения РДБМС, но все-таки не необходимая. Я еще раз посмотрел книги и нигде не нашел требования необходимости нормализации РДБМС, о ней говорится как о способе построения, а не как о свойстве. Уже начал сомневаться: может ошибаюсь, буду еще смотреть. >Можно поконкретней?... а то там много всяких утверждений... Кроме двух уже упоминавшихся: стр.7: "На домене DOID может быть определен не только атрибут raOID, но и любой другой атрибут rai отношения R'" доказательства нет, но может оно и не нужно, если это аксиома или где-то доказанный известный факт; стр.9: "Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).". Мое замечание состоит в том, что покрайней мере в математической части работы хорошо бы указывать в явном виде: "определение Y. …", "аксиома Y…" или "примем как аксиому …", "теорема Y. …" и т.д. Тогда все будет ясно. А то у меня, например, возникают трудности с классификацией высказываний. Еще замечане, очевидно в прошлый раз невнимательно читал статью. Название "Групповые операции над ссылками" не очень удачно. Может показаться, что чтоб доопределить ссылки до группы, сейчас будет введена бинарная операция умножения (сложения) на множестве ссылок. Наверное лучше сказать "операции над множествами ссылок" или "операции группировки" или как-то так. Словосочетание "групповые операции" встречается в этом праграфе еще раз. С наследованием методов и пр. на уровне хранения разобрался, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2003, 06:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Что вы думаете о UML как универсальном языке ОО-моделирования ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 13:12 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
ну, не такой уж и универсальный, мне может надо const и mutable обязательно как часть спецификации вставить, и может надо отделять обычное наследование от виртуального... не, не катит, только если для Java всяких, VB и прочей ерунды. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 13:50 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2vdimas:ага, и чтоб выравнивание по параграфу... ну как всегда! Ладно, для тя C++ универсальный язык ОО-... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 14:34 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Уважаемый U-gene, Вы наверное очень серьезный специалист, если предлагаете собственные концепции, но позволю заметить, что "...WHERE SOMEFIELD LIKE '%думать надо сначала%'" в любой РСУБД ведет к полному перебору. И приведет к полному перебору в любой системе управления БД (фреймы, деревья,...). На мой взгляд - пример совершенно неудачный, я уже молчу о том, что такого рода операторы вообще не рекомендуют к использованию. С другой стороны, вы не рассматриваете объединения таблиц и использование их в в работе, что нивелирует подход РСУБД к 0. Эдак мы совсем скатимся к файловым структурам и докажем, что они самые эффективные... Однако, даже рассматривая пример выше, при большом числе аналогичных запросов вполне можно построить адекватную структуру таблиц БД, которая позволит Вам проводить индексный поиск, пример - поисковый энжин в инете. Где ведется статистика вхождения каждого слова и его словоформ в каждый документ (у вас запись в БД). В принципе - это один из способов нормализации, который увеличивает эффективность поиска в БД. Лишний раз убеждаюсь, что вместо того, чтобы серьезнее изучать теорию РСУБД (или иную другую) и ее ПРАВИЛЬНО на практике использовать - народ начинает что-то новое сочинять... хая старое и ратуя за темное новое... не занимайтесь словоблудием, не забывайте что разработка софта - NP-полная задача и в попытках найти "серебрянную пулю" вы не первый и не последний. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 15:52 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Andy753 А Вы, батенька, приколист Но все же, прежде чем стебаться и грозить пальцем (дескать, "учите матчасть"), надо все же постараться въехать в предмет обсуждения и доводы за и против. В общем.... Сейчас же вдумчиво перечитать все с начала! :). Так же вдумчиво прочитать все имеющиея ссылки и ссылки из ссылок!!! :)). Найдите место, где я имею ну хоть что-то против теории реляционных баз данных (но не "теории реляционных СУБД", как Вы сказали... а это, кстати, уже говорит о степени "серьезности изучения" этой теории:). Как найдете - обязательно потычте мне этим местом в морду - интересно посмотреть. Скажите правду, Вы Выше 10 топиков поднялись? :) На всякий случай, рекомендую читать хотя бы через строку, а не по три первых слова из каждого абзаца, как, судя по всему, Вы делаете. :)) И самое главное - надо думать, перед тем как писать (ну хоть немножко!), а то так смешно, что аж обидно... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 18:10 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Andy753 Угу, задеть легко... Особенно это легко удается личностям не вникнувшим в суть вопроса, а сразу переходящего к надоевшему "вы бы учились, батенька..." Весь форум тычет друга в друга этой фразой, уже подташнивает. Пора приравнять ее к мату. U-gene молодец хотя бы тем, что не пожалел времени на глубокое изучение вопроса и вполне грамотно выразил свои мысли. И он не одинок в своих "душевных метаниях". Что, тут все дебилы и у всех полно свободного времени фигней маятся? Есть причина, по которым "чистая" реляционная модель не всегда, скажем так, достаточно удобна. Нужно съесть десяток собачек на той самой чистой реляционной модели, чтобы к этому прийти. ---- некоторые наоборот, слишком "углубляются". 2 с127 Название "Групповые операции над ссылками" не очень удачно. Может показаться, что чтоб доопределить ссылки до группы, сейчас будет введена бинарная операция умножения По моему, придираешься. Ссылки уже могут принадлежать некоторой группе (напр. как результат выборки). И именно над этой группой (множество, если хочешь) можно выполнять операции. Хотя, копаешь, копаешь... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 00:36 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
пожалел времени на глубокое изучение вопроса и вполне грамотно выразил свои мысли. Вообще говоря, не такое уж оно и глубокое - иначе вместо повторного изобретения самоката сдесь бы обсуждалась уже проделанная работа в этом направлении других специалистов. А область эта достаточно изученна и не нова - но U-gene решил сыграть в индивидуала - поэтому и ссылки на матчасть Потому что не может такая теория жить изолированно - всегда обязательно есть ее пересечения с уже существующими - и их надо изучать и сравнивать что вообще значит грамотно? у грамотной задачи должная быть цель - при этом реальная и четкая - где она у U-gene (только не надо разглагольствовать по поводу того читал ли я 10 топиков назад или нет - я так понимаю размер текста уже приводится как довод и гарантия серьезности) Нигде ни слова ни об SQL92/3 ни о ODMG(OQL) - об их недостатках и достоинствах. Ни существующие привязки к ОО-языкам ни к средствам ОО-моделирования - ничего. Только утверждение что просто так ничего не делается и U-gene - серьезный человек Больше похоже на соревнование - кто более большое и несуразное чудо создал за свою жизнь - типа если создал - то я тя уважаю ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 08:26 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Ссылки на аналогичный самокат, изобретенный ранее, предоствавьте пожалуйста. :) Оченно интересно, вдруг я что-то пропустил? Попусту болтать здесь многие горазды, хочется чего-нить поконструктивнее ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 11:16 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Далеко ходить не надо с одной стороны ООРСУБД/ООСУБД С другой возможность разработки БД с использованием UML Rational Rose Data Modeller Sybase Power Designer OOM->PDM и много чего еще ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 11:32 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Нет, это другие самокаты:) ...Вы так много понаписали.... А почему бы не вспомнить еще и про просто реляционные СУБД или, например, про про файловую систему. Тоже сравнить можно.... А может так? Я предложил некое, достаточно ФОРМАЛЬНОЕ решение, позволяющее построить ОО-систему на базе реляционных системы хранения данных, а Вы предложите мне сравнить его с другими существующими ФОРМАЛЬНЫМИ решениями? Не с языками и не со стандартами - нужны именно ФОРМАЛЬНЫЕ решения. Только не предлагайте рел. модель - я использую ее как основу.... И, кстати, значит ли фраза "я так понимаю размер текста уже приводится как довод и гарантия серьезности", что Вы этот текст не прочитали? (если да, то вообще неясно, о чем разговор). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 12:23 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Нет, это другие самокаты:) Это не самокаты ...Вы так много понаписали.... Ну до вас все равно как до луны Не с языками и не со стандартами - нужны именно ФОРМАЛЬНЫЕ решения Вы пришли на форум по проектированию БД - а не на кафедру мат анализа и этим пытаетесь пользоваться. Т.е. старый трюк - навязывание игры на своем поле. Признаюсь честно - мне ЛЕНЬ проверять полноту вашей теории. Может я не прав - и так и должно быть - но мне кажется что вы должны уметь объяснить преимущества вашей модели в первую очередь именно разработчикам. Я даже считаю что это должно быть как дважды два - вы для них модель и создавали. Вместо этого подсовывается якобы формальная модель - зачем? Формальность имеет смысл когда используется для доказательства полноты - и где у вас это доказательство! Вот возмите например Буча, книгу которого вы привели как использованную. Я что-то там формального описания ООП не заметил - но книга отвечает на главный вопрос - зачем это дано?! Где формальное описание RUP? что Вы этот текст не прочитали? Я прочитал как мне кажеться достаточно. Далее - это ваша забота меня заинтересовать - и уж точно не формальной модель! Я полагаю это просто глупость ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 12:51 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Хочу еще подчеркнуть - я не против вашей модели, скорее я недостаточно хорошо насчет нее осведомлен! И это не только проблема лени и инертности - но и проблема неправильного промоушена. Вот что стоило бы осветить 1. Что на ваш взгляд является проблемами современно процесса проектирования ИС? (прямо приведите те проблемы с которыми предлагаете бороться, определитесь с местом вашего продукта среду прочих) 2. Расскажите какие еще продукты(самокаты) существуют и какие недостатки им присущи 3. Опишите те основные концепции на которых строиться вся работа - чем они отличаются от существующих? 4. Как вы видети процесс внедрения модели? Как можно начинать пробовать и использовать вашу модель в существующих средствах разработки и процессах проектирования ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 12:59 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Спасибо за советы по правильному промоушену! :) Обязательно ими воспользуюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 15:24 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri >Вы пришли на форум по проектированию БД - а не на кафедру мат анализа и этим пытаетесь пользоваться. Т.е. старый трюк - навязывание игры на своем поле Топик ИМХО полностью соответсвует форуму, а если даже вдруг немного не соответсвует, то U-gene же не влез в чужое обсуждение, а открыл свою ветку. Так что игру никто никому не навязывает. И потом не все же время варианты оператора create table обсуждать, полезно взглянуть на проблему шире. К тому же мне, например, тема просто интересна безотносительно к практической ценности. И мне бы тоже интересно было увидеть ссылки на аналогичные самокаты. >Может я не прав - и так и должно быть - но мне кажется что вы должны уметь объяснить преимущества вашей модели в первую очередь именно разработчикам. Я даже считаю что это должно быть как дважды два - вы для них модель и создавали. Откуда последнее следует? По-моему Вы исходите из неверных посылок. Что же касается непротиворечивости, полноты, глупости, ценности ........ модели, так для того и существует обсуждение, чтоб это выяснить и подправить либо же отказаться от модели вообще. Замечания о необходимости дать связку с существующими, пусть даже в смежных областях, решениями ИМХО справедливы. Но это очень трудоемко, так что можно перенести в следующие публикации. В идеале - нужно доказать оптимальность модели в каком-то заданном смысле. И вот только если этот заданный смысл будет иметь практическую ценность, можно будет переходить к разборкам с разработчиками. 2 vdimas >По моему, придираешься. Может и придираюсь. Я понимаю, что хотел сказать U-gene, но термин "групповая операция" есть сильно зарезервированное в математике словосочетание. Это мое замечание не принципиально. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 01:17 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2с127: И потом не все же время варианты оператора create table обсуждать, полезно взглянуть на проблему шире. Что-то вы передергиваете - это где я предлагал обсуждать create table? Шире - это понятие абстрактное - может вас от широты начинает распирать если кто-то коллекцию множитсвом назовет? К тому же мне, например, тема просто интересна безотносительно к практической ценности. Следует ли это читать как - "да, я просто треплюсь - толку в этом я большого не вижу"? Как это интересно, но не практической ценностью? А чем тогда - настальгию по этому топику вы потом врядли поимеете И мне бы тоже интересно было увидеть ссылки на аналогичные самокаты. Вы не внимательны - U-gene не интересовался ссылками на самокаты(которые я к стати привел) - ему нужны были ссылки на их формальные модели Откуда последнее следует? По-моему Вы исходите из неверных посылок. Что значит "по-моему"? Я думаю стоило бы объяснить почему тезис - "методология - программистам" - является ошибочным? Но это очень трудоемко, так что можно перенести в следующие публикации. 100% глупость - КАКАЯ разница - что трудоемко - это цель и она должна быть! Нельзя изобретать неизвестно что И вот только если этот заданный смысл будет иметь практическую ценность, можно будет переходить к разборкам с разработчиками. Примеры пожалуйста - когда "заданный смысл" начинает обретать "практическую ценность" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 15:54 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri...\r \r Уважаемый!\r Я уже в одном месте (внизу и на следующей странице) заметил, что при близком знакомстве с вашими высказываниями выясняется, что отношение "Степень знакомства с предметом спора"/"Вера в свою правоту" в Вашем случае стемительно стремиться (сорри за тавтологию) к нулю (в основном за счет первого). Однако до последнего момент кажется, что Вы в курсе обсуждаемого. Здесь Вы также признались, что Вы не удосужилсь прочитать ни топик, ни текст, однако Вы считаете и упрямо доказываете, что все это сложно, непонятно, долго и скучно , что нет сравнения с существующими подходами, что это, в конце концов, форменная глупость, что я Вас должен заинтересовывать , хотя (я повторю), ни текста, ни обсуждения Вы не удосужились прочитать, и, судя по этому, для того, что бы Вас заинтересовать, мне надо сплясать перед Вами с бубном. \r \r Я понял и принял Ваши мысли и поблагодарил Вас за некоторые из них, однако сейчас я хочу убедительно Вас попросить не засорять топик сообщениями типа "а он сказал, а я сказал, а надо говорить вот так, а Волга впадает в Каспийское море". Если Вам невтерпёж, откройте в ПТ топик "Обсуждение обсуждения ...(см. сабж)" - я буду искренне Вам за это признателен. А ежели Вы опять скажете, что я что-то должен, или чего-то не сделал, я буду вынужден признать Вас местным....мммм....занудой, чего мне делать не хотелось бы.\r \r Кстати, в ответ на Вашу фразу \r Код: plaintext
я хочу отслать вас по этой ссылке , для начала поинтересовавшись, читали ли Вы эту работу? ИМХО эта работа исключительно задает смысл. Замечу, что в ней только намеки на современную теорию РБД, совсем нет SQL-я (ну не было его тогда), нет серверов и клиентов...в общем многого чего нет. Есть только смысл. А практическоя ценность стала появляться лет через 10-15. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2003, 19:02 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Спокойней, Вы ж не на работе (С). Вам гнев праведный застилает глаза, а это вредно для зрения. Не нужно ругаться. >Что-то вы передергиваете - это где я предлагал обсуждать create table? А где сказано, что это именно Вы предлагаете обсуждать? Фраза ни к кому конкретно не относилась. >Следует ли это читать как - "да, я просто треплюсь - толку в этом я большого не вижу"? Можно и так сказать. В жизни вообще ничего нет кроме зарабатывания хлеба насущного и получения удовольствий? Вы забываете о втором, сводя вопрос только к первому. Вот пример: >Как это интересно, но не практической ценностью? А чем тогда - настальгию по этому топику вы потом врядли поимеете Так и сгореть недолго. На посту. Да вся математика по большому счету практической ценности не имеет. Это наука о свойствах абстрактных сущностей, в материальном мире не существующих. >>И мне бы тоже интересно было увидеть ссылки на аналогичные самокаты. >Вы не внимательны - U-gene не интересовался ссылками на самокаты(которые я к стати привел) - ему нужны были ссылки на их формальные модели Самокат U-gene это и есть формальная модель (с точностью до критики). Вот Ваша фраза, где впервые был введен этот термин: "Вообще говоря, не такое уж оно и глубокое - иначе вместо повторного изобретения САМОКАТА сдесь бы обсуждалась уже проделанная работа в этом направлении других специалистов. А область эта достаточно изученна и не нова - но U-gene решил сыграть в индивидуала - поэтому и ссылки на матчасть Потому что не может ТАКАЯ ТЕОРИЯ жить изолированно - всегда обязательно есть ее пересечения с уже существующими - и их надо изучать и сравнивать" (выделено мной). Следовательно под "ссылки на аналогичные самокаты" можно понимать "ссылки на аналогичные формальные модели". Моя фраза не противоречит Вашей, так что это Вы невнимательны, читайте себя раннего. >>Откуда последнее следует? По-моему Вы исходите из неверных посылок. >Что значит "по-моему"? Я думаю стоило бы объяснить почему тезис - "методология - программистам" - является ошибочным? Фраза относилась к высказыванию: "... вы должны уметь объяснить преимущества вашей модели в первую очередь именно разработчикам", которая и является посылкой. Так вот НЕ ДОЛЖЕН U-gene уметь объяснять свою теорию разработчикам. Ладно, согласен убрать "по-моему". Получится более категорично: "Вы исходите из неверных посылок". Я хотел как помягче. >100% глупость - КАКАЯ разница - что трудоемко - это цель и она должна быть! Нельзя изобретать неизвестно что В данном куске обсуждалась необходимость связки с существующими моделями. К существованию или отсутсвию цели оно не имеет никакого отношения. Вот точная моя фраза: "Замечания о необходимости дать связку с существующими, пусть даже в смежных областях, решениями ИМХО справедливы. Но это очень трудоемко...". Не могу же я каждую фразу заканчивать воззванием: "цель должна быть!". С этим никто не спорит, но есть и другие проблемы, кроме цели. >>И вот только если этот заданный смысл будет иметь практическую ценность, можно будет переходить к разборкам с разработчиками. >Примеры пожалуйста - когда "заданный смысл" начинает обретать "практическую ценность" И опять невнимательность. Не "начинает обретать", а "будет иметь", или иными словами "вдруг окажется, что оптимизация в заданном смысле имеет практический смысл". Хрестоматийный пример. Когда в начале прошлого века в каком-то университете (может и в московском) обсуждался вопрос, какие разделы математики следует читать физикам-теоретикам, была сказана фраза, что теорию групп уж точно им читать не нужно. Практический смысл теории групп в физике - изучение свойств решений уравнений. Совершенно практическая ценность совершенно непрактичного (как тогда казалось) аппарата. И в этом смысле (изучение общих свойств решений уравнений) он оптимальный. Я еще раз предлагаю не ругаться и замять тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2003, 02:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
>Ребяты! Ё , ну есть же в теории нормализация.. В Майере это ж есть, >а там только теория. НУ прям не знаю как эту мысль выразить... для чего >ж это надоть то, а? Буду думать :) ну в Дейте на каждом шаге нормализации обьяснялась что проиграешь и что выиграешь. но нигде не говорилось что если таблицы не нормализовать, то база станет не реляционная. дальше первой страницы пока не прошел. ;)) 1 -- В результате этого процесса, информация, описывающая систему, состоящую из многих обьектов, преобразуется к множеству значений различных отношений -- я бы написал к множеству непустых отношений. 2 предложение -- Предполагается, что возможность, позволяющая описать обьектную переменную и задать множество значений отношений {r1,...rn}, не может быть выражена в терминах реляционной модели данный, и, следовательно, ортогоральна ей. -- вообще немедленно надо выкинуть из текста, как могущее вызвать состояние грогги у неподготовленного читателя. 3 под значением отношения R1 - подразумевается конкретный кортеж/конкретная запись? 4 ri = relval (Ri) - символ relval это что? он в этом месте определяется, как значение отображение Ri? 5 групповые операции (мы с с127 обсуждали) мне вообще то тоже не очень нравятся. слово группа достаточно широко используется. и, как не прискробно, в другом смысле. агрегатные операции не подойдут? я до туда еще не дочитал. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2003, 04:09 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Успокойтесь U-Gene, мне и так уже ясно какой смысл вы закладываете в слово “обсуждение” – так что будь по-вашему – больше обсуждать не буду. P.S. А вот выводы о моей компетентности вам делать рановато – и с Коддом вы себя слишком рано отождествлять стали ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2003, 09:00 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
- Да-а-а, живут же люди... Пожа-а-луйста. Спа-а-сибо. А в каком дерьме мы?!\r - Сдается мне, Гарри, ты хочешь нас обидеть?\r - Возьми мой "Кольт", Джонни, и пристрели меня, если я не прав!\r - Просто "дерьмо" - это не то слово, которое следует произносить в обществе... в обществе\r джентльменов, Гарри...\r /* из кинофильма "Человек с бульвара Капуцинов" */\r \r \r 2 GrimReaper777: \r В любом проекте есть взаимодействие с внешними проектами и системами. Платформы а-ля Java или .NET предлагют определенный стандарт на такое взаимодействе. В C++ такого стандарта нет, каждый творит как хочет, и в этом проблема данного языка. \r \r К тому, что уже тут сказали: не язык Java, а платформа J2EE. В С++, кстати, можно использовать как CORBA, так и COM/DCOM, RPC и т.д. В чем проблема? Язык должен позволять полноценно "писать" программы и это хорошо, когда его спецификация не привязанна к каким-то архитектурно-ориентированным технологиям\r \r Java, .NET пытаются решить эту проблему за счет введения единой системы типов, прозрачного механизма удаленных вызовов, использования XML \r \r А что подразумевается под "прозрачных механизмов удаленных вызовов" J2EE(Java) или .NET? То, что создание объекта или метод удаленного объекта вызывается почти также как и локального? За это отвечают служба (сервис) именования и служба удаленного доступа - основные службы любой распределенной архитектуры, т.е в случае c J2EE/NET - программной платформой для создания таких приложений. К возможнсотям и к самому языку Java или, например, C# это не имеет никакого отношения даже если там появились какие-то апишники :о)\r \r 2 vdimas: \r >Что вы думаете о UML как универсальном языке ОО-моделирования\r ну, не такой уж и универсальный, \r \r Язык UML, конечно, не универсальный, если требовать от него "нормального" изображения функционирования нейронной сети или алгоритма решений диффуров, как этого требуют разные "знатоки". Тип задач, для к-рых и создавался UML, он позволяет решать, т.е полно и наиболее наглядно отображать статическую/динамическую структуру этих систем. А для других типов задач существуют "свои", т.е более удобные графичекие языки, например, ASL, QNM, CPN и т.д\r \r мне может надо const и mutable обязательно как часть спецификации вставить, и может надо отделять обычное наследование от виртуального... \r \r И const, и mutable можно вставить как стереотип, т.е никаких противоречий спецификации UML нет\r \r не, не катит, только если для Java всяких, VB и прочей ерунды. \r \r Что-то ты конкретно не взлюбил Java с VB, а они ведь по отдельности "делают" С++ по распространенности на десятки %%, например, на той же Windows платформе, когда речь идет о создании не научных или узкоспециализированных приложений, а для бизнеса. На Линуксе тот же Kylix по-тихонбку набирает обороты в противовес клиентской Javе. Так что свобода выбора на лицо и на любой платформе. А непопулярности С++ есть свои рациональные объяснения, а не только повальное "ламерство" программистов или доминирование той же Майкрософт. Необходимость или полезность множественного наследования при создании бизнес-приложений - очень спорный вопрос. В свете набирающей силу объектно-компонентной парадигмы, к-рая постепенно вытесняет чисто объектную наследование уже не играет такой важной роли с т.з повторного использования кода.\r Так что говорить, что С++ - это не ерунда в отличие Java/VB можно, конечно, но только так можно пойти чуть дальше и говорить, что Smalltalk/Eiffel - вот это не ерунда - чистые ОО-языки, а С++ - гибридный ублюдок, провоцирующий программиста на ошибки. Слышал я и такие разговоры корифеев. Все это верно, но разработчики все равно будут выбирать язык, к-рый им подходит больше по важным для них критериям\r \r \r 2 funikovyuri: \r ..Может я не прав - и так и должно быть - но мне кажется что вы должны уметь объяснить преимущества вашей модели в первую очередь именно разработчикам. ... \r \r Я этот или почти этот вопрос задавал и U-gene на него ответил, см.посты (Дата: 5 июл 03, 00:09) и (Дата: 7 июл 03, 15:24) соответтвенно. Позволю себе ответить за U-gene :\r \r 1. Что на ваш взгляд является проблемами современно процесса проектирования ИС? \r (прямо приведите те проблемы с которыми предлагаете бороться, определитесь с местом вашего продукта среду прочих) \r \r Этих проблем очень много. Можно создать отдельный топик (только лучше придумать сначала нормальное название и ЧТО - "канву" обсуждать там, а то можно погрязнуть в метаниях и флейме). Что касается проблемы или задачи статьи, то U-gene ее обозначил, например, в Формальное описание системы \r \r 2. Расскажите какие еще продукты(самокаты) существуют и какие недостатки им присущи \r \r Нормальный литературный анализ (про анализ продуктов я вообще молчу) - дело, требующее немалых затрат. U-gene может просто погрязнуть, т.к он один пишет и ни помощника или корректора у него, наверное, нет :о)\r \r 3. Опишите те основные концепции на которых строиться вся работа - чем они отличаются от существующих? \r \r 4. Как вы видети процесс внедрения модели? Как можно начинать пробовать и использовать вашу модель в существующих средствах разработки и процессах проектирования \r \r Это уже практические аспекты. В теории RUP со всеми его фазами и деятельностями является полным и непротиворечивым, но когда дело доходит до практики какие-то деятельности "забываются" в угоду той же скорости разработки. IMHO знакомство с ООРСУБД скорее полезно именно с теоретической т.з, а не с практической. Так же как, например, с реляционной моделью ( математической ) хотя проектировать БД можно не зная ее, т.е просто зная те же правила нормализации "на пальцах"\r \r --\r 2 vdimas, funikovyuri и Всем: \r \r Уважаемые друзья ОО-подхода, лучше с обсужденьями по поводу ООАП-UML сюда в Обсуждение и Вопросы по ОБЪЕКТНО-ОРИЕНТИРОВАННЫМ МЕТОДАМ (ООАП / OOAD) и UML. А то, что это такое в конце концов, топик U-gene "полыхает" и днем и ночью, а мой нет?! Простите, я не согласен. Он же скоро побьет по числу просмотров PD :о) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2003, 09:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Здрасте всем:)\r \r Еще раз рекомендую обзор "Три манифеста баз данных: ретроспектива и перспективы". Речь идет не только о манифестах - в обзоре рассматриваются и кратко анализирутся реально сущесвующие СУБД, которые тем или иным образом декларируют свою "объектность". В контексте данного топика, он просто замечательно отвечает на вопрос "что есть на текущий момент".\r \r Кстати, в конце следующего месяца, в среду 24-го декабря в МГУ состоиться семинар очередной семинар Моск. Секции ACM SIGMOD по той же теме. Докладчик - автор обзора Сергей Кузнецов (если вам это имя не о чем не говорит, попробуйте в Яндексе посмотреть результат поиска по фразе "базы данных Сергей Кузнецов"). Замечательный дядька, который может ответить на многие вопросы. ИМХО семинар будет крайне интересный. Вход свободный. \r \r А опосля, по желанию, можно и пивка децл накатить (ну.....в честь ихнего кристмаса) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2003, 10:20 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Приглашешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2003, 11:42 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Не-а:)....скорее информирую и предлагаю ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2003, 11:55 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Репликант писал:Что-то ты конкретно не взлюбил Java с VB, а они ведь по отдельности "делают" С++ по распространенности на десятки %%, например, на той же Windows платформе, когда речь идет о создании не научных или узкоспециализированных приложений, а для бизнеса. \r \r вот здесь, последний ответ\r \r приложение для бизнеса на столе у рябового пользователя, максимум одно. (это то, которое не на С++, остальные органайзеры всякие - на С++ в поавляющем большинстве)\r \r Java - корявый язык, жуткие тормоза, но мощная библиотека нахаляву. \r Из-за этой библиотеки и мощного опен-сорс многие вещи на Java раньше было делать быстрее и удобнее чем где-либо еще. Но только до того момента, когда "все есть под рукой", если чего-то нет, то на ней писать и писать, типа как на С++, только труднее, из-за ограниченного языка (на VB писать еще труднее из-за еще более ограниченного языка).\r \r сейчас вовсю пашу на C# и MC++. \r С# чуть сложнее, чем Java, но писать на нем гораздо легче. На голых циклах и счетных задачах показывает в 2-3 раза большее быстродействие, чем Java.\r \r VB/VBA - макро-супер-пупер язык, знаю досконально (можно вопросы задавать ), в сочетании с С++/COM/DCOM давал наибольшую эффективность разработки бизнес-приложений (результат/время). Сечас, неоспоримым лидером является .Net (результат/время).\r \r ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2003, 15:22 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 чингиз автор писал:5 групповые операции (мы с с127 обсуждали) мне вообще то тоже не очень нравятся. слово группа достаточно широко используется. и, как не прискробно, в другом смысле. агрегатные операции не подойдут? "Агрегирование" - весьма зарезервированное в программировании буквосочетание, может вызвать разночтение. В свою очередь, "Групповые операции" в программировании - это устоявшийся термин. Не вижу здесь противоречий с определением математической группы. Может подскажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2003, 16:51 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Здесь IMHO нереализемость написанного зарыта в самом начале. Программа-клиент не должна заведовать объектами данных. Объектами данных должен управлять сам сервер - как мозг или звено управления. А клиент только отображает или выполняет то, что сказал ему сервер. А так в общем все понятно, что пишут диссертацию. И про ОЗУ тоже хорошо. Только об этом уже говорил ранее фон Нейман, когда провозгласил, что данные и команды ничем не отличаются и хранятся в одном месте. С уважением Игорь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2003, 09:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Panshin Я, конечно, жутко извиняюсь, но неясно, кому Вы адресуетесь. Предположим, что мне... Здесь IMHO нереализемость написанного зарыта в самом начале. Программа-клиент не должна заведовать объектами данных. Дык, именно сервер "заведует" объектами. Я неоднократно говорил, что сервер является средой существования (я бы сказал даже активного существования ) объектов, а клиент лишь получает данные о этих объектах. А так в общем все понятно, что пишут диссертацию. А можно уточнить - канидатскую или докторскую? 8) И про ОЗУ тоже хорошо. Только об этом уже говорил ранее фон Нейман, когда провозгласил, что данные и команды ничем не отличаются и хранятся в одном месте. Ну да, принцип неразличимостти данных и команд соблюдается, вот само ОЗУ организовано не так как в Фон-Неймановских машинах. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2003, 11:23 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene("в среду 24-го декабря в МГУ состоиться семинар ") Было ли там чего интересного? Я вот хотел ради интереса зайти, раз бесплатно, да 24-е число как-то слишком быстро пронеслось мимо :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2003, 12:38 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Ну как сказать? Вообще Кузнецова и просто так интересно послущать - он отличный рассказчик. Конечно, в целом его выступление мало отличалось от его же статьи "Три манифеста баз данных: ретроспектива и перспективы" которую я 8 постов назад рекомендовал. Кстати, он так и не дошел до конца, т.к. материал очень большой. Однако у него, как у человека находящегося в теме и живо этой темой интересущегося, все это обрастало всякими подробностями, замечаними, воспомнаниями и т.д. и т.п интересными вещами и репликами, которых в статье нет. В общем, я не жалею, что сходил туда - мне было интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2003, 13:08 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene, А я жалею, что Не сходил. Даже если б ничего не понял, то хотя-бы посмотрел :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2003, 13:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Здравствуйте, U-gene. Может быть это и получится несколько оффтопиком (я не буду обсуждать детали статьи, а сразу пройдусь по практическим результатам ;-). Так получилось, что Ваши труды (и обсуждающийся в этой теме и давний про объект-качество) читал еще до просмотра этого обсуждения. Идея на первый взгляд показалась довольно интересной и злободневной (мы как раз работали над несколькими системами автоматизации/бюджетирования предприятий). Посему было решено воплотить предлагаемые Вами идеи в жизнь, что вылилось в создание пилотного проектика, реализующего основные концепции. После чего, все его посмотрели, поюзали и ... отклонили. Основная причина подобного решения была банальна - это то самое "быстродействие", которое Вы отказываетесь принимать к обсуждению (судя по ранее сказанному). Сразу же оговорюсь, что не были реализованы различные "навороты" в виде разработки собственного языка описания р-объектов (хранящихся в реляционной базе), трансляции конструкций вида <указатель_на_р-объект>.<имя_поля_данных> = <новое_значение> в sql-выражения для модификации данных и прочих указанных в статье возможностей. Просто довольно простенькая обертка из классов над базой на MS SQLServer (которая реализовала всю схему хранения р-объектов, предлагаемую Вами). Так вот. Дело в том, что при наличии даже небольшого набора достаточно сложных "бизнес-объектов", которые хотелось бы хранить и обрабатывать, процедуры расчетов, проводимые системой начинали серьезно отставать по быстродействию то таких же расчетов, но выполняющихся в 3-х уровневой системе с базой данных, организованной по "стандартной" схеме. Понимаю, что термин "серьезно" никак нельзя отнести к научным, но проводить точные вычисления никто не стал. Достаточно было того замедления, которое "улавливалось невооруженным взглядом" ;-). В общем, посовещавшись, решили: "не живет". Кстати, как и решения Тенцера (извиняюсь, если напутал с фамилией), которое упоминалось раньше. Меня как практика больше интересовало практическое использование предлагаемых идей (только не говорите, что я плохо разобрался, не читал статью с начала и вообще криворукий и не умею ;-). Делал не за один день и по мере возможностей и времени старался сделать как надо. Просто напросто я легко понял руководителя проекта, который посмотрев на все эти новшества не смог проникнуться "крутостью идеи". Все это хорошо на уровне теоретических доказательств, формализации и т.д., а в реальных проектах встречаются закономерные трудности, преодоление которы ради "самой идеи" не вызывает энтузиазма ни у руководства, ни у заказчиков. Конечно (и я уверен в этом ;-) найдутся люди, которые все реализуют правильно и грамотно, и наступит всеобщая благодать. Но мое мнение следующее. Для небольших команд разработчиков реализовать подобную систему полностью (в предлагаемом Вами виде), достаточно трудоемкий процесс, который еще не факт, что даст результат (ускорение разработки, повышение надежности, улучшение масштабируемости системы). А достичь перечисленных показателей можно и другими путями (хотя и менее новаторскими ;-). Если же озадачиваться разработкой серьезной системы (уровня хотя бы той же Cashe), то, наверное, будет круто, но когда это будет и кто это будет ;-). Не хочу чтобы сложилось впечатление, что это окончательный вердикт всей концепции (не мне, как говориться, судить). В общем и целом хорошо, но "страшно далеки они от народа" ;-). Детали реализации (и прочие вопросы), а также мои идеи о причинах падения производительности могу обсудить далее (если мой пост Вас заинтересует). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2004, 15:18 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Дык, еще как заинтересует! Интересует все - и детали реализации и причины замедления и вообще - пальцАми ми бы потрогать. :) Насчет быстродействия - я не то. что отказываюсь принимать его к обсуждению. Я осознаю, что оно может быть медленнее, однако для меня будет более интересен тот факт, что это работает вообще. :) С другой стороны у меня складывается впечатление, что реализовать это можно и даже нужно исключительно как транслятор. Поэтому тот факт, что у Вас не реализован язык описания объектов, заставляет меня интересоваться Вашей реализацией еще сильнее. Ну а то, что руководство не проявило заимнтересованности - так это наверное нормально (ммм......конечно, если Вы не в MS и не в Oracle работаете :). Ему же результат нужен, а здесь результатом должно явиться ...мммм...средство разработки? А разве это результат? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 17:41 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene ты бы посчитал оценки быстродействия твоей системы. Всем было бы интерестно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2004, 18:17 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Часть 1. так, начну по порядку. К сожалению все эти изыскания проводились достаточно давно (порядка года назад). Я покопался в архиве, но тех разработок не нашел. Ну да ладно, сейчас на словах расскажу в чем дело было. Задача изначально ставилась несколько отличная от той, которую Вы ставили в статье (насколько я понял: реализация функционирования ОО-системы с привлечением реляционной базы данных в качестве постоянной памяти для хранения объектов). Нас интересовал механизм, который позволил бы ускорить разработку информационной системы за счет автоматизации рутинных операций при ее реализации. Под "рутинными" подразумеваются, например, следующие действия: создание интерфейсных форм ввода данных, создание простых отчетов, реализация процедур ввода данных в базу и т.д.. Поэтому изначально были попытки разработать некую среду, которая позволяла бы на основе шаблонов, понятных не только программистам, но и постановщикам, более-менее автоматически генерировать как клиентское приложение, так и структуру базы (ну и, естественно, механизмы передачи данных между ними). В части базы данных была создана структура таблиц, фактически совпадающая с той, которую Вы предлагаете в своей статье. Она позволяла на основе шаблона-описания, "бизнес-объекта" генерировать для него реальные таблицы и поддержку обмена данными с клиентом. На стороне клиента (или в среднем уровне, не суть) генерировались классы, на основе которых создавались "бизнес-объекты" для обработки в клиентском приложении. Ну далее подход относительно "традиционный" по реализации взаимодействия с базой (почти как у Ларманна расписано, да и в MSDN несколько подобных решений предлагалось). В общем, сидишь себе да сочиняешь бизнес-логику, работая с объектами. А как они там у себя данные хранят - нас не волнует. И все бы хорошо, но когда сгенерили данных побольше, да запустили расчет посерьезней... В общем получилось как всегда ;-). Тогда решения, как ускорить обработку данных, оставаясь в рамках предложенной универсальной схемы хранения объектов, не нашлось. А делать неторопливую вещь вроде 1С (в которой, кстати и язык разработан и механика хранения, да толку не много (заранее извиняюсь перед всеми апологетами этой платформы ;-)), не хотелось. Ну не хотят дружить циклическая обработка набора объектов и запросы в реляционной базе данных. Слишком разные они. А придумывать механизм, который транслировал бы различные циклы при обработке групп объектов в толковые sql-запросы, работающие с множеством строк... ну не знаю. Конечно, в первом приближении все достаточно просто. А если объект сложный, а если еще и наследование приплести. Даже если сумеем проанализировать структуру запроса, как с индексами быть. Я уж не говорю о иерархических данных с несколькими родителями у одного потомка (наподобие структуры BOM в MRP модели). Ее как, рекурсивно обрабатывать? Вот это будет весело ;-). Сильно сомневаюсь, что это вообще однозначно решится. Ну вот, это что касается проблем, с которыми я столкнулся при реализации схемы хранения и обработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 23:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Часть 2. Далее мое ИМХО, по поводу всей идеи совмещения концепций ОО и реляционных баз данных. Если уж подходить к реализации хранения объектов, то лучше уж что-нибудь в духе иерархических баз данных использовать. Объект о1 содержит объекты о11, о12, о13, в свою очередь объект о11 содержит 100 объектов о111 и т.д. С точки зрения программирования объектов это более естественно. Но это все семечки. Уж как данные объекта хранить можно придумать и реализовать. Но вот зачем это надо? Вот это вопрос серьезнее (потому как из области общей философии и прочей мета-физики ;-). Если посмотреть на современное состояние дел в области ОО-программирования, то там четко прослеживается курс к созданию дизайна систем на основе паттернов проектирования и схожих с ними концепций. А что они ставят во главу угла - тезис о том, что класс (а следовательно и объект) должен определяться своими обязанностями. А это не что иное как набор методов, через которые с ним взаимодействуют другие классы (объекты). И инкапсулируются не просто данные внутри объекта, но и сам тип объекта (через механизм абстрактных классов и интерфейсы). Ведь изначально какую проблему пытались решить с помощью ОО-методологий? Проблему разработки хорошо сопровождаемых, легко модифицируемых систем. Именно в этом направлении были направлены "смелые опыты буржуйских ученых". А проблема хранения больших объемов данных, их быстрый поиск и обработка - это несколько иное направление деятельности (причем инструменты решения проблем в этой области разрабатываются, в том числе, и с применением ОО-разработки). И если уж мы хотим хранить информацию, то зачем привязываться к объектам. Они нужны для создания контекста, в котором реализуются механизмы для хранения данных, но не факт, что сами данные надо хранить в объектах. Тогда все станет на свои места и не надо будет мучительно размышлять, как же приспособить несовместимые вещи друг к другу. Кстати, если взять большинство современных реализаций механизмов доступа к базам данных, то они подтверждают мой тезис (будь то dataset или recordset - все это механизмы создания контекста хранения данных, но информация, которую они хранят не имеет отношения к собственным рабочим данным этих объектов). Вот если мы хотим смоделировать поведение чего-либо (будь то поставщик, накладная, ТМЦ), то объект будет как раз кстати. У него есть методы, используя которые мы можем им управлять. Он может взаимодействовать с другими объектами в системе. Все это динамическое поведение. И ему присущи данные о текущем состоянии объекта в системе, которые существуют, пока существует объект. А данные, которые ему соответствуют как моделируемой сущности (ФИО, номер, дата, наименование и т.д.), и которые должны хранится постоянно, как раз-таки и получаем из базы данных. Но эти данные принадлежат этому конкретному объекту только на время его текущей жизни. Объект, конечно же, может их изменить, но может и не изменить. А в следующем запуске они будут принадлежать другому объекту. Основная мысль в том, что объекты интересны в разрезе их поведения и все классические характеристики ОО-подхода (полиморфизм, наследование, про инкапсуляцию не только данных, я уже говорил), подчеркивают именно эту сторону объектов. Ну зачем, например, наследование при хранении данных в базе. Избавиться от дублирования информации - так это ерунда. И так механизмов достаточно (НФ рулят ;-). А объекты подклассов и так хранят данные и свои и базовых классов. Ни полиморфизм, ни наследование реально в базе данных смысла не несут. По крайней мере, применение идеологии, лежащей в их основе, затруднено. По той же причине не имеет смысла хранить методы объектов (или грубо говоря их поведение). Это и так реализовано в коде приложения, а механизмы привязки алгоритмов обработки к самим данным должны быть реализованы уж никак не подобным образом. Может быть поэтому так буксует разработка ООСУБД, что пытаются совместить в одном флаконе объектов две совершенно разные концепции? Получилось несколько пессимистично. Ну да ничего, главное вера в свои силы ;-). Мне кажется, если уж задумываться о совмещении ОО-подхода и реляционных баз данных, то нужно начинать со стороны СУБД. Там уже есть язык описания и структуры данных и выполнения над данными манипуляций (sql форева ;-). С хранением данных тоже проблем не возникает (таблицы). В качестве интерфейсов - виды. Остается только добавить реализацию некоторых базовых концепций (можно и на внешних поцедурах) и полный вперед. Начинаем ОО-разработку на расширенном sql ;-). Кстати, все к этому и идет (все дружно посмотрели в сторону Редмонда и выудили из подсознания загадочное слово Yukon ;-). Хе-хе, это уже так, оффтопиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2004, 23:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Mumber Зачем ждать Юкон - смотри например Оракл и не только Да и в MSSQL можно программировать в объектном стиле (и без больших накладных расходов) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2004, 10:44 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 ппп Да я его и не жду ;-) Мне и так хватает инструментов. Это относилось к теме топика. Предлагается делать логику работы с объектами вне СУБД. Вот в конце последнего своего поста я и предложил рассмотреть вопрос о переносе ее на СУБД (что Вы и предлагаете ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2004, 12:10 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Mumber > Если уж подходить к реализации хранения объектов, то лучше уж что-нибудь в духе иерархических баз данных использовать. Это уже проходили. Первая очевидная проблема появится при попытке воплотить множественное наследование. >Может быть поэтому так буксует разработка ООСУБД, что пытаются совместить в одном флаконе объектов две совершенно разные концепции? ИМХО не поэтому, а потому, что разработчики ООСУБД не представляют, что они делают. Интуитивно вроде все просто и понятно, но вот оказывается этого недостаточно, нужно записать формализацию. >Мне кажется, если уж задумываться о совмещении ОО-подхода и реляционных баз данных, то нужно начинать со стороны СУБД. Так этим же автор топика и занимается. У нас была онлайн система построенная на MS LDAP вместо классическогй RDBMS. MS LDAP живет в MSSQL сервере, рекомендую посмотреть. Там есть классы, объекты, атрибуты и пр, и еще C++ интерфейс для доступа. При выборе платформы говорились все те же слова: ОО проектирование, ОО программирование, экономия ресурсов, расширяемость. Вот результаты разработки реальной системы: 1) после несколькомесячных интенсвных усилий двух опытных ОО (C++) программистов удалось построить систему состоящую из 3-4 классов (компания, пользователь, контент, пользователь принадлежит компании и имеет доступ к контенту), причем расширять ее было очень сложно; иными словами через несколько месяцев заработала система аж из 3-4 таблиц. 2) оказалось, что работает страшно медленно, особенно в части поиска, ну это понятно; 3) а вот неожиданный результат: выяснилось, что писать отчеты гораздо быстрее и удобнее на SQL, хотя MS LDAP имеет продвинутый C++ интерфейс и при выборе системы предполагалось, что это позволит существенно сократить трудозатраты на написание отчетов. Вывод: может разработчикам (к теоретикам не относится) не нужно изобретать неизвестно что, а просто немного подучить РСУБД? Там на самомом деле все достаточно хорошо и удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2004, 00:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Mumber Прежде всего - мне понравилось - т.е. мне кажется достаточно тольково написан... Но это все семечки. Уж как данные объекта хранить можно придумать и реализовать. Но вот зачем это надо? Надо для создания единой системной архитектуры с единой методологией - ООАП Ну зачем, например, наследование при хранении данных в базе. Избавиться от дублирования информации - так это ерунда. И так механизмов достаточно (НФ рулят ;-). У Мюллера в "Проектировании БД на UML" сказано что использование ООА при разработке БД позволяет естественным путем добиться нормализованной структуры БД (нормализованной в той степени которая как раз необходимо) А объекты подклассов и так хранят данные и свои и базовых классов. Вообще говоря - это не так. По крайней мере, применение идеологии, лежащей в их основе, затруднено. По той же причине не имеет смысла хранить методы объектов (или грубо говоря их поведение). У Мюллера так же есть описание класса операций/методо которые эффективнее реализовывать на сервере и класса методов для реализации на клиенте ппп Ага - особенно когда потребуются виртуальные функции ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2004, 10:59 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 c127 ИМХО не поэтому, а потому, что разработчики ООСУБД не представляют, что они делают. Интуитивно вроде все просто и понятно, но вот оказывается этого недостаточно, нужно записать формализацию. && Так этим же автор топика и занимается. После прочтения доступной мне информации по созданию ООСУБД, сложилось впечатление, что разработчики оных стараются максимально интегрироваться в существующие объектно-ориентированные языки. Тогда достигается желаемая монолитность проекта (работаем на языке высокого уровня, который неявно сам обрабатывает задачи хранения данных). Насколько я понял - это практический результат исследований в этой области. Этим же для меня, как для разработчика будет привлекательна ООСУБД по сравнению с РСУБД. Поэтому, я рассматривал статью автора с этой точки зрения. Согласен, что если взглянуть на проблему с другой стороны (на сервере РСУБД крутиться внутренняя логика, коротая поддерживает ОО-подход), то статья в этом плане будет самое то. Формализация - это конечно же хорошо и нужно. Но реализация такого механизма - нетривиальная задача. Для ее воплощения потребуются значительные средства. А получим ли мы желаемый результат? Ведь монолитности в проекте все равно не будет. Опять останется аналог sql для базы и С++, Java, etc. для всего остального. Опять нужны люди кодирующие для базы и люди кодирующие для всего остального. ИМХО, именно этого и хотелось бы избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2004, 08:36 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Надо для создания единой системной архитектуры с единой методологией - ООАП Но ведь методологию можно и сейчас подобную использовать. И практически все авторы, которые пишут книги по проектированию архитектуры проекта используют классы, хранящие бизнес-информацию, в общей классовой структуре. Они в контексте создаются, обрабатываются и сохраняются. Тут проблем нет. И реализовать логику поддержки персистентности можно множеством достаточно несложных способов. Проблема возникает, когда объемы данных возрастают, сложность обработки увеличивается... все начинает работать жутко медленно (естественно по сравнению с РСУБД). Проблема возникает, когда приходится создавать параллельно для поддержки классов, описывающих бизнес-информацию, структуры в реляционной БД (и логику ввода/вывода), а время поджимает и людей не хватает. Чтобы ускорить и упростить процесс и хотелось иметь СУБД, которая органично вписывалась бы в существующий язык ОО-программирования и позволяла скрыть детали, оставив высокую производительность. Поэтому, кстати, я и говорил, что мне не кажется необходимым заботиться о реализации артефактов ОО-программирования (наследование, полиморфизм, etc) в СУБД. Достаточно того, что она будет хранить информацию, которая соответствовала бы предметной области и к которой легко (способами, прозрачными для разработчика) осуществлялся бы доступ из объектов классов. В принципе, эту задачу мы в своем проекте и пытались решить. И с этой же задачей статья автора, мне кажется, достаточно коррелирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2004, 09:02 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Mumber Тут вопрос идеологический. Мое твердое убеждение, что прежде чем строить любую сложную систему в широком смысле этого слова, например так называемый объектно орованный подход или же объектно ориентированную методологию, необходимо строго записать ее на языке математики. Т.е. дать строгие определения: что есть класс, что есть метод, что есть объект, записать аксиомы, в идеале подоказывать какие-нибудь теоремы, но это уже не обязательно. Тогда во-первых все начнут понимать что они делают, а во-вторых одними и теми же словами называть одни и те же вещи. Кодд ввел реляционные базы данных примерно таким образом и по-моему в этом была половина успеха технологии. Без этого ИМХО вообще лучше не начинать. Вторая половина успеха состояла в том, что модель выбрана очень удачно. В случае объектно ориентированного подхода такой формализации построено не было, по крайней мере общепринятой. Поэтому получилось, что объект в C++ это одно, в смолтоке - совсем другое, а в дельфи третье и даже называется по-другому. И теперь сторонники этих языков даже в нашей конференции то и дело хватают друг друга за грудки в попытках доказать, кто из них правее. Причем чем сложнее система тем больше неразбериха. Хороший пример - ООДБ. Собрались разработчики, все с многолетним опытом OO программирования, посмотрели - все очевидно, предельно просто и понятно, о чем тут думать. Сели, начали кодировать, все класс. Но вскоре после резкого старта оказывается, что все усилия почему-то уходят на залатывание очень принципиальных дыр, которые сразу не были замечены или о которых не подумали. Прогресс системы останавливается, начинаются потуги хоть как-то удержать ее на плаву, хотя всем ясно, что система вообще не удовлетворяет никаким промышленным требованиям. Потом все повторяется снова с другим производителем только с той разницей, что из-за разночтения в базовых понятиях получается совершенно другая система, не совместимая с первой даже теоретически. Хотя это не важно, ведь все равно ничего не работает, тут уже не до совместимости и гетерогенных систем. Поэтому ИМХО подход автора ветки в принципе совершенно оправдан: он попытался реализовать ОО систему с помощью средств, которые гарантированно работают - РСУБД, даже если модель получилась не самая удачная. Мне показалось, что автор вообще всерьез не предлагает промышленное использование системы, скорее она есть просто реализация теоретической модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2004, 00:58 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1546673]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
146ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 262ms |
0 / 0 |