Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Хочется поинтересоваться у многоуважаемых приверженцев Cache. Насколько я понял, Cache хранит данные в виде сложной структуры, отражающей понятие MUMPS-глобальных переменных и позволяет иметь к этим данным доступ через несколько интерфейсов - иерархический доступ (реализованный в MUMPS), SQL-доступ, объектный доступ. Хочется узнать, а что из этого и в каких случаях реально применяется в сколько-нибудь масштабных приложениях? Т.е. понятно, что если я пишу разовую выборку, то в зависимости от конкретной задачи самой удобной может оказатьбся каждая из перечисленных моделей. Но вот представим себе, что мы пишем приложение побольше - требования к таким приложениям часто меняются в процессе разработки и эксплуатации - соответственно, структуру базы приходится несколько менять, а запросы к ней подкручивать для соответствия новой структуре. Какой из трех способов доступа оказывается наиболее подходящим для приложений с такой спецификой? Вот например, из способа решения задачи о самолетах /topic/54920&pg=12#2406070 следует, что даже приделывание простого индекса к базе требует весьма существенной переработки MUMPS-программы. А как с этим обстоит дело в других случаях? Какие еще типичиные особенности приложений бывают, от которых зависит выбор одной из трех моделей? Какие примеры выбора одного из способов доступа или какой-то их комбинации в реальных системах вы можете привести? Интересно было бы также узнать, почему эти методы используются в этих системах - к примеру то, что некоторая больница в США использует MUMPS может означать как то, что MUMPS был признан лучшим решением, так и то, что эту больницу компьютеризовали в 70-е годы и с тех пор она не изменила используемые технологии... Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 13:20 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey GladilinХочется узнать, а что из этого и в каких случаях реально применяется в сколько-нибудь масштабных приложениях? следует, что даже приделывание простого индекса к базе требует весьма существенной переработки MUMPS-программы. В случаях когда предполагается что приложение будет меняться это обстоятельство учитывают и пишут себе небольшой нижний уровень. Большинство индексных структур допускают их использование в различных задачах. Поэтому сначала разработчик подумает, использовать ли специализированные индексы применимые в малом числе задач но работающие быстрее или более общие структуры и несколько функций-операций над индексами но работающие чуть медленнее. Потом проведет макетирование подходит ли выбранный метод под предъявленные требования по времени работы. Чем больше система тем обычно по структуре она ближе к таблицам похожим на sql таблицы. В SQL есть чисто языковые ограничения, например нельзя строить индекс не привязанный ни к одной таблице но по нескольким таблицам и вместо длинных join просто брать данные из индекса. Поэтому обычно ни SQL ни объекты в полной мере разработчиков не удовлетворяют. SQL и объектный доступ в каше реализованы на mumps. Это вроде описанных выше библиотек. Если в объектном доступе пишут в объектном синтаксисе, то в sql доступе пишут (так называемые) запросы, которые транслируются в те же вызовы нижнего уровня на mumps. В принципе, никто не мешает программисту написать свои библиотеки в своем видении проблемы. В том числе с ведением так называемых метаданных и автоматической корректировкой выполнения. Хоть QBE. Можно также написать свои классы которые будут реализовать свои стратегии хранения. Однозначного ответа на вопрос "как делают" наверно не смогу дать - в разных системах разработчики могут выбрать разные методы. Иногда проще потратить месяц-другой на свой нижний уровень чем два-три года морочить голову как реализовать эффективно на штатных средствах. Иногда более чем достаточно штатных средств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 14:21 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Уже интересно ;-) Для начала вопрос насчет того, что "в SQL есть чисто языковые ограничения, например нельзя строить индекс не привязанный ни к одной таблице но по нескольким таблицам и вместо длинных join просто брать данные из индекса" - наложение индексов на view - это не то, что надо? Далее, насколько я понял основную суть ответа, - Вас не удовлетворяет подход к организации базы данных, заключающийся в использовании непроцедурного языка запросов - вместо этого Вы предпочитаете использовать процедурный язык, позволяющйи на низком уровне высокоэффективно копаться в отдельных данных, находящихся в базе? Тогда сразу вопрос - как соотносится процедурный язык с реализацией "клиент-сервер"? MUMPS-программа, реализующая интерфейс с пользователем, работает на машине клиента. Она сама лазает внутрь файла на сервере, в котором физически лежит база данных, или для этого есть серверная часть приложения? - Если есть серверная часть, то какой используется протокол обмена? - Если идет обращение к файлу, то какой же объем данных передается по сети при сколько-нибудь сложном поиске в базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 15:53 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey Gladilinналожение индексов на view - это не то, что надо? Это специфика имплементации. Sergey GladilinДалее, насколько я понял основную суть ответа, - Вас не удовлетворяет подход к организации базы данных, заключающийся в использовании непроцедурного языка запросов - вместо этого Вы предпочитаете использовать процедурный язык, позволяющйи на низком уровне высокоэффективно копаться в отдельных данных, находящихся в базе? Не совсем так. Меня удовлетворяет любой подход решающий задачу в том числе с учетом дальнейших перспектив изменений. А будет результат процедурным или нет - это вторично. Sergey GladilinТогда сразу вопрос - как соотносится процедурный язык с реализацией "клиент-сервер"? MUMPS-программа, реализующая интерфейс с пользователем, работает на машине клиента. Она сама лазает внутрь файла на сервере, в котором физически лежит база данных, или для этого есть серверная часть приложения? - Если есть серверная часть, то какой используется протокол обмена? - Если идет обращение к файлу, то какой же объем данных передается по сети при сколько-нибудь сложном поиске в базе? Нет. То что написано на mumps - это на стороне сервера. Программа не лазает внутрь файла, это делает интерпретатор, когда выполняет обращение к глобалам (то что начинается на ^). База также не обязана лежать на том же сервере где исполняется серверный процесс, данные могут быть там же, на другом сервере или часть там часть здесь (детали зависят от имплементации). Протокол обмена зависит от коннекта и вида клиентского приложения. Можно телнетом, можно вебом, можно частный поверх tcp/ip. Телнет очевидно не будет работать по http, а вебсервис по телнету, логично? Сколько передается по сети - опять же смотря что за приложение. Непример при работе по телнет по сети передаются байты соответствующие нажатию кнопок, а обратно от сервера - эскейп команды. Если это дельфи - клиент, то туда параметры запроса, оттуда - строки в грид например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:00 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey GladilinУже интересно ;-) Тогда сразу вопрос - как соотносится процедурный язык с реализацией "клиент-сервер"? MUMPS-программа, реализующая интерфейс с пользователем, работает на машине клиента. Она сама лазает внутрь файла на сервере, в котором физически лежит база данных, или для этого есть серверная часть приложения? - Если есть серверная часть, то какой используется протокол обмена? - Если идет обращение к файлу, то какой же объем данных передается по сети при сколько-нибудь сложном поиске в базе? например - у нас на клиентах нет MUMPS - только EXCEL+VBA (VBA - раз написан и не изменяется - у всех одинаковый) сетевой трафик = только запросы и готовые ответы притом ответы даже без элементов форматирования - одни цифры меньше этого трафика трудно представить все летает - но документы оформлены - красота многоязычно-многооконно-интерактивно автоподстройка перекодировочных таблиц на лету TCP/IP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:09 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
В Cache главное то - чего нет у других. Другие это те - с чем пытаются сравнивать Cache. Кстати, сравнивают совершенно безграмотно (с точки зрения Cache). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:44 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Это специфика имплементации Поясните, пожалуйста, что имеется в виду. Решает ли наложение индексов на view проблему построения индекса, который "не привязанный ни к одной таблице но по нескольким таблицам и вместо длинных join просто брать данные из индекса" ? Не совсем так. Меня удовлетворяет любой подход решающий задачу в том числе с учетом дальнейших перспектив изменений. А будет результат процедурным или нет - это вторично. Расскажите, пожалуйста, чем, кроме как процедурностью (в смысле возможности и необходимости самому выбирать от какого к какому узлу базы перейти и как таким образом организовать в базе поиск) M-системы отличаются от SQL-систем. База также не обязана лежать на том же сервере где исполняется серверный процесс, данные могут быть там же, на другом сервере или часть там часть здесь (детали зависят от имплементации) Т.е. внутри M-системы таки есть свой фиксированный протокол запросов между MUMPS-интерпретатором и собственно сервером? Можно ли его использовать, если клиент написан на MUMPS? Вопрос и к "ну я" и к MC--ALEX - запросы и ответы, передаваемые по сети, в Вашей системе насколько сложны? Действительно ли разработка своего языка/протокола запросов и ответов имеет преимущества перед использованием стандартного языка вопросов и ответов SQL? Сразу хотел бы также задать вопрос про производительность. Вот здесь: /topic/54920&pg=3#396080 "ну я" предлагает задачу, демонстрирующую случай, когда M-системы имеют значительное преимущество в производительности перед SQL. В ответах в той ветке я так и не нашел объяснений, почему это происходит. Можете ли Вы рассказать, каким образом в данной задаче можно организовать хранение данных в MUMPS и каким образом организуется поиск в этой структуре данных для обеспечения указанной производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:44 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
AlexKBВ Cache главное то - чего нет у других. Другие это те - с чем пытаются сравнивать Cache. Кстати, сравнивают совершенно безграмотно (с точки зрения Cache). Т.е. я неправ, считая наличие прямого доступа к иерархической структуре данных в базе основным отличием Cache от других систем? Расскажите, пожалуйста, какие отличия я забыл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 17:47 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Работая более 16 лет с М-технологией (MUMPS->Cache), мне до сих пор трудно сказать - что же в этой технологии является самым главным. Лучше сказать что для меня является важным. Например для меня важно то, что я могу напрямую связываться с внешними устройствами по Com портам, без всяких надстроек, напрямую из кода программы написанной на CacheObjectScript. Т.е. я могу писать свои драйвера устройств. Для меня важно, что я могу легко и просто перенаправлять входные и выходные потоки на различные стандартные устройства, причем на лету. Для меня важно, что я могу порождать различные фоновые процессы, и те, работая по довольно таки сложным мной определяемым алгоритмам (уровень С++, а может и выше) легко и просто обмениваются информацией между собой и интерактивными процессами. Кроме того, они сами (процессы) могут порождать себе подобные, координировать работу между собой и т.д. Для меня важно, что можно исполнять такие алгоритмы, которые в темпе поступающей входной информации ведут довольно таки сложную обработку этой поступающей информации, совместно со справочной информацией и той информацией, что была получена некоторое время назад (допустим вчера, месяц назад). При этом результаты обработки можно выкладывать в единые пакеты с поступающей информацией и отправлять дальше. А можно обработанную информацию выклодывать точно в то место, которое было занято полгода назад. И при этом я буду уверен, что моя обработка не притормаживает входной поток и не отражается на процессах записи надиск. Ну конечно это все в допустимых пределах, скажем десятки миллисекунд. Для меня важно, что на Cache можно строить управляющие системы, где основным компонентом, ядром, будет выступать сервер Cache, а не просто бочкой для накапливания. Для меня еще есть много чего важного. А сколько важных сторон находят для себя другие разработчики - не берусь судить. Скажу одно - нельзя рассматривать Cache только как сервер БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 18:26 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey Gladilin Это специфика имплементации Поясните, пожалуйста, что имеется в виду. Решает ли наложение индексов на view проблему построения индекса, который "не привязанный ни к одной таблице но по нескольким таблицам и вместо длинных join просто брать данные из индекса" ? Думаю, что да, решает. Если СУБД это поддерживает и оптимизатор грамотно использует, то это большой плюс этой СУБД. Sergey Gladilin Не совсем так. Меня удовлетворяет любой подход решающий задачу в том числе с учетом дальнейших перспектив изменений. А будет результат процедурным или нет - это вторично. Расскажите, пожалуйста, чем, кроме как процедурностью (в смысле возможности и необходимости самому выбирать от какого к какому узлу базы перейти и как таким образом организовать в базе поиск) M-системы отличаются от SQL-систем. Пробую понять. В процедурном языке не рассматриваем процедурность, что в нем останется? Ну разве что общие вещи для СУБД - транзакции, ввод-вывод, управление процессами и прочие атрибуты. Sergey Gladilin База также не обязана лежать на том же сервере где исполняется серверный процесс, данные могут быть там же, на другом сервере или часть там часть здесь (детали зависят от имплементации) Т.е. внутри M-системы таки есть свой фиксированный протокол запросов между MUMPS-интерпретатором и собственно сервером? Можно ли его использовать, если клиент написан на MUMPS? Клиент на mumps - это или про msm-ws или я не знаю про что, нужно смотреть документацию на него. Между серверами поддерживается свой протокол распределенного кеширования. Какой - зависит от имплементации. Например в каше поддерживается DCP и ECP, в msm - DDP. Sergey GladilinВопрос и к "ну я" и к MC--ALEX - запросы и ответы, передаваемые по сети, в Вашей системе насколько сложны? Действительно ли разработка своего языка/протокола запросов и ответов имеет преимущества перед использованием стандартного языка вопросов и ответов SQL? Вот примерные коды из моей текущей задачи: CacheConnect.Execute( \'d ClearData^UTZ07(resglob,3,\' + month + \')\'); На сервер уходит байт 50, обратно - байт 20 подтверждение. Функция выполняет пересчет данных отчета. CacheConnect.Execute( \'d GetData^UTZ07(resglob)\'); На сервер тоже около 50 байт, обратно - примерно от 20 байт до нескольких мегабайт. Сколько придет - зависит от данных, в каком формате - решаю я сам. В качестве ответа приходит кросстаблица. Sergey GladilinСразу хотел бы также задать вопрос про производительность. Вот здесь: /topic/54920&pg=3#396080 "ну я" предлагает задачу, демонстрирующую случай, когда M-системы имеют значительное преимущество в производительности перед SQL. В ответах в той ветке я так и не нашел объяснений, почему это происходит. Можете ли Вы рассказать, каким образом в данной задаче можно организовать хранение данных в MUMPS и каким образом организуется поиск в этой структуре данных для обеспечения указанной производительности? Пока не могу, это составляет внутренние секреты некоторых компаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 18:32 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey GladilinСразу хотел бы также задать вопрос про производительность. Вот здесь: /topic/54920&pg=3#396080 "ну я" предлагает задачу, демонстрирующую случай, когда M-системы имеют значительное преимущество в производительности перед SQL. В ответах в той ветке я так и не нашел объяснений, почему это происходит. Можете ли Вы рассказать, каким образом в данной задаче можно организовать хранение данных в MUMPS и каким образом организуется поиск в этой структуре данных для обеспечения указанной производительности? Могу лишь сказать что mumps - это обычно не самоцель для адептов, а многофункциональный инструмент. Попробуйте решить эту задачу как таковую, а потом решение перепишите на mumps и sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 18:45 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
To "ну я": Про процедурность - под процедурным языком обращения к базе данных (не языком программирования, а просто языком обращения к базе данных) я подразумеваю язык, в котором обращение состоит из указаний, КАК в базе что-то найти - пойди туда, посмотри такое-то поле, если оно удовлетворяет такому-то условию, то сделай то-то, затем пойди туда - и т.д. Насколько я понимаю, MUMPS - именно такой язык. Альтернативой, на мой взгляд, являются непроцедурные языки запросов - SQL, XQuery. В них описывается, ЧТО достать из базы, но не описывается, как. Если я правильно понял, то Вас привлекает именно процедурность (в описанном выше смысле) MUMPS'а, т.к. как Вы считаете ограничения, появляющиеся из-за непроцедурности, слишком серьезными? Спасибо за остальные ответы - как осознаю - спрошу еще :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2006, 20:38 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
AlexKBНапример для меня важно то, что я могу напрямую связываться с внешними устройствами по Com портам, без всяких надстроек, напрямую из кода программы написанной на CacheObjectScript. Т.е. я могу писать свои драйвера устройств. Спасибо за ответ. Хотелось бы разобраться подробнее. Общение через COM-порт происходит на уровне "записать байт в /dev/ttyS01, прочитать байт из /dev/ttyS01"? Если да, то это в Unix прямо из командной строки делать можно ;-) Если на более низком уровне, то на каком? Не пишете же Вы, в конце концов, обработчики прерываний - ясно, что они должны работать в режиме ядра, а Cache в целом - не должен. Кстати вопрос - а что такое CacheObjectScript? Это альтернативный язык Cache, не MUMPS? Или я зря считаю MUMPS основным языком в Cache? AlexKB Для меня важно, что я могу легко и просто перенаправлять входные и выходные потоки на различные стандартные устройства, причем на лету. Для меня важно, что я могу порождать различные фоновые процессы, и те, работая по довольно таки сложным мной определяемым алгоритмам (уровень С++, а может и выше) легко и просто обмениваются информацией между собой и интерактивными процессами. Кроме того, они сами (процессы) могут порождать себе подобные, координировать работу между собой и т.д. Если я правильно понимаю, все перечисленное вполне укладывается в стандартный Unix'овый IPC, т.е. доступно практически из любого языка программирования. Мы вот на PHP написали простенький daemon, который форкается и обрабатывает сетевые запросы. AlexKB Для меня важно, что можно исполнять такие алгоритмы, которые в темпе поступающей входной информации ведут довольно таки сложную обработку этой поступающей информации, совместно со справочной информацией и той информацией, что была получена некоторое время назад (допустим вчера, месяц назад). При этом результаты обработки можно выкладывать в единые пакеты с поступающей информацией и отправлять дальше. А можно обработанную информацию выклодывать точно в то место, которое было занято полгода назад. И при этом я буду уверен, что моя обработка не притормаживает входной поток и не отражается на процессах записи надиск. Ну конечно это все в допустимых пределах, скажем десятки миллисекунд. Вот, в этом видимо и был мой вопрос. Насколько я понял, Вы цените высокую скорость работу систем, разработанных на основании Cache, по сравнению с системами, разработанными на основании других СУБД? Значит должны быть типичные задачи, где это происходит? Или типичные методы обработки, отсутствующие в других системах? Вы могли бы об этом рассказать? AlexKB Для меня важно, что на Cache можно строить управляющие системы, где основным компонентом, ядром, будет выступать сервер Cache, а не просто бочкой для накапливания. Вот, также было бы интересно узнать, какие функции умеет выполнять ядро Cache кроме как функции простого хранилища данных? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 08:45 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Спасибо за интерес, если только он не поддельный. Приятно общаться с тем, кто умеет слушать. И, поверьте, не хотелось бы говорить с тем, кто заткнувши свои уши и глаза, пытается всех перекричать своим возгласом: "Я ВСЕХ ВАС НЕ СЛЫШУ". //----------------- В Вашем контрпримере видим PHP, СУБД(SQL) и UNIX, не считая возможных интерфейсов. А это все не только накладные работы системы, но еще и накладные работы НЕПРОДУКТИВНОГО ума программиста. Программисту все это разнородное необходимо объединять в одно целое. В моем примере это примерно так: set com="COM1" open com:("":"SI") use com set byte=^ARHIV("1996","Сентябрь","Кислородный цех","Расход пара") write byte close com quit Открыл порт, сделал его текущим устройством, взял из базы необходимые мне данные и отправил их другому абоненту. Написан этот код на CacheObjectScript (Это можно сказать следующий шаг развития MUMPS) (С и С++ для сравнения). По поводу того, а кому все это нужно: К большому возмущению большинства программистов пользователям на сегодняшний день все больше и больше именно это и нужно. Им уже мало того, что предлагает стандартное мышление и стандартные подходы. Пользователям уже нужно, наконец то, управление производством, а не просто голая статистика и отчеты. Вот примерное высказывание одного из директоров крупного металлургического предприятия: "Мы сейчас только подходим к уровню того объема производства продукции, когда всем учетом и статистикой занимались 100 бухгалтеров и экономистов, при этом основным инструментом у них были счеты. Теперь я имею огромный штат программистов и иже с ними, огромный парк компьютеров и другого дорогого оборудования, много умных и очень-очень умных. Сократить бухгалтеров и экономистов так и не удалось, наоборот пришлось взять на работу дополнительный штат. А сэкономил я только счеты?! " Вот и призадумайтесь, нужны ли подобные задачи на сегодняшний день, и все ли решаемо теми методами, которыми Вы обладаете. И нужно ли хотя бы знакомиться с возможностями других технологий, пусть даже нетрадиционных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 09:54 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Sergey GladilinЕсли я правильно понял, то Вас привлекает именно процедурность (в описанном выше смысле) MUMPS'а, т.к. как Вы считаете ограничения, появляющиеся из-за непроцедурности, слишком серьезными? Это зависит от задачи. Для некоторых задач SQL хватает за глаза, зачастую даже голову ломать не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 10:37 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
<<<<<<<<<Вопрос и к "ну я" и к MC--ALEX - запросы и ответы, передаваемые по сети, в Вашей системе насколько сложны? Действительно ли разработка своего языка/протокола запросов и ответов имеет преимущества перед использованием стандартного языка вопросов и ответов SQL? например запрос на создание сразу нескольких отчетов в нашей системе MX : - это строка, расположенная в одной ячейке EXCEL не более 255 символов - наподобие формулы EXCEL ответ - это сам отчет - голые бизнес-цифры без элементов оформления но с привязкой к координатной сетке EXCEL привязка увеличивает обьем ответа процентов на 10-20 (оформление уже сидит на клиенте и ждет цифр в подготовленые места) еще раз отмечу - сетевой трафик - минимальный ! разработка своего языка запросов имеет преимущества если : ориентирована на тиражируемый продукт, превосходящий аналоги, просматривается нехилый рынок сбыта, и будет гарантированная поддержка продукта несколькими хотя бы микро-фирмами на очень длительный период у нас это получилось и поддержка несколькими независимыми группами есть. трудозатраты были весьма значительны - десяток человеко-лет. тираж внедрения на данный момент - свыше сотни фирм - - затраты окупились делать свой язык запросов ради нескольких обьектов - невыгодно. лучше уж все плохонькое - но стандартное - типа SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 10:41 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
AlexKB set com="COM1" open com:("":"SI") use com set byte=^ARHIV("1996","Сентябрь","Кислородный цех","Расход пара") write byte close com quit Открыл порт, сделал его текущим устройством, взял из базы необходимые мне данные и отправил их другому абоненту. Пользователям уже нужно, наконец то, управление производством, а не просто голая статистика и отчеты. то бишь так видимо можно включить/выключить какой электрический клапан или насосом-дозатором управлять, или опрашивать датчик температуры наверно на MSSQL такое и не сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 17:51 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
На sql.ru, Sergey Gladilin, уже весьма подробно обсуждали все эти вопросы. У Вас не совсем правильное представление о "реляционных системах" раз Вы говорите о "подходах к организации данных, заключающихся в использовании непроцедурного языка запросов." В РМД, ради чистой математики, пришлось (вынужденно) отказаться от таких важнейших свойств баз данных, как идентификация, навигация и семантика. Взамен - "декларативный язык запросов". В MUMPS изначально используется одноименный интегрированный язык баз данных. И SQL, в течение 30 лет, вынужденно превращается в самый настоящий процедурный язык, чтобы стать вторым в истории интегрированным языком баз данных. Несмотря на то, что так и не появилось ни одной реляционной СУБД, пагубное влияние РМД проявляется, конечно, в существующих псевдореляционных СУБД ("Р"СУБД). Пользователи работают не с данными а с некими представлениями данных, и требуется постоянное программирование любых, даже самых простых, запросов. MUMPS не ориентирована ни на какую конкретную модель данных, а служит средой для разработки СУБД. Никто "на низком уровне" не "копается в отдельных данных". MUMPS, в частности, идеальная (просто единственная) среда для реализации классической объектной модели данных. Пользователи при этом работают непосредственно с данными (в рамках концептуальной схемы). Они сами создают запросы и отчеты, а оптимизаторы запросов как минимум не менее эффективны, чем в "Р"СУБД. Все разработчики баз данных стремятся меньше программировать. MUMPS легче всего приводит к такому результату (что не удивительно - ведь это единственная целостная технология баз данных). Все администраторы стремятся меньше администрировать. И здесь MUMPS (в данном контексте правильнее говорить уже о Cache) дает лучший результат. Странный Вы задаете вопрос: "Расскажите, пожалуйста, какие отличия я забыл?". Мне кажется нужно поглубже разобраться в теории и технологии баз данных, чтобы говорить об отличиях. "Доступно практически из любого языка программирования", "Мы вот на PHP написали...". Так что же Вы на SQL-то не написали. Значит Вы не понимаете что такое интегрированный язык баз данных ? Еще более странно про "типичные задачи". В одной из тем никто не смог привести ни одной "типичной задачи", для которой использование "Р"СУБД было бы разумнее, чем СУБД на MUMPS. Говорили только о "получении больших и сложных отчетов." Смешнее не придумаешь. Желаю Вам успехов в изучении теории и технологии баз данных, и в поиске отличий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 15:09 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей ЛеонидовичНа sql.ru, Sergey Gladilin, уже весьма подробно обсуждали все эти вопросы. Дадите ссылки? Те дискуссии, связанные с MUMPS, которые я нашел. как правило,быстро переходят в неуправляемй поток взаимных наездов. Чернышев Андрей ЛеонидовичВ РМД, ради чистой математики, пришлось (вынужденно) отказаться от таких важнейших свойств баз данных, как идентификация, навигация и семантика. Взамен - "декларативный язык запросов". Вот про это почитал бы с большим удовольствием, посоветуйте что-нибудь? Чернышев Андрей ЛеонидовичНесмотря на то, что так и не появилось ни одной реляционной СУБД, пагубное влияние РМД проявляется, конечно, в существующих псевдореляционных СУБД ("Р"СУБД). Вот это заявление - про псевдореляционные СУБД - я уже встречал на sql.ru, но, опять же, никогда ен видел объяснений, что значит "псевдореляционные" и почему они хуже гипотетических реляционных - что еще кроме идентификации, навигации и семантики они потеряли? Чернышев Андрей ЛеонидовичПользователи работают не с данными а с некими представлениями данных, и требуется постоянное программирование любых, даже самых простых, запросов. Постоянное программирование требуется во всех случаях или только тогда, когда таблица не есть простейшее отображение сущности? Здесь, на мой взгляд, очень хорошо бы пошел пример - что есть данные, что есть представление, в чем недостаток реляционной модели и ее псевдореляционной реализации SQL, в чем заключается работа MUMPS непосредственно с данными. Чернышев Андрей ЛеонидовичОни сами создают запросы и отчеты, а оптимизаторы запросов как минимум не менее эффективны, чем в "Р"СУБД. Тут я совсем запутался :-(. Я думал, что в MUMPS нет запросов, есть просто способ обращения к данным через глобали, выглядящие для программиста как переменные? Чернышев Андрей ЛеонидовичЗначит Вы не понимаете что такое интегрированный язык баз данных ? Пожалуй, не понимаю. Что посоветуте почитать? Чернышев Андрей ЛеонидовичЕще более странно про "типичные задачи". В одной из тем никто не смог привести ни одной "типичной задачи", для которой использование "Р"СУБД было бы разумнее, чем СУБД на MUMPS. Вот тут: /topic/54920&pg=12#2406070 предложены задачи, похожие на те, что мне иногда приходится решать в своей профессиональной деятельности. Из преиведенных там решений на MUMPS я вижу, что 1) они менее наглядны, содержат какие-то циклы, переменные и т.д. 2) по-моему, они длиннее по числу лексем (побайтово сравнивать, имхо, глупо, а вот по числу идентификаторов, ключевых слов, знаков операций - т.е. числу лексем - имхо, логично) 3) казалось бы, логичное действие - база выросла - пора прикрутить индексы - требует переписывания кода Получается, что для указанных задач SQL лучше. Что и логично. Не бывает технологий, абсолютно выигрывающих у других. Для каждого подхода должна найтись своя ниша... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 16:20 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Вы задаете очень странные (для меня) вопросы, именно по той причине, о которой я сказал. И делаете ошибочные выводы. "Псевдо", потому что не поддерживаются даже свойства отношения - базовой концепции РМД. Работа непосредственно с данными заключается в работе непосредственно с данными. Это обеспечивают ОСУБД на MUMPS, а не сама MUMPS. Я же ясно сказал: непосредственно в рамках концептуальной схемы. Это обеспечивается простым и универсальным интерфейсом объектного навигатора - важнейшего компонента, который как раз и сводит программирование к минимуму. Если разработчик "сказал", что Товар<-Хранится на/Хранит->Склад то пользователи именно с соответствующими данными непосредственно и работают. Вы не запутались, а просто игнорируете то, что я Вам говорю, и продолжаете рассуждать про "в MUMPS нет запросов, а есть просто способ...". Конечно же, в ОСУБД на MUMPS есть запросы и оптимизаторы (они есть и в ООСУБД на MUMPS от Intersystems, но эта СУБД построена на парадигме ООП, не имеющего никакого отношения к базам данных). Сообщения 2406070 и другие сообщения "про самолеты" не могут дать никакого представления о технологии БД. Когда эта "задача" будет внедрена на предприятии, в БД будет, например, 100 отношений в нормализованной РБД (или, соответственно, около 70-ти объектов в ОБД) и множество различных функций. Вот тогда и будете сравнивать. И Вы увидите, что в ОСУБД на MUMPS (а Вы опять ссылаетесь на чистый MUMPS): 1) решения более наглядны; 2) намного короче; 3) не требуют постоянного программирования "запросов", как в случае SQL. Думаю нужно почитать сначала Кодда, а потом Дейта (последнее издание "Введение в системы баз данных" и другие работы), так как Дейт наиболее последовательный сторонник РМД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 21:21 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
> Что же главное в Cache? Видите ли, Sergey, мы стали свидетелями мировой экспансии Google на просторах интернета. Их сервис в сети на 1000 компьютерах (в общем-то никто не знает сколько у их компьютеров). Это новая глобализация стала реальностью, наступает на нас, и мы пока проигрываем. Что же можно противопоставить Google? Такого плана вопросы не задают только ленивые. В техническом плане это похоже на Cache. Во всяком случае он похож на работающий инструмент. Немножко смущает другое, каким бы ни был хорошим Cache, на каком-то этапе он же должен разваливаться к примеру от юзеров. Не может же быть так, что в Google дураки – там 1000 компьютеров, а мы взяли 1 поставили туда Cache и нет проблем. Но в том то и дело, что это может быть именно так. А почему нет? То есть по-идее только длительные практические испытания покажут, когда Cache развалится или нет. А MSSQL видится слабее сразу, тут уж и испытания не особо требуются, хотя конечно задача должна определять инструмент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 22:44 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей Леонидович"Псевдо", потому что не поддерживаются даже свойства отношения - базовой концепции РМД. Работа непосредственно с данными заключается в работе непосредственно с данными. Это обеспечивают ОСУБД на MUMPS, а не сама MUMPS. Я же ясно сказал: непосредственно в рамках концептуальной схемы. Это обеспечивается простым и универсальным интерфейсом объектного навигатора - важнейшего компонента, который как раз и сводит программирование к минимуму. Если разработчик "сказал", что Товар<-Хранится на/Хранит->Склад то пользователи именно с соответствующими данными непосредственно и работают. К сожалению, оба ответа ничего не прояснили - Вы не пояснили, какие свойства отношения не поддерживаются в SQL, а также чем это плохо. Вы не пояснили, почему SQL плохо пригоден для описания того, что "Товар<-Хранится на/Хранит->Склад". Чернышев Андрей ЛеонидовичВы не запутались, а просто игнорируете то, что я Вам говорю, и продолжаете рассуждать про "в MUMPS нет запросов, а есть просто способ...". Конечно же, в ОСУБД на MUMPS есть запросы и оптимизаторы (они есть и в ООСУБД на MUMPS от Intersystems, но эта СУБД построена на парадигме ООП, не имеющего никакого отношения к базам данных). К сожалению, я действительно не знаю, ни что такое ОСУБД ни что такое ООСУБД, ни того, является ли Cache единственной в мире ОСУБД. Еще я не вижу никаких запросов а приведенных в сообщении 2406070 текстах на MUMPS, а потому начинаю подозревать, что Вы говорите о каких-то двух разных вещах, а я их между собой путаю. И, собственно, пишу в этот форум для того, чтобы мне рассказали либо посоветовали, что почитать. Чернышев Андрей Леонидович Сообщения 2406070 и другие сообщения "про самолеты" не могут дать никакого представления о технологии БД. Когда эта "задача" будет внедрена на предприятии, в БД будет, например, 100 отношений в нормализованной РБД (или, соответственно, около 70-ти объектов в ОБД) и множество различных функций. Вот тогда и будете сравнивать. И Вы увидите, что в ОСУБД на MUMPS (а Вы опять ссылаетесь на чистый MUMPS): 1) решения более наглядны; 2) намного короче; 3) не требуют постоянного программирования "запросов", как в случае SQL. Во-первых, ссылка на сообщение 2406070 предназначалась для демонстрации Вам, что не бывает инструмента, одинакового хорошего для всех случаях - вот и Вы согласны, что для задач про самолеты SQL лучше, а для каких-то других задач (на которые Вы ссылаетесь, говоря о 100 нормализованных отношениях) лучше MUMPS. Во-вторых, задача про самолеты имеет прямое отношение к БД - базы данных подобной сложности встречаются в тысячах или миллионах веб-проектов. В-третьих, было бы очень интересно увидеть-таки пример системы, в которой SQL невыгоден, с объяснением, какие ограничения реляционной или псевдореляционной БД в этом конкретно проекте становятся критическими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 18:08 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
kvasovТо есть по-идее только длительные практические испытания покажут, когда Cache развалится или нет. А MSSQL видится слабее сразу, тут уж и испытания не особо требуются, хотя конечно задача должна определять инструмент. Во! Из двух Ваших последних предложений второе (а не первое) описывает мой вопрос - я хочу разобраться, для каких приложений мне стоит задуматься об использовании M-систем вместо более привычных мне SQL. Причем интересуют только те случаи, когда M-система даст ощутимый выигрыш. Хотелось бы увидеть конкретный пример (как можно более простой, разумеется), когда SQL затыкается в силу своей организации, а MUMPS дает результат (опять же в силу своей реализации как средства доступа к БД, а не в силу того, что в нем есть операции по чтению из COM-порта). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 18:13 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Я Вас очень хорошо понял, Sergey Gladilin. Но на кого-то демонстрация "страстного желания" изучить эти "М-системы", возможно, может произвести впечатление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 19:59 |
|
||
|
Что же главное в Cache?
|
|||
|---|---|---|---|
|
#18+
Сергей, То что говорит ЧАЛ о Cache в целом верно. Представьте, что вам в MSSQL дадут не DDL с возможностью создавать таблицы, индексы и не DML с запросами, а библиотеку доступа на уровне "создать B+ дерево", пробежать по дереву, найти все узлы уровня N, блокировки узлов и т.д. Т.е. вы вместо того, чтобы решать прикладную задачу, сначала должны на mumps написать то, что ЧАЛ называет "ОСУБД на MUMPS" (никто правда не видел этого чуда). Собственно, SQL в Cache и есть реализация РСУБД на языке mumps (CREATE TABLE создаст глобал, а SELECT будет транслирован в код на mumps, который бегает по деревьям и ищет что нужно). Имплементация SQL и объекного доступа в Cache однозначно проигрывает любой коммерческой РСУБД - и работает медленнее и многие конструкции не поддерживаются - поэтому на это даже не стоит смотреть. Не исключено, что возможно написать на mumps ОСУБД, на которой можно будет решать задачи более эффективно, чем на РСУБД - но, к сожалению, такой СУБД в публичном доступе нет. Я бы сказал, что разработка системы на Cache оправдана, если ваше приложение имеет некую специфику, зная которую можно реализовать работу с данными гораздо эффективнее, чем в РСУБД. Например, в mumps нет понятия уровня изоляции транзакций. Если вам нужно получать только commited данные - нужно самому расставлять локи, следить за ними и т.п. Наверняка есть задачи, где частное решение будет работать более эффективно, чем реализация на все случаи жизни в РСУБД. Естественно, нужно понимать, что реализация такого рода потребует значительных ресурсов и в конце может все равно получиться менее эффективной, чем РСУБД - потому что mumps язык интерпретируемый и вы не добьетесь той же производительности при работе с деревьями, как на С. В общем, я бы ответил на ваш вопрос следующим образом: пытайтесь решить задачу на РСУБД. Если задача не решается и вы видите, что причиной этого является ограничения РСУБД ( решение плохо ложится на таблицы, скорости не хватает, потому что РСУБД написана универсально, а вы видите, что в вашем случае все можно сделать гораздо эффективнее, если пожертвовать универсальностью) - смотрите на Cache, но знайте, что путь этот будет тернист :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 23:54 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=34055919&tid=1557930]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
73ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 456ms |

| 0 / 0 |
