Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Bazy_dannykh_i_znanii_UP_SHirokov_L.A._2000

.pdf
Скачиваний:
41
Добавлен:
10.06.2015
Размер:
901.06 Кб
Скачать

в СУБД; б) интерпретацию сообщений СУБД о результатах обработки за-

просов ПП в СУБД.

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

кладных программ (ПП) пользователей. Это могут быть:

-языки СУБД;

-алгоритмические языки: Pa, C, As и т.п.

ВБнД в зависимости от способа реализации ЛО возможны 3 вида СУБД:

- с включающим языком; - с базовым языком; - комбинированные.

Вкачестве включающего языка для СУБД выбирается один из стандартных алгоритмических языков: Pa, С, As, PL/1 и т.п. Написанная на включающем языке ПП может инициировать команды ЯМД одним из двух способов:

а) вызовом соответствующих специальных подпрограмм СУБД.

Вэтом случае необходимое редактирование ПП выполняется стандартным образом средствами ОС ЭВМ;

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

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

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

3.3.НЕЗАВИСИМОСТЬ ПРИКЛАДНЫХ ПРОГРАММ ОТ ДАННЫХ

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

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

41

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

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

3.4. ОПЕРАЦИИ НАД ДАННЫМИ

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

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

ВБнД предусмотрены следующие виды операций, поддерживаемые средствами СУБД:

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

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

Вцелом реализация любой операции над данными включает два

этапа:

- селекция данных; - обработка данных, т.е. действие над данными, определяемое ха-

рактером задания.

42

3.4.1. Селекция данных

При выборе данных из БД возможно использование различных критериев:

-по логической позиции данных;

-по значениям данных;

-по взаимосвязям данных.

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

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

Если в МД имеются взаимосвязи данных, то возможна реализация селекции данных по этим связям. Например, в БД “Отдел” с записями:

Отдел(№Отдела, Корпус, НачальникОтдела)

(3.1)

Служащий(№Таб, ФИО, ГодРождения, Образование)

(3.2)

РаботаетВ(№Таб, №Отдела)

(3.3)

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

3.4.2. Обработка данных

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

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

Пример.

В БД (3.1)-(3.3) определить количество служащих в возрасте не

43

более 27 лет.

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

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

3.4.3. Запросы к БД

Запросы бывают двух видов:

-простые;

-комбинированные (или сложные). Простые запросы определяются формулой

А(Е) = V,

(3.4)

где А - атрибут; Е - объект предметной области; V - значение атрибута. В соответствии с формулой (3.4) возможны шесть типов простых запросов. Рассмотрим их на примере для БД из предметной области “Поставки комплектующих изделий ( КИ )”. Формулировки запросов приведены на рис.3.2. БД “Поставки комплектующих изделий (КИ)” содержит объемы поставок на автопредпрятие по каждому КИ за каждый месяц года, т.е. ее атрибутами являются месячные поставки различных КИ.

Тип

Формулировка запроса

Пример

1

A(E)=?

Каково значение атрибута А

Каков объем поставок карбюраторов

 

 

объекта Е?

за май?

2

A(?)QV

Какой объект (или объекты)

Поставки каких КИ за март были бо-

 

 

имеет значение атрибута А в

лее 1000 штук?

 

 

отношении Q к значению V?

 

3

?(E)QV

Какой атрибут (или атрибу-

За какие месяцы поставки поршней

 

 

ты) объекта Е имеет значе-

превысили 850 штук?

 

 

ние в отношении Q к значе-

 

 

 

нию V?

 

4

?(E)=?

Каковы значения всех атри-

Сообщить все атрибуты и их значе-

 

 

бутов объекта E?

ния по поставкам радиаторов.

5

A(?)=?

Каковы значения атрибута А

Сообщить объемы поставок всех КИ

 

 

всех объектов.

за июль.

6

?(?)QV

Перечислить все атрибуты

Сообщить месяцы поставки и назна-

 

 

всех объектов, имеющих

чения КИ, объемы поставок которых

 

 

значение в отношении Q к

были более 800 штук.

 

 

значению V?

 

Рис. 3.2

На рис.3.2. оператором Q обозначен один из видов отношений из множества:

Q = {=, <>, <=, >=, <, >}.

44

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

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

3.5.СХЕМА РЕАЛИЗАЦИИ ЗАПРОСА В БНД

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

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

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

Далее СУБД выдает ОС ПК команду чтения (5) требуемой записи. ОС обеспечивает (6) чтение записи из физической памяти ПК (БД) и передачу (7) искомых данных (8) в системный буфер (СБ) блока данных пользователей (БлДП). СБ используется одновременно несколькими ПП, обслуживаемыми СУБД, причем размер СБ определяет АБД. После этого СУБД сравнивает (9) подсхему ПП1 и схему БД, выделяя ту логическую запись, которая запрошена ПП1. При необходимости реализуется преобразование данных.

Затем инициируется (9) пересылка данных (10) из СБ в рабочую область ПП1 (РОПП1). Здесь СУБД формирует (11) данные результата выполнения запроса ПП1 (ДРВЗПП1). При этом полученные из БД данные обрабатываются средствами включающего или базового языка и используются (12) ПП1. Под управлением (13) СУБД информация о результатах выполнения запроса (ИРВЗ) вместе с сообщениями об ошибках через ячейку связи (ЯС) передается (14) в ПП1.

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

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

45

модифицированные данные записывает обратно в БД.

Рис. 3.3

3.6.СПОСОБЫ ОБРАБОТКИ ДАННЫХ

Винформационных системах используется три варианта обработки данных:

- централизованная; - распределенная; - комбинированная.

Рассмотрим их особенности.

3.6.1.Централизованная обработка данных

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

-избыточность данных;

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

-несвязность данных.

При централизации комплексно стандартизируется представление данных, эффективно решается паролирование доступа и т.п.

Важными факторами централизации являются:

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

-пользователям во всех подразделениях необходимы одни и те же данные, причем они часто обновляются;

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

-большой объем данных общего назначения;

-защита данных.

46

3.6.2. Распределенная обработка данных

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

Распределенная обработка данных ставит и новые задачи:

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

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

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

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

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

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

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

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

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

-описание локальных узлов, хранимых в этом узле;

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

Для реализации запроса его соответствующая внешняя схема

47

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

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

3.6.3. Комбинированная обработка данных

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

В этом случае можно использовать централизованные и децентрализованные данные. Возникающая при этом задача состоит в выборе соотношения:

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

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

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

3.7.ЦЕЛОСТНОСТЬ И ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ ДАННЫХ

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

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

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

48

сания явных ограничений целостности.

Пример.

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

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

3.8. ЗАЩИТА ДАННЫХ В БД

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

зователем;

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

-подпрограмм внутри ПП;

-спецпрограмм внутри СУБД;

-средств управления логическими или аппаратными ключами защиты в ОС (паролями).

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

В больших СУБД должны быть централизованные средства защиты либо у АБД, либо у службы безопасности.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Что называется СУБД?

2.Каковы функции и состав универсальной СУБД?

3.Перечислите программы, выполняемые СУБД.

4.Что называется лингвистическим обеспечением СУБД и каков его состав?

5.Каковы задачи и способы защиты данных?

6.Определите понятие запроса к БД и перечислите виды запросов.

7.Опишите схему реализации запроса в БнД.

8.Что называется ограничением целостности данных?

49

ГЛАВА 4. РЕЛЯЦИОННЫЕ БД

4.1.СВОЙСТВА РЕЛЯЦИОННЫХ ТАБЛИЦ

Вреляционных БД при формировании реляционных таблиц необходимо выполнение следующих условий, определяемых свойствами этих таблиц:

домены, должны иметь индивидуальные уникальные имена;

каждое значение поля таблицы должно представляет собой один элемент данных;

в каждом домене все значения полей однородны;

недопустимы идентичные кортежи;

каждый кортеж должен иметь первичный ключ.

4.2.КЛЮЧИ РЕЛЯЦИОННЫХ ТАБЛИЦ

4.2.1.Первичный ключ

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

Пример.

Рассмотрим БД "Адреса", приведенную на рис. 4.1. Здесь можно выделить два ключа-кандидата:

а) ШифрКлиента;

б) ФИО + Адрес.

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

50