
- •Лекция №17 Работа с blob и функции, определенные пользователем. Транзакции. Механизм транзакций
- •1 Работа с blob
- •Сложности, связанные с использованием неструктурированных данных
- •Хранение неструктурированных данных в sql Server 2008
- •Что такое filestream
- •Varbinary(max), хранящийся не в бд, а в файловой системе
- •Условия использования filestream
- •2 Функции, определенные пользователем (udf)
- •3 Транзакции. Механизм транзакций
- •Явные транзакции
- •Распределенные транзакции
- •Вложенные транзакции
Лекция №17 Работа с blob и функции, определенные пользователем. Транзакции. Механизм транзакций
1 Работа с BLOB 1
4
Хранение неструктурированных данных в SQL Server 2012 5
FileTable интеграция БД и файл-сервера 5
Хранить файлы в SQL Server ничуть не хуже, чем в файловой системе 5
На самом деле даже лучше, потому что при этом штатными средствами на раз обеспечивается 5
Транзакционность операций 5
Резервное копирование 5
Сортировка и поиск по атрибутам, полнотекстовый и семантический по содержанию 5
Безопасность, разделение доступа, администрирование на основе политик, ... 5
FileTable – это способ засветить контент, хранящийся в SQLной базе \\<SQL-Server-Machine>\<InstanceShare>\<Database_Directory>\<FileTable_Directory>\ 5
Для Windows-приложения FileTable выглядит как обычная папка общего доступа, и оно может читать оттуда файлы, копировать туда новые, создавать директории и т.д. 5
SQL Server перехватывает эти вызовы и интерпретирует их внутри себя в привычные реляционные операции 5
Также над FileTable доступны прямые запросы, обновления и прочие операции средствами T-SQL 5
Администрирование FileTable 5
5
6
Сравнение FILESTREAM и таблиц FileTable 6
6
2 Функции, определенные пользователем (UDF) 6
3 Транзакции. Механизм транзакций 7
1 Работа с blob
Сложности в работе с неструктурированными данными
Хотя быстрое распространение новых типов неструктурированного цифрового содержимого приносит ощутимую пользу и открывает новые возможности для бизнеса, параллельно возникают проблемы для разработчиков архитектуры системы, администраторов и разработчиков приложений, которые должны сделать так, чтобы существующие приложения и службы работали с этими неструктурированными источниками данных.
Сложности, связанные с сохранением неструктурированных данных
затраты на хранение неструктурированных данных, включающие не только затраты на оборудование, но и накладные расходы на управление;
физические хранилища для неструктурированных данных, такие как файловые серверы и устройства хранения данных, подключаемые к сети (NAS);
управление политиками хранения и архивации;
объединение файлов, содержащих неструктурированные данные, и согласованных с ними реляционными данными, а также обеспечение транзакционной согласованности между источниками структурированных и неструктурированных данных;
минимизация накладных расходов на управление, связанных с обслуживанием как структурированных, так и неструктурированных данных;
быстродействие и масштабируемость;
защита неструктурированных данных и обеспечение согласованной безопасности также для связанных с ними реляционных данных;
доступность и возможность восстановления неструктурированных данных.
Сложности, связанные с использованием неструктурированных данных
на этапе разработки приложения, в котором используются структурированные и неструктурированные данные, могут возникнуть проблемы, связанные с составлением кода, отвечающего за создание, загрузку, обновление и удаление неструктурированных данных, а также с обеспечением транзакционной согласованности между источниками реляционных и неструктурированных данных;
индексирование неструктурированных данных и поиск;
извлечение метаданных, доступных в явной форме (например, из полей форм или из атрибутов файлов), и предоставление этих данных пользователю;
преобразование содержимого документа в форматы, пригодные для выполнения поиска и составления запросов (например, преобразование звуковых файлов в текстовые, в которых затем может быть выполнен поиск по запросу базы данных или поиск при помощи обработчика полнотекстового поиска).
Сложности, связанные с неструктурированными данными, отражают некоторые общие проблемы, с которыми сталкиваются специалисты, начинающие разработку решений для цифрового содержимого, такие как:
управление несколькими платформами, когда приходится иметь дело как с реляционными, так и с нереляционными данными, приводит к неоправданной сложности;
раздельные хранилища данных приводят к повышению сложности разработки приложений, а также к проблемам с управлением развертыванием;
разработчики и администраторы баз данных должны принимать меры для компенсации недостающих служб, поскольку их набор может быть разным для данных различных типов.
SQL Server ставит своей целью разрешение этих проблем при помощи:
снижения затрат на руководство различными типами данных;
упрощения разработки приложений, использующих реляционные и нереляционные данные;
расширения возможностей, которые доступны на данный момент только для реляционных данных, чтобы они были доступны и для неструктурированных данных.
Хранение неструктурированных данных в SQL Server 2005 и ниже
Приложения, основанные на работе с реляционными и нереляционными данными, в основном используют одну из трех архитектур:
реляционные данные находятся в базе данных, а данные в формате больших нереляционных двоичных объектов (BLOB) находятся в файловых системах или на файловых серверах;
реляционные данные находятся в базе данных, а нереляционные данные – в хранилище, предназначенном для BLOB-данных;
реляционные и нереляционные данные находятся в базе данных.
BLOB-данные в SQL Server
В SQL Server 2005 был использован новый тип данных varbinary(max), который позволяет сохранять большой объем двоичных данных размером до 2 147 483 647 байт в столбце или переменной SQL Server. При использовании модификатора max можно задать значение параметра таблицы large value types out of row, который позволяет контролировать, в каком виде происходит физическое хранение данных. Если значение этого параметра задано как ON, все значения сохраняются на отдельных связанных страницах, а 16-байтовый корневой указатель на них хранится в странице данных для строки. Если значение параметра равно OFF, то значения, размер которых меньше 8000 байт, встраиваются в страницу данных для строки, а значения большего размера сохраняются на отдельных связанных страницах.