|
|
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
таблица проще, потому что она не перегружена избыточной информацией. в хмл-е слишком много мусора, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2008, 11:53 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
RomanA okdokyЕсли не нравятся идентификаторы, используйте одну таблицу с естесственными ключами client photo. В XML тоже используют идентификаторы, хотя не так активно. Например при передаче данных от одной системы к другой, в другой системе тот же клиент может находиться под другим идентификатором, увыПонятно,. То есть для таблицы Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. client 1 photo 2 type 3 <1>Вася<2>1<3>... Системе принимающей решение (не только при передаче данных), фотографию лучше идентифицировать в XML, а не использовать специальные идентификаторы в нескольких таблицах. Например Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2008, 18:59 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
okdokyДля людей проще таблица. Для компьютера возможно проще XML, ... Интересный подход, но мне кажется дело вовсе не в том что кому проще. Важный вопрос, который здесь возникает, это что эти два предстваления не эквивалентны. В таблице порядок колонок не имеет значения, а в XML они неявно упорядочиваются (из-за вложения элементов). Значит XML хранит какую-то дополнительную инфу или, наоборот, таблица теряет какую-то инфу. Более конкретно вопрос можно поставить так: на основе каких критериев мы выбираем порядок (вложенности) в XML исходя из исходного набора таблиц? По мне, так тут есть явная неоднозначность, что является бичом практически всех моделей основанных на вложенности или иерархии, что еще отмечалось в старинной модели вложенных отношений (nested relation model). Хотя, возможно, в данном подходе эта проблема как-то решается (если так, то хотелось бы услышать как именно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2008, 13:48 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
чалБолее конкретно вопрос можно поставить так: на основе каких критериев мы выбираем порядок (вложенности) в XML исходя из исходного набора таблиц? По мне, так тут есть явная неоднозначность, что является бичом практически всех моделей основанных на вложенности или иерархии, что еще отмечалось в старинной модели вложенных отношений (nested relation model).Нужно смотреть на информацию (отношение) внутри таблицы, а не на таблицу. По-моему таблица FIRST NAME; LAST NAME несет ту же информацию, что и таблица NAME Если в обеих таблицах просто перечисляются возможные значения, то здесь на самом деле речь идет только о классе согласно упомянутой работе Класс-реляционный подход к представлению табличных и XML данных В описываемом подходе класс, это - множество текущих (хранимых в БД или рассматриваемых в данный момент) значений сгруппированных одним именем. Типом класса является определение множества всех возможных значений данного класса. Иерархия имен задает иерархию классов. Допускается и даже является весьма полезным использование одного имени для класса и соответствующего ему типа, особенно на верхних уровнях иерархии. Только в случае совпадения имен между классом и типом, срабатывает ODMG-подход к определению класса. Что следует понимать под значением? Все что угодно. Важно чтобы оно хранилось внутри БД. Сочетание имени класса и его значения может использоваться, например, в качестве идентификатора объекта. Можно ли говорить, что эти таблицы отображают отношение? Получается в отношении всегда должна присутствовать какая-то зависимость? Вот пример отношения :) Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2008, 19:39 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
okdokyПолучается в отношении всегда должна присутствовать какая-то зависимость? Вот пример отношения :) Код: plaintext 1. 2. 3. Пусть есть таблица с тремя колонками A, B и C. Данных пока никаких нет. Никаких ограничений на данные тоже нет. Какая будет структура в XML-модели? Из соображений симметрии следует, что однозначно такую структуру выбрать нельзя. Правильно? Это легко решить, если предположить, что всегда есть нечто вроде идентификатора. Но есть другая проблема. Может быть несколько зависимостей внутри одной таблицы. Тогда опять же из соображений симметрии мы не можем выбрать ни одну из них. При выборе любой одной, остальные остаются непредставленными в модели (по крайней мере теми же средствами, что и первая). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2008, 23:55 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
чалНо есть другая проблема. Может быть несколько зависимостей внутри одной таблицы. Тогда опять же из соображений симметрии мы не можем выбрать ни одну из них. При выборе любой одной, остальные остаются непредставленными в модели (по крайней мере теми же средствами, что и первая).Что ВАм мешает представить все зависимости? Я так понимаю, все можно задать в одном XML <A><B></A> <B><A/><B> ... <C><A/><B/><C/> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 05:45 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
эх, давно это было: /topic/103823 ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 09:45 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
чалПусть есть таблица с тремя колонками A, B и C. Данных пока никаких нет. Никаких ограничений на данные тоже нет. Какая будет структура в XML-модели? Из соображений симметрии следует, что однозначно такую структуру выбрать нельзя. Правильно? Это легко решить, если предположить, что всегда есть нечто вроде идентификатора.Если вы не знаете или не решили какая зависимость, да, можете значения этих трех колонок идентифицировать четвертой колонкой. В XML это будет Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 19:03 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
okdoky : А как быть с ограничением целостности? Вы предлагаете поддерживать целостность программно, а не структурно. Обратно к реляционному корыту? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 23:48 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
kaban_nikВроде изучил теорию XML. Возник вопрос - для чего его (XML) применять. Единственное что приходит в голову хранить однотипные настройки например проги и чегонить есче. Или у меня извращенное понимание мира... Создание простеньких Web страничек... Лично мне очень понравилось использовать XML для такой вещи: Представьте себе накладную в БД. Там есть шапка и строки. Т.е. шапка в одной таблице хранится, строки в другой. Теперь подумайте, как Вы будете изменять накладную из пользовательского приложения - например, третью позицию отредактировал, десятую удалил и ещё поменял шапку. Мы хотим использовать транзакцию, т.е. либо поменял накладную целиком, либо вообще не поменял (если произошёл сбой). Поэтому, если мы будем делать это из приложения, то выглядеть это должно примерно так: con.BeginTran cmd.Execute "UPDATE ШапкаНакладной ..." cmd.Execute "UPDATE ТретьяПозиция .." cmd.Execute "DELETE ДесятаяПозиция" .... con.Commit Недостатки очевидны - если у Вас приложение повиснет в процессе транзакции, то остальные пользователи умрут на блокировках. Да и вообще это медленно всё будет, по одной строке менять, возвращать результат на клиента и т.п. Возьмём другой способ - транзакция внутри хранимой процедуры. Всё бы хорошо, но каким образом передать информацию о строках, которые нужно отредактировать, строках которые нужно удалить в одну процедуру? Одно из дурацких решений - использвоать временные таблицы, куда это всё записывать, а потом вызывать процедуру, указав ей инднексы строк временных таблиц (например, таблица для строк, которые нужно удалить и пр). Но самое простое решение - использовать XML. В этом случае фактически клиентское приложение в процедуру передаёт только XML текст, который в хранимой процедуре парсится через OpenXML, которой уже известно, что в теге UPDATE находятся строки по изменению, DELETE - по удалению... И в рамках одной транзакции процедура быстро выполнит все изменения одним махом. Это очень и очень полезное качество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 11:19 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
Albatross есть ещё библиотеки кэширования на каждом ЯП, которые сами всё делают (ClientDataSet) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 12:24 |
|
||
|
зачем нужен XML
|
|||
|---|---|---|---|
|
#18+
AlbatrossНо самое простое решение - использовать XML. В этом случае фактически клиентское приложение в процедуру передаёт только XML текст, который в хранимой процедуре парсится через OpenXML, которой уже известно, что в теге UPDATE находятся строки по изменению, DELETE - по удалению... И в рамках одной транзакции процедура быстро выполнит все изменения одним махом. Это очень и очень полезное качество.В локальной сети (да и вообще в любой сети с малым временем отклика) предлагаемое решение почти наверняка будет медленнее, чем приведенное чуть выше. Уже не говоря о куче других очевидных недостатков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2008, 14:57 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35113108&tid=1544013]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 492ms |

| 0 / 0 |
