Почему я должен использовать XmlType вместо реляционной базы данных? - PullRequest
4 голосов
/ 05 декабря 2011

Я выполняю задание, в котором я рассматриваю два решения для хранения текста, используемого на веб-странице. Сценарий: есть одна веб-страница для одной лекции и несколько лекций для одного предмета.

Первая альтернатива - обычная реляционная база данных, с ней все в порядке.

Другой альтернативой является таблица с двумя «обычными» атрибутами и одна с Oracle XmlType. В этом xml-файле будут сохранены все данные по одной теме. Таким образом, xml-файл будет содержать данные для нескольких лекций. Мне нужны плюсы и минусы для альтернативы № 2. И почему я должен рассмотреть возможность использования альтернативы № 2 вместо # 1 ??

Ответы [ 3 ]

0 голосов
/ 27 января 2012

Единственная причина для хранения данных в XML - это если вы получаете данные в XML и хотите обрабатывать их как один непрерывный контейнер «вещи». Попытка запрашивать XML иногда является сложной задачей, независимо от возможности сделать это со всеми модными функциями Oracle. Я сделал это, но штрафы за производительность могут быть грубыми, или вам нужно прыгать через обручи, чтобы получить правильные индексы.

Для краткости расскажу об этом Джоэлу: Назад к основам - Джоэл о программном обеспечении

0 голосов
/ 27 января 2012

Несколько причин, по которым я могу придумать (из головы):

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

  2. Если вы храните данные в формате XML, может быть проще преобразовать их в XHMTL для отображения.

  3. Если данные берут свое начало и нуждаются в редактировании в авторской системе, использующей формат XML, вы сэкономите изрядное количество данных, сохраняя и потребляя их в виде XML.

Учитывая, что каждая лекция представляет собой отдельную "страницу" в вашем приложении, однако, мне представляется более целесообразным разделить каждую лекцию на отдельную "корзину" XML, а не хранить их все в одном фрагменте XML.

0 голосов
/ 06 декабря 2011

В первом варианте вы должны будете использовать тип данных LOB для столбца, в котором хранятся веб-страницы.Если вы используете VARCHAR2, вы потеряете форматирование.

Во второй альтернативе для столбца XMLTYPE вы можете выбрать LOB/CLOB хранилище или разбить его на объектные реляционные таблицы и представления.XMLTYPE не сохраняется во внешних файлах.

Второй вариант даст вам возможность искать документы XML с использованием выражений XPath и индексировать теги XML.Так что это мощнее, чем первая альтернатива.

...