Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teor_BD_Lek.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.54 Mб
Скачать

42

Основные принципы организации баз данных

Понятие базы данных

К организации данных в системах автоматизированной обработки информации возможны два подхода:

1. Каждый пользователь системы создает наборы данных, необходимых для решения его задач, и пишет программы обработки данных. Например, в рамках ВУЗа различные подразделения (деканат, отдел кадров, бухгалтерия и т.п.) могут создать свои подсистемы, предназначенные для решения определенных задач.

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

Первый из подходов имеет ряд недостатков:

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

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

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

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

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

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

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

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

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

Требования, предъявляемые к БД

Правильно спроектированная БД должна удовлетворять следующим требованиям:

  1. Минимальная избыточность. Непротиворечивость.

  2. Целостность данных.

  3. Независимость данных.

  4. Возможность ведения (добавления и удаления) и актуализации (корректировки, модификации) данных.

  5. Безопасность и секретность.

  6. Высокая производительность. Минимальные затраты.

  7. Соблюдение стандартов.

1. Минимальная избыточность означает то, что данные в БД не должны дублироваться. Избыточность данных, если она существует, влечет две опасности:

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

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

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

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

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

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

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

Существуют специальные методы и приемы обеспечения целостности.

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

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

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

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

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

3. Независимость данных означает то, что прикладные программы не должны зависеть от хранимых данных, т.е. от способа хранения данных в физической памяти. Это позволяет добавлять в БД новые данные, изменять структуры хранения данных, создавать на БД новые приложения. Ранее созданные программы при этом не должны "чувствовать" эти изменения.

СУБД обычно обеспечивают это требование.

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

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

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

- Ограничение доступа к данным. Каждый пользователь должен работать только с теми данными, которые необходимы для решения его задач, остальные данные должны быть для него "невидимыми".

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

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

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

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

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

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

Уровни представления данных в бд

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

Это - системные программисты, разрабатывающие автоматизированную систему и БД, ответственные за все вопросы, связанные с правильным функционированием БД;

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

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

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

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

В различных АИС, используемых на практике, реализовано различное число уровней представления данных, минимально - 2: концептуальный и внутренний. Однако, для того, чтобы удовлетворялись все требования, предъявляемые к БД, необходимо три уровня: внешний, концептуальный и внутренний.

Центральной частью БД является концептуальный уровень представления данных или концептуальная схема. Концептуальная схема (или схема БД) - это описание общей логической структуры данных.

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

Подсхема В

Внешний

уровень

Отображение А внешний - Отображение В внешний-

концептуальный концептуальный

Концептуальный

уровень

Отображение концептуальный - внутренний

Внутренний

уровень

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

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

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

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

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

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

С БД будут работать пользователи разных уровней.

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

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

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

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

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

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

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

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

СУБД поддерживает все уровни представления данных и отображения.

Лицо или группа лиц, ответственных за всю БД в целом, за систему защиты и за все уровни представления данных называется Администратором Базы Данных (АБД).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]