Сравнительные характеристики sql субд. Неограниченный размер базы данных. Разработка объектов базы данных, демонстрирующих логику предметной области

Системы управлении базами данных (СУБД) в последнее время стали неотъемлемой частью ИТ-инфраструктуры практически любой компании. Сейчас достаточно сложно найти компанию, которая бы не пользовалась системой 1С:Предприятие или какой-либо мощной ERP системой, такой как SAP или Microsoft Dynamics (CRM), которые используют СУБД для хранения своих данных. Почти все WEB-приложения используют СУБД для хранения информации о клиентах, наименований товаров и т.п. Если раньше СУБД использовались в основном для хранения текстовых и числовых данных, то сейчас в СУБД хранятся такие данные, как изображения, видеозаписи и многие другие типы данных. Объёмы баз данных в некоторых отраслях выросли до нескольких терабайт. Поэтому сейчас, как никогда ранее, повысились требования к надёжности и производительности систем управления базами данных. Лидирующие позиции на рынке среди СУБД занимает Microsoft SQL Server. Доля рынка Microsoft SQL Server, по данным Gartner, составляет 46,8%, остальная часть рынка принадлежит Oracle и IBM DB2, относительно небольшую часть рынка занимают СУБД Open Source, такие как Postgre и Firebird.

Microsoft SQL Server 2012 является новейшей и мощнейшей системой управления базами данных. Помимо стандартных для СУБД функций, SQL Server 2012 содержит большой набор интегрированных служб по анализу данных. Доступ к данным, расположенным на SQL Server могут получить любые приложения, разработанные на.Net и VisualStudio, а также приложения пакета Microsoft Office 2007. SQL Server 2012 обеспечивает высочайшую в своём классе масштабируемость, производительность и безопасность.

Microsoft SQL Server 2012 поддерживают более 15000 поставщиков программного обеспечения, его используют более 74,7% крупнейших компаний мира. Microsoft SQL Server 2012 используют практически все ERP и CRMсистемы, как SAP, Microsoft Dynamics, 1C: Предприятие, Microsoft CRM.

Платформа данных SQL Server

SQL Server 2012 предоставляет средства по созданию и управлению реляционными базами данных. Также SQL Server 2012 поддерживает новые средства аналитической обработки данных (Analysis Services), средства отчётности (Reporting Services), а также множество средств, упрощающих разработку приложений.

Ввиду того, что на SQL Server работают критические бизнес-приложения, предприятия выдвигают очень жёсткие требования по производительности, отказоустойчивости и безопасности самой СУБД.

Безопасноcть SQL Server 2012:

  • Интерактивное шифрование баз данных. SQL Server 2012 поддерживает прозрачное шифрование баз данных и журналов транзакций. Данная функция позволяет заказчику быть уверенным в том, что неправомочный доступ к данным компании невозможно будет получить, даже завладев сервером или системой хранения данных.
  • Поддержка PKI. SQL Server 2012 поддерживает инфраструктуру сертификатов. Доступ к данным можно ограничивать и шифровать при помощи сертификатов и аппаратных модулей защиты (TPM).
  • Интеграция с доменом ActiveDirectory. Доступ к данным можно разрешать по доменным пользователям и группам.
  • Аудит. SQL Server 2012 поддерживает аудит доступа к данным и контроль за осуществляемыми с базой данных действиями.

Отказоустойчивость SQL Server 2012:

  • Зеркалирование БД (Database Mirroring). Технология зеркалирования предполагает наличие одного активного сервера, с которым работают все клиенты, и одного зеркального сервера, на который происходит передача всех журналов транзакций и их применение к зеркальной БД. При отказе активного сервера, происходит переключение на зеркальный сервер. Это делается либо вручную, либо автоматически, при использовании сервера-наблюдателя (Witness). Таким образом обеспечивается отказоустойчивость БД, и в случае сбоя максимум, что теряется - это одна транзакция. При этом не требуется никакого специализированного кластерного оборудования или SAN-устройств. Но нужно учитывать, что данный метод не обеспечивает непрерывность функционирования, ввиду того, что переключение длится несколько секунд и обращения происходят к другому серверу с другим именем, а также не обеспечивается распределение нагрузки и снижается производительность. В SQL Server 2012 появилась функция автоматического восстановления повреждённых страниц с зеркального сервера, а также добавлена функция прозрачного перенаправления клиентов на зеркальный сервер.

