|
|
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
[quot --------------------------------] Создавать и уничтожать переменные можно практически в любом ЯП. Экземпляр объекта - это и есть переменная. select это сразу две операции - проекции по столбцам и по строкам. Математический формализм позволяет не упростить получение результата, а получить этот результат единственно возможным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 14:25 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
(-)Каким образом этот математический формализм позволяем упростить получение результата? Общепринятый математический формализм. Типа (2+2)->4. Считать всяко надо, но все понимают. Преимущества рел алгебры еще более на виду. Берешь (одно, два...n) отношений (то есть множеств) и опана - получаешь новое отношение (множество). множество кортежей, записей если угодно. А нет такого формализма и приходится пользоваться циклами, вложенными. Вы сами прикиньте, что стоит в циклах сделать SELECT атрибутоа FROM две связанные таблицы WHERE какиенить условия да еще и ORDER BY впридачу (хотя ORDER by уже и не операция рел алгебры, ну да ладно :) ). Что бы спор стал конструктивным, предложите что-то взамен. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 14:26 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Т.е. наличие алгебры предполагает, что любую задачу можно решить без циклов? А рассуждая про selectы вы не путаете реляционную алгебру с языком программирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 14:51 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
--------------------------------alexeyvgРешение уравнения бывают разные - это не только упрощение или преобразование, но и само решение, т.е. получение результата. Для такого решения примеры, по моему, очевидны. Ну тогда также очевидны и объектные решения.Дык вот все в этом топике пока что не видят ни одного решения, не подразумевающего затрат тысяч человеко-лет, уже потраченных разработчиками СУБД. Даже для простейшего джойна нужно писать гору кода, причём этот код даже сам не распаралелится на много процессоров - для этого нужно написать ещё больше кода... --------------------------------Непонятно почему именно наличие "реляционной алгебры" рассматривается как большое преимущество. Каким образом этот математический формализм позволяем упростить получение результата?Непонятно, вам не нравится именно формализм, именно слова "реляционная алгебра"? Вы не возражаете, что для решения практических задач нужна арифметика? Чем "реляционная алгебра" хуже? Почему для задач, требующих сложения и вычитания можно использовать эти операции, а для задач, требующих операций над множествами, нужно использовать систему, в которой этих операций нет, и писать их самому? Кстати, в обычной жизни "реляционная алгебра" массово используется всеми людьми, хотя эти слова знают единицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 14:57 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Нет не предполагает. Но циклов будет немножко меньше. Не путаю. Честно. Хотя и рассуждаю про SELECTы. :) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 14:59 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
-------------------------------- ... Непонятно почему именно наличие "реляционной алгебры" рассматривается как большое преимущество. Каким образом этот математический формализм позволяем упростить получение результата? Джеффри Д. Ульман, Дженнифер Уидом Введение в системы баз данных http://www.onlinedisk.ru/file/162437 Глава 4 - алгебра реляционных операций. Вы ими наверняка постоянно пользуетесь, и это не кажется чем-то необычным. Но до Кодда был целый комитет - КОДАСИЛ. Документировали навигационные СУБД. Там, чтобы выполнить обычный SELECT ... FROM, MINUS, UNION, перечисление столбцов, фильтры в WHERE, надо было писать цикл на языке 3го уровня(как правило) - выходила примерно страничка кода для одного SELECT, а если объединяешь две таблицы - тогда несколько циклов(вложенных). Фильтры - там же руками. Плюс надо было всегда помнить текущее положение курсора(в каком наборе(таблице) находишься) знать команды для перехода из набора в набор(таблицу), команды для быстрого поиска, команды для ..., вместо того чтобы просто написать SELECT ... FROM .... Связи между наборами (включая многие-ко-многим без промежуточной таблицы) создавались во время создания схемы базы - но это сомнительное преимущество. Я работал с MDBS-III - мощная для того времени(1992-95) система, но вот там и не было этой алгебры, и процесс разработки был существенно медленнее(отчеты - вообще отдельная песня). Сопровождение - аналогично. Нынешняя вяло-текущая возня с объектами ОЧЕНЬ напоминает деятельность того комитета. :) Один человек сделал больше, чем целое поколение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:00 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
alexeyvg Вы не возражаете, что для решения практических задач нужна арифметика? Чем "реляционная алгебра" хуже? Почему для задач, требующих сложения и вычитания можно использовать эти операции, а для задач, требующих операций над множествами, нужно использовать систему, в которой этих операций нет, и писать их самому? Кстати, в обычной жизни "реляционная алгебра" массово используется всеми людьми, хотя эти слова знают единицы. Так в обычной жизни и объектное проектирование\программирование массово используется. А здесь говорят, что там даже операций нет. :( Я не против реляционной алгебры, но я не понимаю как ее наличие сказывается на языке SQL. По моему это все равно, что считать использование арифметики достоинстом BASICа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:05 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
--------------------------------Я не против реляционной алгебры, но я не понимаю как ее наличие сказывается на языке SQL. По моему это все равно, что считать использование арифметики достоинстом BASICаКак-же - наличие реляционной алгебры сказывается на SQL тем, что её там можно применить - в этом его преимущество для решения задач, требующих её применения. И использование арифметики тоже является достоинстом BASICа - ведь было бы хуже, еслиб её там не было? Т.е. если для решения задачи нужна арифметика, то BASIC попадает в число кандидатов по этому критерию, а если нужна реляционная алгебра, то SQL попадает в число кандидатов по этому критерию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:12 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Не понял - что почему ставится знак равенства между декларативным программированием и алгеброй? Почему вы считаете, что запись Код: plaintext Код: plaintext Код: plaintext Код: plaintext Ни в том ни в другом случае реляционная алгебра не использовалась. А уж навигация с использованием синтаксиса d.client.department.name и подавно удобней реляционных джойнов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:22 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Основные плюсы наличия алгебры: 1. Возможность записывать сложные выражения вместо цепочки примитивных инструкций по вычислению. Аналогия: запись выражений в языке высокого уровня (типа (a+b)^2 - (c-d)^2 ) по сравнению с языком ассемблера, где надо записать цепочку примитивных инструкций, чтобы получить тот же результат. Следствия: 1.1. Компактификация записи. 1.2. Возможность использовать встроенный системный оптимизатор для выбора конкретного способа расчёта сложного выражения. 1.3. Снижение количества ошибок, т.к. в длинной низкоуровневой программе их всё же легче наделать, чем в записи алгебраического выражения 2. Возможность формулировать достаточно сложные ограничения целостности (правила) декларативно , в виде выражений над базой данных, вместо необходимости писать все проверки процедурно, навигационным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:32 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
-------------------------------- Чем запись Код: plaintext Код: plaintext Ни в том ни в другом случае реляционная алгебра не использовалась. Да ну? К вашему сведению, выражение Person, Document есть алгебраическая операция декартова произведения (иначе Person CROSS JOIN Document) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:36 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
? Это вы про какое выражение? Второе? - там условие Первое? - там тоже условие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:47 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
--------------------------------? Это вы про какое выражение? Второе? - там условие Первое? - там тоже условиеТем не менее это и есть операции реляционной алгебры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:54 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Второе - да А первое - это всего лиш определение множества ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 15:59 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
2 (-) Вы знаете я не понимаю, о чем спор. Вроде как про объекты сначала был, про какие то там непонтяные фразы, типа операция создания объекта. Ну и мои возражения возникли именно по этому поводу. А сейчас я не против. Исчисление и рел.алгебра равносильны, это вроде еще Кодд доказал. (-).. ничего что я вас в перооде пишу? так быстрее :) навигация с использованием синтаксиса d.client.department.name и подавно удобней реляционных джойнов В общем да. Самое итересное, что одно другому не мешает. В смысле навигачия может быть реализована Join'ами, а Join'ы могут соединять навигационные выражения. Беда только, что это мало кто понимает. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 16:09 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
U-geneВы знаете я не понимаю, о чем спор. Вроде как про объекты сначала был, про какие то там непонтяные фразы, типа операция создания объекта. Ну и мои возражения возникли именно по этому поводу. А сейчас я не против. Исчисление и рел.алгебра равносильны, это вроде еще Кодд доказал.+1 Я не против объектов, я против работы с множествами без использования соответствующих средств. А SQL это будет или Linq - это уже отдельный вопрос - вопрос выбора инструмента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 16:37 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Igor LemeshkoНынешняя вяло-текущая возня с объектами ОЧЕНЬ напоминает деятельность того комитета. Здесь-то и зарыта собака. Очень не нравится поклонникам объектов, что обработка данных легко объходится без них. Вот и спорят ни о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 17:55 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
U-geneИ никакие ГОСТы и ISO этот факт не прикроют Газеты надо читать... И ISO тоже, а то в своем болоте завязли, слив накак не найдете, бедолага... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 15:22 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Ви не поняли. Я просто не нашёл нужных слов, что есть такое "модель данных" в вашей интер т ре п ации. Хотя и надеялся. Видимо Ви не знаете. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 16:48 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
U-gene, тупость не глупость... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 17:26 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
Евгений Мирошниченко aka mir Если попробовать взять уже существующие аксиоматические концепции, то объект -- переменная, а состояние -- значение этой переменной. ... т.к. переменная существует в пространстве и времени и отличается от других переменных. Комментировать нечего. Полный бред. Сам то понял, что сказал? Guest Чем вам так дорога эта алгебра РМ ? Я ни разу не использовал ее в своей работе. ... В чем прелесть АЛГЕБРЫ ? Непонятно почему именно наличие "реляционной алгебры" рассматривается как большое преимущество. Каким образом этот математический формализм позволяем упростить получение результата? Алгебра нужна для следующих целей: 1. как защитный политический механизм или крыша, 2. Это помогает выстроить более строгую цепочку рассуждений. Но по большому счету, сама алгебра в мат. смысле конечно никому в моделированни данных не нужна - ни в теории, ни тем более на практике. alexeyvg join, where, exists - это и есть алгебра, т.е. так указываются операции над множествами. Ну тогда выбор бананов домохозяйкой в супермаркете это тоже алгебра, и одновременно еще и квантовая механика, ведь бананы из квантов состоят и подчиняются ее законам. _мод Это вам так кажется - любой select это уже операция рел. алгебры. Без нее с таблицами нельзя работать. Почему реляционной алгебры? До реляционной алгебры не было выборки из таблиц? Если уж говорить о характерный особенностях, то лучше начать с join (и на этом же закончить). Операция весьма неоднозначная и на данный момент очевидно вредная (хотя в свое время прорывная). _модЭто не преимущество, а необходимость. Что-бы сложить 2+2 нужна операция +. Это в математике - там свои законы, которые часто хотят использовать не по назначиению. А в информатике для нахождения 2+2 можно, например, использовать процедуру, или сообщения, или переход между состояниями. Сахават "Событие" не понятие прикладной области. Зависит от модели. Модель может поддерживать понятие "события" в качестве базового, а может и не поддерживать. Сахават"Верный" дизайн подразумевает бесконечное количество сущностей. В информатике нет бесконечности (и потому это не математика). Наверное имелось в виде "неограниченное" (что впрочем, тоже сильное отверждение). _мод А вот в программном смысле в РМ событием является любые операции, что и используется в триггерах СУБД. Ну так есть в РМ события или их нет? А то как-то некрасиво получается: в теории их нет, а вот когда рапортавать об успехаъх, то сразу появляются всякие интересные вещи. _модПри использовании СУБД, в которых нет SQL приходится вручную моделировать (программировать) те же операции рел. алгебры. Правильно. Но только надо договарить: при наличии SQL приходится на нем вручную моделировать (программировать) другие модели - но зачем такие мучения, никто не знает. Guest А вот создание и удаление объекта, на мой взгляд, является операцией. Есть две совершенно разные операции: создание переменной и создание объекта. Но с алгеброй это почти никак не связано. _мод Экземпляр объекта - это и есть переменная. Экземпляр объекта - это ссылка. А переманная - это где она хранится. Совершенно разные понятия. U-gene Преимущества рел алгебры еще более на виду. Берешь (одно, два...n) отношений (то есть множеств) и опана - получаешь новое отношение (множество). множество кортежей, записей если угодно. А кто сказал, что представлять данные в виде отношений, это есть хорошо? В реальной жизни никто так не делает. Получается, что сами себе создаем проблемы, а потом хвастаемся, что нашли для них хитрое решение. И в этом ценность РМ? Проще говоря, а зачем нам сперва представлять данные в виде нескольких отношений (создать проблему), а потом заниматься нахождением того, что реально нужно через какие-то хитрые операции? U-geneА нет такого формализма и приходится пользоваться циклами, вложенными. Вы сами прикиньте, что стоит в циклах сделать SELECT атрибутоа FROM две связанные таблицы WHERE какиенить условия да еще и ORDER BY впридачу (хотя ORDER by уже и не операция рел алгебры, ну да ладно :) ). Не в циклах дело - даже если мы в какой-то ЯП введем что-то типа select, или даже join, то в рел.модель он не превратится. Я бы даже сказал, что можно вполне оставить циклы и получить очень приличную модель данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2009, 00:35 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
ой извините пьяный был не понял какую чушь писал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2009, 00:56 |
|
||
|
выбор модели данных
|
|||
|---|---|---|---|
|
#18+
U-gene (-).. ничего что я вас в перооде пишу? так быстрее :) навигация с использованием синтаксиса d.client.department.name и подавно удобней реляционных джойнов В общем да. Самое итересное, что одно другому не мешает. В смысле навигачия может быть реализована Join'ами, а Join'ы могут соединять навигационные выражения. Беда только, что это мало кто понимает. Это уже более содержательное утверждение, но все-таки слишком поверхностное. Я бы сказал, что есть очень серьезные (глубинные) причины, почему это не сделано (не получается сделать). Объеденить РМ и join'ы конечно проблем нет, но никакого прорыва не будет - возможно несколько меньше писанины в запросах. Это примерно как попытки Дейта и Ко механически прикрутить к РМ теорию типов так, чтобы было два ортогональных направления моделирования - ничего не вышло, поскольку слишком наивно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2009, 01:00 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36387649&tid=1542918]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 552ms |

| 0 / 0 |
