По работе пришлось в течение некоторого времени разбираться с СУБД IBM DB2. Т.к. система коммерческая, то в интернете не так много информации на русском языке, поэтому решил описать некоторые особенности работы этой СУБД.

Точка входа

Начнем со входной точки в СУБД. В SQL SERVER конечной точкой является экземпляр (instance), в котором конечно могут быть отдельные базы данных, но конфигурация и модель безопасности единая для всего экземпляра. В DB2 же точка входа выглядит так - экземпляр (который соответствует конкретному порту) - база данных. При этом конфигурация есть и для целиком экземпляра, и для отдельной базы данных.

Посмотреть конфигурацию экземпляра можно либо с помощью db2-команды:

Database Manager Configuration

Node type = Enterprise Server Edition with local and remote clients

Database manager configuration release level = 0x0b00

CPU speed (millisec/instruction) (CPUSPEED) = 2.912790e-07
Communications bandwidth (MB/sec) (COMM_BANDWIDTH) = 1.000000e+02

Max number of concurrently active databases (NUMDB) = 8
Federated Database System Support (FEDERATED) = YES
Transaction processor monitor name (TP_MON_NAME) =

Default charge-back account (DFT_ACCOUNT_STR) =

Java Development Kit installation path (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

Diagnostic error capture level (DIAGLEVEL) = 3
Notify Level (NOTIFYLEVEL) = 3
Diagnostic data directory path (DIAGPATH) = /home/db2inst1/sqllib/db2dump

Default database monitor switches
Buffer pool (DFT_MON_BUFPOOL) = OFF

Где будут указаны параметры, их значение и расшифровка. Возможен также сокращенный вариант:

get dbm cfg

Либо с помощью запроса:

Select name, value from sysibmadm.dbmcfg

Из важных параметров можно отметить:

  • тип аутентификации (AUTHENTICATION)
  • путь по умолчанию для создания новых БД (DFTDBPATH)
  • обнаружение сервера по сети (DISCOVER)
Посмотреть настройки конкретной базы можно так:

connect to sample (sample - имя бд)

get database manager configuration

Либо примерно таким же запросом, как и ранее:

select name, value from sysibmadm.dbcfg

Аутентификация

Большим отличием DB2 от других СУБД является модель аутентификации. Здесь нет внутренних пользователей, как в SQL Server или MySQL. Вся аутентификация производится внешними по отношению к СУБД средствами (динамически подгружаемыми плагинами) - средствами операционной системы либо внешними плагинами (Kerberos,GSS API). Тип аутентификации задается в параметре AUTHENTICATION конфигурации менеджера БД. По умолчанию выставлено значение SERVER - имя пользователя и пароль передается в открытом виде и данная пара проверяется на правильность средствами операционной системы. Если имя пользователя и пароль верны, то проверяется наличие привилегии CONNECT у пользователя или групп, в которые он входит (в т.ч. специальная группа PUBLIC, куда входят все авторизованные пользователи). Данные привилегии можно посмотреть в таблице SYSCAT.DBAUTH :

select GRANTEE from SYSCAT.DBAUTH where CONNECTAUTH = "Y"

Большой ошибкой при настройке является включение типа аутентификации CLIENT. В этом случае DB2 доверяет проведение аутентификации подключаемому клиенту и если у PUBLIC есть привилегия CONNECT, то любой пользователь сможет подключиться к БД и получит доступ ко всем данным, которые есть у PUBLIC. Имя пользователя при этом берется из операционной системы. То есть если мы подключаемся через Data Studio пользователем Administrator, то будут предоставлены все привилегии, которые есть у данного пользователя. И в этом случае нет разницы, с какого компьютера был произведен доступ. Данный тип аутентификации рекомендуется включать только тогда, когда есть защищенный канал между сервером и клиентом, и другие клиенты не смогут подключиться к СУБД.

Авторизация

Привилегии уровня конкретного экземпляра прописываются в конфигурации менеджера БД. Это следующие привилегии:

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
Задаются данные привилегии с помощью указания группы, куда будет входить пользователь. В dbmcfg это соответственно параметры SYSADM_GROUP , SYSCTRL_GROUP , SYSMAINT_GROUP и SYSMON_GROUP .

Далее есть привилегии конкретной базы данных. Это такие привилегии, как доступ к базе данных (CONNECTAUTH), создание таблиц (CREATETABAUTH), создание подпрограмм (EXTERNALROUTINEAUTH) и тд. Данные привилегии можно просмотреть в представлении SYSCAT.DBAUTH

И наконец привилегии доступа к конкретным данным - таблицам, подпрограммам и тд. Здесь все довольно тривиально, но тоже с некоторыми особенностями.

Привилегии доступа к таблицам можно просмотреть в представлении SYSCAT.TABAUTH . Тип выданной привилегии хранится в отдельных колонках, в зависимости от самой привилегии (SELECTAUTH,DELETEAUTH и тд). При выдачи привилегии с помощью команды GRANT для привилегий REFERENCES и UPDATE можно также указать имена колонок, на которые будут распространяться данные привилегии. В этом случае информацию об этом можно посмотреть в представлении SYSCAT.COLAUTH

Привилегии подпрограмм (функций, процедур и методов) можно посмотреть в SYSCAT.ROUTINEAUTH . Здесь не совсем все тривиально, в зависимости от полей SPECIFICNAME и TYPENAME привилегии могут быть выданы на все подпрограммы заданной схемы.

Если читателям понравится статья, то готов рассказать по поводу защиты данных в DB2 с помощью Label-Based Access Control

Программные средства , объединяемые названием IBM DB2 Business Intelligence (<деловой интеллект >), предназначены для анализа накопленных (исторических) данных с целью поддержки принятия решений . В настоящее время это направление является одним из наиболее приоритетных в сфере технологий управления данными. Это связано, с одной стороны, с тем, что использование исторических данных может помочь (и помогает) в поиске наилучших решений в деловой деятельности, а, с другой стороны, с возможностями организовать хранение, быстрый поиск необходимых данных и извлечение из них нужной информации (знаний) с помощью современных компьютерных средств.

Функционально программные средства этого направления делят на четыре группы:

  • средства анализа данных в реальном масштабе времени ( OLAP -On-line Analytical Processing );
  • средства cоздания хранилищ данных ( Data Warehouse );
  • средства поддержки доступа к данным;
  • средства интеллектуальной обработки данных, или <добычи информации> ( Intelligent Miner).

Анализ данных в реальном масштабе времени (OLAP) осуществляется c целью поддержки принятия решений (оперативных или стратегических) по управлению бизнесом. Информационные системы , поддерживающие этот вид деятельности, называют Системами поддержки принятия решений (СППР) .

Термин OLAP был предложен в 1993 году Эдвардом Коддом (Э. Кодд - автор реляционной модели данных ). По Кодду, OLAP - это технология комплексного динамического синтеза, анализа и консолидации больших объемов многомерных данных. Существует так называемый <тест FASMI>, содержащий основные принципы OLAP-технологий :

  • Fast (быстрый) - предоставление результатов анализа за приемлемое время (обычно не более пяти секунд);
  • Analysis (анализ) - возможность проведения любого логического и статистического анализа данных, а также сохранения его результатов в доступном для пользователя виде;
  • Shared (разделяемый) - многопользовательский доступ к данным с поддержкой механизмов блокировок и авторизованного доступа;
  • Multidimensional (многомерный) - многомерное представление данных на концептуальном уровне, включая полную поддержку иерархий и множественных иерархий;
  • Information (информации) - возможность обращаться к любой нужной информации независимо от ее объема и места хранения.

Для того чтобы удовлетворить требования относительно времени анализа данных и получения ответа на сложные запросы, понадобилось задействовать новую технологию организации и хранения данных. Эта новая технология получила название < хранилище данных > ( Data Warehouse ).

Хранилище данных . Согласно определению автора концепции хранилища данных Б. Инмона ), это <предметно-ориентированные, интегрированные, неизменчивые, поддерживающие хронологию наборы данных, организованные для целей поддержки принятия решений >. В этом определении под интеграцией данных понимается объединение и согласованное представление данных из различных источников. < Поддержка хронологии> означает наличие <исторических> данных, т.е. данных, соответствующих интервалу времени, предшествующему текущему моменту. <Неизменчивость данных> означает, что изменение данных в хранилище осуществляется путем добавления новых данных, соответствующих определенному временному интервалу, без изменения информации, уже находящейся в хранилище.

К основным требованиям, предъявляемым к хранилищам данных, относятся:

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

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

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

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

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


Рис. 6.14.

Такое представление данных не всегда соответствует целям поддержки принятия решений , когда возникает необходимость быстрого получения ответов на сложные аналитические запросы. Более адекватной здесь является логическая модель данных в виде многомерного куба . Куб - это геометрическая фигура с тремя измерениями. Кубы данных на практике имеют от 4 до 12 измерений; в этих случаях их называют гиперкубами. Измерение в кубе - это одна из характеристик данных. Например, в кубе, показанном на рис. 6.14, измерениями являются <время> (2001 г., 2002 г.), < пункт назначения> (Москва, Санкт-Петербург), <груз> (бензин, уголь). В ячейках куба (рис. 6.14) хранятся данные об объемах перевозок. Эти данные агрегированы по другим измерениям. Например, для куба на рис.6.14, если существует измерение < пункт отправки>, то приведенные на рисунке данные следует рассматривать как агрегированные по этому измерению (т.е. <1000> это есть общая масса угля, завезенного в Москву в 2001 году от всех поставщиков). На многомерном кубе легко определить множество операций, типичных при аналитической работе: сокращение числа измерений (проекции), слияние ( объединение кубов, имеющих общие измерения) и т.д. Например, при агрегировании по измерению <груз> куб на рис. 6.14 превращается в квадрат, показанный на рис. 6.15.


Рис. 6.15. Агрегирование куба рис. 6.3.4 по измерению "груз"

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

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

В отличие от нормализованной логической модели базы данных реляционного типа, логическая модель типа куба допускает избыточность данных, т.е. содержит помимо исходных данных и некоторые заранее вычисленные итоговые данные (агрегированные данные). Это оправдано в СППР , т.к. позволяет уменьшить время реакции системы на сложные запросы.


Рис. 6.16. Иерархическая схема измерения "пункт отправки"

Мы рассмотрели логическую модель хранилища, представляющую данные в виде совокупности многомерных кубов. Физическая реализация хранилища обычно осуществляется одним из следующих способов :

  • с использованием специализированных многомерных структур, отличающихся от традиционных реляционных баз данных;
  • с использованием для хранения данных реляционных баз данных;
  • гибридное решение: детальные данные хранятся в базах реляционного типа, а агрегированные - в специальных многомерных структурах.

В IBM DB2 OLAP Server поддерживается многомерная модель данных на основе реляционной СУБД DB2 UDB. Средства повышения производительности (см. раздел 6.3.2) позволяют обеспечить требуемые временные характеристики.

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

На этапе проектирования в распоряжение пользователя предоставляется набор управляемых инструментов для создания хранилищ данных. В его состав входят инструменты, которые позволяют генерировать различные схемы очистки и загрузки данных, а также графически описывать действия, необходимые для построения и сопровождения хранилища данных. Основной программный продукт этой группы - IBM DB2 Warehouse Manager ; его назначение, функции и особенности приведены в таблице 6.3.

Таблица 6.3. Компоненты IBM Business Intelligence
№ п/п Основное назначение Продукт Функциональность и особенности
1. Анализ данных в реальном масштабе времени ( OLAP ) IBM DB2 OLAP Server
  • поддержка многомерной модели данных (на базе реляционной СУБД);
  • поддержка операции многомерной агрегации данных в различных иерархических структурах;
  • параллельная обработка запросов;
  • использование методов оптимизации запросов
2. Создание хранилищ данных ( Data Warehouse ) IBM DB2 Warehouse Manager
  • расширение функциональности DB2 по извлечению, преобразованию и загрузке данных ( ELT - Extraction , Transformation and Loading);
  • поддержка управления метаданными и информационными каталогами (репозитариями);
  • поддержка средств QMF for Windows (создание запросов для DB2 с помощью Windows или Web-интерфейса);
  • поддержка применения <агентов>, осуществляющих перемещение данных между исходной и целевой системами без участия центрального сервера
3. Поддержка доступа к данным Query Management Facility (QMF)
  • создание отчетов и запросов к базе данных;
  • создание запросов на языке Java для их инициализации через браузер;
  • интеграция результатов выполнения запросов с электронными таблицами и персональными базами данных;
  • использование методов синтаксического анализа запросов на SQL;
  • контроль потребления ресурсов группами пользователей
DB2 Warehouse Manager Connector for SAP R/3
  • доступ и перенос бизнес-объектов SAP в хранилище DB2 ;
  • извлечение умеренных объемов данных SAP R3
D2 Warehouse Manager Connector to the Web
  • извлечение данных из базы данных WSA (IBM WebSphere Site Analyser ) или витрин данных и размещение их в хранилище;
  • проверка выполнения продуктом WSA копирования данных о Web-трафике в целевое хранилище
DB2 Warehouse Manager Sourcing Agent for z/OS
  • программа-агент, предоставляющая возможность для IBM DB2 Warehouse Manager, работающего под Linux, UNIX или Windows, осуществлять извлечение и преобразование данных, размещенных на платформе z/OS
4. Интеллектуальная обработка данных ( Intelligence Miner) DB2 Intelligent Miner Modeling
  • обнаружение ассоциаций;
  • кластеризация ;
  • классификация;
  • совместимость с языком Predective Model Markup Language ( PMML ), версия 2.0
DB2 Intelligent Miner Visualizer
  • графическое представление результатов решения задач обнаружения ассоциаций, кластеризации и классификации;
  • поддержка языка PMML , версия 2.0
DB2 Intelligent Miner Scoring
  • встраивание моделей (результатов интеллектуальной обработки, полученных с помощью DB2 Intelligent Miner Modeling) в приложения для использования с новыми данными
DB2 Intelligent Miner for Text
  • извлечение, индексирование, анализ и классификация информации из текстовых источников (документы, Web-страницы, бланки)

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

Средства интеллектуальной обработки данных (<добычи информации>, Intelligent Miner) . Основное назначение интеллектуальной обработки данных (ИАД) - поиск в данных скрытых закономерностей. Большинство методов ИАД первоначально разрабатывалось в рамках направления исследований, которое получило название < системы искусственного интеллекта >. Только сейчас, когда образовались большие и быстро растущие массивы корпоративных данных, эти методы оказались в полной мере востребованными.

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

Обычно выделяют следующие пять типов задач ИАД :

  • Классификация . Наиболее распространенная задача ИАД. Она позволяет выявить признаки, характеризующие однотипные группы объектов - классы, для того, чтобы по известным значениям этих признаков можно было отнести новый объект к тому или иному классу. Ключевым моментом решения этой задачи является анализ множества заранее классифицированных объектов. Наиболее типичный пример использования классификации - конкурентная борьба между поставщиками товаров и услуг за определенные группы клиентов. Классификация может помочь определить характеристики неустойчивых клиентов, склонных перейти к другому поставщику, что позволяет найти оптимальный способ удержать их от этого шага (например, посредством предоставления скидок, льгот или даже с помощью индивидуальной работы с представителями <групп риска>).
  • Кластеризация . Логически продолжает идею классификации на более сложный случай, когда сами классы не предопределены, т.е. неизвестна принадлежность заданных объектов тому или иному классу. Результатом использования метода, выполняющего кластеризацию, как раз является вариант разбиения множества объектов на группы, включающие <близкие> объекты. Так, можно выделить родственные группы клиентов или покупателей с тем, чтобы вести в их отношении дифференцированную политику. В приведенном выше примере <группа риска> - категории клиентов, готовых уйти к другому поставщику - средствами кластеризации может быть выявлена до начала процесса ухода, что позволит принимать профилактические, а не экстренные меры.
  • Выявление ассоциаций . Ассоциация - это связь между двумя или несколькими одновременно наступающими событиями. Количественной мерой ассоциации может быть, например, условная вероятность события А при условии, что событие В произошло.
  • Выявление последовательностей . Подобно ассоциациям, последовательности определяют связь между событиями, но наступающими не одновременно, а с некоторым разрывом во времени. Мерой взаимосвязи между последовательными событиями А, В, С могут быть условные вероятности события В при условии, что событие А произошло, и условная вероятность события С при условии, что А и В имели место.
  • Прогнозирование . Это задача оценки будущих значений показателя на основе анализа текущих и исторических данных. Например, может быть сделан прогноз объема перевозок, который ожидается в следующем году, на основе данных, накопленных в базе производственно-экономических показателей работы железной дороги. В задачах подобного типа чаще всего используются традиционные методы математической статистики.

DB2 Intelligent Miner - это набор продуктов, который предоставляет в распоряжение пользователя аналитические инструменты, необходимые для принятия продуманных и качественных бизнес-решений. Задачи, решаемые этим набором продуктов, могут привести к выбору более точной маркетинговой стратегии, к уменьшению оттока заказчиков, к увеличению прибыли от торговли через Internet . Основные продукты семейства DB2 Intelligent Miner описаны в таблице 6.3.

DB2 (в русском языке произносится «диби́ два», также распространена калька с английского «диби́ ту») - семейство программных продуктов в области управления информацией компании IBM . Чаще всего, ссылаясь на DB2, имеют в виду реляционную систему управления базами данных DB2 Universal Database (DB2 UDB), разрабатываемую и выпускаемую компанией IBM .

Несмотря на благожелательное отношение к операционной системе Linux , которая распространяется под лицензией с открытым исходным кодом, корпорация IBM пока не планирует открывать коды своей СУБД DB2. Об этом заявил директор центра IBM Linux Technology Джим Васко на прошедшей (апрель 2011 года) в Сан-Франциско ежегодной конференции Linux Foundation Collaboration Summit. Внутри IBM идет постоянная борьба между представителями разных подразделений, пояснил Васко . В одних случаях выбор в пользу Linux или Windows означает снижение доходов от продаж программного обеспечения, но рост доходов от услуг, а в других случаях речь может идти о доходах от продажи оборудования. Приходится искать оптимальное решение, заключил он. Переход под контроль Oracle пакетов с открытым кодом, разрабатывавшихся в Sun Microsystems , создал определенные проблемы для IBM , сообщил Васко. Oracle пытается убедить клиентов обменять оборудование IBM на ее собственные серверы Exadata и СУБД Oracle. В 2011 году директор Linux Foundation Джим Землин ожидает развития на базе Linux специализированных высокопроизводительных систем наподобие IBM Watson и готовых устройств, требующих минимальной настройки.

Реализации

В настоящее время, помимо коммерческих продуктов семейства, IBM распространяет также бесплатный дистрибутив DB2 Express-C для платформ Linux (x86, x86-64, POWER), Windows (x86, x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). Бесплатная версия имеет ограничения на использование для работы СУБД не более одного двухъядерного процессора и 2 Гбайт оперативной памяти (общее количество процессоров и памяти в системе может быть любым, но ресурсы сверх указанных ограничений не будут использоваться СУБД).

2017: Анонс дополнений для контроля над данными

Db2 on Cloud

Обновленное решение Db2 on Cloud является полностью управляемым сервисом, доступным в IBM Cloud .

Среди характеристик технологии:

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

В целом решение Db2 on Cloud позволяет избежать трудоемкого процесса согласования и закупки дополнительных вычислительных ресурсов и дополняет IBM Db2 Hosted, версию базы данных , размещенную в IBM Cloud.

Db2 on Cloud Benchmark

DB2 Analytics Accelerator

Версии

2017: JSON и HTAP

DB2 10 представляет собой первое существенное обновление СУБД за последние несколько лет: 10-я версия системы для z/OS, правда, вышла в 2010 году, но этот релиз предназначен для одновременно Linux , Unix и Windows систем.

Оба продукта содержат новый функционал. DB2 теперь поддерживает формат RDF (Resource Description Framework), а InfoSphere может взаимодействовать с развертываниями Apache Hadoop . В числе других улучшений в DB2, в частности, можно отметить ускорение процессов резервного копирования и ввода-вывода.

DB2 10 также является и более гибкой. В частности, администраторы СУБД получили инструментарий для распределения данных для хранения по разным типам носителей: например, оперативная информация может размещаться на более быстрых твердотельных накопителей, а менее ценные данные – на более дешевых и медленных накопителях на магнитной ленте.

Новая функция под названием time travel позволяет более эффективно управлять временными данными, у пользователей 10-й версии для z/OS она имела большой успех. С ее помощью пользователь или программа могут изучать данные в контексте времени их существования в СУБД по заданным периодам. Использование таких средов актуально для аналитики.

DB2 10 может быть загружена бесплатно для использования в промышленном окружении на не более чем двух процессорных ядрах и 2Гб памяти. Более функциональные версии обойдутся в сумму начиная от $6180, куда входит и стоимость годового обслуживания. Стоимость InfoSphere базируется на количестве процессоров или объеме хранимых данных, базовые версии обойдутся в порядка $40 тыс за Тб.

IBM DB2 10.5 версия

История

DB2 имеет долгую историю и, как некоторые считают, стала первой СУБД , использующей SQL.

С 1975 по 1982 год прототип DB2 разрабатывался в IBM под названием System Relational, или System R. Язык SQL впервые был реализован именно в IBM System R, но эта система имела исследовательский характер, а коммерческий продукт, включающий SQL, первой выпустила компания Oracle в 1979 году.

СУБД DB2 получила своё название в 1982 году, когда был выпущен первый коммерческий релиз для VM под названием SQL/DS, и затем релиз для MVS под названием DB2. Долгое время наряду с «DB2» употреблялся вариант «Database 2», также являющийся торговой маркой IBM . По всей видимости, имелось в виду, что это вторая флагманская СУБД IBM после старой иерархической СУБД IMS.

Развитие DB2 уходит корнями в начало 1970-х, когда доктор Э. Ф. Кодд, работавший на IBM , разработал теорию реляционных баз данных и в июне 1970 года опубликовал модель манипуляции данными. Для воплощения этой модели он разработал язык реляционных баз данных и назвал его Alpha. IBM предпочла передать дальнейшую разработку группе программистов, неподконтрольной доктору Кодду. Нарушив некоторые принципы реляционной модели, они реализовали её как «структурированный английский язык запросов», сокращённо SEQUEL. Поскольку SEQUEL было уже зарегистрированной торговой маркой, название сократили до SQL - «структурированный язык запросов», и таким оно осталось по сей день.

Таким образом, исторически СУБД DB2 возникла из продуктов DB2 для MVS (потомком которого является DB2 for z/OS) и родственного ему SQL/DS для VM (потомок - DB2 Server for VSE & VM). В дальнейшем другим коллективом разработчиков в IBM был реализован сервер OS/2 EE Database Manager, впоследствии эволюционировавший в DB2 v2 для OS/2, AIX и затем Windows , а потом в DB2 UDB (его потомок - DB2 for Linux , UNIX and Windows). Ещё одним коллективом была выполнена интеграция архитектуры DB2 со встроенной базой данных AS/400 (потомок - DB2 for i). IBM постепенно движется по пути интеграции всех этих веток.

Особенности

К отличительным особенностям DB2 относится диалект языка SQL, определяющий, за редкими исключениями, чисто декларативный смысл языковых конструкций, и мощный многофазовый оптимизатор, строящий по этим декларативным конструкциям эффективный план выполнения запроса. В отличие от других диалектов SQL, в диалекте SQL DB2 практически отсутствуют подсказки оптимизатору, мало развит (а долгое время вообще отсутствовал) язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Язык SQL DB2 при этом является вычислительно полным, то есть потенциально позволяет в декларативной форме определять любые вычислимые соответствия между исходными данными и результатом. Это достигается в том числе за счёт использования табличных выражений, рекурсии и других развитых механизмов манипулирования данными.

Благодаря приоритету IBM в развитии реляционной теории и позициям фирмы в компьютерной отрасли, диалект DB2 SQL оказывает значительное влияние на стандарты SQL ANSI/ISO.

Хранимые процедуры в DB2 не очень широко применяются, при этом традиционно для написания хранимых процедур используются обычные языки программирования высокого уровня (Си, Java , PL/I, Кобол и т.д.), это позволяет программисту легко оформлять один и тот же код либо как часть приложения, либо как хранимую процедуру, в зависимости от того, на клиенте или на сервере его целесообразнее выполнять. В настоящее время в DB2 также реализовано процедурное расширение SQL для хранимых процедур в соответствии со стандартом ANSI SQL/PSM.

Оптимизатор DB2 широко использует статистику распределения данных в таблицах (если процесс её сбора был выполнен администратором базы данных), поэтому один и тот же запрос на языке SQL может быть оттранслирован в совершенно различные планы выполнения в зависимости от статистических характеристик данных, которые он обрабатывает.

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

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

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

DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2).

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

DB2 (в русском языке произносится «диби́ два», также распространена калька с английского «диби́ ту») - семейство программных продуктов в области управления информацией компании IBM .

Чаще всего, ссылаясь на DB2, имеют в виду реляционную систему управления базами данных DB2 Universal Database (DB2 UDB), разрабатываемую и выпускаемую компанией IBM.

Иногда встречается написание «DB/2», но такое написание неверно: в системе обозначений IBM число в знаменателе дроби означает платформу и «/2» означает продукт для операционной системы OS/2 (или серии компьютеров PS/2). Например, версия DB2 для OS/2 обозначалась «DB2/2».

Реализации

В настоящее время СУБД DB2 представлена версиями на следующих платформах:

  • DB2 for Linux, UNIX and Windows v9 для платформ AIX , HP-UX , Linux , Solaris , Windows и бета-версия для платформы Mac OS X
  • DB2 for z/OS v9 для платформ z/OS и OS/390
  • DB2 Server for VSE & VM v7 для платформ z/VM и z/VSE
  • DB2 for i для платформы IBM i (встроена в систему на аппаратно-программном уровне)

В прошлом выпускались версии сервера СУБД DB2 для OS/2 , UnixWare , PTX.

Клиенты СУБД DB2, помимо перечисленных платформ, выпускаются или выпускались в различных версиях также для SINIX, IRIX , классической Mac OS и для MS-DOS , а также в мобильной версии DB2 Everyplace для Windows CE , Palm OS , Symbian OS , Neutrino и виртуальной машины Java .

В настоящее время, помимо коммерческих продуктов семейства, IBM распространяет также бесплатный дистрибутив DB2 Express-C для платформ Linux (x86, x86-64, POWER), Windows (x86, x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). Бесплатная версия имеет ограничения на использование для работы СУБД не более одного двухъядерного процессора и 2 Гбайт оперативной памяти (общее количество процессоров и пямяти в системе может быть любым, но ресурсы сверх указанных ограничений не будут использоваться СУБД).

История

DB2 имеет долгую историю и, как некоторые считают, стала первой СУБД, использующей SQL .

С 1975 по 1982 год прототип DB2 разрабатывался в IBM под названием System Relational, или System R . Язык SQL впервые был реализован именно в IBM System R, но эта система имела исследовательский характер, а коммерческий продукт, включающий SQL, первой выпустила компания Oracle в 1979 году.

СУБД DB2 получила своё название в 1982 году, когда был выпущен первый коммерческий релиз для под названием SQL/DS, и затем релиз для MVS под названием DB2. Долгое время наряду с «DB2» употреблялся вариант «Database 2», также являющийся торговой маркой IBM. По всей видимости, имелось в виду, что это вторая флагманская СУБД IBM после старой иерархической СУБД IMS.

Развитие DB2 уходит корнями в начало 1970-х, когда доктор Э. Ф. Кодд , работавший на IBM, разработал теорию реляционных баз данных и в июне 1970 года опубликовал модель манипуляции данными. Для воплощения этой модели он разработал язык реляционных баз данных и назвал его Alpha. IBM предпочла передать дальнейшую разработку группе программистов, неподконтрольной доктору Кодду. Нарушив некоторые принципы реляционной модели, они реализовали её как «структурированный английский язык запросов», сокращённо SEQUEL. Поскольку SEQUEL было уже зарегистрированной торговой маркой, название сократили до SQL - «структурированный язык запросов», и таким оно осталось по сей день.

Таким образом, исторически СУБД DB2 возникла из продуктов DB2 для MVS (потомком которого является DB2 for z/OS) и родственного ему SQL/DS для VM (потомок - DB2 Server for VSE & VM). В дальнейшем другим коллективом разработчиков в IBM был реализован сервер OS/2 EE Database Manager, впоследствии эволюционировавший в DB2 v2 для OS/2, AIX и затем Windows, а потом в DB2 UDB (его потомок - DB2 for Linux, UNIX and Windows). Ещё одним коллективом была выполнена интеграция архитектуры DB2 со встроенной базой данных AS/400 (потомок - DB2 for i). IBM постепенно движется по пути интеграции всех этих веток.

Особенности

К отличительным особенностям DB2 относится диалект языка SQL, определяющий, за редкими исключениями, чисто декларативный смысл языковых конструкций, и мощный многофазовый оптимизатор, строящий по этим декларативным конструкциям эффективный план выполнения запроса. В отличие от других диалектов SQL, в диалекте SQL DB2 практически отсутствуют подсказки оптимизатору, мало развит (а долгое время вообще отсутствовал) язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Язык SQL DB2 при этом является вычислительно полным, то есть потенциально позволяет в декларативной форме определять любые вычислимые соответствия между исходными данными и результатом. Это достигается в том числе за счёт использования табличных выражений, рекурсии и других развитых механизмов манипулирования данными.

Благодаря приоритету IBM в развитии реляционной теории и позициям фирмы в компьютерной отрасли, диалект DB2 SQL оказывает значительное влияние на стандарты SQL ANSI /ISO .

Хранимые процедуры в DB2 не очень широко применяются, при этом традиционно для написания хранимых процедур используются обычные языки программирования высокого уровня (Си , Java , PL/I , Кобол и т.д.), это позволяет программисту легко оформлять один и тот же код либо как часть приложения, либо как хранимую процедуру, в зависимости от того, на клиенте или на сервере его целесообразнее выполнять. В настоящее время в DB2 также реализовано процедурное расширение SQL для хранимых процедур в соответствии со стандартом ANSI SQL/PSM.

Оптимизатор DB2 широко использует статистику распределения данных в таблицах (если процесс её сбора был выполнен администратором базы данных), поэтому один и тот же запрос на языке SQL может быть оттранслирован в совершенно различные планы выполнения в зависимости от статистических характеристик данных, которые он обрабатывает.

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

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

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

DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i ; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2).

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

Обработка ошибок

Полезной особенностью SQL-сервера DB2 является возможность обработки ошибок. Для этой цели используется структура SQLCA (англ. SQL Communications Area - область связи SQL), возвращающая информацию об ошибке прикладной программе после каждого выполнения SQL-выражения.

Поля структуры SQLCODE и их значения

Основная, но не всегда полезная диагностика ошибки содержится в поле SQLCODE (тип данных - целое число) внутри SQLCA блока. Она может принимать следующие значения:

  • 0 означает успешное выполнение.
  • Положительное число означает успешное выполнение с одним или более предупреждениями. Например, +100 означает, что не найдены столбцы.
  • Отрицательное число означает неудачу с ошибкой. Например, −911 означает обнаруженный истёкший интервал ожидания блокировки (или мёртвую блокировку), запускающий последовательный откат.

SQLERRM (тип данных - строка из 71 символа). Содержит текстовую строку с описанием ошибки в случае, если поле SQLCODE меньше нуля.

SQLERRD (тип данных - массив , 6 целых чисел). Описывает результат выполнения последнего оператора SQL:

  • 1 элемент - внутренняя информация;
  • 2 элемент - содержит сгенерированное сервером значение поля типа SERIAL для оператора INSERT, либо дополнительный код ошибки;
  • 3 элемент - равен количеству обработанных записей;
  • 4 элемент - примерная стоимость выполнения данного оператора;
  • 5 элемент - смещение ошибки в текстовой записи оператора SQL;
  • 6 элемент - внутренняя информация.

Примечания

Ссылки

  • Страница программы на сайте IBM
  • DB2 на developerWorks - статьи и тренинги о DB2
  • PlanetDB2 - блоги о DB2

Литература

  • Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с. - ISBN 5-279-00063-9
  • Зикопулос П. К., Бакларц Дж., деРус Д., Мельник Р. Б. DB2 версии 8: официальное руководство = DB2 Version 8: The Official Guide. - М.: КУДИЦ-ОБРАЗ, 2004. - 400 с. - ISBN 5-9579-0031-1
  • Смирнов С. Н. Работаем с IBM DB2: Учебное пособие. - М.: Гелиос, 2001. - 304 с. - ISBN 5-85438-007-2 (рекомендовано УМО вузов в области информационной безопасности в качестве учебного пособия по специальностям «Комплексное обеспечение информационной безопасности автоматизированных систем» и «Компьютерная безопасность»)
  • Сьюзен Виссер, Билл Вонг. Освой самостоятельно DB2 Universal Database за 21 день = Sams Teach Yourself DB2 Universal Database in 21 Days. - 2-е изд. - М.: Вильямс , 2004. - 528 с. - ISBN 0-672-32582-9
  • Hook J., Harbus R., Snow D. The Universal Guide to DB2 for Windows NT®. - New Jersey: Prentice Hall PTR, 1999. - P. 504. - ISBN 0-13-099723-4

Wikimedia Foundation . 2010 .

Смотреть что такое "IBM DB2" в других словарях:

    IBM DB2 - Developer(s) IBM Initial release 1983 (1983) … Wikipedia

    IBM DB2 - DB2 ist ein kommerzielles relationales Datenbank Management System (RDBMS) der Firma IBM, dessen Ursprünge auf das System R und die Grundlagen von E. F. Codd vom IBM Research aus dem Jahr 1970 zurückgeht. Inhaltsverzeichnis 1 Eigenschaften 1.1… … Deutsch Wikipedia

    IBM DB2 - Développeur IBM Dernière version … Wikipédia en Français

    IBM DB2 Commonstore - DB2 CommonStore Archiving software produced by IBM for managing e mail messages or SAP ERP data. Part of the IBM Information Management portfolio which builds upon the DB2 database platform. DB2 CommonStore is one of several products which are… … Wikipedia

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

Oracle8i. Пакет Oracle8i, наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой. (сложность и дороговизна-спорны). Среди основных свойств СУБД Oracle следует отметить такие, как: Высочайшая надежность. Возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами; Наличие универсальных средств защиты информации; Эффективные методы максимального повышения скорости обработки запросов; Индексация по битовому отображению; Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании); Распараллеливание операций в запросе. Наличие широкого спектра средств разработки, мониторинга и администрирования. Ориентация на интернет технологии.Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на интернет технологии - основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных. Компоненты Enterprise JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java. Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами: Очень развитые средства для обработки аудио клипов; Неподвижных изображений; Видеофрагментов; Географических данных (с целым набором функций связанных с определением местонахождения входящих в состав модуля Locator). В Oracle8i реализуются лучшие на сегодняшний день средства для объектно-ориентированного конструирования баз данных, в том числе табличные структуры, допускающие наследование свойств и методов других табличных объектов БД, что позволят избежать ошибок при построении БД и облегчает их обслуживание. Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании InterBase компании Inprise). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е. в Oracle отсутствуют блокировки на чтение). Эта функция позволяет СУБД Oracle8i выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности.

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

IBM DB2 СУБД 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.

2)Предложение SELECT языка SQL. Встроенные функции.

SELECT column FROM table WHERE column LIKE pattern

SELECT * FROM Store_Information WHERE store_name LIKE "%AN% ‘;

SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2

SELECT * FROM Persons WHERE LastName BETWEEN "Hansen" AND "Pettersen";

SELECT * FROM Persons WHERE LastName NOT BETWEEN "Hansen" AND "Pettersen";

SELECT Company, OrderNumber FROM Orders ORDER BY( сортировка ) Company;

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber;

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC( обратный порядок ) ;

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC , OrderNumber ASC( прав . порядок ) ;

SELECT * FROM Persons WHERE FirstName="Tove" AND LastName="Svendson";

SELECT * FROM Persons WHERE firstname="Tove" OR lastname="Svendson" ;

