SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |
   
#226<<  #227  >>#228

СОДЕРЖАНИЕ

1.СОВЕТЫ
1.1.Поддержка XML в Microsoft SQL Server 2005 (продолжение)
2.ССЫЛКИ НА СТАТЬИ
2.1.Статьи на русском языке
2.2.Англоязычные статьи
3.ФОРУМ SQL.RU
3.1.Самые популярные темы недели
3.2.Вопросы остались без ответа
4.ПОЛЕЗНОСТИ
4.1.ADO.NET Сборник рецептов. Для профессионалов

СОВЕТЫ

Поддержка XML в Microsoft SQL Server 2005 (продолжение)

По материалам статьи Shankar Pal, Mark Fussell и Irwin Dolobowsky: XML Support in Microsoft SQL Server 2005
Перевод Виталия Степаненко

Мотивация для хранения XML

Данные в виде XML становятся все более распространенными. Они могут представлять данные пользователя с описывающими их схемами XML или без них. И данные XML, и схемы XML должны использоваться вместе. Схемы XML для реальных приложений часто сложны, и конвертация этих схем XML в таблицы и столбцы -сложная задача. Осуществление такой конвертации в то время, когда изменяются схемы XML или добавляются новые, становится проблематичным. Довольно часто данные XML хранятся в файловой системе или в текстовом столбце на сервере базы данных. Текстовые столбцы имеют такие преимущества управления данными, как репликация и резервное копирование/восстановление, но не поддерживают запросы, основанные на структуре данных XML. С встроенной поддержкой XML разработка приложений, использующих XML, становится быстрее.

[В начало]

Управление свойствами пользователем

Некоторые приложения, такие, как приложения с пользовательским интерфейсом, позволяют пользователям выбирать из фиксированного набора свойств. Другие позволяют пользователям определять собственные, необходимые им свойства. Такими пользовательскими свойствами можно управлять, если они хранятся в формате XML. Приложения могут поддерживать не только скалярные свойства:

  • могут поддерживаться свойства объектов с множеством значений, такие, как множество номера телефонов;

  • также могут поддерживаться сложные свойства, например, свойство автора документа может являться контактной информацией автора;

  • объектные свойства могут храниться в столбце типа XML и индексироваться для эффективной обработки запроса.

[В начало]

Обмен данными

XML позволяет осуществлять платформо-независимый обмен данными между приложениями. Такие данные могут быть смоделированы как сообщения с разметкой XML. Вместо постоянного создания и удаления сообщений XML, разумнее хранить сообщения в формате XML. Это хорошо сочетается с требованиями обмена данными. Приходящее сообщение XML содержит текущее состояние. Каждое сообщение обрабатывается, изменения записываются в содержимое XML, и данные XML передаются дальше. Сообщения могут быть разных типов или даже могут быть только частично структурированными, иметь разные схемы XML, так что их конвертация в таблицы не всегда является простой задачей.

Стандарты, основанные на XML, появляются для различных вертикальных доменов, такие, как финансовые и географические данные. Эти стандарты описывают структуру данных, зависящую от того, какие именно данные могут быть запрошены и обновлены. Довольно часто сами данные хранятся в двоичной форме, в то время как данные XML хранят метаданные об этих данных.

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

[В начало]

Управление документами

Предположим, что справочная служба хранит данные о пациентах и записи разговоров с ними в виде документа XML. Когда звонит пациент, то справочной службе нужно получить данные о предыдущем разговоре, чтобы знать, о чем может идти речь в текущем звонке. Это возможно с помощью запроса XML, что дает преимущества приложению. Т.е. облегчается получение информации о предыдущих разговорах и записи текущего разговора.

Документы, такие, как e-mail, только частично структурированы по своей сути. Документы с разметкой XML легче создавать, например, с помощью Office 2003. Эти документы XML могут храниться в столбцах XML, индексироваться, запрашиваться и обновляться. Таким образом, разработчики могут делать больше со встроенной поддержкой XML.

[В начало]

Обработка XML на стороне сервера в SQL Server 2005

В SQL Server 2005 Вы можете хранить в одной базе данных и реляционные данные, и данные XML.

[В начало]

Тип данных XML

Вы можете создать таблицу со столбцом XML, используя обычную команду CREATE TABLE. Столбец XML может быть проиндексирован особым образом.

[В начало]

Нетипизированный XML

Тип данных XML в SQL Server 2005 соответствует стандарту ISO SQL-2003 типа данных XML. Поэтому он может хранить не только хорошо структурированные документы XML 1.0, но также и так называемые фрагменты контента XML с текстовыми узлами и произвольным количеством элементов высокого уровня. При этом выполняются проверки на структурированность данных, что не требует привязки данных XML к схемам XML, и плохо структурированные данные не принимаются.

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

Пример: столбец с нетипизированным XML в таблице

Следующая команда создает таблицу "docs" с первичным ключом типа integer "pk" и столбцом с нетипизированным XML "xCol":


CREATE TABLE docs (pk INT PRIMARY KEY, xCol XML not null)

Таблица может быть создана с более чем одним XML или реляционным столбцом с наличием или без наличия первичного ключа.

[В начало]

Типизированный XML

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

Типизированные столбцы, параметры и переменные XML могут хранить документы или контент XML, что указывается при помощи опции (DOCUMENT или CONTENT, соответственно, CONTENT по умолчанию) во время объявления. Более того, вам нужно обеспечить коллекцию схем XML. Указывайте DOCUMENT, если каждый экземпляр XML имеет один элемент верхнего уровня, иначе указывайте CONTENT. Компилятор запроса, видя установленный флажок DOCUMENT, подразумевает, что у экземпляра XML есть только один элемент верхнего уровня.

Пример: типизированный столбец XML в таблице

Столбцы, переменные и параметры XML могут быть сопоставлены коллекции схем XML (см. главу "Обработка схем XML" далее в этой статье для более подробного объяснения и большего количества примеров). Предположим, что myCollection является такой коллекцией. Команда, показанная ниже, создает таблицу XmlCatalog со столбцом типизированного XML Document, используя myCollection. Для столбца типизированного XML также указано, что он может хранить и фрагменты XML, а не только документы XML.


CREATE TABLE XmlCatalog ( 
  ID INT PRIMARY KEY, 
  Document XML(CONTENT myCollection))

[В начало]

Ограничения столбцов типа XML

Кроме типизации столбца XML, Вы также можете использовать реляционные (для столбца или строки) ограничения на столбцах типизированного и нетипизированного XML. Вообще большинство ограничений SQL применимы к столбцам XML, исключениями являются ограничения уникального, первичного и внешнего ключей, т.к. экземпляры данных XML нельзя сравнивать. Таким образом, Вы можете указать, что столбец XML может или не может содержать значение NULL, определить у него значение по умолчанию и ограничение CHECK. Например, нетипизированный столбец XML может иметь ограничение CHECK для проверки, что хранимые экземпляры XML соответствуют схеме XML.

Используйте ограничения, исходя из следующих условий:

  • Ваши бизнес-правила не могут быть представлены в схемах XML. Например, адрес доставки заказа из цветочного магазина должен находиться в пределах 50 миль от него, что может быть указано в виде ограничения столбца XML. Ограничение может включать методы для работы с типом XML.

  • Ваши ограничения включают другие XML или не XML столбцы в таблице. Например, ограничением является требование, чтобы ID покупателя (/Customer/@CustId) в экземпляре XML соответствовал значению столбца CustomerID типа integer.

Пример: ограничение столбца XML

Чтобы убедиться, что фамилия автора книги отличается от его имени, можно применить следующее ограничение CHECK:


CREATE TABLE docs (pk INT PRIMARY KEY, 
  xCol XML not null
  CONSTRAINT CK_name CHECK 
    (xCol.exist('/book/author[first-name = last-name]') = 0))

[В начало]

Кодировка текста

SQL Server 2005 хранит данные XML в виде Unicode (UTF-16). Данные XML, полученные с сервера, приходят в кодировке UTF-16. Если Вы хотите другую кодировку, Вам нужно необходимую конвертацию после получения данных. Например, Вы можете преобразовать Ваши данные XML в тип varchar на сервере, в этом случае движок базы данных выдаст данные XML с кодировкой, определенной типом varchar.

[В начало]

Хранение данных XML

Вы можете передать значение XML для столбца, параметра или переменной XML несколькими способами.

  • Как символьный или двоичный тип SQL, который неявно конвертируется в тип XML.

  • Как содержимое файла.

  • Как результат механизма публикации XML - использование FOR XML с опцией TYPE, которая генерирует экземпляр данных XML.

Переданное значение проверяется на структурированность. Если данные оказываются неструктурированными, то выдается соответствующее сообщение об ошибке.

Для типизированного XML переданное значение проверяется на соответствие схемам XML, зарегистрированным в коллекции схем XML, сопоставленной столбцу XML. Экземпляр XML не вставляется в столбец, если он не проходит такую проверку. Более того, флажок DOCUMENT в типизированном XML ограничивает допустимые значения только документами XML, тогда как флажок CONTENT позволяет передавать и документ XML, и контент.

Пример: вставка данных в нетипизированный столбец XML

Следующая команда вставляет новую строку в таблицу docs со значением 1 для столбца pk и экземпляром <book> для столбца XML. Данные <book>, передаваемые в виде строки, неявно конвертируются в тип данных XML и проверяются на структурированность во время вставки.


INSERT INTO docs VALUES (1, 
  '<book genre="security" publicationdate="2002" ISBN="0-7356-1588-2">
     <title>Writing Secure Code</title>
     <author>
       <first-name>Michael</first-name>
       <last-name>Howard</last-name>
     </author>
     <author>
       <first-name>David</first-name>
       <last-name>LeBlanc</last-name>
     </author>
     <price>39.99</price>
  </book>')

Пример: вставка данных в нетипизированный столбец XML из файла

Команда INSERT, показанная ниже, получает содержимое файла C:\temp\xmlfile.xml в виде BLOB, используя OPENROWSET. Новая строка вставляется в таблицу docs со значением 10 для первичного ключа и BLOB для столбца XML xCol. Проверка структурированности данных производится, когда содержимое файла назначается столбцу XML.


INSERT INTO docs 
  SELECT 10, xCol
  FROM (SELECT * FROM OPENROWSET 
    (BULK 'C:\temp\xmlfile.xml',
      SINGLE_BLOB) AS xCol) AS R(xCol)

Пример: вставка данных в типизированный столбец XML

Типизированный столбец XML требует, чтобы данные экземпляра XML соответствовали пространству имен схем XML, используемых для типизации этого столбца (пространство имен может быть пустым). В показанном ниже примере это делается с помощью объявления пространства имен xmlns=http://myDVD.


INSERT XmlCatalog VALUES(2, 
  '<?xml version="1.0"?>
  <dvdstore xmlns="http://myDVD">
    <dvd genre="Comedy" releasedate="2003">
      <title>My Big Fat Greek Wedding</title>
      <price>19.99</price>
    </dvd>
  </dvdstore>')

Пример: сохранение данных XML, сгенерированных с помощью FOR XML с опцией TYPE

FOR XML была расширена опцией TYPE, чтобы генерировать результат в виде экземпляра типа данных XML. Результирующий XML может быть занесен в столбец, параметр или переменную XML. В следующей команде экземпляр XML, сгенерированный с помощью FOR XML TYPE, присваивается переменной @xVar типа XML. Значение переменной можно получить с помощью методов типа XML.


DECLARE @xVar XML
SET @xVar = (SELECT * FROM docs FOR XML AUTO,TYPE)

[В начало]

Представление данных при хранении

Экземпляры XML хранятся во внутреннем, двоичном представлении, которое оптимизировано для эффективного парсинга. Тэги конвертируются в значения типа integer, и конвертированные значения хранятся во внутреннем представлении. Это дает небольшую компрессию данных.

Для нетипизированного XML значения узлов хранятся в строках Unicode (UTF-16), поэтому требуется конверсия типа во время работы. Например, чтобы оценить предикат /book/price > 9.99, значение цены книги конвертируется в тип decimal. С другой стороны, для типизированного XML значения имеют тип, определенный схемами XML. Это делает парсинг данных более эффективным и позволяет избежать конвертации типов во время работы.

Двоичная форма хранения ограничена 2 гигабайтами на экземпляр XML, что достаточно для большинства данных XML. Также глубина иерархии XML ограничена 128 уровнями.

Содержимое InfoSet данных XML защищено. Оно может не быть точной копией текста XML, т.к. следующая информация не сохраняется: не имеющие значения пустые места, порядок свойств, префиксы пространства имен, и объявление XML.

[В начало]

Взгляд на моделирование данных

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

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

Глубина детализации данных XML, хранящихся в столбцах XML, критична для блокировок и обновления. SQL Server использует один и то же механизм блокировки для XML и не XML данных. Если глубина детализации велика, то блокировка больших экземпляров XML для обновления вызывает снижение производительности при одновременной работе множества пользователей. С другой стороны, из-за глубокой декомпозиции данных теряется инкапсуляция объектов и увеличиваются затраты на сборку.

[В начало]

Выполнение запросов и модификация данных XML

Выполнение запросов к экземплярам XML, хранимым в столбце XML, требует парсинга двоичных данных XML в столбце. Парсинг двоичных данных XML производится гораздо быстрее, чем парсинг текстовой формы данных XML. Индексирование XML позволяет избежать повторного парсинга. Более подробно индексирование рассматривается в главе "Индексирование данных XML".

[В начало]

Методы типа XML

Вы можете получать целые значения XML, если Вам это нужно, или можете получать части экземпляров XML. Это возможно с помощью четырех методов типа XML: query(), value(), exist() и nodes(), которые принимают в в виде аргумента выражение XQuery. Пятый метод, modify(), позволяет изменять данные XML и принимает в виде входного параметра команду изменения данных XML.

Метод query() полезен для получения частей экземпляра XML. Выражение XQuery сравнивается со списком узлов XML. Поддерево, получаемое на каждом из этих узлов, возвращается в порядке документа. Тип результата - нетипизированный XML.

Метод value() получает скалярное значение из экземпляра XML. Он возвращает значение узла, который соответствует выражению XQuery. Это значение конвертируется в тип T-SQL, определяемый вторым параметром метода value().

Метод exist() полезен для проверок существования в экземплярах XML. Он возвращает 1, если выражение XQuery соответствует непустому списку узлов, иначе он возвращает 0.

Метод nodes() выдает экземпляры специального типа XML, каждый из которых имеет собственный контекст, относящийся к узлу, который соотвутствует выражению XQuery. Этот специальный тип XML поддерживает методы query(), value(), nodes() и exist(), и может быть использован в агрегатах count(*) и проверках на значение NULL. Все другие агрегаты и проверки вернут ошибку.

Метод modify() позволяет изменять части экземпляра XML - добавлять или удалять поддеревья или изменять скалярные значения. Например, изменять цену на книгу с 9.99 на 39.99.

Пример: использование метода query()

Рассмотрим следующий запрос в столбце XML xCol таблицы docs, который получает все элементы <section> под элементом <doc> с id 123. Запрос также возвращает значение из столбца первичного ключа с типом integer. Метод query() в списке SELECT применяется для каждой строки в таблице, выдавая последовательность элементов <section>, которые возвращаются вместе со своими поддеревьями в порядке документов. Экземпляр XML без элемента <doc> с id 123 или без элемента <section> под ним результата не возвращает, т.е. метод query() возвращает NULL.


SELECT pk, xCol.query('/doc[@id = 123]//section')   
FROM docs

Возвращаемые значения NULL могут быть отфильтрованы во внешней команде SELECT. Также можно использовать метод exist(), как показано в следующем примере.

Пример: использование метода exist()

Рассмотрим следующий запрос, который использует методы query() и exist() в столбце XML xCol таблицы docs. Метод exist() использует выражение пути /doc[@id = 123], проверяя существование элемента верхнего уровня <doc> со свойством id, равным 123. Для каждой такой строки применяется метод query() из команды SELECT; в этом примере метод query() возращает последовательность всех элементов <section> под элементом <doc>. Любая строка, в которой метод exist() возвращает 0, опускается.


SELECT xCol.query('/doc[@id = 123]//section')   
FROM docs
WHERE xCol.exist ('/doc[@id = 123]') = 1

Пример: использование метода value()

Следующий запрос получает заголовок третьей секции документа в виде строки Unicode, используя метод value(). Тип SQL nvarchar(max) результата определяется как второй параметр метода value(). Функция XQuery data() выделяет скалярное значение из узла <heading>.


SELECT xCol.value(
  'data((/doc//section[@num = 3]/heading)[1])', 
  'nvarchar(max)') 
FROM docs

[В начало]

Язык XQuery

Существует множество источников XML из документов Office, находящихся в файловой системе, web сервисов и файлов конфигурации. Фактически, данные все чаще создаются либо в формате XML, либо в виде виртуального документа XML. Чтобы справиться с этим растущим объемом данных, был придуман мощный язык запросов XQuery. XQuery описан в спецификации XQuery Language на сайте http://www.w3.org/TR/xquery как язык запросов, который эффективно использует структуру XML и может выражать запросы по всем типам данных, которые физически хранятся в виде XML или просматриваются как XML через средний уровень. Спецификация описывает язык запросов XQuery, который разработан для широкого применения для многих типов источников данных XML.

XQuery разработан для удовлетворения требованиям XML Query 1.0 рабочей группы W3C XML Query и примерам XML Query Use Cases. Он разработан как язык, в котором запросы понятны и кратки. Он также достаточно гибок для выполнения запросов широкого спектра источников данных XML, включая базы данных и документы. XQuery можно обобщить следующим утверждением: язык XQuery относится к XML так же, как язык SQL к реляционным базам данных.

Подмножество XQuery, встроенное в T-SQL - это язык для выполнения запросов на типе XML. В настоящее время язык еще разрабатывается Worldwide Web Consortium (W3C) с участием всех главных поставщиков баз данных, включая Microsoft. Наша версия соответствует релизу от ноября 2003 года.

XQuery включает XPath 2.0 как язык навигации. Реализация XQuery в SQL Server 2005 имеет конструкции для движения по узлам (for), проверки узлов (where), возврата значений (return) и сортировки (order by). Также есть возможность изменения данных во время выполнения запросов.

SQL Server 2005 также имеет языковые конструкции для изменения данных (DML) типа XML (для дополнительной информации см. главу "Изменение данных" ниже). Следующий пример показывает, как использовать XQuery для данных типа XML.

Пример: использование богатых языковых конструкций в XQuery

Следующий запрос показывает несколько языковых конструкций XQuery, используемых вместе. Он возвращает заголовок, обрамленный в новый тэг <topic> с секциями номер 3 и далее из документа с id 123.


SELECT pk, xCol.query('
  for $s in /doc[@id = 123]//section
  where $s/@num >= 3
  return <topic>{data($s/heading)}</topic>')   
FROM docs

Оператор "for" указывает на то, что нужно двигаться по всем элементам <section> под элементами <doc> с id 123 и привязывать каждый такой элемент <section> к переменной $s. Оператор "where" используется для того, чтобы номер секции (атрибут @num элемента <section>) равен или больше 3. Запрос возвращает значение секции <heading> по порядку документа, обрамленное элементом конструкции <topic>.

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

[В начало]

ССЫЛКИ НА СТАТЬИ

Статьи на русском языке

Разработка бездефектного программного обеспечения
Steve Pavlina
Занимая свою нишу в индустрии разработки программного обеспечения, я трачу от шести месяцев до нескольких лет, чтобы выпустить компьютерную игру. Затем я могу продавать ее продолжения и пакеты расширения, но я не имею возможности выпускать для нее исправления. Когда я выпускаю новую игру, я должен быть уверен в ее качестве, т.к. мои клиенты даже и не подумают о том, чтобы искать ее апгрейды. Из-за короткого времени жизни большинства компьютерных игр и их зависимости от недолговечных технологий, мои возможности по улучшению выпущенных продуктов, на основе обратной связи от клиентов, минимальны. Чтобы справляться с этими проблемами, я постепенно перешел на использование практик системы гарантии качества (Quality Assurance). Это позволило мне существенно увеличить качество...
Перспективы технологии межмашинного взаимодействия
Джордж Лоутон
В мире насчитывается значительно больше машин (систем с механическими, электрическими или электронными свойствами), чем людей. И все больше и больше машин поддерживают сетевые соединения. По оценкам консалтинговой и аналитической фирмы Harbor Research, специализирующейся на технологиях, к 2010 году во всем мире к Internet будут подключены по крайней мере 1,5 млрд устройств - набирающая популярность межмашинная технология станет развиваться во многом благодаря и таким разработкам...
Наиболее интересные новшества в стандарте SQL:2003
Сергей Кузнецов
В конце 2003 г. был принят и опубликован новый вариант международного стандарта SQL:2003 [1]. Многие специалисты считали, что в варианте стандарта, следующем за SQL:1999, будут всего лишь исправлены неточности SQL:1999. Но на самом деле, в SQL:2003 специфицирован ряд новых и важных свойств....
Практический способ реорганизации бизнес-процессов
Interface Ltd.
CASE: Мы часто слышим, что реорганизация бизнес-процессов (РБП) позволяет предприятиям отказаться от старых методов ведения бизнеса и превратиться в современные, модернизированные компании. Ведущие специалисты по методам управления из Grant Thornton и других консультативных фирм продолжают обсуждать и анализировать примеры успешных проектов РБП на конференциях и семинарах, на телевидении и в деловых журналах...

[В начало]

Англоязычные статьи

SQL: Cumulative sum across the row, not down the column
Rudy Limeback
How do I find a cumulative sum for records in Access?
Finding Gold in Yukon
Don Jones
Not your father's SQL Server, administrators will find comfort in Yukon, while developers are left out in the cold.
A basic DataListView implementation
vladstanciu
It implements an object that is inteneded to be used for data viewing, the ideea was to be derived from a list view. This is my first article so please do not be hard on me :). The purpose was to make the base of an data viewing control like the one found in microsoft's applications, or the one pruposed by the "magic controls". So the main goal was the looks defined by looks and a basic functionality.
Full Text Search on SQL 2000 Part 1
Don Schlichting
Full Text Searching is a free, optional component of MS SQL 2000. When installed, it offers a vast array of additional string querying abilities. Full Text Searching allows for string comparisons similar to internet search engines, returning both results and a matching score or weight. With regular TSQL, string matching is usually limited to an exact match, or a wildcard match with the keyword "LIKE." Full Text Searching exceeds this by searching for phrases, groups of words, words near one another, or different tenses of words, such as run, running, and ran. In addition, if Microsoft Office Word or Excel documents are saved in the database, their contents can be searched like a typical varchar field. Full Text Searching is accomplished by installing a new service (Microsoft Search), and using key words in TSQL designed specifically for text searching. This article will demonstrate installing, configuring and using the Full Text Search engine.
Worst Practices - Part 1 of a Very Long Series!
Andy Warren
In our business we spend a lot of time talking about 'Best Practices' - ways of doing things that over time have proved to be the most effective (or accurate, or whatever..). There are a couple problems with Best Practices. One is that there is no 'book' of them, they are scattered across a hundred books and web sites and you often need one sentence out of all that information. Another is that whether something is a Best Practice is often less than clear - it depends on your attitude towards problem solving, your experience, your situation. Finally, sometimes Best Practices (let's just use BP from here on) can be a trap, keeping you from looking at solutions that clearly defy BP but yet might be an ideal solution to your problem.
An Enterprise-Class Plan for Securing Microsoft SQL Server Databases
documents.bmc.com
If you are running Microsoft SQL Server databases to support critical enterprise applications, you are part of a growing trend. The cost/performance benefits of Microsoft SQL Server on the Microsoft Windows NT and Windows 2000 platforms have fueled the growth of SQL Server as a platform for enterprise-class applications
Using the new Data Mining Drillthrough feature
DMTeam
This tip describes how you can leverage the new data mining drillthough feature of SQL Server 2005 How do you know you can trust a mining model? Would it help if you could see the facts behind any node? The Drillthrough Feature of Yukon Data Mining allows you to do just this. If you ever built a model and wanted to learn exactly which cases fell into a tree node, of exactly who were the members of a particular cluster you can now do so with a few simple clicks.
Data Mining. Selecting the "best" customers
DMTeam
SQL Server 2005. This tip demonstrates syntax for PREDICTION JOIN statements to return only the most likely respondants
How to view DMX templates
DMTeam
DMX is the powerful SQL-based query language for accessing data mining objects in SQL Server. This tip shows you how to access templates provided in SQL Server 2005 tools to kick-start your DMX development
What to install to use Data Mining
DMTeam
This tip describes which SQL Server 2005 components need to be installed in order to use the data mining features.
Why would I make a column “Predict Only”, and what do mining column usages mean?
DMTeam
This tips discusses how to use the various usage options for mining columns when creating mining models
Viewing and Manipulating Clustering Content
DMTeam
This tip describes how to get more information about your clusters using the content schema rowset
Multi-select in the Data Mining Wizard and Editor in BI Development Studio
DMTeam
This tip highlights scenarios where the multi-select feature in the DM Wizard and Editor in SQL Server 2005 BI Development Studio can come in handy
Calling VBA and Excel Functions from DMX
DMTeam
Here is how you can invoke VBA and Excel Functions from DMX, the SQL-like language supported by SQL Server Data Mining
How do I manage / connect to SQL Server Express?
FAQ
There will be a GUI/management tool for Express Edition—called Express Manager—but it was not ready for distribution when Microsoft decided to release the first preview (and later Beta 2) of Express. According to Bill Ramos [MSFT], Express Manager should become available to beta testers sometime in November
Where else can I learn about SQL Server?
ASPFAQ
There are several resources devoted to SQL Server.
ISA Load Balancing
Chad Todd
Rainfinity's RainWall will help you ramp up the reliability and efficiency of your Microsoft ISA Server Are there any ISA Servers in your shop? Concerned about your ISA Server being a single point of failure? Wish that you could easily scale your ISA Server deployment to handle more requests? If so, then a load balancing solution such as Rainfinity's RainWall for Microsoft ISA Server may be just what the IT doctor ordered.
System Sizing
Inc. InformIT
I've just been on a cruise – my first ever – and I was amazed at the incredible engineering that goes into running a ship that size. The ship was the Disney Wonder, and it certainly was a wonder. Every detail was flawless, from the rooms to the entertainment to the food. Being in the technical industry, I could appreciate all the magic that goes on behind the scenes; it must be enormous
Scheduled MS Cluster Failovers using Automation Server Objects
Anthony Bressi
If you are working in an Active-Passive clustered SQL Server environment there are often times when you need to initiate a failover so that you can perform routine maintenance tasks on the Passive server - to apply service packs, install software, etc. In this article I outline a quick and easy way to perform scheduled failovers using the MS Cluster Service Automation Classes
Get a Lean, Mean Dev Machine with the Express Editions of Visual Basic and SQL Server 2005
Brian A. Randell
This article is based upon prerelease versions of Visual Basic 2005 Express Edition and SQL Server 2005 Express Edition. All information contained herein is subject to change
Analyzing SQL Server 2000 Data Caching
Tom Pullen
One of SQL Server 2000’s main selling points is its ease-of-use and simplicity. You can install it out of the box and use it pretty much without making many configuration changes. In terms of the product’s use of memory, there are some settings you can change, for example, how much memory to use, whether to dynamically allocate it, and so on. Otherwise, there isn’t a lot you can do in terms of memory tuning. But you may well find yourself in a situation where you want to know what tables and indexes SQL Server is caching, how much of them it is caching, and which database is consuming most of your server’s memory. This article will explain how to capture memory usage and analyze it to determine what data your server is caching. This article does not cover execution plan caching (procedure cache), just the data cache.
SQL server extended stored procedure to send UDP messages
Rod VanAmburgh
I wanted to be able to announce SQL server table updates so I modified the Microsoft sample extended stored procedure xp_hello. The source for this article will produce a DLL that can be placed in the \Program Files\Microsoft SQL Server\MSSQL\Binn directory and called from a regular stored procedure to send a UDP message. I choose UDP so there would be minimal execution time added (no TCP connection issues)
Making a Connection from Oracle to SQL Server
James Koopmann
Here is how to make a connection from Oracle to SQL Server using Oracles heterogeneous Services ODBC agent
Four of a Kind - Backup Software Shootout
Wesley Brown
All DBA’s are faced with the daunting task of backing up databases under their charge, and sometimes a more daunting task of restoring them. In this article we will look at four different backup solutions that can make that job easier. The thing that ties these four products together is compression. All of them offer different feature sets to set them apart and we will touch on those, but the focus here is real time compression and how it can help you. The theory behind compressing the data stream is simple the results can be dramatic. Almost every return on investment figure uses $200 to $300 dollars per gigabyte saved. This usually includes things that are easy to calculate like physical disk space, tape, and additional hardware required to store your backup files. It also includes other aspects of cost like the hours it takes to administer the disk, and tape systems, also time to backup and restore. The four solutions we chose for this article were SQL LiteSpeed by Imceda, SQL Safe from Idera, UltraBac from UltraBac Software, and MiniSQLBackup from yohz Software. Lets take a quick rundown of the other features each provides besides compression
What's SQLServerCental.com All About
Steve Jones
Recently there was a thread and a link (Oracle Professionals upset with Database User Group) questioning the value and ethics of SSWUG. I'll let you read the article and draw your own conclusions, but the three of us here at SQLServerCentral.com, Andy, Brian, and myself, wanted to let everyone know who we are and what we are all about
MDX Essentials: String / Numeric Functions: Introducing the IIF() Function
William Pearson
The IIF() function, according to the Analysis Services Books Online, "returns one of two numeric or string values determined by a logical test." We will examine the function's manner of accomplishing its evaluations, and discuss factors that we should consider based in the selection of the options that IIF() offers, in the sections that follow
SQL Server 2005 Part 2 - High Availability and Scalability Enhancements - Database Mirroring
Marcin Policht
In the first article of this series, we presented a high-level overview of SQL Server 2005 functionality, based on its most recent Beta 2 implementation. Our goal, going forward, will be to discuss each of new or improved features in more details, focusing on engineering and administrative issues. We will start by covering the high availability and scalability enhancements, such as database mirroring (introduced in this version) and failover clustering, which is improved in SQL Server 2005, compared to earlier editions. Note, that while SQL Server 2005 continues to offer other, currently available technologies in this category, such as replication and log shipping (providing warm standby capabilities), as well as standard backup/restore (which can be used for cold standby solutions), in more or less unchanged form, their effectiveness is positively impacted by the introduction of database snapshots, new isolation levels, or online restore and index operations (which we will also be presenting later).
MS Rolls Out Second Interim Beta of SQL Server 2005
Lisa Vaas
Microsoft Corp. on Friday released its second Community Technology Preview of SQL Server 2005 and rolled out a new, free tool to manage SQL Server 2000 and MSDE (Microsoft Desktop Engine) 2000
Translate ZIP Codes to State Codes
Andrew Novick
It's time to mail your holiday cards. Whether it's Christmas, New Years, Chanukah, or something else, there are going to be billions of cards sent in the next few weeks. One of the tasks that my wife and I face each year is getting all the addresses correct, which usually means finding ZIP codes for the partial addresses that we have for new friends
Using Parent Package Variables in Package Configurations. Version 2005
Allan Mitchell
Package configurations are now the prescribed way of being able to set values within your package from an outside source. One of the options for the source is Parent Package Variable. The name is perhaps a little misleading so this article is meant to guide you through this slight confusion and into using them. It also helps to explain a key concept in SQL Server Integration Services
Moving and Sharing Mining Models
DMTeam
Let’s say you spend a lot of time and effort creating the perfect model on your test server. In doing so you’ve created scads of test models trying out different hypotheses with different algorithms and parameters settings, modeling your data this way and that until you’ve arrived at the perfect model. Now comes the time to move that perfect model from your test server to the deployment server where it will service web pages, Reporting Services reports, Integration Services packages, and the world
Printing Report Services Reports Landscape from within .Net
beeeen
A workaround for printing Report Services reports in Landscape orientation
Microsoft Issues 2nd SQL Server 2005 Public Beta
Paul Thurrott
On Friday, Microsoft issued its second Community Technology Preview (CTP) release of SQL Server 2005, while providing public testers with a new beta release as well, SQL Server 2005 Express Manager, a new, free database management tool. The SQL Server 2005 CTP is available to all MSDN and Microsoft Betaplace subscribers, the company says
The CLR in IBM DB2 and SQL Server: Night and Day
Brian Moran
Last August, in "Will Stinger Steal Yukon's Glory?" ( http://www.windowsitpro.com/Article/ArticleID/43713/43713.html ), I commented about how interesting it was that IBM DB2's latest release beat Microsoft to market with native Common Language Runtime (CLR) support within the database engine. Since then, I've further explored how the DB2-CLR implementation compares to the CLR support that SQL Server 2005 will have next year. I spoke with several people from Microsoft, including SQL Server Director of Product Management Tom Rizzo, SQL Server Group Program Manager for CLR Mahesh Prakriya, and SQL Server Group Program Manager for the relational database engine Balaji Rathakrishnan. They gave me some helpful information about the most important differences between SQL Server 2005 CLR implementations and IBM DB2 8.2's implementations
Boost Your Performance - Bad Index Detection
Andre Vigneau
Good performance can depend on many factors. You can achieve so much by acting on the physical aspects of a database server. Monitoring to find bottlenecks is certainly not an aspect to neglect. But once you have done all you could by adding memory, verified that CPUs were sufficient, optimized I/Os by managing database file components and object location and put you DB server on a GB backbone. What is left for you to do? You have to look at the database design and the possibility of scaling out your database architecture
Secrets to Successful SQL Server Programming
Buck Woody
Here's how to create the programs your users need. You build custom cars for a living. One day, a guy walks into your shop and says, "Here's $30,000. Make me a cool, fast, light, and dependable custom car. I need it in three months. Can you do it?"
SQL Server 2005: What's New?
David Fells
Microsoft SQL Server has shown a lot of growth in its last two releases. With SQL Server 2005, Microsoft continues to aim the tool at enterprise application developers. David Fells examines its most useful new features--and complains about a number of things that Microsoft perhaps shouldn't have done with the program
Validate Credit Card Numbers with the Luhn Function
Andrew Novick
Credit card numbers are among the most common numbers in commercial use today. Most credit card numbers and many other numbers used in financial services use the Luhn (a.k.a Mod 10) formula for check digits. It's been formalized as part of the ANSI X4.13 specification
Using TOP and ORDER BY in DMX
DMTeam
This tip demonstrates syntax for PREDICTION JOIN statements to return only the most likely respondants. Data Mining is often used to determine how likely a customer is to respond to a promotion, to buy a particular product, or even to determine how likely a customer is to drop their service, or for a transaction to be fraudulent. All of these types of questions are typical classification type questions that can be answered using algorithms such as Microsoft_Decision_Trees, Microsoft_Naive_Bayes, and Microsoft_Neural_Network
SQL Server Undocumented Stored Procedures sp_MSforeachtable and sp_MSforeachdb
Gregory A. Larsen
Have you ever needed to write some code that would process through all the tables in a database? What about running some code against each database on a SQL Server instance? If so, did you know there are a couple of different ways to accomplish this? Either you can create a cursor that contains all the tables in a database, or all the databases on a SQL Server instance, or you can use a couple of undocumented SQL Server Stored Procedures. This article will show you how the undocumented Stored Procedures work, and will provide you with some examples on how to use them. This author thinks the undocumented Stored Procedures are much easier to use than using a cursor. Read on and decide for yourself which method you think is easier
Wrapper Code Generator for MS SQL Server Databases
Nirosh
The application generates database wrapper classes for MS SQL Server databases automatically. I got lots of good reviews and comments as I discussed about this with my colleagues. Now that the application is built, let's see what you have to say about this
Easy Package Configuration. Version 2005
Jamie Thomson
One of the age old problems in DTS is moving packages between your development, test and production environments. Typically a series of manual edits needs to be done to all the packages to make sure that all the connection objects are pointing to the correct physical servers. This is time consuming and gives rise to the possibility of human error, particularly if the solution incorporates many DTS packages. Many companies have provided their own custom solutions for managing this problem but these are still workarounds for a problem that is inherently DTS's
Boost Your Performance - Bad Index Detection
Andre Vigneau
Good performance can depend on many factors. You can achieve so much by acting on the physical aspects of a database server. Monitoring to find bottlenecks is certainly not an aspect to neglect. But once you have done all you could by adding memory, verified that CPUs were sufficient, optimized I/Os by managing database file components and object location and put you DB server on a GB backbone. What is left for you to do? You have to look at the database design and the possibility of scaling out your database architecture

[В начало]

ФОРУМ SQL.RU

Самые популярные темы недели

Tool Вы знаете что твориться на ваших 10-30+ серверах ?
SQL Server Health and History Tool (SQLH2) Reports
Скрыть структуру БД
Как узнать права ?
Ошибка в вызываемой процедуре/триггере
Книга по Reporting Service
Перешел с Oracle на MSSQL, для MS есть аналог SQLNavigatora?
Высокоскоростной доступ к данным?
Еще раз о конфигурации RAID. Как поделить 6 дисков?
Люди ХЕЛП !!! магия какая то.......
чтение с индексом медленнее!!!???
Создание таблицы натуральных чисел
Выполнение строкового математического выражения в функции
Повесить на сессию.
Подскажите путь решения по distinct
есть тут mssql2000 гуру? горю!
ПОМОГИТЕ!!! ГОРИМ!!! Чистятся данные базы!!!
Разработать запрос. Подскажите направление.
Переносить ли код триггера в ХП?
Индексированные View и синтаксический рабор SELECT-запросов

[В начало]

Вопросы остались без ответа

Reporting Service: Ориентация отчета при экспорте
Экспорт в Эксель из Reporting Services
Эмуляция неэффективного заполнения индексов.
Как определить какая установлена версия SQL от USA или Европы?
экспорт в XML виснет периодически...
Вызов user-defined function
Сообщения SQL Server в EventLog системы
MS SQL и Internet Information Server 5.0 (права доступа к базе)
Скорость построения FULL-TEXT Каталога
Полнотекстовый поиск: поиск фразы содержащей кавычки
Как узнать через QA под каким аккаунтом стартует SQL и QA?
Полнотекстовый поиск: A clause of the query contained only ignored words

[В начало]

ПОЛЕЗНОСТИ

ADO.NET Сборник рецептов. Для профессионалов

Гамильтон Б.

Издание: 1-е, 2004 год, ISBN: 5-469-00239-X, Формат: 17x24 см, Объем: 576 стр., Переплет: твердая обложка, Срок выхода: книга в типографии до 15.12.04, Цена: 612 руб, цена предварительная до выхода книги из типографии, возможны изменения

В этом издании собраны рецепты и методы, которые облегчают использование ADO.NET и делают его более продуктивным. Для работы с этой книгой вовсе не обязательно быть опытным .NET-разработчиком; она адресована пользователям всех уровней. Здесь рассмотрены решения проблем, с которыми разработчики сталкиваются каждый день. Все примеры кода функционально закончены, насыщены комментариями и подробно разъяснены, чтобы можно было максимально быстро, легко и эффективно применить их для выполнения собственных задач

[В начало]

#226<<  #227  >>#228
Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013