Украина |
Проектирование баз данных и работа с ними Веб-приложений. Введение в БД, SQL Server, ADO.NET
9.2. Доступ к данным в .NET
В состав платформы .NET Framework входят функции, позволяющие добавить доступ к данным на Веб-страницах ASP.NET с написанием минимально необходимого программного кода или вовсе без него. В качестве источников данных можно использовать базы данных, данные и файлы XML, а также бизнес-объекты. Затем данные можно отобразить на странице с помощью разнообразных элементов управления, обеспечивающих широкие возможности представления данных на странице.
В качестве основных технологий .NET для доступа к данным выступают:
- ADO.NET – основная модель доступа к данным для приложений, основанных на Microsoft .NET.
- Linq – проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework 3.5.
- ADO.NET Entity Framework – объектно-ориентированная технология доступа к данным, является ORM-решением для .NET Framework 3.5.
В данной лекции рассмотрим технологию ADO.NET.
9.2.1. СУБД MS SQL Server 2008
Прежде чем рассматривать технологии доступа к данным рассмотрим СУБД Microsoft SQL Server 2008, которая как раз и позволяет хранить данные и управлять базами данных.
Microsoft SQL Server – система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов – Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями.
Так как SQL Server 2008 расширяет и улучшает функции SQL Server 2005, а не является революционным продуктом, то характеристики этой СУБД начнем рассматривать с 2005-ой версии.
9.2.1.1. SQL Server 2005
Microsoft SQL Server 2005 представляет собой платформу для работы с базами данных, обеспечивающую возможность крупномасштабной оперативной обработки транзакций (OLTP), хранения данных и работы с приложениями для электронной торговли; а также является платформой бизнес-аналитики для создания решений по интеграции данных, анализу и составлению отчетов [30].
На рис. 9.6 представлены связи и взаимодействия между компонентами SQL Server 2005.
SQL Server 2005 представляет "среды" для облегчения выполнения задач разработки и управления: среда SQL Server Management Studio и среда Business Intelligence Development Studio. В среде Management Studio можно разрабатывать решения компонента SQL Server Database Engine и решения по уведомлению и управлять ими, управлять развернутыми решениями служб Analysis Services, запускать пакеты служб Integration Services и управлять ими, управлять серверами, отчетами и моделями отчетов служб Reporting Services. В среде BI Development Studio можно разрабатывать решения бизнес-аналитики: проекты служб Analysis Services используются для разработки кубов, измерений и структур интеллектуального анализа данных; проекты служб Reporting Services – для создания отчетов; проекты моделей отчетов – для определения моделей отчетов и проекты служб Integration Services – для создания пакетов.
В этих средах SQL Server 2005 предоставляет графические инструменты, необходимые для проектирования, разработки, развертывания и администрирования реляционных баз данных, аналитических объектов, пакетов преобразования данных, топологий репликации, отчетов, серверов отчетов и серверов уведомлений. Кроме того, SQL Server 2005 включает программы командной строки, позволяющие выполнять из командной строки задачи администрирования.
Рассмотрим подробнее компоненты, изображенные на рис. 9.6.
Компонент Database Engine – основная служба для хранения, обработки и защиты данных. Компонент Database Engine обеспечивает управляемый доступ и быструю обработку транзакций. Сюда входит создание таблиц для хранения данных и объектов баз данных, таких как индексы, представления и хранимые процедуры для просмотра и защиты данных и для управления ими. Для управления объектами баз данных можно использовать среду SQL Server Management Studio (рис. 9.7), для фиксации событий сервера – SQL Server Profiler.
Службы Analysis Services являются основными службами по обеспечению быстрого анализа бизнес-данных, интерактивной аналитической обработки (OLAP) и функций интеллектуального анализа данных для использования в приложениях бизнес-аналитики.
Службы Reporting Services представляют собой платформу отчетов на основе сервера, которая обеспечивает комплексное ведение отчетов для данных из реляционных и многомерных источников данных. Службы Reporting Services включают компоненты для разработки: полный набор инструментов, который можно использовать для создания отчетов и управления ими, и API-интерфейс, позволяющий разработчикам выполнять интеграцию и расширение данных, а также обработку отчетов в пользовательских приложениях. Создаваемые отчеты могут основываться на реляционных или многомерных данных SQL Server, служб Analysis Services, Oracle или любого другого поставщика данных Microsoft .NET Framework, такого как ODBC или OLE DB.
Службы Integration Services – это платформа для построения решений по интеграции и преобразованию данных уровня предприятия. Службы Integration Services используются для решения сложных бизнес-задач при помощи копирования и загрузки файлов, отправки электронных сообщений в ответ на события, обновления хранилищ данных, очистки и интеллектуального анализа данных, а также управления объектами и данными SQL Server. Пакеты могут работать отдельно или совместно с другими пакетами для решения сложных бизнес-задач. Службы Integration Services могут извлекать и преобразовывать данные из ряда источников, таких как файлы данных XML, плоские файлы, источники реляционных данных, и затем загружать эти данные в один или несколько реляционных объектов.
Репликация представляет собой набор технологий, с помощью которых данные или объекты баз данных можно скопировать и перенести из одной базы данных в другую, а затем синхронизировать эти базы данных для обеспечения согласованности. Используя репликацию, можно распространять данные через локальные или глобальные сети, соединения по телефонной линии, беспроводные соединения и Интернет для их размещения в различных точках или для удаленных и мобильных пользователей. SQL Server предусматривает три типа репликации, отличающихся по своим возможностям: это репликация транзакций, репликация слиянием и репликация моментальных снимков.
Службы Notification Services – это платформа для разработки приложений, формирующих и отправляющих уведомления; кроме того, это ядро, запускающее такие приложения. Службы Notification Services могут формировать и посылать периодические, персонализированные сообщения тысячам и даже миллионам подписчиков и доставлять сообщения в разнообразные приложения и на различные устройства.
SQL Server включает функции, необходимые для выполнения полнотекстовых запросов к неформатированным символьным данным в таблицах SQL Server. Полнотекстовые запросы могут включать слова и фразы или несколько форм слов или фраз. Полнотекстовый поиск обеспечивает быстрое и гибкое индексирование для основанных на ключевых словах запросов текстовых данных, хранящихся в базе данных Microsoft SQL Server.
Компонент Service Broker обеспечивает собственную поддержку компонента SQL Server Database Engine для приложений обмена сообщениями и приложений с очередями сообщений. Это облегчает разработчикам создание сложных приложений, использующих компоненты Database Engine для связи между разнородными базами данных. Разработчики могут использовать компонент Service Broker для облегчения создания распределенных и надежных приложений.
9.2.1.2. Новинки SQL Server 2008
Концептуальная модель SQL Server 2008 представлена на рис. 9.8.
Источник: Microsoft SQL Server 2008 [31]
Возможности SQL Server 2008 относятся к четырем основным направлениям развития представлений Microsoft о платформе данных [31, 32]:
- Платформа для критических приложений (Mission Critical Platform):
- Шифрование базы данных (БД), файлов данных или файлов журналов.
- Поддержка HSM (Hardware Security Module, аппаратный модуль безопасности) и системы управления ключами сторонних производителей.
- Создание пользовательских параметров аудита и управление ими, используя DDL-операторы (Data Definition Language, язык определения данных).
- Обеспечение сжатия исходящего потока данных для журналов.
- Возможность "горячей" установки процессоров.
- Среда декларативного управления Declarative Management Framework (DMF)
- Расширенный набор показателей производительности, новое централизованное хранилище данных о работоспособности и новые инструменты для составления отчетов и мониторинга.
- Компонент Resource Governor позволяет устанавливать ограничения на использование ресурсов и задавать приоритеты для различных задач.
- Динамическая разработка (Dynamic Development):
- Хранение данных любых типов (Beyond Relational Data).
- Новые типы данных для обозначения даты и времени:
- DATE – только дата;
- TIME – только время;
- DATETIMEOFFSET – дата и время с учетом часового пояса;
- DATETIME2 – тип для даты и времени с поддержкой большего диапазона долей секунд и лет, чем в существующем типе DATETIME.
- Системный тип HierarchyId, предназначенный для хранения значений, представляющих узлы иерархии.
- Тип данных FILESTREAM, обеспечивающий хранение больших объемов двоичных данных непосредственно в файловой системе NTFS.
- Компонент "Разреженные поля", с помощью которого значения NULL не занимают физическое пространство.
- Нет 8-килобайтного ограничение для пользовательских типов (User Defined Type, UDT).
- Использование данных о географическом расположении и местонахождении.
- Векторное решение для пространственных данных, согласующееся с промышленными стандартами.
- Новые типы данных для обозначения даты и времени:
- Всесторонне обоснованные решения (Pervasive Business Insight).
- Расширены возможности секционирования.
- Повышена производительность запросов в наиболее типовых сценариях работы с хранилищами данных (в частности, оптимизация Star Join).
- Grouping Sets – расширенная версия раздела GROUP BY.
- Функция контроля за изменением данных.
- Введение SQL-оператора MERGE.
- Усовершенствования в Integration Services:
- Блочные вычисления.
- Обратная запись MOLAP в Analysis Services.
- Усовершенствованный конструктор отчетов Report Designer.
- Встроенная аутентификация форм.
- Более тесное взаимодействие SQL Server 2008 с Microsoft Office.
Начиная с версии SQL Server 2005, SQL Server обеспечивает интеграцию с компонентами CLR (Common Language Runtime, общеязыковая исполняющая среда) платформы .NET Framework для Microsoft Windows [33]. Это означает, что хранимые процедуры, триггеры, определяемые пользователем типы, определяемые пользователем функции, определяемые пользователем статистические функции и возвращающие табличные значение потоковые функции теперь могут разрабатываться с использованием любого языка .NET Framework, включая Microsoft Visual Basic .NET и Microsoft Visual C#.