Новые возможности SQL Server 2008 - Новое для разработчиков
ОГЛАВЛЕНИЕ
Новое для разработчиков
Администраторы баз данных – не единственные, кому непосредственно выгодны изменения SQL Server 2008. Появился ряд новых функций, предназначенных для разработчиков баз данных. К ним относятся несколько новых улучшений T-SQL для новых компонентов, помогающих разработчикам в создании и использовании запросов баз данных.
Множество разработчиков баз данных занимается созданием запросов, необходимых для возврата данных, которые необходимы их приложениям. Вы, вероятно, знакомы со средством LINQ (Language Integrated Query), позволяющим разработчикам баз данных выполнять запросы к базам данных, используя язык программирования на основе Microsoft® .NET вместо обычных инструкций T-SQL. SQL Server 2008 улучшает LINQ, предоставляя нового поставщика LINQ to SQL, который позволяет разработчикам выполнять команды LINQ непосредственно для столбцов и таблиц SQL Server. Это уменьшает количество времени, необходимого для создания новых запросов данных.
При разработке для баз данных разработчики используют объекты более высокого уровня, сопоставляемые с отдельными столбцами и таблицами баз данных. Эти объекты, также называемые сущностями, представляют данные, необходимые приложениям баз данных, поэтому разработчику не требуется знать действительную структуру хранения данных и схему базы данных. Новая платформа ADO.NET Entity Framework позволяет разработчикам создавать запросы баз данных с помощью этих сущностей. Абстрагирование базовой структуры базы данных позволяет увеличить производительность разработчиков.
SQL Server 2008 включает множество различных улучшений T-SQL, позволяющих увеличить производительность разработчиков. В качестве примера можно привести новую инструкцию MERGE, которая позволяет разработчикам проверять существование данных до их вставки. Это проверка, осуществляемая до выполнения инструкции INSERT, обеспечивает возможность обновления данных. Больше не требуется создавать сложные соединения для обновления существующих и вставки новых данных в одной инструкции.
Кроме того, отделение данных даты и времени от смешанного типа данных даты-времени значительно упрощено. В SQL Server 2008 представлены два отдельных типа данных для обработки данных даты и времени. Различные типы данных приводят к улучшению производительности для множества запросов, для использования данных в запросе больше не требуется предварительное выполнение операции с данными.
При создании новых структур баз данных разработчики часто растягивают структуры для реализации приложений сопоставления. SQL Server 2008 помогает разрешить эту проблему с помощью новых пространственных типов данных. Два пространственных типа данных, GEOGRAPHY и GEOMETRY, позволяют разработчикам сохранять данные, относящиеся к размещению, непосредственно в базе данных без необходимости разбивки этих элементов данных в форматы, соответствующие стандартным типам данных. В коде на рис. 5 показан пример простой пространственной таблицы.
Рис 5 A simple spatial tableIF OBJECT_ID ( 'Demo_SpatialTable', 'Table' ) IS NOT NULLРаспространенной проблемой разработчиков баз данных в прошлом являлось сохранение и использование больших двоичных объектов, таких как документы и файлы мультимедиа. Обычно использовавшимся способом было сохранения файлов вне базы данных, а в базе данных сохранялся только указатель на внешний файл. Однако при использовании этого способа при перемещении файла также необходимо помнить об обновлении указателя.
DROP TABLE Demo_SpatialTable
GO
--Create table to hold spatial data
CREATE TABLE Demo_SpatialTable
( SpatialID int IDENTITY (1,1),
SpatialInputCol geography,
SpatialOutputCol AS SpatialInputCol.STAsText() )
GO
--Insert data into table
INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography::STGeomFromText('LINESTRING(47.656 -122.360, 47.656 -122.343)', 4326));
INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography::STGeomFromText('POLYGON((47.653 -122.358, 47.649 -122.348, 47.658 -122.348, 47.658 -122.358, 47.653 -122.358))', 4326));
GO
--View data to see that data has been converted and stored in col2
SELECT * FROM Demo_SpatialTable
В SQL Server 2008 эта проблема решается с помощью нового типа данных FILESTREAM. При использовании этого типа данных файлы могут сохраняться не в базе данных, но данные считаются частью базы данных для обеспечения согласованности транзакций. Это позволяет использовать общие файловые операции, сохраняя преимущества производительности и безопасности базы данных.