Database Mirroring в SQL Server 2012

  • Кластеры высокой доступности (High Availability Cluster). Крупные компании, которым требуется непрерывность функционирования, постоянная доступность БД и распределение нагрузки, используют SQL Server 2012 в режиме кластера. SQL Server 2012 поддерживает 16-ти узловую кластеризацию, причём кроме кластеризации ядра СУБД, поддерживается также кластеризация Analysis Services, Notification Services и Replication Services. Кластер SQL Server 2012 позволяет обеспечить режим функционирования 24/7 для критических бизнес-приложений.

Двух узловой кластер на базе SQL Server 2012

Масштабируемость SQL Server 2012:

  • Горячее добавление памяти и процессоров. SQL Server 2012 позволяет не выключая и не перезагружая сервер добавлять в него оперативную память и процессоры (эта функция должна также поддерживаться и оборудованием).
  • Репликация БД. SQL Server 2012 позволяет создавать копии БД в удалённых филиалах. Поддерживаются различные механизмы репликации с использованием транзакций, слияния и моментальных снимков. Репликация может быть как односторонней, когда например, изменения из центрального офиса реплицируются в филиалы, так и двусторонней. SQL Server 2012 поддерживает распределённые приложения и гео-распределённую кластеризацию.
  • Распределение ресурсов (Resource Governor). SQL Server 2012 позволяет распределять ресурсы и назначать приоритет для различных задач. Эта функция позволяет избежать случаев резкого падения производительности всего сервера, и прерывания работы всех пользователей при выполнении одной какой-либо сложной задачи.
  • Поддержка архитектуры Intel Itanium. Для сверхвысоких нагрузок выпущена версия SQL Server 2012, работающая на RISC-серверах, построенных на платформе Intel Itanium (IA-64). Данная редакция SQL Server 2012 применяется в крупных ЦОД для обработки больших объёмов информации. SQL Server 2012 в редакции Itanium поддерживает 64 процессорных ядер и 2 терабайта оперативной памяти. Поддерживаются технологии горячего добавления/отключения процессора и памяти, также поддерживается технология отказоустойчивого зеркалирования памяти и 8-ми узловая кластеризация.

Построение кластера является достаточно сложной задачей. При построении кластера проводится сложный анализ бизнес-приложения, использующего СУБД, рассчитывается нагрузочная способность и требуемые ресурсы, прогнозируется рост БД и рост нагрузочной способности, в соответствии с этим планируется инфраструктура кластеров и подбирается оборудование. Компания ЛанКей обладает опытом построения кластеров SQL Server в ряде крупных компаний. Планирование и развёртывание кластеров SQL Server производят сертифицированные инженеры MCSE, MCDBA, MCTS: SQL Server.

Как было отмечено выше, выбор конкретной архитектуры построения информационной системы включает два основных компонента: выбор серверной платформы (выбор серверной ОС и СУБД) и выбор платформ для клиентских рабочих мест. В данном разделе более подробно остановимся на особенностях выбора конкретной СУБД. При выборе базы данных очень важно выбрать базу данных, которая в наибольшей степени соответствуют предъявляемым к информационной системе требованиям, т.е. необходимо определиться какая модель автоматизации реализуется (автоматизация документооборота или бизнес - процессов). В первую очередь при выборе СУБД необходимо принимать во внимание следующие факторы:

  1. максимальное число пользователей одновременно обращающихся к базе;
  2. характеристики клиентского ПО;
  3. аппаратные компоненты сервера;
  4. серверную операционную систему;
  5. уровень квалификации персонала.

На сегодня известно большое число различных серверов баз данных SQL. Остановимся более подробнее на следующих четырех ведущих серверных СУБД - Oracle8i, IBM DB2, Microsoft SQL Server и Informix - и сравним их в работе на каждом из основных этапов функционирования:

  1. конфигурирование системы,
  2. мониторинг,
  3. настройка,
  4. обработка запросов,
  5. разработка серверных и клиентских модулей.

Данный анализ проведем с учетом того, что число клиентских мест составляет от 50 до 500, а управление СУБД должно быть максимально эффективно. Исследования проводились на серверной платформе на базе Pentium II с 128 Мбайт ОЗУ, укомплектованном 13-Гбайт диском с интерфейсом EIDE в конфигурации RAID уровня 0 (конечно лучше было бы использовать HDD с интерфейсом SCSI). Управление системами было возложено на ОС Windows NT Server 4.0. и Linux.

Oracle8i.

Пакет Oracle8i, наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой. В нашей стране на протяжении уже многих лет целым рядом специалистов культивируется негативное отношение к СУБД Oracle, как к дорогой и сложной СУБД. Оба эти тезиса являются спорными. Во-первых, уровень сложности понятие относительное. При использовании СУБД Oracle на платформе NT, она потребует практически тех же усилий, что и при использовании MS SQL. В случае же работы на UNIX-платформе, можно с уверенностью отметить, что для профессиональных юниксоидов среда Oracle является простой, понятной и доступной. Что касается дороговизны, то и тут наметились положительные сдвиги. Кроме того, что компания Oracle предлагает ряд различных масштабируемых решений в зависимости от числа обслуживаемых клиентов, она также следуя общемировым тенденциям разработала версию своей популярнейшей СУБД под LINUX и выложила ее на своем WEB сервере (www.oracle.com) для свободного использования. Среди основных свойств СУБД Oracle следует отметить такие, как:

  1. Высочайшая надежность.
  2. Возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами;
  3. Наличие универсальных средств защиты информации;
  4. Эффективные методы максимального повышения скорости обработки запросов;
  5. Индексация по битовому отображению;
  6. Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании);
  7. Распараллеливание операций в запросе.
  8. Наличие широкого спектра средств разработки, мониторинга и администрирования.
  9. Ориентация на интернет технологии.

Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на интернет технологии - основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность составлять на языке Java не только внутренние программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать компоненты Enterprise JavaBeans и даже запустить их на сервере). Компоненты Enterprise JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java.

Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами:

  1. Очень развитые средства для обработки аудио клипов;
  2. Неподвижных изображений;
  3. Видеофрагментов;
  4. Географических данных (с целым набором функций связанных с определением местонахождения входящих в состав модуля Locator).

В Oracle8i реализуются лучшие на сегодняшний день средства для объектно-ориентированного конструирования баз данных, в том числе табличные структуры, допускающие наследование свойств и методов других табличных объектов БД, что позволят избежать ошибок при построении БД и облегчает их обслуживание.

Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании InterBase компании Inprise). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е. в Oracle отсутствуют блокировки на чтение). Эта функция позволяет СУБД Oracle8i выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности.

СУБД Microsoft SQL Server

Важнейшие характеристики данной СУБД - это:

  1. простота администрирования,
  2. возможность подключения к Web,
  3. быстродействие и функциональные возможности механизма сервера СУБД,
  4. наличие средств удаленного доступа,

В комплект средств административного управления данной СУБД входит целый набор специальных мастеров и средств автоматической настройки параметров конфигурации. Также данная БД оснащена замечательными средствами тиражирования, позволяющими синхронизировать данные ПК с информацией БД и наоборот. Входящий в комплект поставки сервер OLAP дает возможность сохранять и анализировать все имеющиеся у пользователя данные. В принципе данная СУБД представляет собой современную полнофункциональную база данных, которая идеально подходит для малых и средних организаций. Необходимо заметить, что SQL Server уступает другим рассматриваемым СУБД по двум важным показателям: программируемость и средства работы. При разработке клиентских БД приложений на основе языков Java, HTML часто возникает проблема недостаточности программных средств SQL Server и пользоваться этой СУБД будет труднее, чем системами DB2, Informix, Oracle или Sybase. Общемировой тенденцией в XXI веке стал практически повсеместный переход на платформу LINUX, а SQL Server функционирует только в среде Windows. Поэтому использование SQL Server целесообразно, по нашему мнению, только если для доступа к содержимому БД используется исключительно стандарт ODBC, в противном случае лучше использовать другие СУБД.

СУБД IBM DB2 - результат почти 30-х опытно-конструкторских и исследовательских работ фирмы IBM. Последнюю на сегодня версию данной СУБД (6.х) отличает один из наиболее продуманных наборов средств управления и оптимизации и механизм БД, допускающий наращивание от портативного ПК с Windows 95 до целого кластера больших ЭВМ S/390, работающих под управлением OS/390.

Пакет DB2 выпускается в двух редакциях: DB2 Workgroup и DB2 Enterprise Edition. В данной СУБД реализованы все известные по предшествующим версиям DB2 новаторские технологии механизма БД, такие, как распараллеливание обработки запроса, полный набор средств тиражирования, сводные таблицы запросов для повышения производительности БД, возможности объектно-ориентированного конструирования баз данных и средства языка Java. К этому надо добавить, что система DB2 оснащена полым набором мультимедиа-расширений, позволяющих сохранять текст, звук и видео- фрагменты, изображения и географические данные и манипулировать ими. Можно говорить, что по возможностям масштабирования разработанная специалистами IBM технология кластеризации баз данных не имеет аналогов. Эти расширения существенно облегчают процесс разработки приложений для Web, а так же программ, содержащих фотоизображения и объемные текстовые отчеты. Система DB2 вполне конкурентоспособна и в качестве платформы для разработки приложжений т.к существует средство Stored Procedure Builder - автоматически преобразовывающее оператор SQL в соответствующий класс Java и включающее его в структуру базы данных. В версии DB2 6.1 значительно улучшена функциональная совместимость с другими СУБД: пакет позволяет использовать разработанную Microsoft спецификацию OLE DB, новый стандарт доступа к базам данных. Средства административного управления СУБД DB2, которые в новой версии переписаны на Java и могут быть получены из Web, заслуживают самой высокой оценки.

Основными недостатками данной СУБД является относительная сложность администрирования и отсутствие (пока) реализаций под популярные серверные ОС, например LINUX.

В данной СУБД благодаря Index Smart-Guide возможно осуществлять настройку, формируя оптимальные индексы для заданного числа обращений, характеризующего типичную нагрузку на БД. DB2- единственный пакет позволяющий генерировать сводные таблицы, что значительно эффективность работы СУБД в качестве хранилищ данных. Сводная таблица - это временная рабочая область, используемая базой данных для хранения ответов на часто поступающие запросы. Ну что ж, можно сказать, что оснащенная новыми функциональными возможностями, а также средствами распараллеливания и возможностями выбора практически любого типа соединения и индексов (кроме разве что растровых индексов), модель DB2 6.1 превращается в самую недорогую из высокопроизводительных систем. Средства административного управления этой СУБД вполне соответствуют уровню решаемых задач, кроме того, она предоставляет исключительно широкие возможности для работы с мультимедиа-данными и для программирования (чего явно недостает системе Microsoft SQL Server).

СУБД от Informix.

В последнее время наметился переход от реляционных СУБД к объектно-ориентированным (что явно прослеживается на примере Oracle). Informix также следуя данной концепции анонсировала новое решение СУБД Centaur базирующуюся на реляционной БД Informix Dynamic Server 7.3 и объектно-реляционной БД Informix Universal Data Option и сочетающую в себе высокое быстродействие Dynamic Server при работе с данными с универсальностью и мультимедиа функциями Universal Data Option. Данная реализация предназначена для разработки интернет систем. Предположительно данная СУБД будет обладать гибкой средой разработки, обладающей наращиваемостью, соответствующей характерным для Интернета интенсивным нагрузкам, и средствами работы с новыми типами данных, которые с развитием Web стали использоваться повсеместно. Реализованные в новой системе средства Java позволят разработчикам создавать на этом языке хранимые процедуры, пользовательские программы и компоненты DataBlades, которые в Informix называют заказными расширениями базы данных.

С точки зрения клиентов Inforix, это станет большим шагом вперед, поскольку до настоящего времени при работе с DataBlades они могли пользоваться только языком Си и SPL, внутренним языком фирмы Informix для написания хранимых процедур. Кроме того, пакет Centaur будет оснащен встроенными средствами обработки объектов ActiveX. Это даст возможность, к примеру, создавать хранимые процедуры БД на языке Visual Basic; правда, для этого нужно, чтобы пакет Centaur выполнялся в среде Windows NT.

Centaur будет представлять собой надстройку Informix Dynamic Server и работать с традиционным для этого пакета форматом БД, так что в распоряжении пользователей останутся все прежние функции, а модернизация системы до уровня новой версии не будет сопряжена с большими сложностями. Кроме того, в пакете Centaur будут сохранены все возможности конструирования и программирования, благодаря которым система Informix Universal Server признана выдающимся техническим достижением. Новая система будет оснащена средствами объектно-ориентированного конструирования баз данных, создания специализированных таблиц и программ индексирования; в ее состав войдет позволит пользователям встраивать в запросы собственные функции и не полагаться исключительно на стандартные средства SQL.

Выводы.

Рассмотрев основные характеристики архитектур построения АИС, серверных операционных систем и СУБД в дальнейшем в качестве архитектуры АИС мы выберем архитектуру интернет/интранет, в качестве серверной ОС Linux, в качестве СУБД Oracle 8i. В сводной таблице представлены сравнительные характеристики двух наиболее распространенных на сегодня решений на базе Microsoft SQL Server 7.0 (на NT) и Oracle8i (на Unix, Linux).

Microsoft SQL Server 7.0

Административное управление
Графические инструменты
Простота обслуживания
Механизм данных
Работа с несколькими ЦП

Приемлемо

Функция соединения и выбор индексов
Одновременный доступ нескольких пользователей
Обработка мультимедиа-даных
Подключение к Web
Обработка аудио, видео, изображений
Поиск по сему тексту
Функциональная совместимость

Приемлемо

Сопряжение с другими БД
Единая регистрация
Работа под управлением различных ОС

Приемлемо

Возможности программирования

Приемлемо

Хранимые процедуры и триггеры
Внутренний язык программирования
Построение баз данных
Язык SQL
Объектно-ориентированные системы
Работа с филиалами
Тиражирование
Распределенная обработка транзакций
Дистанционное администрирование
Организация хранилищ данных и подготовка отчетов
Средства загрузки
Средства анализа

Клиентские места при этом могут функционировать практически на любой платформе, средством доступа клиентов к СУБД является либо CGI (Perl) либо JAVA приложения. При этом к серверной части АИС предъявляются следующие требования:

2.3. Реляционная модель, как платформа для разработки современных информационных систем на примере интерактивной системы патентного обеспечения технологического проектирования.

И так мы расссмотрели различные подходы к внутренней организации баз данных. И в результате пришли к выводу о необходимости использования реляционной модели, так как она решает одну из основных проблем - внесения изменений в базу данных в процессе ее использования. Ведь в реляционной безе данных проблемы синхронизации данных не возникает вовсе, так как данные хранятся в одном экземпляре. Для большей ясности этого вопроса приведем отличия традиционных и реляционных баз данных.

Выполняемая операция Традиционные базы данных Реляционные базы данных
Разработка приложений Необходимо определить, какая информация требуется различным приложениям и создать ряд общих файлов. Необходимо определить виды хранимых данных и взаимосвязи между ними
Реализация приложений Поступающие данные записываются в основные файлы; в каждую информационную ячейку каждого основного файла записывается один элемент данных. Различные виды данных записываются в таблицы данных, соответствующие этим видам. В результате каждый элемент информации хранится в одном единственном месте
Модификация приложений Требуется пересмотр структуры базы данных с последующей перезаписью основных файлов, которые затронуты вносимыми изменениями, и с переработкой всех приложений, использующих эти файлы Достаточно найти и модифицировать таблицу, в которой должно содержаться определение нового вида данных Сами данные хранятся в других таблицах, не затрагиваемых при подобных изменениях.
Внесение частичных изменений в данные Необходимо прочитать каждый основной файл с начала до конца, модифицируя изменяемые ячейки данных и оставляя все остальные прочитанные ячейки без изменений. В соответствующих таблицах достаточно выделить множество строк, в которые необходимо внести изменения, и произвести эти изменения с помощью одного SQL- оператора.

Итак, основные черты реляционных баз данных:

  1. Структура реляционной базы данных определяется хранящимися в них данными и не фиксируется в момент завершения разработки (т.е. является гибкой и масштабируемой).
  2. Структурам данных можно давать весьма информативные названия.
  3. Данные хранятся в единственном экземпляре; все опции чтения и модификации данных производятся только с этим экземпляром данных, что качественно облегчает синхронизацию данных между многими приложениями и пользователями.
  4. Данные хранятся в соответствии с четко определенными и строго соблюдаемыми правилами.

Система управления базами данных (СУБД) - это общий набор различных программных компонентов баз данных и собственно баз данных, содержащий следующие составляющие:

    прикладные программы баз данных;

    клиентские компоненты;

    серверы баз данных;

    собственно базы данных.

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

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

Возможности СУБД

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

    разнообразные пользовательские интерфейсы;

    физическую независимость данных;

    логическую независимость данных;

    оптимизацию запросов;

    целостность данных;

    управление параллелизмом;

    резервное копирование и восстановление;

    безопасность баз данных.

Все эти возможности вкратце описываются в следующих далее разделах.

Разнообразные пользовательские интерфейсы

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

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

Физическая независимость данных

Физическая независимость данных означает, что прикладные программы базы данных не зависят от физической структуры данных, хранимых в базе данных. Эта важная особенность позволяет изменять хранимые данные без необходимости вносить какие-либо изменения в прикладные программы баз данных.

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

Логическая независимость данных

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

Системы баз данных предоставляют логическую независимость файлов, т.е., иными словами, логическую структуру базы данных можно изменять без необходимости внесения каких-либо изменений в прикладные программы базы данных. Например, добавление атрибута к уже существующей в системе баз данных структуре объекта с именем Person (например, адрес) вызывает необходимость модифицировать только логическую структуру базы данных, а не существующие прикладные программы. (Однако приложения потребуют модифицирования для использования нового столбца.)

Оптимизация запросов

Большинство систем баз данных содержат подкомпонент, называющийся оптимизатором , который рассматривает несколько возможных стратегий исполнения запроса данных и выбирает из них наиболее эффективную. Выбранная стратегия называется планом исполнения запроса . Оптимизатор принимает решение, принимая во внимание такие факторы, как размер таблиц, к которым направлен запрос, существующие индексы и логические операторы (AND, OR или NOT), используемые в предложении WHERE.

Целостность данных

Одной из стоящих перед системой баз данных задач является идентифицировать логически противоречивые данные и не допустить их помещения в базу данных. (Примером таких данных будет дата "30 февраля" или время "5:77:00".) Кроме этого, для большинства реальных задач, которые реализовываются с помощью систем баз данных, существуют ограничения для обеспечения целостности (integrity constraints) , которые должны выполняться для данных. (В качестве примера ограничения для обеспечения целостности можно назвать требование, чтобы табельный номер сотрудника был пятизначным целым числом.)

Обеспечение целостности данных может осуществляться пользователем в прикладной программе или же системой управления базами данных. До максимально возможной степени эта задача должна осуществляться посредством СУБД.

Управление параллелизмом

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

    На общем банковском счете № 3811 в банке X имеется $1500.

    Владельцы этого счета, госпожа А и господин Б, идут в разные отделения банка и одновременно снимают со счета по $750 каждый.

    Сумма, оставшаяся на счету № 3811 после этих транзакций, должна быть $0, и ни в коем случае не $750.

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

Резервное копирование и восстановление

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

Безопасность баз данных

Наиболее важными понятиями безопасности баз данных являются аутентификация и авторизация. Аутентификация - это процесс проверки подлинности учетных данных пользователя, чтобы не допустить использования системы несанкционированными пользователями. Аутентификация наиболее часто реализуется, требуя, чтобы пользователь вводил свое имя пользователя и пароль. Система проверяет достоверность этой информации, чтобы решить, имеет ли данный пользователь право входа в систему или нет. Этот процесс можно усилить применением шифрования.

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

Системы реляционных баз данных

Компонент Database Engine сервера Microsoft SQL Server является системой реляционных баз данных. Понятие систем реляционных баз данных было впервые введено в 1970 г. Эдгаром Ф. Коддом в статье "A Relational Model of Data for Large Shared Data Banks". В отличие от предшествующих систем баз данных (сетевых и иерархических), реляционные системы баз данных основаны на реляционной модели данных, обладающей мощной математической теорией.

Модель данных - это набор концепций, взаимосвязей между ними и их ограничений, которые используются для представления данных в реальной задаче. Центральным понятием реляционной модели данных является таблица. Поэтому, с точки зрения пользователя, реляционная база данных содержит только таблицы и ничего больше. Таблицы состоят из столбцов (одного или нескольких) и строк (ни одной или нескольких). Каждое пресечение строки и столбца таблицы всегда содержит ровно одно значение данных.

Работа с демонстрационной базой данных в последующих статьях

Используемая в наших статьях база данных SampleDb представляет некую компанию, состоящую из отделов (department) и сотрудников (employee). Каждый сотрудник принадлежит только одному отделу, а отдел может содержать одного или нескольких сотрудников. Сотрудники работают над проектами (project): в любое время каждый сотрудник занят одновременно в одном или нескольких проектах, а над каждым проектом может работать один или несколько сотрудников.

Эта информация представлена в базе данных SampleDb (находится в исходниках) посредством четырех таблиц:

Department Employee Project Works_on

Организация этих таблиц показана на рисунках ниже. Таблица Department представляет все отделы компании. Каждый отдел обладает следующими атрибутами (столбцами):

Department (Number, DepartmentName, Location)

Атрибут Number представляет однозначный номер каждого отдела, атрибут DepartmentName - его название, а атрибут Location - расположение. Таблица Employee представляет всех работающих в компании сотрудников. Каждый сотрудник обладает следующими атрибутами (столбцами):

Employee (Id, FirstName, LastName, DepartmentNumber)

Атрибут Id представляет однозначный табельный номер каждого сотрудника, атрибуты FirstName и LastName - имя и фамилию сотрудника соответственно, а атрибут DepartmentNumber - номер отдела, в котором работает сотрудник.

Все проекты компании представлены в таблице проектов Project, состоящей из следующих столбцов (атрибутов):

Project (ProjectNumber, ProjectName, Budget)

В столбце ProjectNumber указывается однозначный номер проекта, а в столбцах ProjectName и Budget - название и бюджет проекта соответственно.

В таблице Works_on указывается связь между сотрудниками и проектами:

Works_on (EmpId, ProjectNumber, Job, EnterDate)

В столбце EmpId указывается табельный номер сотрудника, а в столбце ProjectNumber - номер проекта, в котором он принимает участие. Комбинация значений этих двух столбцов всегда однозначна. В столбцах Job и EnterDate указывается должность и начало работы сотрудника в данном проекте соответственно.

