Общая характеристика СУБД

Технология баз данных

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

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

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

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

Физические данные. Это данные, хранящиеся во внешней памяти ЭВМ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Язык манипулирования данными (ЯМД) позволяет запрашивать предусмотренные в системе операции над данными из базы данных. Аналогично языку определения данных ЯМД не обязательно высту­пает в форме синтаксически самостоятельного языка СУБД. На практике разделение ЯОД и ЯМД играет скорее методическую роль используется в технологических целях.

В настоящее время SQL весьма широко распространен. Приняты стандарты SQL как реляционного языка, разработанные Американским национальным институтом стандартов (ANSI) и Международной организацией по стандартизации (ISO). Он используется во многих СУБД, особенно на персональных ЭВМ.

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

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

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

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

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

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

в) Обеспечить программу, реализующие функции ЯОД и ЯМД. Программа допускает определение, создание и манипулирование логическими данными, т.е. выборку, обновление, включение, удаление, поиск и т.д.

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

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

Использование системы разрешается лишь пользователям, имеющим на это право (защита).

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

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

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

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

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

Модель данных состоит из трех компонент:

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

2. Допустимые операции, выполняемые на структуре данных. Она составляет основу языка данных рассматриваемой модели данных. Одной лишь хорошей структуры данных недостаточно. Необходимо иметь возможность работать с этой структурой при помощи различных операций ЯОД и ЯМД.

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: