Меню
Бесплатно
Главная  /  Программы  /  Общее принципы построения систем управления базами данных. Требования к современным субд

Общее принципы построения систем управления базами данных. Требования к современным субд

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

Какими бывают системы управления базами данных

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

Системы управления базами данных можно классифицировать различными способами — по принципу организации данных (реляционные, иерархические, сетевые…), по способу доступа (однопользовательские и многопользовательские), по архитектуре (настольные и серверные), по функциональным возможностям и по возможностям, связанным с масштабируемостью.

В настоящее время наиболее часто применяются реляционные СУБД с архитектурой «клиент-сервер», хотя изредка еще можно встретить приложения, использующие настольные СУБД. Базы данных, управляемые настольными СУБД, обычно представляют собой файл или набор файлов, а сами СУБД являются набором библиотек, с помощью которых применяющие их приложения могут вносить изменения в эти файлы. Иногда настольные СУБД снабжаются также оболочкой для создания таблиц и иных объектов и даже для разработки простейших приложений, например в случае Microsoft Access, наиболее популярной в настоящее время, именно оболочка, а не библиотека является коммерческим продуктом.

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

Требования к современным СУБД

современным СУБД предъявляются следующие требования:

  • масштабируемость — отсутствие существенного снижения скорости выполнения пользовательских запросов при пропорциональном росте количества запросов и аппаратных ресурсов используемых данной СУБД (таких как объем оперативной памяти, количество процессоров и серверов);
  • доступность — возможность всегда выполнить запрос;
  • надежность — минимальная вероятность сбоев, наличие средств восстановления данных после сбоев, инструментов резервного копирования и дублирования данных (в последнее время производители СУБД нередко предлагают инструменты, позволяющие осуществлять подобные операции, не прерывая работу пользователей);
  • управляемость — простота администрирования, наличие средств автоматического конфигурирования (типичный современный набор средств администрирования включает средства создания баз данных и их объектов, инструменты описания правил репликации данных между различными серверами, утилиты управления пользователями, группами и их правами, средства мониторинга событий, средства просмотра планов выполнения запросов, утилиты миграции из других СУБД);
  • наличие средств защиты данных от потери и несанкционированного доступа;
  • поддержка доступа к данным с помощью Web-служб;
  • поддержка стандартных механизмов доступа к данным (таких как ODBC, JDBC, OLE DB, ADO .NET), позволяющая создавать приложения для СУБД с помощью различных средств разработки.

Несоответствие СУБД какому-либо из этих требований приводит к тому, что даже у неплохой по другим потребительским свойствам СУБД область применения оказывается весьма ограниченной. Так, СУБД с плохой масштабируемостью, успешно применявшаяся при небольшом объеме обрабатываемых данных, оказывается непригодной в случае увеличения их количества. Отсутствие необходимых административных утилит также нередко приводит к отказу от применения некоторых СУБД. Плохие масштабируемость и доступность влекут за собой дополнительные затраты рабочего времени сотрудников, простои, а также потерю компанией клиентов, отчаявшихся дождаться ответа на заданный по телефону вопрос или на введенный на Web-сайте запрос. Отсутствие поддержки серверного кода приводит к тому, что СУБД, с успехом применяющаяся на корпоративном Web-сайте, не может быть использована для создания других внутрикорпоративных приложений. Отсутствие поддержки стандартных механизмов доступа к данным может автоматически привести к тому, что использующие средства разработки, ориентированные на эти механизмы, откажутся применять данную СУБД.

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

СУБД ведущих производителей

огласно данным ряда аналитических отчетов (см., например: Strange K. Magic Quadrant for Data Warehouse DBMSs// Gartner Research Note M-22-2154. 2004), лидерами рынка СУБД на данный момент являются давно и успешно представленные на российском рынке компании IBM, Oracle, Microsoft, Sybase и Teradata, а также относительно молодая компания Netezza, которая на отечественном рынке практически неизвестна. Далее мы кратко рассмотрим особенности продуктов этих компаний.

DB2 Universal Database (IBM)

Семейство серверных СУБД фирмы IBM, известное под названием DB2 Universal Database (DB2 UDB), впервые появилось в 1996 году и предназначалось для платформ UNIX, OS/2 и Microsoft Windows NT. Последняя версия этого продукта, DB2 UDB 8.2, функционирует под управлением операционных систем AIX, AIX, Linux, HP-UX, Sun и Windows.

Особенностями данной СУБД являются развитые средства самовосстановления и автоматического выполнения операций, связанных с поддержкой базы данных (таких как создание резервных копий и дефрагментация данных). Из механизмов доступа к данным DB2 UDB поддерживает ODBC, JDBC, ADO/OLE DB, ADO .NET. Данная СУБД позволяет создавать серверный код на CLR-совместимых языках, таких как C# и Visual Basic .NET.

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

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

Oracle 10g (Oracle)

Oracle, появившаяся в 1979 году, была первой коммерческой реляционной СУБД, которая поддерживала язык SQL, ставший ныне индустриальным стандартом. Ранние версии этой СУБД создавались для мэйнфреймов, однако в 1985 году появились версии Oracle, предназначенные для использования в архитектуре «клиент-сервер». Это была первая СУБД, использовавшая предоставляемые некоторыми серверными платформами средства параллельных вычислений.

В настоящее время последней ее версией является Oracle 10g. Эта СУБД отвечает самым строгим требованиям к качеству обслуживания, обладает возможностями кластеризации (для этого предназначен модуль Oracle Real Application Clusters), развитыми средствами безопасности.

СУБД Oracle 10g предоставляет средства параллельной обработки запросов, встроенные средства OLAP, средства быстрого извлечения, преобразования и загрузки данных, служб порталов, средств бизнес-анализа, распространения отчетов и анализа действий пользователей, инструменты анализа производительности СУБД, обеспечивает поддержку кластеров.

Из механизмов доступа к данным Oracle 10g поддерживает ODBC, JDBC и ADO/OLE DB, кроме того, для этой СУБД существует.NET-провайдер и соответствующий набор классов от Microsoft. Клиентская часть Oracle содержит также набор COM-объектов для доступа к данным (Oracle Objects for OLE). Отметим, что и многие другие компании производят ODBC-драйверы и OLE DB-провайдеры для доступа к Oracle — эту СУБД поддерживают все ведущие производители средств разработки, генераторов отчетов, средств аналитической обработки данных.

И на Западе, и в России нередко используются готовые корпоративные решения от Oracle Corporation, объединенные под общим названием Oracle Applications, такие как Oracle Financials, Oracle Human Resources, Oracle Market Management, Oracle Project Systems и др., — собственно, продажа и поддержка именно этих приложений и составляют основную часть бизнеса компании.

SQL Server 2000 и SQL Server 2005 (Microsoft)

Первая версия Microsoft SQL Server — совместный продукт компаний Microsoft и Sybase, выпущенный в 1988 году, — была разработана для платформы OS/2. Последующие версии этого сервера баз данных предназначались для платформы Windows и со временем были тесно интегрированы с этой операционной системой. Для других платформ версии данного сервера не выпускались и не выпускаются.

Наиболее часто используемая версия этой СУБД — Microsoft SQL Server 2000 — отличается повышенной масштабируемостью и производительностью. Она позволяет использовать на одном компьютере несколько одновременно работающих серверов, поддерживает создание кластеров, параллельные вычисления в многопроцессорных системах, распределенные запросы. Средства администрирования Microsoft SQL Server 2000 считаются одними из наиболее простых и удобных. Помимо средств решения стандартных задач администрирования, таких как создание баз данных и их объектов, управление привилегиями пользователей и групп, резервное копирование и восстановление, репликация данных, они включают утилиты обмена данными с другими СУБД и хранилищами данных. В состав этого продукта входит OLAP-сервер — именно с его появления в составе SQL Server началось включение OLAP-средств в состав СУБД других производителей и перемещение их из категории дорогостоящих, элитных продуктов в категорию продуктов, широко применяемых даже в небольших компаниях.

Из механизмов доступа к данным этот продукт поддерживает ODBC, OLE DB/ADO, ADO .NET. Имеется также JDBC-драйвер производства компании Microsoft. Нельзя не отметить великолепные средства интеграции этой СУБД с Microsoft Office, вплоть до инструментов манипуляции OLAP-данными из этих приложений.

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

Еще одним из основных технологических новшеств ожидаемой версии SQL Server является интеграция с Microsoft .NET Framework 2.0 на уровне Common Language Runtime в самой СУБД, что позволит создавать серверный код на любом CLR-совместимом языке программирования, например на C# или на Visual Basic. Отметим также существенное расширение аналитических возможностей данной СУБД, например появление новых алгоритмов Data Mining.

SQL Server 2005 будет создана в виде не только 32-, но и 64-разрядной версии, поддерживающей процессоры Intel Itanium и AMD Opteron. А для решения относительно несложных задач, использующих небольшие базы данных, будет выпущена бесплатная версия Microsoft SQL Server 2005 Express Edition.

Adaptive Server Enterprise и Adaptive Server IQ (Sybase)

Серверные продукты компании Sybase происходят от одной из ранних версий Microsoft SQL Server, созданной совместно Microsoft и Sybase. Начиная с 1994 года Microsoft и Sybase разрабатывают свои серверные продукты независимо друг от друга, и результатом деятельности компании Sybase в этом направлении является продукт Adaptive Server Enterprise (ASE), последняя версия которого, 12.5.2, существует для Windows NT/2000 и некоторых версий UNIX и Linux.

В настоящее время Adaptive Server Enterprise поддерживает упреждающее асинхронное чтение, что повышает скорость выполнения сложных запросов; создание кластеров; наличие 64-разрядной версии; распределенную обработку запросов, в том числе к базам данных других производителей; расширенные хранимые процедуры, позволяющие осуществлять легкий доступ к функциям, которые написаны на языках, отличных от SQL; параллельную обработку запросов в многопроцессорных системах; параллельную работу утилит администрирования; динамическую конфигурацию сервера и резервное копирование данных с компрессией. Особо стоит отметить службы Sybase Real-Time Data Services, предназначенные для организации передачи сообщений в реальном времени при возникновении каких-либо событий в базах данных, в том числе в базах данных, управляемых СУБД других производителей.

Из универсальных механизмов доступа к данным ASE поддерживает ODBC, JDBC, OLE DB/ADO. Отметим, что нередко вместе с ASE используются средства разработки и проектирования данных самой компании Sybase.

Для создания многомерных хранилищ данных у Sybase существует еще один серверный продукт — Adaptive Server IQ, позволяющий создавать хранилища на основе данных из СУБД производства не только Sybase, но и других производителей. Высокая скорость выполнения запросов в этом продукте обусловлена нестандартным способом хранения данных. Отметим также, что существует ряд продуктов под общим названием Sybase Industry Warehouse Studio, ориентированных на обслуживание конкретных предметных областей.

Teradata Database V2R6.0 (Teradata)

В течение последних нескольких лет СУБД компании Teradata считаются лидирующими продуктами среди СУБД, предназначенных для создания хранилищ данных. Последняя версия этой СУБД, Teradata Database V2R6.0, доступна для Microsoft Windows, OS/2 и ряда версий UNIX и Linux.

Отличием этой СУБД от других продуктов является специальный механизм параллельной обработки запросов, предполагающий разбиение задачи на ряд отдельных подзадач и их параллельное выполнение. При этом даже такие операции, как сортировка или группировка данных, могут разделяться на несколько задач и выполняться параллельно — это достигается за счет специального способа хранения данных, при котором части базы данных также делятся между подзадачами. Сами подзадачи могут распределяться между имеющимися процессорами, которых может быть более одного. Благодаря механизму параллельного решения задач, Teradata Database V2R6.0 отличается высокой масштабируемостью.

Для создания клиентских приложений, использующих Teradata Database, существуют ODBC-драйвер, документированный клиентский API, совместимый с IBM DB2, и ряд других программных интерфейсов. Средства администрирования этой СУБД включают средства резервного копирования и восстановления, просмотра и редактирования данных, мониторинга производительности и нагрузки, а также утилиту администрирования для управления всеми перечисленными задачами, доступную для различных версий Windows.

Netezza Performance Server 8000 Series (Netezza)

Netezza Performance Server — это аппаратно-программное решение, представляющее собой сервер с системой хранения данных и предустановленной на нем операционной системой Linux , а также СУБД с открытым кодом, созданной на основе Postgress. Компания Netezza заявляет, что данное решение не уступает по производительности решениям на основе Teradata при заметно меньшей стоимости. В числе особенностей данного аппаратно-программного решения — поддержка параллельной обработки данных, разделение задач за счет разделения частей базы данных между подзадачами, высокая масштабируемость.

Из программных интерфейсов данным решением поддерживаются универсальные механизмы доступа к данным ODBC и JDBC.

***

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

Компоненты среды функционирования СУБД

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

Рис. 6.2. Компоненты среды функционирования СУБД

Программное обеспечение

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

Системное программное обеспечение управляет всеми компонентами оборудо­вания и обеспечивает доступ к нему всех остальных приложений, работающих на компьютере. Примеры системного программного обеспечения: Windows, Linux, UNIX, MVS, MacOS, OpenSolaris и др.

Подсистема обработки СУБД управляет базой данных, реализуя функции СУБД.

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

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

Системные администраторы несут ответственность и обеспечивают надежное функционирование системного программного обеспечения.

Администраторы баз данных (Data Base Administrator, DBA) управляют работой СУБД, обеспечивают функционирование СУБД, создают учетные записи пользо­вателей СУБД, назначают права, ограничивают доступ, выполняют различные про­цедуры, связанные с обеспечением безопасности и надежности хранения данных.

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

Проектировщики базы данных (системные архитекторы) проектируют струк­туру БД.

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

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

База данных

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

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

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

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

Классификация СУБД

Классификация по типу принятой модели данных

Классификацию баз данных по модели данных иллюстрирует рис. 6.3.

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


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

Реляционные базы данных основаны на реляционной модели данных, в которой каждая единица данных в базе данных однозначно определяется именем таблицы (называемой отношением), идентификатором записи (кортежа) и именем поля.

Объектно-реляционные базы данных содержат объектно-ориентированные механизмы построения структур данных (как минимум, механизмы наследования и поддержки методов) в виде расширений языка и программных надстроек над ядром СУБД.

Объектно-ориентированные базы данных определяют как новое поколение баз данных, основанное на сочетании трех принципов: реляционной модели, стандартов на описание объектов и принципов объектно-ориентированного программирования.

Классификация по архитектуре

Классификацию баз данных по архитектуре иллюстрирует рис. 6.4.


В локальных базах данных все данные и объекты СУБД находятся на одном компьютере.

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

Пример. В качестве примера можно привести сложное производство (или сеть супермаркетов), разные части которого находятся в разных городах. Каждое предприятие накапливает «свои» данные. Необходимо, чтобы каждое из пред­приятий имело доступ к одним и тем же данным, как своим, так и данным других предприятий. Решением данной проблемы может быть создание одной локальной базы данных на одном компьютере с механизмом удаленного доступа. Однако это решение нерационально, поскольку быстрый доступ к данным будут получать клиентские компьютеры только того предприятия, на котором находится СУБД. Другим решением данной проблемы может быть создание на каждом предпри­ятии своей копии СУБД. В этом случае возникает затруднение с синхронизацией данных между копиями (особенно в масштабах нашей страны, где в Хабаровске может быть разгар рабочего дня, а в Москве - глубокая ночь). Распределенная СУБД в этом случае обеспечивает механизм хранения данных в разных базах данных таким образом, что при обращении совокупность разных баз данных выглядит как одна база. Тогда часто используемые данные («свои» данные) на­ходятся в той части базы данных, которая расположена на предприятии. А при необходимости обратиться к «чужим» данным, СУБД делает запрос к удаленной СУБД и получает данные оттуда. Совокупность разных баз данных на разных компьютерах с точки зрения клиента выглядит как одна база данных.

Классификация по способу доступа к БД

Классификацию баз данных по способу доступа иллюстрирует рис. 6.5.


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

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

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

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

Классификация по скорости обработки информации

Классификацию баз данных по скорости обработки информации иллюстрирует рис. 6.6.


Операционные (operational), или рабочие (production), базы данных обладают высокими скоростями реакции на запрос, извлечения и представления информации.

Хранилища данных и многомерные хранилища данных (data warehouse, OLAP) - это базы данных с очень большим объемом информации, подготовка представления которой занимает значительный объем времени.

Функции СУБД

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

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

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

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

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

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

Управление целостностью данных. В СУБД предусмотрены правила, обеспечи­вающие целостность данных, что позволяет минимизировать избыточность данных и гарантировать их непротиворечивость. Для обеспечения целостности данных используются их связи, которые хранятся в словаре данных.

Поддержка языка доступа к данным и интерфейсов прикладного программиро­вания. СУБД обеспечивает доступ к данным при помощи языка запросов. Язык запросов - это непроцедурный язык, то есть он предоставляет пользователю воз­можность определить, что необходимо выполнить, не указывая, как это сделать. В состав языка запросов СУБД входят два основных компонента: язык определения данных (Data Definition Language, DDL) и язык манипулирования данными (Data Manipulation Language, DML). DDL определяет структуры, в которых размеща­ются данные, a DML позволяет конечным пользователям извлекать данные из


БД. СУБД также предоставляет программистам доступ к данным из процедурных языков третьего поколения, таких как COBOL, С, PASCAL и др. В составе СУБД имеются административные утилиты, ориентированные на администраторов и про­ектировщиков базы данных и предназначенные для внедрения, текущего контроля и обслуживания базы данных.

Интерфейсы взаимодействия с базой данных. Текущее поколение СУБД обе­спечивает специальные программы взаимодействия, разработанные для того, чтобы база данных могла принимать запросы конечных пользователей в сетевом окружении. Фактически, возможности взаимодействия конечных пользователей с базой данных являются неотъемлемой составляющей современных СУБД. На­пример, СУБД предоставляет функции взаимодействия для получения доступа к базе данных, используя в качестве внешнего интерфейса интернет-браузер (Mozilla Firefox, Opera или Internet Explorer). В подобной среде взаимодействие может осуществляться несколькими способами:

□ конечный пользователь может получать ответы на запросы, заполняя экранные формы с помощью выбранного им браузера;

□ средствами СУБД можно автоматизировать публикацию форм отчетов в Ин­тернете посредством веб-форматирования, что позволяет просматривать отчеты в любом браузере и др.

Модели данных

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

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

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

Классификация СУБД .

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

К СУБД относятся следующие основные виды программ:

Полнофункциональные СУБД;

Серверы БД;

Клиенты БД;

Средства разработки программ работы с БД.

Полнофункциональные СУБД (ПФСУБД) представляют собой традиционные СУБД, которые сначала появились для больших машин, затем для мини-машин и для ПЭВМ. Из числа всех СУБД современные ПФСУБД являются наиболее многочисленными и мощными по своим возможностям. К ПФСУБД относятся, например, такие пакеты как: Clarion Database Developer, DataBase, Dataplex, dBase IV, Microsoft Access, Microsoft FoxPro и Paradox R: BASE.

Обычно ПФСУБД имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуры таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. п. Для создания запросов и отчетов не обязательно программирование, а удобно пользоваться языком QBE (Query By Example - формулировки запросов по образцу, см. подраздел 3.8). Многие ПФСУБД включают средства программирования для профессиональных разработчиков.

Некоторые системы имеют в качестве вспомогательных и дополнительные средства проектирования схем БД или CASE-подсистемы . Для обеспечения доступа к другим БД или к данным SQL-серверов полнофункциональные СУБД имеют факультативные модули.


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

Примерами серверов БД являются следующие программы: NetWare SQL (Novell), MS SQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress).

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

В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным "любой ценой". Примером такого соединения является случай, когда одна из полнофункциональных СУБД играет роль сервера, а вторая СУБД (другого производителя) - роль клиента. Так, для сервера БД SQL Server (Microsoft) в роли клиентских (фронтальных) программ могут выступать многие СУБД, такие как: dBASE IV, Biyth Software, Paradox, DataEase, Focus, 1-2-3, MDBS III, Revelation и другие.

Средства разработки программ работы с БД могут использоваться для создания разновидностей следующих программ:

Клиентских программ;

Серверов БД и их отдельных компонентов;

Пользовательских приложений.

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

К средствам разработки пользовательских приложений относятся системы программирования, например Clipper, разнообразные библиотеки программ для различных языков программирования, а также пакеты автоматизации разработок (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN (Computer Advisers Inc.), S-Designor (SDP и Powersoft) и ERwin (LogicWorks).

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

По характеру использования СУБД делят на персональные и многопользовательские.
Персональные СУ БД обычно обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними. Персональные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиентской части многопользовательской СУБД. К персональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др

Многопользовательские СУБД включают в себя сервер БД и клиентскую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБД Oracle и Informix.

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

С точки зрения пользователя, СУБД реализует функции хранения, изменения (пополнения, редактирования и удаления) и обработки информации, а также разработки и получения различных выходных документов.

Для работы с хранящейся в базе данных информацией СУБД предоставляет программам и пользователям следующие два типа языков :

Язык описания данных - высокоуровневый непроцедурный язык декларативного типа, предназначенный для описания логической структуры данных;

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

Названные языки в различных СУБД могут иметь отличия. Наибольшее распространение получили два стандартизованных языка: QBE (Query By Example) - язык запросов по образцу и SQL (Structured Query Language) - структурированный язык запросов. QBE в основном обладает свойствами языка манипулирования данными, SQL сочетает в себе свойства языков обоих типов - описания и манипулирования данными.

Перечисленные выше функции СУБД, в свою очередь, используют следующие основные функции более низкого уровня, которые назовем низкоуровневыми :

Управление данными во внешней памяти;

Управление буферами оперативной памяти;

Управление транзакциями;

Ведение журнала изменений в БД;

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

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

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

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

Транзакцией называется некоторая неделимая последовательность операций над данными БД, которая отслеживается СУБД от начала и до завершения. Если по каким-либо причинам (сбои и отказы оборудования, ошибки в программном обеспечении, включая приложение) транзакция остается незавершенной, то она отменяется.

Говорят, что транзакции присущи три основных свойства:

Атомарность (выполняются все входящие в транзакцию операции или ни одна);

Сериализуемость (отсутствует взаимное влияние выполняемых в одно и то же время транзакций);

Долговечность (даже крах системы не приводит к утрате результатов зафиксированной транзакции).

Примером транзакции является операция перевода денег с одного счета на другой в банковской системе. Здесь необходим, по крайней мере, двухшаговый процесс. Сначала снимают деньги с одного счета, затем добавляют их к другому счету. Если хотя бы одно из действий не выполнится успешно, результат операции окажется неверным и будет нарушен баланс между счетами.

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

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

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

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

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

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

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

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

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

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

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

Прикладное программное обеспечение обеспечивает грешение пользовательских задач. Ключевым понятием здесь является пакет прикладных программ.

Пакет прикладных программ - это совокупность программ для решения круга задач по определенной тематике или предмету. Различают следующие типы пакетов прикладных программ:

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

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

проблемно-ориентированные - направлены на решение определенной задачи (проблемы) в конкретной предметной области (банковские пакеты, пакеты бухгалтерского учета, финансового менеджмента, правовых справочных систем и т. д.).

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

    Основные виды специализированных профессионально ориентированных программных средств.

Основные виды специализированных программных средств.

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

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

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

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

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

Геоинформационные системы (ГИС) предназначены для автоматизации картогра¬фических и геодезических работ на основе информации, полученной топографиче¬скими или аэрокосмическими методами.

Системы видеомонтажа обеспечивают цифровую обработку видеоматериалов.

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

Системы автоматизированного проектирования (CAD-системы) , отличаются способностью автоматического обеспечения на всех этапах проектирования технических условий, норм и правил, что освобождает конструктора (или архитектора) от работ нетворческого характера. Например, в машиностроении CAD-системы способны на базе сборочного чертежа изделия авто¬матически выполнить рабочие чертежи деталей, подготовить необходимую техноло¬гическую документацию с указанием последовательности переходов механической обработки, назначить необходимые инструменты, станочные и контрольные приспо¬собления, а также подготовить управляющие программы для станков с числовым программным управлением (ЧПУ), промышленных роботов и гибких автоматизиро-ванных линий. Сегодня системы автоматизированного проектирования являются необходимым компонентом, без которого теряется эффективность реализации гиб¬ких производственных систем (ГПС) и автоматизированных систем управления технологическими процессами (АСУТП).

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

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

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

    Общие принципы построения электронных таблиц.

В электронных таблицах вся обрабатываемая информация располагается в ячейках прямоугольной таблицы. Отличие электронной таблицы от простой заключается в том, что в ней есть поля, значения которых вычисляются через значения других полей, где располагаются исходные данные. Происходит это автоматически при изменении исходных данных. Поля таблицы, в которых располагаются исходные данные, принято называть независимыми полями. Поля, где записываются результаты вычислений, называют зависимыми или вычисляемыми полями. Каждая ячейка электронной таблицы имеет свой адрес, который образуется от имени столбца и номера строки, где она расположена. Строки имеют числовую нумерацию, а столбцы обозначаются буквами латинского алфавита. Электронные таблицы имеют большие размеры. Например, наиболее часто применяемая в IBM-совместимых компьютерах электронная таблица Excel имеет 256 столбцов и 16 384 строк. Ясно, что таблица такого размера не может вся поместиться на экране. Поэтому экран - это только окно, через которое можно увидеть только часть таблицы. Но это окно перемещается, и с его помощью можно заглянуть в любое место таблицы. Электронная таблица имеет несколько режимов работы: формирование таблицы, редактирование, вычисление по формулам, сохранение информации в памяти, построение графиков и диаграмм, статистическая обработка данных, упорядочение по признаку. Формулы, по которым вычисляются значения зависимых полей, включают в себя числа, адреса ячеек таблицы, знаки операций. При работе с электронными таблицами пользователь может использовать и так называемые встроенные формулы, заранее подготовленные для определенных расчетов и внесенные в память компьютера. Большинство табличных процессоров позволяют осуществлять упорядочение таблицы по какому-либо признаку, например по убыванию. В электронных таблицах предусмотрен также графический режим работы, который дает возможность графического представления числовой информации, содержащейся в таблице.

    Общие принципы построения СУБД.

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

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

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

У термина "база данных" имеется несколько терминов. Они не являются противоречивыми, а представляют разные точки зрения на одно понятие. Остановимся на одном из них:

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

Под информационной моделью понимают информацию об объекте, отобранную и структурированную в соответствии с заданной целью.

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

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

Система управления базами данных (СУБД) – комплекс языковых и программных средств, предназначенных для создания, ведения и применения базы данных пользователями.

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

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

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

2)программное обеспечение СУБД (управляет базой данных, реализуя функции СУБД);

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

Программное обеспечение СУБД относят к разряду промежуточного программного обеспечения.

Если взять за основу функциональные обязанности, то в СУБД можно выделить шесть основных групп:

1) Системные администраторы – несут ответственность и обеспечивают надежную работу программного обеспечения

2) Администраторы баз данных – обеспечивают работу СУБД и управляют ею, создают записи, выполняет процедуры, связанные с надежностью хранения данных (назначают права, ограничивают доступ)

3) Системные аналитики – выполняют работу по систематизации структуры данных, приложений и отчетов

4) Проектировщики базы данных – проектируют структуру СУБД

5) Программисты – разрабатывают прикладное программное обеспечение

6) Конечные пользователи – применяют прикладные программы с целью выполнения ежедневных операций.

База данных включает в себя:

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

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

3) процедуры – важный компонент системы. Устанавливают стандарты ведения коммерческой, технологической и производственно-технической деятельности в рамках предприятия и в отношениях с клиентами

Классификация СУБД

По типу принятой модели:

1) иерархические – связь между объектами БД образует перевернутое дерево, т.е. каждый нижележащий элемент иерархии соединен только с одним расположенным выше элементом

2) сетевые – связь между объектами данных могут быть установлены в произвольном порядке

3) реляционные – каждая единица данных в базе однозначно определяется именем таблицы, идентификатором записи и именем поля

4) объектно-реляционные – содержат объектно-ориентированные механизмы построения структур данных в виде расширений языка и программных надстроек над ядром СУБД

5) объектно-ориентированные – основаны на сочетании трех принципов: реляционной модели, стандартов на описание объектов и принципов

объектно-ориентированного программирования

По архитектуре:

локальные базы данных (все данные и объекты СУБД находятся на одном компьютере) и распределительные (различные части данных и объекты СУБД находятся на разных компьютерах)

По способу доступа к БД:

2) файл-серверные – находится на каждом клиентском компьютере и доступ к данным осуществляется через локальную сеть

3) клиент-серверные – обеспечивают разграничение доступа между пользователем и мало загружают сеть и машины

4) встраиваемая – представляет собой программную библиотеку. Доступ к данным происходит посредством запроса на языке SQL или путем вызова функций библиотеки из приложения

По скорости обработки:

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

СУБД выполняет следующие функции:

1) абстракция данных, управление словарем данных – для поиска необходимых структур данных и их отношений СУБД использует словарь данных, помогая избежать кодирования таких сложных взаимосвязей в каждой программе.

2) Управление хранением данных – СУБД создает сложные структуры, необходимые для хранения данных, освобождая программистов от определения и программирования физических свойств данных

3) Преобразование и представление данных – СУБД берет на себя задачу структурирования вводимых данных, преобразуя их в форму, удобную для хранения. Обеспечивая независимость данных, СУБД преобразует логические запросы в команды, определяющие их физическое местоположение и извлечение

4) Управление безопасностью - СУБД создает систему безопасности, которая обеспечивает защиту пользователя и конфиденциальность данных внутри БД

5) Управление многопользовательским доступом – СУБД создает сложные структуры, обеспечивающие доступ к данным нескольких пользователей одновременно

6) Управление резервным копированием и восстановлением – в СУБД имеются процедуры резервного копирования и восстановления данных, обеспечивающие их безопасность и целостность

7) Управление целостностью данных – в СУБД предусмотрены правила, обеспечивающие целостность данных, что позволяет минимизировать избыточность данных и гарантировать их непротиворечивость

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

9) Интерфейсы взаимодействия с базой данных – текущее поколение СУБД обеспечивает специальные программы взаимодействия, разработанные для того, чтобы база данных могла принимать запросы конечных пользователей в сетевом окружении

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

Надо отметить, что современные серверы баз данных часто оснащаются средствами моделирования модели "сущность-связь" или другими средствами создания схем данных.

Все тонкости построения информационной модели некоторой предметной области деятельности человека преследуют одну цель – получить хорошую БД. Поясним термин «хорошая БД» и сформулируем требования, которым она должна удовлетворять:

1) Должна удовлетворять информационным потребностям и возможностям пользователей (организаций) и по структуре и содержанию соответствовать решаемым задачам;

2) Должна обеспечивать получение требуемых данных за приемлемое время, т. е. отвечать требованиям производительности;

3) Должна легко расширяться либо интегрироваться в более масштабные объекты при реорганизации предметной области;

4) Должна легко изменяться при изменении программной и аппаратной среды;

5) Корректные данные, загруженные в БД, должны оставаться корректными (данные должны проверяться на корректность при их вводе).

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

    Назначение компьютерных сетей и их разновидности.

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

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

Абоненты сети – объекты, генерирующие или потребляющие информацию.

Абонентами сети могут быть отдельные ЭВМ, промышленные роботы, станки с ЧПУ (станки с числовым программным управлением) и т.д. Любой абонент сети подключён к станции.

Виды компьютерных сетей

Существующие сети принято в настоящее время делить в первую очередь по территориальному признаку:

1. Локальные сети(LAN - Locate Area Network). Такая сеть охватывает небольшую территорию с расстоянием между отдельными компьютерами до 10 км. Обычно такая сеть действует в пределах одного учреждения.

2.Глобальные сети(WAN - Wide Area Network). Такая сеть охватывает, как правило, большие территории (территорию страны или нескольких стран). Компьютеры располагаются друг от друга на расстоянии десятков тысяч километров.

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

каналы связи - транспортная сеть передачи данных.

Основные характеристики:

*пропускная способность

*достоверность передачи данных

Скорость передачи данных по каналу стандартизована. В отечественных каналах связи: 200, 300, 600, 1200, 2400, 4800, 9600, 12000, 24000, 48000, 96000 бит/секунду. В каналах до 300 бит – низкая скорость, от 600 до 4800 – средняя скорость, от 4800 и далее – высокоскоростные.

Программные средства

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

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

    Понятие эталонной модели взаимодействия открытых систем.

Перемещение информации между компьютерами различных схем является чрезвычайно сложной задачей. В начале 1980 гг. Международная Организация по Стандартизации (ISO) и Международный Консультативный Комитет по Телеграфии и Телефонии (МККТТ) признали необходимость в создания модели сети, которая могла бы помочь поставщикам создавать реализации взаимодействующих сетей. В тесном сотрудничестве была разработана эталонная модель "Взаимодействие Открытых Систем" (ЭМВОС). ЭМВОС быстро стала основной архитектурной моделью для передачи межкомпьютерных сообщений. Несмотря на то, что были разработаны другие архитектурные модели (в основном патентованные), большинство поставщиков сетей, когда им необходимо предоставить обучающую информацию пользователям поставляемых ими изделий, ссылаются на них как на изделия для сети, соответствующей эталонной модели. И действительно, эта модель является самым лучшим средством, имеющемся в распоряжении тех, кто надеется изучить технологию сетей.

Сетевая модель OSI состоит из 7 уровней, причем принято начинать отсчёт с нижнего. 7.Прикладной уровень (application layer) - это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, электронная почта, гипертекстовые WEB-страницы, принтеры.

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

6.Представительский уровень или уровень представления (presentation layer) - реализуются функции представления данных (кодирование, форматирование, структурирование). Например, на этом уровне выделенные для передачи данные преобразуются из кода ЕBCDIC в ASCII и т.д. 5. Сеансовый уровень (session layer)- предназначен для организации и синхронизации диалога, ведущегося объектами (станциями) cети. На этом уровне определяются тип связи (дуплекс или полудуплекс), начало и окончание заданий, последовательность и режим обмена запросами и ответами взаимодействующих партнеров.

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

База данных

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

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

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

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

Система управления базами данных

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

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

Либо, если деление идет по тому, где размещается СУБД , их можно разделить на локальные - вся СУБД размещается на одном компьютере, и распределенные - части системы управления базами данных находятся на нескольких компьютерах.

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

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

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

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

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

Реляционные СУБД и язык SQL

Реляционные и объектно-реляционные СУБД являются одними из самых распространенных систем. Они представляют собой таблицы, у которых каждый столбец (который называется “field” или «поле») упорядочен и имеет определенное уникальное название. Последовательность строк (их называют “records” или «записи») определяется последовательностью ввода информации в таблицу. При этом обрабатывание столбцов и строк может происходить в любом порядке. Таблицы с данными связаны между собой специальными отношениями, благодаря чему с данными из разных таблиц можно работать - к примеру, объединять их - при помощи одного запроса.

Для управления реляционными базами данных применяется особый язык программирования - SQL. Сокращение расшифровывается как “Structured query language”, в переводе на русский «язык структурированных запросов».

Команды, которые используются в SQL, делятся на те, которые манипулируют данными, те, которые определяют данные, и те, которые управляют данными.

Схема работы с базой данных выглядит следующим образом:


MySQL

MySQL является одной из самых популярных и распространенных СУБД, которая используется во многих компаниях (например, Facebook, Wikipedia, Twitter, LinkedIn, Alibaba и других). MySQL представляет собой реляционную СУБД, которая относится к свободному программному обеспечению: она распространяется на условиях GNU Public License. Как правило, эту систему управления базами данных определяют как хорошую, быструю и гибкую систему, рекомендованную к применению в небольших или средних проектах. У MySQL есть множество различных преимуществ. Например, она поддерживает различные типы таблиц: как известные MyISAM и InnoDB, так и более экзотичные HEAP и MERGE; кроме того, количество поддерживаемых типов постоянно растет. MySQL выполняет все команды быстро - возможно, сейчас это самая быстрая СУБД из всех существующих. С этой системой управления базами данных может одновременно работать неограниченное количество пользователей, а число строк в таблицах может быть равно 50 миллионам.

Так как в сравнении с некоторыми другими СУБД MySQL поддерживает меньшее количество возможностей, то и работать с ней значительно проще, чем, к примеру, с PostgreSQL, о которой будет рассказано ниже.

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

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

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


PostgreSQL

Эта свободно распространяемая система управления базами данных относится к объектно-реляционному типу СУБД. Как и в случае с MySQL, работа с PostgreSQL основывается на языке SQL, однако, в отличие от MySQL, PostgreSQL поддерживает стандарт SQL-2011. Эта СУБД не имеет ограничений ни по максимальному размеру базы данных, ни по максимуму записей или индексов в таблице.

Если говорить о преимуществах PostgreSQL, то, безусловно, это надежность транзакций и репликаций, возможность наследования и легкая расширяемость. PostgreSQL поддерживает различные расширения и варианты языков программирования, такие как PL/Perl, PL/Python и PL/Java. Также есть возможность загружать C-совместимые модули.

Многие отмечают, что в отличие от MySQL данная СУБД имеет хорошую и подробную документацию, которая дает ответы практически на все вопросы.

О том, что это более масштабная, чем MySQL, СУБД, говорит и тот факт, что PostgreSQL периодически сравнивают с такой мощной системой управления данных, как Oracle.

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


SQLite

На данный момент это одна из самых компактных СУБД; также она является встраиваемой и реляционной. SQLite позволяет хранить все данные в одном файле и, благодаря своему небольшому объему, отличается завидным быстродействием. SQLite значительно отличается от MySQL и PostgreSQL своей структурой: движок и интерфейс этой СУБД находятся в одной библиотеке - и именно это позволяет выполнять все запросы очень быстро. Другие СУБД (MySQL, PostgreSQL, Oracle и т.д.) используют парадигму клиент-сервер, когда взаимодействие происходит через сетевой протокол.

Из недостатков можно отметить отсутствие системы пользователей и возможности увеличения производительности.

SQLite можно посоветовать к использованию в проектах, где нужно иметь возможность быстро перенести приложение, и нет необходимости в масштабируемости.


Oracle

Эта СУБД относится к объектно-реляционному типу. Название произошло от названия разработавшей эту систему фирмы Oracle. Наравне с SQL СУБД использует процедурное расширение под названием PL/SQL, а также язык Java.

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

В отличие от других СУБД, стоимость покупки и использования Oracle достаточно высока, и именно это зачастую является значимым препятствием к ее использованию в небольших фирмах. Вероятно, именно это также является причиной того, что в рейтинге СУБД на 2016 год в России Oracle находится лишь на 6-м месте.



MongoDB

Эта СУБД отличается тем, что она предназначена для хранения иерархических структур данных, и поэтому ее называют документоориентированной (она представляет собой документное хранилище без использования таблиц или схем). MongoDB имеет открытый исходный код.

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

Однако этот язык имеет и свои ограничения, а поэтому MongoDB следует использовать в случаях, когда нет необходимости в сложных и нетривиальных выборках.

Вместо заключения

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