Реляционная база данных - это набор отношений, имена которых совпадают с именами схем отношений в схеме БД. На сегодня известно большое число различных серверов баз данных 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 получает новую временную метку и начинается заново. К недостаткам метода временных меток относятся потенциально более частые откаты транзакций, чем в случае использования синхронизационных захватов. Это связано с тем, что конфликтность транзакций определяется более грубо. Кроме того, в распределенных системах не очень просто вырабатывать глобальные временные метки с отношением полного порядка.