SELECT * FROM Persons WHERE (FirstName="Tove" OR FirstName="Stephen") AND LastName="Svendson" ;

SELECT store_name FROM Store_Information WHERE Sales > 1000 OR (Sales < 500 AND Sales > 275);

Функции SELECT function ( column ) FROM table AVG - среднее значение в столбце; COUNT - число значений в столбце; MAX - самое большое значение в столбце; MIN - самое малое значение в столбце; SUM - сумма значений по столбцу

Примеры : SELECT AVG (Age) FROM Persons; SELECT COUNT (store_name) FROM Store_Information ; SELECT COUNT (DISTINCT store_name) FROM Store_Information; SELECT MAX (Age) FROM Persons SELECT SUM (Sales) FROM Store_Information;

3)Cериализация транзакций, конфликты операций. Методы сериализации транзакций. Синхронизационные захваты, гранулированные синхронизационные захваты. Методы сериализации транзакций. Предикатные синхронизационные захваты. Cериализация на основе временных меток.

Чтобы добиться изолированности транзакций, в СУБД должны использоваться методы регулирования совместного выполнения транзакций. План (способ) выполнения набора транзакций называется сериальным , если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций. Сериализация транзакций - это механизм их выполнения по некоторому сериальному плану. Обеспечение такого механизма является основной функцией компонента СУБД, ответственного за управление транзакциями. Система, в которой поддерживается сериализация транзакций обеспечивает реальную изолированность пользователей. Основная реализационная проблема состоит в выборе метода сериализации набора транзакций, который не слишком ограничивал бы их параллельность. Приходящим на ум тривиальным решением является действительно последовательное выполнение транзакций. Но существуют ситуации, в которых можно выполнять операторы разных транзакций в любом порядке с сохранением сериальности. Примерами могут служить только читающие транзакции, а также транзакции, не конфликтующие по объектам базы данных. Между транзакциями могут существовать следующие виды конфликтов: W-W - транзакция 2 пытается изменять объект, измененный не закончившейся транзакцией 1; R-W - транзакция 2 пытается изменять объект, прочитанный не закончившейся транзакцией 1; W-R - транзакция 2 пытается читать объект, измененный не закончившейся транзакцией 1. Практические методы сериализации транзакций основывается на учете этих конфликтов.

Существуют два базовых подхода к сериализации транзакций - основанный на синхронизационных захватах объектов базы данных и на использовании временных меток. Суть обоих подходов состоит в обнаружении конфликтов транзакций и их устранении. Наиболее распространенным в централизованных СУБД (включающих системы, основанные на архитектуре "клиент-сервер") является подход, основанный на соблюдении двухфазного протокола синхронизационных захватов объектов БД. В общих чертах протокол состоит в том, что перед выполнением любой операции в транзакции T над объектом базы данных r от имени транзакции T запрашивается синхронизационный захват объекта r в соответствующем режиме (в зависимости от вида операции). Основными режимами синхронизационных захватов являются: совместный режим - S (Shared), означающий разделяемый захват объекта и требуемый для выполнения операции чтения объекта; монопольный режим - X (eXclusive), означающий монопольный захват объекта и требуемый для выполнения операций занесения, удаления и модификации. Гранулированный синхронизационный захват - подход, при применении которого синхронизационные захваты могут запрашиваться по отношению к объектам разного уровня: файлам, отношениям и кортежам. Требуемый уровень объекта определяется тем, какая операция выполняется (например, для выполнения операции уничтожения отношения объектом синхронизационного захвата должно быть все отношение, а для выполнения операции удаления кортежа - этот кортеж). Объект любого уровня может быть захвачен в режиме S или X. Предикатный синхронизационный захват - это захват не объектов, а условий (предикатов), которым удовлетворяют эти объекты.Альтернативный метод сериализации транзакций, хорошо работающий в условиях редких конфликтов транзакций и не требующий построения графа ожидания транзакций. основан на использовании временных меток. Основная идея метода (у которого существует множество разновидностей) состоит в следующем: если транзакция T1 началась раньше транзакции T2, то система обеспечивает такой режим выполнения, как если бы T1 была целиком выполнена до начала T2.

Для этого каждой транзакции T предписывается временная метка t, соответствующая времени начала T. При выполнении операции над объектом r транзакция T помечает его своей временной меткой и типом операции (чтение или изменение). Перед выполнением операции над объектом r транзакция T1 выполняет следующие действия: Проверяет, не закончилась ли транзакция T, пометившая этот объект. Если T закончилась, T1 помечает объект r и выполняет свою операцию. Если транзакция T не завершилась, то T1 проверяет конфликтность операций. Если операции неконфликтны, при объекте r остается или проставляется временная метка с меньшим значением, и транзакция T1 выполняет свою операцию. Если операции T1 и T конфликтуют, то если t(T) > t(T1) (т.е. транзакция T является более "молодой", чем T), производится откат T и T1 продолжает работу. Если же t(T) < t(T1) (T "старше" T1), то T1 получает новую временную метку и начинается заново. К недостаткам метода временных меток относятся потенциально более частые откаты транзакций, чем в случае использования синхронизационных захватов. Это связано с тем, что конфликтность транзакций определяется более грубо. Кроме того, в распределенных системах не очень просто вырабатывать глобальные временные метки с отношением полного порядка.