Система управления базами данных (СУБД). Назначение базы данных и основные ее функции
База данных – это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором свойств.
Программное обеспечение, предназначенное для работы с базами данных, называется система управления базами данных (СУБД). СУБД используются для упорядоченного хранения и обработки больших объемов информации.
СУБД (система управления базой данных) - организует хранение информации таким образом, чтобы ее было удобно:
- просматривать
- пополнять
- изменять
- искать нужные сведения
- делать любые выборки
- осуществлять сортировку в любом порядке
Классификация баз данных:
1. По характеру хранимой информации:
- Фактографические (картотеки)
- Документальные (архивы)
2. По способу хранения данных:
- Централизованные (хранятся на одном компьютере)
- Распределенные (используются в локальных и глобальных компьютерных сетях)
3. По структуре организации данных:
- Табличные (реляционные)
- Иерархические
Информация в базах данных структурирована на отдельные записи, которыми называют группу связанных между собой элементов данных. Характер связи между записями определяет два основных типа организации баз данных: иерархический и реляционный.
Иерархическая база данных - записи упорядочиваются в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться последовательным «спуском» со ступени на ступень. Иерархическая база данных по своей структуре соответствует структуре иерархической файловой системы.
Реляционная база данных - по сути, представляет собой двумерную таблицу.
Столбцы таблицы называются полями: каждое поле характеризуется своим именем и типом данных.
Поле таблицы базы данных – это столбец таблицы, содержащий значения определенного свойства.
В реляционной базе данных используются четыре основных типов полей:
- Числовой
- Символьный (слова, тексты, коды и т.д.)
- Дата (календарные даты в форме «день/месяц/год»)
- Логический (принимает два значения: «да» - «нет» или «истина» - «ложь»)
Строки таблицы являются записями об объекте.
Запись таблицы базы данных – это строка таблицы, содержащая набор значения определенного свойства, размещенный в полях базы данных.
Системы управления базами данных позволяют объединять большие объемы информации и обрабатывать их, сортировать, делать выборки по определенным критериям и т. п.
Современные СУБД дают возможность включать в них не только текстовую и графическую информацию, но и звуковые фрагменты и даже видеоклипы.
Простота использования СУБД позволяет создавать новые базы данных, не прибегая к программированию, а пользуясь только встроенными функциями. СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним, например СУБД: Microsoft Access и т.п.
Для менее сложных применений вместо СУБД используются информационно-поисковые системы (ИПС), которые выполняют следующие функции:
- хранение большого объема информации
- быстрый поиск требуемой информации
- добавление, удаление и изменение хранимой информации
- вывод ее в удобном для человека виде
Содержание
1. Теоретические аспекты СУБД.. 6
1.1 Основные понятия БД.. 6
1.2 Модели данных. 9
1.3 Функции СУБД.. 12
1.4 Функциональные возможности СУБД.. 14
1. Теоретические аспекты СУБД
1.1 Основные понятия БД
В настоящее время жизнь человека настолько насыщена различного рода информацией, что для ее обработки требуется создание огромного количества хранилищ информации различного назначения.
Современные информационные системы характеризуются огромными объемами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей.
Основой информационной системы является база данных.
Целью любой информационной системы является обработка данных об объектах реального мира.
В широком смысле слова база данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.
Кроме того, база данных – это хранилище данных для совместного использования. При автоматизации деятельности человека происходит перенос реального мира в электронный формат. Для этого выделяется какая-то часть этого мира и анализируется на предмет возможности автоматизации. Она называется предметной областью и строго очерчивает круг объектов, которые изучаются, измеряются, оцениваются и т.д. (см. рисунок 1.1).
В результате этого процесса выделяются объекты автоматизации и определяются реквизиты, по которым данные объекты оцениваются.
Результатом данного процесса становится база данных, которая описывает конкретную часть реального мира со строго определенных позиций. Итак, оценивая все вышесказанное, можно сказать, что:
Предметная область - это часть реального мира, подлежащего изучению для организации управления и автоматизации.
Объект - это элемент предметной области, информацией о котором мы владеем .
Реквизит (атрибут) – поименованная характеристика объекта. Он показывает, какая информация об объекте должна быть собрана.
Объектами могут быть:
· люди, например, перечисленные в какой-либо платежной ведомости или являющиеся объектами учетов органов внутренних дел;
· предметы, например, номерные или имеющие характерные отличительные особенности вещи, средства автомототранспорта;
· построения - воображаемые объекты;
· события.
Базы данных выполняют две основные функции. Они группируют данные по информационным объектам и их связям и предоставляют эти данные пользователям.
Данные - это формализованное представление информации, доступное для обработки, интерпретации и обмена между людьми или в автоматическом режиме.
База данных - это поименованная совокупность структурированных данных, относящихся к определенной предметной области.
Обрабатывает структурированные данные централизованный программный механизм, который называется системой управления базами данных.
Система управления базами данных (СУБД) - это программный механизм, предназначенный для записи, поиска, сортировки, обработки (анализа) и печати информации, содержащейся в базе данных.
В компьютерной базе данных информация представляется в виде таблицы, очень похожей на электронную таблицу. Названия столбцов, представляющих «шапку» таблицы, называют именами полей или реквизитами, а самистолбцы - полями. Данные в полях называют значениями реквизитов или значениями полей.Для описания поля, кроме его имени используются следующие характеристики и свойства полей:
Тип поля. Подобно электронной таблице, работающей с тремя типами полей: текстовый, числовой и формула, в таблицах используется несколько большее количество типов полей.
Длина поля – максимально возможное количество символов.
Точность (для числовых типов полей) – количество знаков после запятой.
Маска ввода – форма средства автоматизации ввода, в которой вводятся данные в поле. Например, одно и то же значение имеют поля даты: 03.03.95 или 03.03.1995, или 03-март-1995, но отличаются по формату.
Сообщение об ошибке – текстовое сообщение, которое выдается в поле при попытке ввода ошибочных данных.
Условие на значение – ограничение, используемое для проверки правильности ввода данных.
Пустое и обязательное поле – свойство поля, определяющее обязательность заполнения поля при наполнении базы данных.
Индексированное поле – дополнительное имя поля, позволяющее ускорить операции поиска и сортировки записей.
Строки данных таблицы называются записями (рис.3).
Таким образом:
Поле - это элементарная единица логической организации данных, которая соответствует неделимой единице информации - реквизиту.
Запись - совокупность логически связанных полей, представленных одной строкой таблицы.
Файл (таблица) – совокупность экземпляров записей одной структуры.
Всякая прикладная программа является отображением какой – то части реального мира и поэтому содержит его формализованное описание в виде данных.Крупные массивы данных размещают, как правило, отдельно от исполняемого кода программы, и организуют в виде Базы данных. Начиная с 60-х годов для работы с данными, стали использовать особые программные комплексы, называемые системами управления базами данных (СУБД). Системы управления базами данных отвечают за:
- физическое размещение данных и их описаний;
- поиск данных;
- поддержание баз данных в актуальном состоянии;
- защиту данных от некорректных обновлений и несанкционированного доступа;
- обслуживание одновременных запросов к данным от нескольких пользователей (прикладных программ).
1.2 Модели данных
Хранимые данные в базе данных имеют определенную логическую структуру, то есть, представлены некоторой моделью, поддерживаемой СУБД. К числу важнейших относятся следующие модели данных:
- иерархическая;
- сетевая;
- реляционная;
- объектно-ориентированная;
В иерархической модели данные представляются в виде древовидной (иерархической) структуры. Она удобна для работы с иерархически упорядоченной информацией и громоздка для информации со сложными логическими связями.
Сетевая модель означает представление данных в виде произвольного графа. Достоинством сетевой и иерархической моделей данных является возможность их эффективной реализации показателей затрат памяти и оперативности. Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе.
Реляционная модель данных (РМД) название получила от английского термина Relation – отношение. Модель данных описывает некоторый набор родовых понятий и признаков, которыми должны обладать все конкретные СУБД и управляемые ими БД, если они основываются на этой модели.
Объектно-ориентированная модель данных – это когда в базе хранятся не только данные, но и методы их обработки в виде программного кода. Это перспективное направление, пока также не получившее активного распространения из-за сложности создания и применения подобных СУБД.
База данных - это совокупность записей различного типа, содержащая перекрестные ссылки.
Файл - это совокупность записей одного типа, в котором перекрестные ссылки отсутствуют.
Более того, в определении нет упоминания о компьютерной архитектуре. Дело в том, что, хотя в большинстве случаев БД действительно представляет собой один или (чаще) несколько файлов, физическая их организация существенно отличается от логической. Таблицы могут храниться как в отдельных файлах, так и все вместе. И, наоборот, для хранения одной таблицы иногда используются несколько файлов. Для поддержки перекрестных ссылок и быстрого поиска обычно выделяются дополнительные специальные файлы.
Поэтому при работе с базами данных обычно применяются понятия более высокого логического уровня: запись и таблица, без углубления в подробности их физической структуры.
Таким образом, сама по себе база данных - это только набор таблиц с перекрестными ссылками. Чтобы универсальным способом извлекать из нее группы записей, обрабатывать их, изменять и удалять, требуются специальные программы, называемые СУБД.
По характеру использования, СУБД делят на персональные (СУБДП) и многопользовательские (СУБДМ).
К персональным СУБД относятся VISUAL FOXPRO, ACCESS и др. К многопользовательским СУБД относятся, например, СУБД ORACLE и INFORMIX. Многопользовательские СУБД включают в себя сервер БД и клиентскую часть, работают в неоднородной вычислительной среде, допускают использование разных типов ЭВМ и различных операционных систем. Поэтому на базе СУБДМ можно создать информационную систему, функционирующую по технологии клиент-сервер. Универсальность многопользовательских СУБД отражается соответственно на высокой цене и компьютерных ресурсах, требуемых для их поддержки.
СУБДП представляет собой совокупность языковых и программных средств, предназначенных для создания, ведения и использования БД.
Персональные СУБД обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними, и при необходимости создания приложений, работающих с сервером БД.
Для обработки команд пользователя или операторов программ в СУБДП используются интерпретаторы команд (операторов) и компиляторы. С помощью компиляторов в ряде СУБДП можно получать исполняемые автономные приложения - .exe - программы.
Обеспечение целостности БД - необходимое условие ее успешного функционирования. Целостность - свойство, означающее, что база данных содержит полную и непротиворечивую информацию. Для обеспечения целостности БД накладывают ограничения целостности в виде некоторых условий, которым должны удовлетворять хранимые в базе данные. Примером таких условий может служить ограничение диапазонов возможных значений атрибутов объектов, сведения которые хранятся в БД, или отсутствие повторяющихся записей в таблицах реляционных БД.
Обеспечение безопасности достигается СУБД шифрованием прикладных программ, данных, защиты паролем, поддержкой уровней доступа к базе данных, к отдельной таблице.
Расширение возможностей пользователя СУБДП достигается за счет подключения систем распространения Си или Ассемблера.
Поддержка функционирования в сети обеспечивается:
1. средствами управления доступом пользователей к совместно используемым данным, т.е. средствами блокировки файлов (таблиц), записей, полей, которые в разной степени реализованы в разных СУБДП;
2. средствами механизма транзакций, обеспечивающими целостность БД при функционировании в сети.
1.3 Функции СУБД
Определение данных. СУБД должна допускать определения данных (внешние схемы, концептуальную схему, внутреннюю схему, а также все связанные отображения) в исходной форме и преобразовывать эти определения в форму соответствующих объектов. Иначе говоря, СУБД должна включать в себя компонент языкового процессора для различных языков определений данных. СУБД должна также «понимать» синтаксис языка определений данных.
Обработка данных.СУБД должна уметь обрабатывать запросы пользователя на выборку, изменение или удаление существующих данных в базе данных или на добавление новых данных в эту базу. Другими словами, СУБД должна включать в себя компонент процессора языка обработки данных.
Запросы языка обработки данных бывают «планируемые» и «не планируемые».
1. Планируемый запрос - это запрос, необходимость которого предусмотрена заранее. Администратор базы данных, возможно, должен настроить физический проект БД таким образом, чтобы гарантировать достаточное быстродействие для таких запросов.
2.Не планируемый запрос - это,наоборот, специальный запрос, необходимость которого не была предусмотрена заранее. Физический проект БД может подходить, а может и не подходить для рассматриваемого специального запроса. В общем, получение возможной наибольшей производительности для не планируемых запросов представляет собой одну из проблем СУБД.
Безопасность и целостность данных. СУБД должна контролировать пользовательские запросы и пресекать попытки нарушения правил безопасности и целостности, определенные АБД.
Восстановление данных и дублирование. СУБД или другой связанный с ней программный компонент, обычно называемый администратором транзакций, должен осуществлять необходимый контроль над восстановлением данных и дублированием.
Словарь данных. СУБД должна обеспечить функцию словаря данных. Сам словарь данных можно по праву считать БД. Словарь «содержит данные о данных» (иногда называемые метаданными), т.е. определения других объектов системы, а не просто «сырые данные». В частности, исходная и объектная формы различных схем (внешних, концептуальных и т.д.) и отображений будут сохранены в словаре. Расширенный словарь будет включать также перекрестные ссылки, показывающие, например, какие из программ какую часть БД используют, какие отчеты требуются тем или иным пользователям, какие терминалы подключены к системе и т.д. Словарь может быть (а на самом деле должен быть) интегрирован в определяемую им БД, а значит, должен содержать описание самого себя. Конечно, должна быть возможность обращения к словарю, как к другой БД, например, для того чтобы узнать, какие программы и/или пользователи будут затронуты при предполагаемом внесении изменения в систему.
Производительность. Очевидно, что СУБД должна выполнять все указанные функции с максимально возможной эффективностью.
Подводя итог сказанному, можно сделать вывод, что в целом назначением СУБД является предоставление пользовательского интерфейса с БД. Пользовательский интерфейс может быть определен как граница в системе, ниже которой все невидимо для пользователя. Следовательно, по определению пользовательский интерфейс находится на внешнем уровне. Тем не менее, иногда встречаются случаи, когда внешнее представление вряд ли значительно отличается от относящейся, по мере в современных коммерческих продуктах.
В заключении вкратце можно сопоставить описанную СУБД с системой управления файлами. В своей основе система управления файлами является компонентом общей системы, которая управляет хранимыми файлами; проще говоря, она «ближе к диску», чем СУБД. Таким образом, пользователь системы управления файлами может создавать и уничтожать хранимые файлы, а также выполнять простые операции выборки и обновления хранимых записей в таких файлах. Однако, в отличие от СУБД, системы управления файлами имеют некоторые недостатки.
1.4 Функциональные возможности СУБД
Управляющим компонентом многих СУБД является ядро, выполняющее следующие функции:
1. управление данными во внешней памяти;
2. управление буферами оперативной памяти (рабочими областями, в которые осуществляется подкачка данных из базы для повышения скорости работы);
3. управление транзакциями.
Непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти, как для хранения данных, непосредственно входящих в базу так и для служебных целей. Например, для ускорения доступа к данным в некоторых случаях (обычно для этого используется индекс).
В некоторых реализациях СУБД активно используется возможность существующих файловых систем. В других работа производится вплоть до уровня устройств внешней памяти. Но можно подчеркнуть, что в развитых СУБД пользователь, в любом случае, не обязан знать использует ли СУБД файловую систему, и если использует, то, как организованы файлы. В частности СУБД поддерживает собственную систему и наименование объектов баз данных.
Управление буферами оперативной памяти. СУБД обычно работает с внешней памятью БД, размер существующей памяти обычно больше доступного объема оперативной памяти. Если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом даже если операционная система производит общесистемную буферизацию, этого не достаточно для цели СУБД, которая располагает гораздо большей информацией о полезности буферизации, т.е. той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти и собственная дисциплина замены буферов.
Управление транзакциями. Транзакция – в общем случае последовательность ряда таких операций, которые преобразуют некоторое непротиворечивое состояние базы данных в другое непротиворечивое состояние, но не гарантируют сохранения непротиворечивости во все промежуточные моменты времени. При выполнении транзакция может быть либо успешно завершена, и СУБД зафиксирует произведенные изменения во внешней памяти, либо, например, при сбое в аппаратной части ПК, ни одного из изменений не отразится на БД. Понятие транзакция необходимо для поддержания логической целостности БД. Таким образом, поддержание механизма транзакций является обязательным условием даже для однопользовательских СУБД. (Если такая система заслуживает названия СУБД). Но понятие транзакция гораздо более важно для многопользовательской СУБД. Каждая транзакция начинается при целостном состоянии БД и оставляет это состояние после своего завершения. Становится очень удобным использование понятия «транзакция» как единицы активности пользователя по отношению к БД. При соответствующем управлении транзакциями со стороны СУБД, каждый пользователь может, в принципе, ощущать себя единственным пользователем БД. С управлением транзакциями многопользовательской СУБД связаны важные понятия - «сериализация транзакций» и «сериальный план выполнения смеси транзакций». Под сериализацией выполнения понимают такой порядок планирования работ, при котором суммарный эффект смеси транзакций эквивалентен эффекту их некоторого последовательного управления. Сериальный план выполнения смеси транзакций это такой план, который приводит к сериализации транзакций. Если удается добиться действительного сериального выполнения смеси транзакции, то для каждого пользователя, по инициативе которого образованна транзакция, присутствие других транзакций будет незаметно (если не считать некоторого замедления работы по сравнению с однопользовательским режимом). Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизации захвата объектов БД. При использовании любого алгоритма возможна ситуация конфликта между двумя или более транзакциями по доступу к объекту БД. В этом случае для поддержания сериализации необходимо, выполнять откат одной ли более транзакции. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакции других пользователей.