Транзакция - это последовательность
операций над БД, которые рассматриваются
СУБД как единое целое и позволяют добавлять,
удалять или обновлять сведения о некотором
объекте в базе (по существу это некоторый
программный код, написанный на одном
из языков управления данными). Либо транзакция
успешно выполняется, и СУБД фиксирует
изменения БД, произведенные этой транзакцией,
либо ни одно из этих изменений никак не
отражается на состоянии БД. Например,
если в результате транзакции произошел
сбой компьютера, база данных попадает
в противоречивое положение - некоторые
изменения уже внесены, остальные нет.
Транзакция позволяет вернуть базу в первоначальное
непротиворечивое состояние (отменить
все выполненные изменения).
Одним из основных требований к СУБД
является надежность хранения данных
во внешней памяти. Под надежностью
хранения понимается то, что СУБД должна
быть в состоянии восстановить последнее
состояние БД после любого аппаратного
или программного сбоя (аварийное
выключение питания, аварийное завершение
работы СУБД или аварийное завершение
пользовательской программы). Понятно,
что в любом случае для восстановления
БД нужно располагать некоторой
дополнительной информацией. Наиболее
распространенным методом поддержания
надежности хранения является ведение
журнала изменений БД.
Журнал - это особая часть БД, недоступная
пользователям и поддерживаемая с особой
тщательностью (иногда поддерживаются
две копии журнала, располагаемые на разных
физических дисках), в которую поступают
записи обо всех изменениях основной части
БД. Изменения БД журнализуются следующим
образом: запись в журнале соответствует
некоторой операции изменения БД (например,
операции удаления строки из таблицы реляционной
БД). С помощью журнала можно решить все
проблемы восстановления БД после любого
сбоя.
СУБД включает язык определения данных,
с помощью которого можно определить структуру
базы, тип данных в ней, указать ограничения
целостности (это язык, с помощью которого
задаются различные имена, свойства объектов).
Кроме того, СУБД позволяет вставлять,
удалять, обновлять и извлекать информацию
из базы данных посредством языка управления
данными - языка запросов, который позволяет
выполнять различные действия с данными,
осуществлять их поиск и выборку. Он содержит
набор различных операторов (заносить
данные, удалять, модифицировать, выбирать
и т.д.). Процесс извлечения данных и их
обработка скрыты от пользователя.
Стандартным языком наиболее распространенных
в настоящее время СУБД является
язык SQL (Structured Query Language). Он имеет сразу
два компонента: язык определения данных
и язык управления данными. Кроме того,
одним из языков управления данными является
язык QBE - язык запросов по образцу. Подробно
о реализации функций СУБД с помощью языка
SQL будет рассказано на отдельных лекциях,
посвященных языку SQL.
Классификация СУБД
- По степени универсальности все СУБД делятся на СУБД общего назначения и специализированные СУБД. СУБД общего назначения не ориентируются на информационные потребности конкретной группы пользователей. Они могут быть использованы для создания и использования баз данных в любой предметной области (документоведение, образование, риэлтерская деятельность и т.д.). К ним относят MS Access, MS FoxPro. Однако в некоторых случаях доступные СУБД общего назначения не позволяют добиться требуемых результатов. С этой целью используют специализированные СУБД, которые позволяют осуществить работу с данными, описывающими информационные потребности узкого круга пользователе. К таким СУБД можно отнести Lotus.
- По функциональности все СУБД делятся на полнофункциональные СУБД, серверы баз данных, клиенты баз данных. Полнофункциональные СУБД представляют собой традиционные СУБД, которые изначально создавались для больших ЭВМ, затем для ПЭВМ. Они являются наиболее многочисленными и мощными по своим возможностям. К ним относят MS Access, MS FoxPro, Paradox, dBase IV. Такие СУБД имеют развитый интерфейс, для создания отчетов и запросов используются мастера. Многие СУБД имеют встроенные языки программирования для профессиональных разработчиков. Серверы БД предназначены для организации центров обработки данных в локальной (или глобальной) сети. Они обладают скудным интерфейсом, однако их основное назначение – организация хранения баз данных удаленных пользователей, защита данных от несанкционированного доступа, ограничение доступа к данным, возможность одновременной работы с базой нескольким пользователям. Данная группа менее многочисленна, однако их количество постоянно растет за счет того, что сегодня практически в любой организации, на любом предприятии все компьютеры соединяются в локальную сеть. Следовательно возникает необходимость организации централизованного хранения базы и создания удаленного многопользовательского доступа к ней. Примером такой СУБД является СУБД MS SQL Server. В роли клиентов баз данных могут использоваться любые полнофункциональные СУБД. здесь их роль сводится к тому, чтобы обеспечить доступ к данным, их просмотр, поиск и выборку.
- По характеру использования СУБД делят на персональные и многопользовательские.
- Персональные СУБД обычно обеспечивают возможность создания персональных баз данных. Такие СУБД могут выступать в роли клиентов БД. К ним относят MS Access, MS FoxPro, Paradox, Clipper.
- Многопользовательские СУБД включают в себя сервер базы данных и клиентскую часть, могут работать с различными операционными системами, с различными типами ЭВМ. К таким СУБД относят Oracle, Informix.
СУБД является достаточно сложным
видом программного обеспечения, поэтому
в составе СУБД можно выделить
ряд программных компонентов:
–ядро СУБД, которое отвечает за управление
данными во внешней памяти, управление
буферами оперативной памяти, транзакциями,
журнализацию. Это главная часть СУБД.
Ядро обладает собственным интерфейсом,
недоступным пользователю напрямую.
–компилятор языка БД (обычно SQL), предназначенный
для работы с данными.
–набор утилит.
СУБД имеет два режима: проектировочный
и пользовательский.
- В проектировочном режиме создаются и изменяются структура базы и ее объекты.
- В пользовательском режиме используются ранее подготовленные объекты для наполнения БД или получения данных из нее.
3.2 Виды СУВД
К видам СУБД относят:
- полнофункциональные - самые многочисленные и мощные по своим возможностям программы, например Microsoft Access, Microsoft FoxPro, Clarion Database Developer и др.;
- серверы баз данных - применяются для организации центров обработки данных в сетях ЭВМ (электронная вычислительная машина). Среди них программы Microsoft SQL Server, NetWare SQL фирмы Novell;
- клиенты баз данных - различные программы (полнофункциональные СУБД, электронные таблицы, текстовые процессоры и т. д.), обеспечивающие большую производительность вычислительной сети, если клиентская и серверная части базы данных будут произведены одной фирмой, но такое условие не является обязательным;
- средства разработки программ работы с базами данных - предназначены для разработки таких программных продуктов, как клиентские программы, серверы баз данных и их отдельные приложения, а также пользовательские приложения. Средствами разработки пользовательских приложений служат системы программирования, библиотеки программ для различных языков программирования, пакеты автоматизации разработок. Самыми часто используемыми средствами разработки пользовательских приложений являются инструментальные средства Delphi фирмы Borland и Visual Basic фирмы Microsoft
3.3 Характеристика видов СУБД
- Полнофункциональные СУБД (ПФСУБД). К ПФСУБД относятся, например, такие пакеты как: Clarion Database Developer, DataBase, Dataplex, dBase IV, Microsoft Access, Microsoft FoxPro и Paradox R:BASE. ПФСУБД имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуры таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. п. Для создания запросов и отчетов не обязательно программирование, а удобно пользоваться языком QBE2. Для обеспечения доступа к другим БД или к данным SQL-серверов3 полнофункциональные СУБД имеют факультативные модули. Многие ПФСУБД включают средства программирования для профессиональных разработчиков.
Характеристика некоторых
видов ПФСУБД:
- Microsoft Office Access или просто Microsoft Access - реляционная СУБД[1] корпорации Microsoft. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных. Благодаря встроенному языку VBA4, в самом Access можно писать приложения, работающие с базами данных.
Основные компоненты MS Access:
- построитель таблиц;
- построитель экранных форм;
- построитель SQL-запросов (язык SQL в MS Access не соответствует стандарту ANSI);
- построитель отчётов, выводимых на печать.
Они могут вызывать скрипты на языке
VBA, поэтому MS Access позволяет разрабатывать
приложения и БД практически «с нуля»
или написать оболочку для внешней БД.
Достоинства и недостатки
К достоинствам языка можно отнести
сравнительную лёгкость освоения, благодаря
которой приложения могут создавать
даже пользователи, не программирующие
профессионально. К особенностям VBA
можно отнести выполнение скрипта
именно в среде офисных приложений.
Недостатком являются проблемы с обратной
совместимостью разных версий. Эти проблемы
в основном связаны только с тем, что код
программы обращается к функциональным
возможностям, появившимся в новой версии
программного продукта, которые отсутствуют
в старой. Также к недостаткам часто относят
и слишком высокую открытость кода для
случайного изменения, тем не менее, многие
программные продукты (например, Microsoft
Office и IBM Lotus Symphony) позволяют пользователю
использовать шифрование исходного кода
и установку пароля на его просмотр.
- dBase - семейство широко распространённых систем управления базами данных, а также язык программирования, используемый в них. Самая первая СУБД этого семейства называлась dBase II и была выпущена в 1980 году компанией Ashton-Tate под CP/M5, позже появились версии для Apple II, Apple Macintosh, UNIX и IBM PC под DOS6. Версия для PC вместе с пришедшими ей на смену dBase III и dBase IV были несколько лет одной из самых распродаваемых программ. Долгое время dBase не портировали под Microsoft Windows, в результате чего в этой нише у программы оказались сильные конкуренты - Paradox, Clipper, FoxPro и Microsoft Access.
- Visual FoxPro (VFP) - объектно-ориентированный и процедурный язык программирования систем управления реляционными базами данных, разработанный корпорацией Microsoft. Основой для данного программного продукта послужил язык программирования FoxPro. Относится к семейству языков xBase, разработанных на базе синтаксиса языка программирования dBase. Другими членами данного семейства являются Clipper и Recital.
- Серверы БД предназначены для организации центров обработки данных в сетях ЭВМ. Серверы БД реализуют функции управления базами данных, запрашиваемые другими (клиентскими) программами обычно с помощью операторов SQL. Примерами серверов БД являются следующие программы: NetWare SQL (Novell), MS SQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress).
Характеристика видов серверов
БД:
- NetWare ( Novell) - сетевая операционная система и набор сетевых протоколов, которые используются в этой системе для взаимодействия с компьютерами-клиентами, подключёнными к сети. Операционная система NetWare создана компанией Novell. NetWare является закрытой операционной системой, использующей кооперативную многозадачность для выполнения различных служб на компьютерах с архитектурой Intel x86 (x86- архитектура процессора c одноимённым набором команд). В основе сетевых протоколов системы лежит стек протоколов Xerox Network Systems . В настоящее время NetWare поддерживает протоколы TCP/IP7 и IPX/SPX8. К таким системам, например, относятся Banyan VINES и Ungerman-Bass Net/One. Система NetWare заняла существенную долю рынка в начале 1990-х и выдержала конкуренцию с Microsoft Windows NT, после выпуска которой прекратили своё существование другие конкурирующие с ней системы.
В основу NetWare была положена очень простая
идея: один или несколько выделенных серверов
подключаются к сети и предоставляют для
совместного использования своё дисковое
пространство в виде «томов». На компьютерах-клиентах
с операционной системой MS-DOS запускается
несколько специальных резидентных программ,
которые позволяют «назначать» буквы
дисков на тома. Пользователям необходимо
зарегистрироваться в сети, чтобы получить
доступ к томам и иметь возможность назначать
буквы дисков. Доступ к сетевым ресурсам
определяется именем регистрации.
Пользователи могут также подключаться
к совместно используемым принтерам
на выделенном сервере и выполнять
печать на сетевых принтерах так
же, как и на локальных.
- Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.
- Interbase - СУБД от компании Borland.
Основой InterBase был проект, разработанный
Джимом Старки во время работы над СУБД.
Джим создал его как реализацию своей
идеи базы данных с многоверсионной архитектурой.
В то время (1984) она называлась JRD (Jim’s Relational
Database). По-видимому, за основу была взята
архитектура Rdb9, так как Джим
Старки был одним из разработчиков этой
СУБД в DEC10.
- Клиенты БД. В роли клиентских программ для серверов БД в общем случае могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты и т. д. При этом элементы пары «клиент — сервер» могут принадлежать одному или разным производителям программного обеспечения. (В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным «любой ценой»). Примером такого соединения является случай, когда одна из полнофункциональных СУБД играет роль сервера, а вторая СУБД (другого производителя) - роль клиента. Так, для сервера БД SQL Server (Microsoft) в роли клиентских (фронтальных) программ могут выступать многие СУБД, такие как: dBASE IV, Blyth Software, Paradox, DataBase, Focus, MDBS III, Revelation, PHPMyAdmin и др.