Какие средства используются в субд для обеспечения логической целостности

Обновлено: 19.05.2024

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

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

• хранение данных и их защита;

• изменение (обновление, добавление и удаление) хранимых данных;

• поиск и отбор данных по запросам пользователей;

• обработка данных и вывод результатов.

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

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

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

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

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

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

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

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

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

Файловые системы

Развитие основных понятий представления данных

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

Соотношение сложности представления обрабатываемых данных и алгоритма вычислений определяет два класса задач:

- вычислительные задачи – достаточно простое представление данных и сложный процесс вычислений;

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

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

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

Недостатки файловых систем

1. Структура записи файла известна только программе, в которой он создан. Изменение структуры требует изменения программ, использующих этот файл с данными. Таким образом, программы зависят от данных.

2. Проблемы с авторизацией доступа. Можно использовать средства ОС по разграничению доступа. Такое решение возможно, но неудобно. Нужны централизованные методы доступа к информации.

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

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

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

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

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

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

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

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

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

3. Обеспечение независимости прикладных программ и (логической и физической независимости).

4. Защита логической целостности базы данных.

5. Защита физической целостности.

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

7. Синхронизация работы нескольких пользователей.

8. Управление ресурсами среды хранения.

9. Поддержка деятельности системного персонала.

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

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

4. Защита логической целостности базы данных.

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

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

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

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

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

7. Синхронизация работы нескольких пользователей.

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

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

8. Управление ресурсами среды хранения.

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

9. Поддержка деятельности системного персонала.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поддержка функционирования в сети обеспечивается:

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

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

Поддержка взаимодействия с Windows-приложениями позволяет СУБДП внедрять в отчет сведения, хранящиеся в файлах, созданных с помощью других приложений, например, в документе Word или в рабочей книге Excel , включая графику и звук. Для этого в СУБДП поддерживаются механизмы, разработанные для среды Windows , такие как: DDE Dynamic Data Exchange динамический обмен данными) и OLE Object Linking and Embedding связывание и внедрение объектов).

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

Современные подходы к созданию БД предполагают их трёхуровневую организацию. Этот способ организации БД был предложен American National Standards Institute ( ANSI ) и используется повсеместно.

На самом верхнем (внешнем) уровне может быть множество моделей. Этот уровень определяет точку зрения на БД отдельных пользователей (приложений). Каждое приложение видит и обрабатывает только те данные, которые необходимы именно ему.

На концептуальном уровне БД представлена в наиболее общем виде, который объединяет все внешние представления предметной области. На концептуальном уровне имеем обобщённую модель предметной области, для которой создавалась БД. Концептуальное представление только одно. При разработке концептуальной модели усилия направлены на структуризацию данных и выявление взаимосвязей, без рассмотрения особенностей реализации и эффективности разработки.

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

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

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

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

Модель данных – это набор правил, по которым организуются данные.

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

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

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

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

Управление ресурсами среды хранения.

Поддержка деятельности системного персонала.

Информация по содержанию данной лекции содержится в 1

Задача 1. Основные причины появления систем управления базами данных.

Вариант 1.

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

 необходимость повышения эффективности работы прикладных программ

 появление современных операционных систем

ð+ совместное использование данных разными прикладными программами

 большой объем данных в прикладной программе

Вариант 2.

Основные требования, побуждающие пользователя к использованию СУБД:

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

 большой объем данных в прикладной программе

 большой объем сложных математических вычислений

ð+ необходимость решения ряда задач с использованием общих данных

Вариант 3.

Требования, из которых не следует необходимость в использовании СУБД:

ð+ необходимость представления средств организации данных прикладной программе

ð+ большой объем данных в прикладной программе

 большой объем сложных математических вычислений

ð+ необходимость решения ряда задач с использованием общих данных

Задача 2. Основная роль СУБД

Вариант 1

Основное назначение СУБД:

 обеспечение независимости прикладных программ и данных

 представление средств организации данных одной прикладной программе

 поддержка сложных математических вычислений

ð+ поддержка интегрированной совокупности данных

Вариант 2.

Что не входит в назначение СУБД?

 обеспечение независимости прикладных программ и данных

ð+ представление средств организации данных одной прикладной программе

ð+ поддержка сложных математических вычислений

 поддержка интегрированной совокупности данных

Вариант 3.

Для чего предназначена СУБД?

ð+ для создания базы данных

ð+ для ведения базы данных

ð+ для использования базы данных

 для разработки прикладных программ

Задача 3. Основные функции СУБД

Вариант 1.

Что входит в функции СУБД?

ð+ создание структуры базы данных

ð+ загрузка данных в базу данных

ð+ предоставление возможности манипулирования данными

 проверка корректности прикладных программ, работающих с базой данных

ð+ обеспечение логической и физической независимости данных

ð+ защита логической и физической целостности базы данных

ð+ управление полномочиями пользователей на доступ к базе данных

Вариант 2.

Что не входит в функции СУБД?

 создание структуры базы данных

 загрузка данных в базу данных

 предоставление возможности манипулирования данными

ð+ проверка корректности прикладных программ, работающих с базой данных

 обеспечение логической и физической независимости данных

 защита логической и физической целостности базы данных

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

Вариант 3.

Основные средства СУБД для работы пользователя с базой данных:

ð+ язык запросов

ð+ графический интерфейс

 разрабатываемые пользователем программы

Задача 4. Определение понятия банка данных.

Вариант 1.

Что входит в понятие банка данных?

ð+ база данных

 прикладные программы работы с базой данных

ð+ СУБД

ð+ компьютеры с базой данных

ð+ администраторы базы данных

Вариант 2.

Как соотносятся понятия база данных и банк данных?

 база данных включает банк данных

ð+ банк данных включает базу данных

 не связанные понятия

Вариант 3.

Что не входит в понятие банк данных?

 технология обработки данных

 алгоритмы обработки данных

ð+ помещение, где обрабатываются данные

 администраторы базы данных

Задача 5. Логическая и физическая независимость данных.

Вариант 1.

Что дает логическая и физическая независимость данных?

ð+ изменение прикладных программ не приводит к изменению физического представления базы данных

 изменение программ СУБД не приводит к изменению физического представления данных

ð+ изменение физического представления данных не приводят к изменению прикладных программ

ð+ изменение программ СУБД не приводит к изменению прикладных программ

Вариант 2.

К чему приведет отсутствие логической и физической независимости данных?

ð+ к необходимости изменения прикладных программ при изменении физического представления базы данных

 к большей достоверности данных

ð+ к возможному изменению физического представления данных при изменении прикладных программ

 к более эффективному взаимодействию пользователей с базой данных

Вариант 3.

В чем состоит логическая и физическая независимость данных в базах данных?

ð+ представление о данных в прикладных программах и физическое представление данных в компьютере независимы.

 данные одной прикладной программы независимы от данных другой прикладной программы

ð+ изменение прикладных программ не приводит к изменению физического представления базы данных

ð+ изменение прикладных программ не приводит к изменению программ СУБД

Задача 6. Что такое логическая и физическая целостность базы данных?

Вариант 1.

Основные цели обеспечения логической и физической целостности базы данных?

 защита от неправильных действий прикладного программиста

 защита от неправильных действий администратора баз данных

ð+ защита от возможных ошибок ввода данных

ð+ защита от машинных сбоев

ð+ защита от возможного появления несоответствия между данными после выполнения операций удаления и корректировки

Вариант 2.

Какие средства используются в СУБД для обеспечения логической целостности?

ð+ Контроль типа вводимых данных

ð+ Описание ограничений целостности и их проверка

 Синхронизация работы пользователей

Вариант 3. Какие средства используются в СУБД для обеспечения физической целостности?

 контроль типа вводимых данных

 описание ограничений целостности и их проверка

ð+ блокировки

ð+ транзакции

ð+ журнал транзакций

Задача 7. Что такое транзакция?

Вариант 1.

В чем суть использования механизма транзакций?

 изменения в базу данных вносятся каждой операцией

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

 изменения в базу данных вносятся только администратором базы данных

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

Вариант 2.

При каких условиях система меняет данные в базе данных?

ð+ по завершению транзакции

ð+ по оператору commit

 по указанию администратора

 по оператору модификации данных

Вариант 3.

Для чего ведется журнал транзакций?

 для анализа действий с базой данных

 для использования прикладными программами

 для проверки правильности данных

ð+ для восстановления базы данных

Задача 8. Что такое синхронизация работы пользователей?

Вариант 1.

Зачем нужна синхронизация?

 для ускорения работы прикладных программ

 для восстановления базы данных после сбоев

ð+ для предотвращения нарушения достоверности данных

 для поддержки деятельности системного персонала

Вариант 2.

Какие средства используются для синхронизации?

ð+ блокировки

Вариант 3.

Последовательность действий СУБД при синхронизации:

 установка блокировки, начало транзакции, снятие блокировки, завершение транзакции

ð+ начало транзакции, установка блокировки, завершение транзакции, снятие блокировки

 начало транзакции, установка блокировки, продолжение транзакции, снятие блокировки, завершение транзакции

ð+ начало транзакции, установка блокировки, выполнение транзакции, откат транзакции, снятие блокировки

Читайте также: