Языковые и программные средства субд. Функции языковых средств субд. Понятие и классификация субд

Языковые и программные средства субд. Функции языковых средств субд. Понятие и классификация субд

17.04.2019

19.4. Языковые средства систем управления

базами данных

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

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

для высококвалифицированных пользователей языковые сред-ства представляются в их явной синтаксической форме;

в других случаях функции языков могут быть доступны косвен-ным образом, когда они реализуются в форме различного рода меню, диалоговых сценариев или заполняемых пользователем таблиц. По таким входным данным интерфейсные средства формируют адекват-ные синтаксические конструкции языка интерфейса и передают их на исполнение или включают в генерируемый код языка приложе-ния. Интерфейсы с неявным использованием языка широко исполь-зуются в СУБД для персональных ЭВМ. В этом случае используется (для реляционных СУБД), например, табличный язык Query-By-Example (QBE), разработанный М.Злуфом.

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

для описания представления базы данных на управляемых уров-нях архитектуры системы;

для инициирования выполнения операций манипулирования данными.

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

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

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

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

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

В настоящее время имеются многочисленные примеры языков СУБД, объединяющих возможности описания данных и манипули-рования данными в единых синтаксических рамках. Более того, в современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с ба-зой данных, начиная от"ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Наиболее популяр-ным и стандартным для реляционных СУБД является язык SQL (Structured Query Language), разработанный фирмой IBM и реализо-ванный в реляционной СУБД System R, а впоследствии и в коммер-ческой системе DB2. Другим примером языков этого класса могут служить: язык Quel системы Ingres, созданный Калифорнийским университетом, языковые средства большинства СУБД для персо-нальных ЭВМ, например язык dBase семейства СУБД фирмы Asthon-Tate и многочисленных совместимых с ним систем, язык СУБД: R:Base фирмы Microrim.

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

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

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

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

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

Изучение простейших возможностей языков конечных пользо-вателей не требует больших затрат времени. Такой уровень подготов-ки (обычно 1-3 дня) позволит пользователю разрабатывать неслож-ные приложения.

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

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

Язык QBE

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

Для пользователя решение основных задач производится через таблицу-шаблон, связанную с реальной БД.

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

Язык SQL

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

Его появление и развитие как средства описания доступа к БД связано с созданием теории реляционных БД. Прообраз языка воз-ник в 1970 г. в лаборатории Санта-Тереза фирмы IBM в рамках научно-исследовательского проекта System/R. Сегодня - это фактичес-кий стандарт интерфейса с современными СУБД. Популярность его настолько велика, что разработчики нереляционных СУБД (напри-мер, ADABAS), снабжают свои системы SQL-интерфейсом.

Язык SQL имеет официальный стандарт - ANSI/ISO. Большин-ство разработчиков придерживаются этого стандарта, однако часто расширяют его для реализации новых возможностей обработки дан-ных.

SQL не является языком программирования в традиционном представлении. На нем пишутся не программы, а запросы к базе данных. Поэтому это язык декларативный. Это означает, что с его помощью можно сформулировать, что необходимо получить, однако нельзя указать, как это следует сделать. В частности, в отличие от процедурных языков программирования (Си, Паскаль), в языке SQL отсутствуют такие операторы, как if/then/else.

Запрос в языке SQL состоит из одного или нескольких операто-ров, следующих один за другим и разделенных точкой с запятой. Наиболее важные выделены в стандарте ANSI/ISO SQL.

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

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

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

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

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

19.5. Основы информационной безопасности

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

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

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

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

доступность (возможность получить некоторую требуемую ин-формационную услугу);

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

конфиденциальность (защита от несанкционированного прочте-ния).

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

Рассмотрим основные программно-технические меры, применение которых позволит решить некоторые из вышеперечисленных проблем:

аутентификация и идентичность;

управление доступом;

поддержка целостности;

протоколирование и аудит;

защита коммуникаций между клиентом и сервером;

отражение угроз, специфичных для СУБД.

Аутентификация и идентичность

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

Управление доступом.

Управление доступом базируется на реализации следующего минимального набора действий:

произвольное управление доступом;

обеспечение безопасности повторного использования объектов;

использование меток безопасности;

принудительное управление доступом.

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

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

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

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

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

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

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

Поддержка целостности

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

Протоколирование и аудит

Такая мера, как протоколирование и аудит, состоит в следую-щем:

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

оценка возможных последствий состоявшегося нарушения;

оказание помощи;

организация пассивной защиты информации от нелегальных

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

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

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

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

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

Защита коммуникаций между клиентом и сервером

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

Отражение угроз, специфичных для СУБД

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

работ Серия «Высшее образование» ...

  • Серия «высшее образование» концепции современного

    Документ

    Лишь благодаря целостности и является следствием организации . 12. Организация и дезорганизация - диалектически связанные... Контрольных работ 458 Основные вопросы по курсу «Концепции современного естествознания» . . 464 Серия «Высшее образование» ...

  • Серия «ВЫСШЕЕ ОБРАЗОВАНИЕ» М А Р К Е Т И Н Г КУРС ЛЕКЦИЙ Москва ИНФРА-М 1999

    Курс лекций

    Серия «ВЫСШЕЕ ОБРАЗОВАНИЕ» Л.Е.БАСОВСКИЙ М А Р К Е Т И Н Г КУРС ЛЕКЦИЙ... им. Выбор торговых посредников и организация работы с ними – сложная задача. ... использовании метода контрактов государственная организация работает с одной или несколькими фирмами...

  • Высшая школа экономики (175)

    Программа

    Средства и финансовые ресурсы предприятия. Организация финансовой работы на предприятии, цели, задачи, основные... -во «Весь мир», 2003. – 720 с. – (Серия «Высшее образование» ). Организация деятельности коммерческого банка. Учебник (под...

  • Список приобретенной литературы за 2009 год 1 ефимова анализ современный инструментарий для принятия экономических решений учебник / -2-е изд стер - м издательство «омега-л» 2010 -350 с ил табл - (высшее образование) 2 веселовский

    Список учебников

    ... Высшее образование ). 81.Бурмистрова Л.М. Финансы организаций (предприятий): Учеб. пособие.- М.: ИНФРА-М, 2009.- 240 с.- (Высшее образование ... - М. : ИНФРА-М, 2009. - 640 с. Серия : (Высшее образование ). 70. Треушников М.К. Гражданский процесс: теория...

  • Языковые и программные средства СУБД

    Понятие и классификация СУБД

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

    По степени универсальности различают два класса СУБД:

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

    специализированные системы, функционирующие на некоторой модели ЭВМ в определенной операционной системе и имеют средства настройки на работу с БД в конкретной предметной области.

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

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

    По мощности выделяют настольные и корпоративные СУБД. Настольные системы (Access, FoxPro, Paradox) ориентированы на конечных пользователей (специалистов в конкретной предметной области). Они не предъявляют высоких требований к техническим средствам, отличаются низкой стоимостью. Корпоративные СУБД (Oracle, SyBase, DB2) обеспечивают работу в распределенной среде, имеют высокую производительность, развитые средства администрирования и более широкие возможности поддержания целостности. СУБД MS SQL Server, Interbase имеют возможности и настольных и корпоративных систем.

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

    Языковые и программные средства СУБД

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

    – описания представления БД;

    – выполнения операций манипулирования данными;

    – управления БД.

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

    Язык манипулирования данными (ЯМД) – Shema Manipulation Language содержит набор операторов манипулирования данными, позволяющих заносить данные в БД, удалять, модифицировать их и выбирать запрашиваемую информацию из БД.

    В настоящее время имеются многочисленные примеры языков СУБД, объединяющих возможности описания данных и манипулирования данными в единых синтаксических рамках. Единый интегрированный язык современных СУБД содержит все необходимые средства для работы с базой данных, начиная от ее создания, и обеспечивает пользовательский интерфейс с БД. Наиболее популярным и стандартным для реляционных СУБД является язык SQL (Structured Query Language - язык структурируемых запросов), разработанный фирмой IBM. Для поддержки объектных моделей предназначен язык OQL (Object Query Language), в основу которого положен SQL.

    Примерами других языков этого класса могут служить: Quel системы Ingres, созданный Калифорнийским университетом; dBase семейства СУБД фирмы Asthon – Tate; R:Base фирмы Microrim.

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

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

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

    Модули представляют собой процедуры на языке Visual Basic for Application (VBA).

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

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

    На языке PHP разрабатываются скрипты (scripting language) – кодовые (программные) инструкции по выполнению определенных действий над данными, выбранными из БД. Скрипты вставляются в HTML-документы, преобразуя их из статических в активные. Web-сервер просматривает документ, выполняет найденные в нем PHP-инструкции и результат выполнения инструкций возвращает пользователю.

    С помощью PHP можно обрабатывать данные из форм, генерировать динамические страницы, создавать счетчики, гостевые книги и т.д. В PHP включена поддержка многих баз данных: FilePro, Informix, MySQL, Oracle, Sybase и др.

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

    Рис. 3.10.

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

    Таким образом, с помощью средств создания БД проектировщик, используя ЯОД, переводит логическую модель БД в физическую структуру, а на ЯМД разрабатывает программы, реализующие основные операции с данными (в реляционных БД это реляционные операции). При проектировании привлекаются визуальные средства, т.е. объекты и программа-отладчик, с помощью которых соединяются и тестируются отдельные блоки разработанной программы управления конкретной БД.

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

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

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

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

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

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

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

    Диапазон в запросах, помимо значения ALL (по умолчанию), может принимать значение:

    • для отдельной таблицы - DISTINCT - указывает на исключения из результирующего запроса, содержащего не все поля, повторяющиеся записи;
    • DISTINCTROW - используется, как правило, для связанных таблиц в запросах, содержащих не все поля таблиц, опускает целиком повторяющиеся записи;
    • ТОР п - используется, как правило, при наличии сортировки: ORDER BY... - выводит п первых отсортированных записей; ORDER BY... WHERE . Если не использовать ORDER BY, то система возвратит п произвольных записей.
    • SQL.ru. URL: http://www.sql.ru.

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

    Функции СУБД

    • 1. Управление данными во внешней памяти;
    • 2. управление буферами во внешней памяти:

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

    При работе с БД СУБД может установить большую или меньшую актуальность каких-то данных. Наиболее актуальные данные могут всё время храниться в буфере. Эта функция повышает эффективность обработки данных.

    3 . управление транзакциями(transactions):

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

    4. журнализация - ведение каких-то журналов:

    существует два вида сбоев:

    • - мягкий, связанный с пропаданием питания, аварийной остановкой работы машины, сбоем ОС;
    • - жёсткий - характеризуется потерей информации на внешних носителях (авария HD).

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

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

    При пользовании журналом используется стратегия упреждающей записи WAL(Write Ahead Log). Смысл этой стратегии состоит в том, чтобы сделать запись об изменениях прежде самих изменений.

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

    5. поддержка языков данных(Data Language)

    существует две задачи информационных систем:

    • - описание структуры данных;
    • - манипулирование этими данными.

    Раньше эти задачи решались с помощью языковых средств. Т.е. поддерживался язык описания данных SDL(Schema Definition Language) и язык манипулирования данными DML(Data Manipulation Language). В задачу SDL входило предоставление средств для именования объектов БД, типизации отдельных элементов и описания связей между элементами данных. DML поддерживает описание действий по изменению тех объектов, которые описаны на SDL.

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

    SQL содержит:

    • - средства для описания ограничений целостности;
    • - средства для авторизации доступа к разным объектам:

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

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

    • 1. Языки, имеющие только возможности запросов. Они обеспечивают вывод требуемых данных на экран или печать в нужном формате. В настоящее время используются редко.
    • 2. Комплексные языки запросов/обновлений. Это более развитые языки; они позволяют формулировать сложные запросы, относящиеся к нескольким взаимосвязанным записям, и обновлять данные так же легко, как и формулировать запросы. Используя их, пользователи могут создавать свои собственные файлы.
    • 3. Генераторы отчетов. Они дают возможность выбирать нужные данные из файлов или баз данных и форматировать их в виде требуемых форм документов.
    • 4. Графические языки. Использование графических средств в настоящее время постоянно расширяется. С их помощью можно выводить данные в виде различных графиков и диаграмм, а также использовать другие изобразительные возможности. Как и генераторы отчетов, графические языки позволяют осуществлять отбор информации из файлов или баз данных по различным критериям, а также выполнять арифметические и логические манипуляции с данными.
    • 5. Инструментальные средства поддержки решений. Языки этого типа предназначены для создания систем принятия решений. Это могут быть системы типа «что-если», системы, выполняющие временной или трендовый анализ, и др. Возможно использование как универсальных, так и проблемно-ориентированных средств.
    • 6. Генераторы приложений. Обеспечивают возможность описания непроцедурным путем требуемой обработки информации и дальнейшей автоматической генерации программ.
    • 7. Машинно-ориентированные языки спецификаций. Фактически являются генераторами приложений, дальнейшим их развитием. В отличие от генераторов приложений языки спецификаций более универсальны и позволяют специфицировать приложения разных типов.
    • 8. Языки очень высокого уровня. В большинстве случаев приложения строятся с помощью непроцедурных языков. Однако некоторые языки являются процедурными (например, NOMAD), но программирование на них значительно короче, чем, например, на Cobol.
    • 9. Параметризированные пакеты прикладных программ (ППП). Эта категория программных средств известна давно, и «4-е поколение» относится к таким ППП, которые допускают легкую модификацию самого пакета, позволяют пользователям генерировать собственные отчеты, запросы к базе данных и т.д.
    • 10. Языки приложений. Многие языки 4-го поколения являются универсальными, другие - спроектированы для специфических приложений. Примерами таких языков являются языки для управления финансами, управления работой станков с программным управлением и т.д.

    Рис. 1.4. Структура СУБД

    Контроллер словаря – обеспечивает доступ к системному каталогу и работу с ним.

    Контроллер файлов – манипулирует фалами с данными и отвечает за распределение дискового пространства. Он не управляет физическим вводом/выводом, а передает запросы соответствующим методам доступа ОС.

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

    · контроль прав доступа – проверяет наличие у данного пользователя полномочий на выполнения затребованной операции;

    · процессор команд – выполняет запрос;

    · средства контроля целостности – осуществляют проверку ограничений поддержки целостности при выполнении операций изменения данных;

    · оптимизатор запросов – определяет оптимальную стратегию выполнения запроса;

    · контроллер транзакций – осуществляет обработку операций, поступающих в процессе транзакции;

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

    · контроллер восстановления – отвечает за восстановление БД при сбоях до непротиворечивого состояния;

    · контроллер буфера – отвечает за перенос данных между ОП и жестким диском.

    Многие СУБД поддерживают возможность внедрения собственных операторов в языки высокого уровня (COBOL, Fortran, Pascal, Ada, C). Но в СУБД поддерживается 2 специализированных языка для разработки приложений с БД – ЯОД (DDL – Data Definition Language) и ЯМД (DMD – Data Manipulation Language). ЯОД – описательный язык для определения логической схемы БД. Он состоит из набора операторов, задающих определение схемы БД. Результатом компиляции таких описаний (концептуальной и внешних схем) является набор таблиц, хранимый в специальном системном каталоге БД. (Он хранит метатданные). ЯОД не используется для работы с данными. Для этого используется ЯМД , который содержит набор операторов, выполняющих обработку данных: поиск, добавление, изменение и удаление. Поддержка ЯМД – одна из основных функций СУБД. Различают 2 подхода к реализации ЯМД: процедурный и декларативный.

    При использовании процедурного ЯМД пользователь определяет последовательность действий, которые необходимо выполнить, чтобы получить требуемый результат. Этот поход аналогичен тому, как реализованы процедурные языки программирования (Pascal, C и др.). ЯМД в этом случае предоставляет пользователю набор операторов над данными. К этому типу относятся языки, основанные на реляционной алгебре.

    Декларативные ЯМД позволяют определить весь требования к результирующим данным с помощью одного оператора. В этом случае нет необходимости знать детали внутренней реализации структур данных и особенности алгоритмов, используемых для их извлечения. К этому типу относятся языки, основанные на реляционном исчислении SQL и QBE. SQL (Structured Query Language) основан на реляционном исчислении и поддерживается всеми реляционными СУБД. Для него определен международный стандарт. QBE (Query By Example) – простой язык с графическим интерфейсом, который позволяет формулировать запрос непрофессиональным пользователям (напр., в СУБД Access).

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

    • экранных форм – для создания шаблонов ввода данных;
    • отчетов;
    • графического представления данных в виде диаграмм;
    • приложений для создания программ обработки данных.


    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows