powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / зачем нужен XML
12 сообщений из 37, страница 2 из 2
зачем нужен XML
    #35113108
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица проще, потому что она не перегружена избыточной информацией. в хмл-е слишком много мусора, имхо
...
Рейтинг: 0 / 0
зачем нужен XML
    #35114981
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanA okdokyЕсли не нравятся идентификаторы, используйте одну таблицу с естесственными ключами client photo. В XML тоже используют идентификаторы, хотя не так активно. Например при передаче данных от одной системы к другой, в другой системе тот же клиент может находиться под другим идентификатором, увыПонятно,. То есть для таблицы
Код: plaintext
1.
2.
3.
4.
client  photo type    color
Вася     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>
  Вася
  <photo> 
     1 
    <type>паспорт</type>
    <color>чб</color>
  </photo>
  <photo>
     3 
    <type>общая</type>
    <color>цв</color>
  </photo>
</client>
<client>
  Коля
  <photo>
     2 
    <type>паспорт</type>
    <color>чб</color>
  </photo>
  <photo>
     4 
    <type>общая</type>
    <color>цв</color>
  </photo>
</client>
Таблица выглядит проще .Для людей проще таблица. Для компьютера возможно проще XML, особенно если так:
client 1
photo 2
type 3
<1>Вася<2>1<3>...

Системе принимающей решение (не только при передаче данных), фотографию лучше идентифицировать в XML, а не использовать специальные идентификаторы в нескольких таблицах. Например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<photo>
  <client .../>
  <type .../>
  <color .../>
  что-то из др. таблиц
</photo>
<photo>
...
Вся информация о фотографии будет под рукой.
...
Рейтинг: 0 / 0
зачем нужен XML
    #35116911
чал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
okdokyДля людей проще таблица. Для компьютера возможно проще XML, ...
Интересный подход, но мне кажется дело вовсе не в том что кому проще.

Важный вопрос, который здесь возникает, это что эти два предстваления не эквивалентны. В таблице порядок колонок не имеет значения, а в XML они неявно упорядочиваются (из-за вложения элементов). Значит XML хранит какую-то дополнительную инфу или, наоборот, таблица теряет какую-то инфу.

Более конкретно вопрос можно поставить так: на основе каких критериев мы выбираем порядок (вложенности) в XML исходя из исходного набора таблиц? По мне, так тут есть явная неоднозначность, что является бичом практически всех моделей основанных на вложенности или иерархии, что еще отмечалось в старинной модели вложенных отношений (nested relation model). Хотя, возможно, в данном подходе эта проблема как-то решается (если так, то хотелось бы услышать как именно).
...
Рейтинг: 0 / 0
зачем нужен XML
    #35118116
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чалБолее конкретно вопрос можно поставить так: на основе каких критериев мы выбираем порядок (вложенности) в XML исходя из исходного набора таблиц? По мне, так тут есть явная неоднозначность, что является бичом практически всех моделей основанных на вложенности или иерархии, что еще отмечалось в старинной модели вложенных отношений (nested relation model).Нужно смотреть на информацию (отношение) внутри таблицы, а не на таблицу. По-моему таблица
FIRST NAME; LAST NAME
несет ту же информацию, что и таблица
NAME

Если в обеих таблицах просто перечисляются возможные значения, то здесь на самом деле речь идет только о классе согласно упомянутой работе Класс-реляционный подход к представлению табличных и XML данных

В описываемом подходе класс, это - множество текущих (хранимых в БД или рассматриваемых в данный момент) значений сгруппированных одним именем. Типом класса является определение множества всех возможных значений данного класса. Иерархия имен задает иерархию классов. Допускается и даже является весьма полезным использование одного имени для класса и соответствующего ему типа, особенно на верхних уровнях иерархии. Только в случае совпадения имен между классом и типом, срабатывает ODMG-подход к определению класса. Что следует понимать под значением? Все что угодно. Важно чтобы оно хранилось внутри БД. Сочетание имени класса и его значения может использоваться, например, в качестве идентификатора объекта.
Можно ли говорить, что эти таблицы отображают отношение? Получается в отношении всегда должна присутствовать какая-то зависимость? Вот пример отношения :)
Код: plaintext
1.
2.
3.
<СОТРУДНИК ID='1'>
  <ИМЯ> Ваня </ИМЯ>
  <ФАМИЛИЯ> Рощев </ФАМИЛИЯ>
</СОТРУДНИК>
Здесь однозначная зависимость СОТРУДНИК -> ИМЯ, ФАМИЛИЯ
...
Рейтинг: 0 / 0
зачем нужен XML
    #35118408
чал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
okdokyПолучается в отношении всегда должна присутствовать какая-то зависимость? Вот пример отношения :)
Код: plaintext
1.
2.
3.
<СОТРУДНИК ID='1'>
  <ИМЯ> Ваня </ИМЯ>
  <ФАМИЛИЯ> Рощев </ФАМИЛИЯ>
</СОТРУДНИК>
Здесь однозначная зависимость СОТРУДНИК -> ИМЯ, ФАМИЛИЯ

Пусть есть таблица с тремя колонками A, B и C. Данных пока никаких нет. Никаких ограничений на данные тоже нет. Какая будет структура в XML-модели? Из соображений симметрии следует, что однозначно такую структуру выбрать нельзя. Правильно? Это легко решить, если предположить, что всегда есть нечто вроде идентификатора.

Но есть другая проблема. Может быть несколько зависимостей внутри одной таблицы. Тогда опять же из соображений симметрии мы не можем выбрать ни одну из них. При выборе любой одной, остальные остаются непредставленными в модели (по крайней мере теми же средствами, что и первая).
...
Рейтинг: 0 / 0
зачем нужен XML
    #35118511
RomanA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чалНо есть другая проблема. Может быть несколько зависимостей внутри одной таблицы. Тогда опять же из соображений симметрии мы не можем выбрать ни одну из них. При выборе любой одной, остальные остаются непредставленными в модели (по крайней мере теми же средствами, что и первая).Что ВАм мешает представить все зависимости? Я так понимаю, все можно задать в одном XML
<A><B></A>
<B><A/><B>
...
<C><A/><B/><C/>
...
Рейтинг: 0 / 0
зачем нужен XML
    #35118736
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эх, давно это было:
/topic/103823
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
зачем нужен XML
    #35121170
okdoky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чалПусть есть таблица с тремя колонками A, B и C. Данных пока никаких нет. Никаких ограничений на данные тоже нет. Какая будет структура в XML-модели? Из соображений симметрии следует, что однозначно такую структуру выбрать нельзя. Правильно? Это легко решить, если предположить, что всегда есть нечто вроде идентификатора.Если вы не знаете или не решили какая зависимость, да, можете значения этих трех колонок идентифицировать четвертой колонкой. В XML это будет
Код: plaintext
1.
2.
3.
4.
<X>
  <A>
  <B>
  <C>
</X>
В примере, который я приводил с таблицей FIRST NAME; LAST NAME при желании тоже можно найти зависимости. Чтобы представить эти зависимости не нужно менять таблицу. Например, описать схему в XML. То есть XML может очень неплохо использоваться для уточнения табличных данных, например для описания зависимостей
...
Рейтинг: 0 / 0
зачем нужен XML
    #35136593
x_mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
okdoky : А как быть с ограничением целостности? Вы предлагаете поддерживать целостность программно, а не структурно. Обратно к реляционному корыту? :)
...
Рейтинг: 0 / 0
зачем нужен XML
    #35146681
Albatross
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kaban_nikВроде изучил теорию XML. Возник вопрос - для чего его (XML) применять.
Единственное что приходит в голову хранить однотипные настройки например проги и чегонить есче. Или у меня извращенное понимание мира...
Создание простеньких Web страничек...

Лично мне очень понравилось использовать XML для такой вещи:

Представьте себе накладную в БД. Там есть шапка и строки. Т.е. шапка в одной таблице хранится, строки в другой.

Теперь подумайте, как Вы будете изменять накладную из пользовательского приложения - например, третью позицию отредактировал, десятую удалил и ещё поменял шапку.
Мы хотим использовать транзакцию, т.е. либо поменял накладную целиком, либо вообще не поменял (если произошёл сбой). Поэтому, если мы будем делать это из приложения, то выглядеть это должно примерно так:

con.BeginTran

cmd.Execute "UPDATE ШапкаНакладной ..."

cmd.Execute "UPDATE ТретьяПозиция .."
cmd.Execute "DELETE ДесятаяПозиция"

....
con.Commit


Недостатки очевидны - если у Вас приложение повиснет в процессе транзакции, то остальные пользователи умрут на блокировках. Да и вообще это медленно всё будет, по одной строке менять, возвращать результат на клиента и т.п.

Возьмём другой способ - транзакция внутри хранимой процедуры. Всё бы хорошо, но каким образом передать информацию о строках, которые нужно отредактировать, строках которые нужно удалить в одну процедуру? Одно из дурацких решений - использвоать временные таблицы, куда это всё записывать, а потом вызывать процедуру, указав ей инднексы строк временных таблиц (например, таблица для строк, которые нужно удалить и пр).

Но самое простое решение - использовать XML. В этом случае фактически клиентское приложение в процедуру передаёт только XML текст, который в хранимой процедуре парсится через OpenXML, которой уже известно, что в теге UPDATE находятся строки по изменению, DELETE - по удалению... И в рамках одной транзакции процедура быстро выполнит все изменения одним махом. Это очень и очень полезное качество.
...
Рейтинг: 0 / 0
зачем нужен XML
    #35147054
Qer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qer
Гость
Albatross
есть ещё библиотеки кэширования на каждом ЯП, которые сами всё делают (ClientDataSet)
...
Рейтинг: 0 / 0
зачем нужен XML
    #35147811
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlbatrossНо самое простое решение - использовать XML. В этом случае фактически клиентское приложение в процедуру передаёт только XML текст, который в хранимой процедуре парсится через OpenXML, которой уже известно, что в теге UPDATE находятся строки по изменению, DELETE - по удалению... И в рамках одной транзакции процедура быстро выполнит все изменения одним махом. Это очень и очень полезное качество.В локальной сети (да и вообще в любой сети с малым временем отклика) предлагаемое решение почти наверняка будет медленнее, чем приведенное чуть выше. Уже не говоря о куче других очевидных недостатков.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / зачем нужен XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]