На примере базы данных SampleDb можно описать некоторые основные свойства реляционных систем баз данных:

    Строки таблицы не организованы в каком-либо определенном порядке.

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

    Каждый столбец таблицы должен иметь однозначное имя в любой данной таблице. Но разные таблицы могут содержать столбцы с одним и тем же именем. Например, таблица Department содержит столбец Number и столбец с таким же именем имеется в таблице Project.

    Каждый элемент данных таблицы должен содержать одно значение. Это означает, что любая ячейка на пересечении строк и столбцов таблицы никогда не содержит какого-либо набора значений.

    Каждая таблица содержит, по крайней мере, один столбец, значения которого определяют такое свойство, что никакие две строки не содержат одинаковой комбинации значений для всех столбцов таблицы. В реляционной модели данных такой столбец называться потенциальным ключом (candidate key) . Если таблица содержит несколько потенциальных ключей, разработчик указывает один из них, как первичный ключ (primary key) данной таблицы. Например, первичным ключом таблицы Department будет столбец Number, а первичными ключами таблиц Employee будет Id. Наконец, первичным ключом таблицы Works_on будет комбинация столбцов EmpId и ProjectNumber.

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

SQL - язык реляционной базы данных

Язык реляционной базы данных в системе SQL Server называется Transact-SQL . Это разновидность самого значимого на сегодняшний день языка базы данных - языка SQL (Structured Query Language - язык структурированных запросов) . Происхождение языка SQL тесно связано с проектом, называемым System R, разработанным и реализованным компанией IBM еще в начале 80-х годов прошлого столетия. Посредством этого проекта было продемонстрировано, что, используя теоретические основы работы Эдгара Ф. Кодда, возможно создание системы реляционных баз данных.

В отличие от традиционных языков программирования, таких как C#, C++ и Java, язык SQL является множество-ориентированным (set-oriented) . Разработчики языка также называют его запись-ориентированным (record-oriented) . Это означает, что в языке SQL можно запрашивать данные из нескольких строк одной или нескольких таблиц, используя всего лишь одну инструкцию. Это одно из наиболее важных преимуществ языка SQL, позволяющее использовать этот язык на логически более высоком уровне, чем традиционные языки программирования.

Другим важным свойством языка SQL является его непроцедурность. Любая программа, написанная на процедурном языке (C#, C++, Java), пошагово описывает, как выполнять определенную задачу. В противоположность этому, язык SQL, как и любой другой непроцедурный язык, описывает, что хочет пользователь. Таким образом, ответственность за нахождение подходящего способа для удовлетворения запроса пользователя лежит на системе.

Язык SQL содержит два подъязыка: язык описания данных DDL (Data Definition Language) и язык обработки данных DML (Data Manipulation Language) . Инструкции языка DDL также применяются для описания схем таблиц баз данных. Язык DDL содержит три общие инструкции SQL: CREATE, ALTER и DROP. Эти инструкции используются для создания, изменения и удаления, соответственно, объектов баз данных, таких как базы данных, таблицы, столбцы и индексы.

В отличие от языка DDL, язык DML охватывает все операции по манипулированию данными. Для манипулирования базами данных всегда применяются четыре общие операции: извлечение, вставка, удаление и модифицирование данных (SELECT, INSERT, DELETE, UPDATE).

Одной из самых распространенных СУБД, используемых в крупных организациях, является Microsoft SQL server, СУБД от компании Microsoft. Она использует реляционную модель данных. Microsoft SQL server является клиент-серверной СУБД, что делает ее хорошей для использования в крупных организациях, имеющих мощный сервер. Платформа данных MS SQL Server 2005 включает следующие инструменты для работы с базой данных:

  • · Поддержка структурированных и неструктурированных (XML) данных.
  • · Replication Services: репликация данных для распределённых и мобильных приложений обработки данных, высокая доступность систем, масштабируемый параллелизм со вторичными хранилищами данных для отчётных решений предприятия и интеграция с разнородными системами, включая существующие базы данных Oracle.
  • · Notification Services: развитые возможности уведомлений для разработки и внедрения масштабируемых приложений, способных доставлять персонализированные, своевременные обновления информации множеству соединённых и мобильных устройств.
  • · Integration Services: возможности извлечения, преобразования и загрузки для хранилищ данных и интеграции данных в масштабе предприятия.
  • · Analysis Services: аналитическая обработка в реальном времени (OLAP) для быстрого, сложного анализа больших и смешанных наборов данных, использующая многомерное хранение.
  • · Reporting Services: исчерпывающее решение для создания, управления и доставки как традиционных бумажных отчётов, так и интерактивных, основанных на технологии WWW отчётов.
  • · Инструменты управления: SQL Server включает средства управления для развитого управления и настройки баз данных, также как и тесную интеграцию с такими инструментами, как Microsoft Operations Manager (MOM) и Microsoft Systems Management Server (SMS). Стандартные протоколы доступа к данным существенно уменьшают время, необходимое для интеграции данных SQL Server с существующими системами. В дополнение, поддержка Web служб встроена для обеспечения взаимодействия с другими приложениями и платформами.
  • · Инструменты разработки: SQL Server предлагает интегрированные инструменты разработки для ядра базы данных, извлечения, трансформации и загрузки данных, извлечения информации, OLAP и отчётности, которые тесно интегрированы с Microsoft Visual Studio® для предоставления сквозных возможностей разработки приложений. Каждая главная подсистема SQL Server поставляется со своей собственной объектной моделью и набором API для расширения системы данных в любом направлении, которое уникально для вашего бизнеса.

Особенностью данной СУБД являются следующие средства:

SQL Server Management Studio. SQL Server упрощает управление путём предоставления единой интегрированной консоли управления для мониторинга и управления реляционной базой данных SQL Server, Integration Services, Analysis Services, Reporting Services, Notification Services и SQL Mobile на большом числе распределённых серверов и баз данных. Администраторы баз данных могут выполнять несколько задач одновременно, включая следующие: создание и выполнение запроса, просмотр серверных объектов, управление объектом, отслеживание активности системы и просмотр оперативной справки. SQL Server Management Studio содержит среду разработки для создания, редактирования и управления сценариев и хранимых процедур, используя Transact-SQL, многомерные выражения (MDX), XMLA и SQL Server Mobile Edition. Management Studio легко интегрируется с системой контроля версий. Management Studio также содержит инструменты для планирования задач Агента SQL Server и управления Планами Технического Обслуживания для автоматизации ежедневных задач обслуживания. Объединение задач управления и создания в одном инструменте в соединении со способностью управлять всеми типами серверов обеспечивает улучшенную производительность для администраторов баз данных.

Упреждающий мониторинг и настройка производительности SQL Server предоставляет более 70 новых мер внутренней производительности базы данных и использования ресурсов от памяти, блокировок и планирования до транзакций и операций сетевого и дискового ввода-вывода. Эти Динамические Представления Управления (Dynamic Management Views - DMV) обеспечивают большую прозрачность и видимость состояния базы данных и мощную инфраструктуру для упреждающего мониторинга жизнеспособности и производительности базы данных.

Объекты Управления SQL (SQL Management Objects) Объекты Управления SQL (SMO) являются новым набором объектов для программирования, которые предоставляет полную функциональность для управления базой данных SQL Server. Фактически, Management Studio построена на Объектах Управления SQL. SMO реализована в виде сборки Microsoft .NET Framework. SMO можно использовать для автоматизации распространённых задач администрирования SQL Server, таких как программное получение конфигурационных настроек, создание баз данных, выполнение сценариев Transact-SQL, создание заданий Агента SQL Server и планирование резервного копирования. Объектная модель SMO является более безопасной, надёжной и масштабируемой заменой Распределённым Объектам Управления (DMO), которые входят в состав предыдущих версий SQL Server.

Выделенное административное соединение SQL Server привносит выделенное административное соединение для доступа к серверу даже если он не отвечает или недоступен по иной причине. Это позволяет вам выполнять диагностические функции или операторы Transact-SQL для разрешения проблем на сервере. Административное соединение активируется членами фиксированной серверной роли sysadmin и доступно только через утилиту командной строки SQLCMD либо локально, либо с удалённой машины.

Поддержка Web служб В SQL Server можно разрабатывать Web службы XML в уровне базы данных, используя SQL Server в качестве слушателя HTTP. Это даёт новый способ доступа к данным приложениям, которые сосредоточены вокруг Web служб. В SQL Server 2005 можно использовать HTTP для прямого доступа к SQL Server, без применения слушателя промежуточного уровня, такого как Microsoft Internet Information Services (IIS). SQL Server предоставляет интерфейс Web службы для выполнения SQL выражений и вызова функций и процедур. Результаты запросов возвращаются в XML формате и здесь можно воспользоваться преимуществами инфраструктуры Web служб Visual Studio.

Важно отметить, что MS SQL Server рассчитана на работу именно на платформе Windows. Это ограничивает ее использование в различных сферах деятельности. Кроме того, компания Microsoft ориентируется на снижение стоимости СУБД, что приводит к уменьшению эффективности средств обеспечения надежности и безопасности. Это является важным фактором при выборе СУБД для организации.