Системы управления базами данных
Основные понятия базы данных, ее значение, функции и роль в обработке информации. Классификации моделей и их характеристика. Особенности архитектуры и типов систем управления базами данных, их уровни, отличительные и функциональные признаки видов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.03.2009 |
Размер файла | 695,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
35
35
Содержание
- Введение 3
- 1. Теоретические аспекты СУБД 6
- 1.1 Основные понятия БД 6
- 1.2 Модели данных 9
- 1.3 Функции СУБД 12
- 1.4 Функциональные возможности СУБД 14
- 2. Архитектура СУБД 18
- 2.1 Три уровня архитектуры 18
- 2.2 Виды архитектур 22
- 3. Типы СУБД 25
- 3.1 Системы общего назначения и специализированные системы 25
- 3.2 Настольные СУБД 28
- Заключение 35
- Глоссарий 37
- Библиографический список 39
- Список сокращений 40
- Приложения 41
Введение
В настоящее время жизнь человека настолько насыщена различного рода информацией, что для ее обработки требуется создание огромного количества хранилищ информации различного назначения.
Современные информационные системы характеризуются огромными объемами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей.
Основой информационной системы является база данных.
Развитие средств вычислительной техники обеспечило для создания и широкого использования системы обработки данных разнообразного назначения. Разрабатываются информационные системы для обслуживания различных систем деятельности, систем управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы. Одной из важных предпосылок создания таких систем стала возможность оснащения их «памятью» для накопления, хранения и систематизация больших объемов данных. Другой существенной предпосылкой нужно признать разработку подходов, а также создание программных и технических средств конструирования систем, предназначенных для коллективного пользования. В этой связи потребовалось разработать специальные методы и механизмы управления такого рода совместно используемыми ресурсами данных, которые стали называться базами данных. Исследования и разработки, связанные с проектированием, созданием и эксплуатации баз данных, а также необходимых для этих целей языковых и программных инструментальных средств привели к появлению самостоятельной ветви информатики, получившей название системы управления данными.
Такие программные комплексы выполняют довольно сложный набор функций, связанный с централизованным управлением данными в базе данных, интерфейсах всей совокупности ее пользователей. По существу, система управления базами данных служит посредником между пользователями и базой данных.
Лет двадцать назад обработка данных производилась с помощью мэйнфреймов и мини-ЭВМ и имела свои преимущества, в определенной степени, утраченные позже, в эпоху персональных компьютеров и настольных СУБД. К ним, в частности, относились:
· возможность коллективного использования ресурсов и оборудования, например центрального процессора, оперативной памяти, внешних устройств (принтеров, плоттеров, накопителей на магнитной ленте и иных устройств хранения данных и т.д.);
· централизованное хранение данных.
Серьезным недостатком подобных систем было практическое отсутствие персонализации рабочей среды - все программное обеспечение, включая текстовые редакторы, компиляторы, СУБД, хранилось также централизованно и использовалось коллективно.
Этот недостаток был одной из причин бурного роста индустрии персональных компьютеров - наряду с простотой в эксплуатации и невысокой стоимостью по сравнению с мэйнфреймами и мини-ЭВМ пользователей привлекали возможности персонализации рабочей среды, в особенности возможность выбора наиболее подходящего данному пользователю программного обеспечения. Именно в тот период и начался бурный рост популярности настольных СУБД, таких как dBase (РЕБУС) и, чуть позже, FoxBASE, Paradox, а также некоторых других, ныне благополучно забытых. Надо сказать, в то время происходили процессы заимствования и стандартизации удачных идей и подходов, что особенно заметно отразилось на судьбе такого продукта, как dBase, чей язык программирования и принципы организации данных были заимствованы многими другими производителями в своих продуктах.
В настоящее время разработаны и используются на персональных компьютерах около двадцати систем управления базами данных. Они представляют пользователю удобные средства интерактивного взаимодействия с БД и имеют развитый язык программирования.
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. управление транзакциями.
Непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти, как для хранения данных, непосредственно входящих в базу так и для служебных целей. Например, для ускорения доступа к данным в некоторых случаях (обычно для этого используется индекс).
В некоторых реализациях СУБД активно используется возможность существующих файловых систем. В других работа производится вплоть до уровня устройств внешней памяти. Но можно подчеркнуть, что в развитых СУБД пользователь, в любом случае, не обязан знать использует ли СУБД файловую систему, и если использует, то, как организованы файлы. В частности СУБД поддерживает собственную систему и наименование объектов баз данных.
Управление буферами оперативной памяти. СУБД обычно работает с внешней памятью БД, размер существующей памяти обычно больше доступного объема оперативной памяти. Если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом даже если операционная система производит общесистемную буферизацию, этого не достаточно для цели СУБД, которая располагает гораздо большей информацией о полезности буферизации, т.е. той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти и собственная дисциплина замены буферов.
Управление транзакциями. Транзакция - в общем случае последовательность ряда таких операций, которые преобразуют некоторое непротиворечивое состояние базы данных в другое непротиворечивое состояние, но не гарантируют сохранения непротиворечивости во все промежуточные моменты времени. При выполнении транзакция может быть либо успешно завершена, и СУБД зафиксирует произведенные изменения во внешней памяти, либо, например, при сбое в аппаратной части ПК, ни одного из изменений не отразится на БД. Понятие транзакция необходимо для поддержания логической целостности БД. Таким образом, поддержание механизма транзакций является обязательным условием даже для однопользовательских СУБД. (Если такая система заслуживает названия СУБД). Но понятие транзакция гораздо более важно для многопользовательской СУБД. Каждая транзакция начинается при целостном состоянии БД и оставляет это состояние после своего завершения. Становится очень удобным использование понятия «транзакция» как единицы активности пользователя по отношению к БД. При соответствующем управлении транзакциями со стороны СУБД, каждый пользователь может, в принципе, ощущать себя единственным пользователем БД. С управлением транзакциями многопользовательской СУБД связаны важные понятия - «сериализация транзакций» и «сериальный план выполнения смеси транзакций». Под сериализацией выполнения понимают такой порядок планирования работ, при котором суммарный эффект смеси транзакций эквивалентен эффекту их некоторого последовательного управления. Сериальный план выполнения смеси транзакций это такой план, который приводит к сериализации транзакций. Если удается добиться действительного сериального выполнения смеси транзакции, то для каждого пользователя, по инициативе которого образованна транзакция, присутствие других транзакций будет незаметно (если не считать некоторого замедления работы по сравнению с однопользовательским режимом). Существует несколько базовых алгоритмов сериализации транзакций. В централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизации захвата объектов БД. При использовании любого алгоритма возможна ситуация конфликта между двумя или более транзакциями по доступу к объекту БД. В этом случае для поддержания сериализации необходимо, выполнять откат одной ли более транзакции. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакции других пользователей.
2. Архитектура СУБД
2.1 Три уровня архитектуры
Архитектура ANSI/SPARC включает три уровня: внутренний, концептуальный и внешний (см. рисунок 2.1). В общих чертах они представляют собой следующее:
- Внутренний уровень-это уровень, наиболее близкий к физическому хранению, т.е. связанный со способами сохранения информации на физических устройствах хранения.
- Внешний уровень наиболее близок к пользователям, т.е. он связан со способами представления данных для отдельных пользователей.
- Концептуальный уровень-это «промежуточный» уровень между двумя первыми.
Внешний уровень. Если внешний уровень связан с индивидуальными представлениями пользователей, то концептуальный уровень связан с их обобщенным представлением. Иначе говоря, может быть несколько внешних представлений, каждое из которых состоит из более или менее абстрактного представления определенной части БД, и может быть только одно концептуальное представление, состоящее из абстрактного представления БД в целом.
Внешний уровень - это индивидуальный уровень пользователя. Пользователь может быть прикладным программистом или конечным пользователем с любым уровнем профессиональной подготовки. Особое место среди пользователей занимает администратор БД. (В отличие от остальных пользователей его интересует также концептуальный и внутренний уровень.)
У каждого пользователя есть свой язык общения.
- Для прикладного программиста это либо один из распространенных языков программирования, такой как C, COBOL или PL/1, либо специальный язык рассматриваемой системы. Такие оригинальные языки называют (неформально!) языками четвертого поколения на том основании, что машинный код, язык ассемблера и такие языки, как COBOL, можно считать языками трех первых «поколений», а оригинальные языки модернизированы по сравнению с языками третьего поколения так же, как языки третьего поколения улучшены по сравнению с языком ассемблера.
- Для конечного пользователя это или специальный язык запросов, или язык специального назначения, возможно, основанный на формах и меню, созданный специально с учетом требований и поддерживаемый некоторым оперативным приложением.
Хотя с точки зрения архитектуры удобно различать подъязык данных и включающий его базовый язык, на практике они могут быть неразличимыми настолько, насколько это имеет отношение к пользователю. Безусловно, с точки зрения пользователя, предпочтительнее чтобы они были неразличимы или трудно различимы, в таком случае их называют сильно связанными. Если они ясно и легко различаются, говорят, что они слабо связаны. Большинство систем на сегодняшний день поддерживает лишь слабую связь. Системы с сильной связью могли бы предоставить пользователю более унифицированный набор возможностей, но, очевидно, требуют больше усилий со стороны системных проектировщиков и разработчиков; однако есть основания предполагать, что на протяжении следующих нескольких лет будет происходить постепенное продвижение к более сильно связанным системам.
Язык обработки данных состоит из таких выполняемых операторов PL/1, которые передают информацию в и из БД; опять же, возможно, включая, новые специальные операторы.
В общем, внешнее представление состоит из множества экземпляров каждого типа внешней записи, которые, в свою очередь, отнюдь не обязательно должны совпадать с ранимыми записями. Находящийся в распоряжении пользователя подъязык данных определен в терминах внешних записей; например, операция выборки языка обработки данных будет проводить выборку из экземпляров внешних, а не хранимых записей.
Концептуальный уровень. Концептуальное представление - это представление всей информации БД в несколько более абстрактной форме (как и случае внешнего представления) по сравнению с физическим способом хранения данных. Однако концептуальное представление существенно отличается от способа представления данных какому-либо отдельному пользователю. Вообще говоря, концептуальное представление - это представление данных такими, какие «они есть на самом деле», а не такими, какими вынужден их видеть пользователь в рамках, например, определенного языка или используемого аппаратного обеспечения.
Концептуальное представление состоит из множества экземпляров каждого типа концептуальной записи. Например, оно может состоять из набора экземпляров записей, содержащих информацию об отдельных данных, плюс набор экземпляров, содержащих информацию о деталях и т.д. Концептуальная запись вовсе не обязательно должна совпадать с внешней записью, с одной стороны, и с хранимой записью- с другой.
Концептуальное представление определяется с помощью концептуальной схемы, которая включает определения каждого типа концептуальных записей. Концептуальная схема использует другой язык определения данных - концептуальный.
Концептуальное представление - это представление всего содержимого базы данных, а концептуальная схема - это определение такого представления. Однако было бы ошибкой полагать, что концептуальная схема - это не более чем набор определений, больше напоминающих простые отношения записей в программе на языке COBOL (или каком-либо другом).
Теперь можно перейти к более детальному исследованию трех уровней архитектуры.
Внутренний уровень. Третьим уровнем архитектуры является внутренний уровень. Внутреннее представление - это представление нижнего уровня всей БД; оно состоит из многих экземпляров каждого типа внутренней записи. Термин «внутренняя запись» принадлежит терминологии ANSI/SPARC и означает конструкцию, называемую хранимой записью. Внутреннее представление так же, как внешнее и концептуальное, не связано с физическим уровнем, так как в нем не рассматриваются физические области устройства хранения, такие как цилиндры и дорожки. Другими словами, внутреннее представление предполагает бесконечное линейное адресное пространство; подробности того, как адресное пространство отображено на физическое устройство хранения, очень зависят от системы и умышленно не включены в общую архитектуру.
Внутреннее представление описывается с помощью внутренней схемы, которая определяет не только различные типы хранимых записей, но также существующие индексы, способы представления хранимых полей, физическую последовательность хранимых записей и т.д. Внутренняя схема пишется с использованием еще одного языка определения данных - внутреннего.
В заключение нужно отметить, что в некоторых исключительных ситуациях прикладные программы, в частности те, которые называют утилитами, могут выполнять операции непосредственно на внутреннем, а не на внешнем уровне. Конечно, такой практикой пользоваться не рекомендуется; она определяет риск с точки зрения безопасности (правила безопасности игнорируются) и целостности (правила целостности тоже игнорируются), к тому же программа будет зависеть от загруженных данных; но иногда это может быть единственным способом достичь выполнения требуемой функции или добиться необходимого быстродействия - так же, как пользователю языка высокого уровня, иногда по тем же причинам, необходимо прибегнуть к языку ассемблера.
Приложения, использующие базы данных, обычно принято относить к одной из программных архитектур, имеющих свои плюсы и минусы.
2.2 Виды архитектур
Локальная архитектура. И программа, и база данных расположены на одном компьютере. В такой архитектуре работает большинство настольных приложений.
Файл - серверная архитектура. База данных расположена на мощном выделенном компьютере (сервере), а персональные компьютеры подключены к нему по локальной сети. На этих компьютерах установлены клиентские программы, обращающиеся к базе данных по сети. Преимущество такой архитектуры заключается в возможности одновременной работы нескольких пользователей с одной базой данных.
Недостаток такого подхода - большие объемы информации, передаваемой по сети. Вся обработка выполняется на клиентских местах, где фактически формируется копия базы данных. Это приводит к ограничению максимально возможного числа пользователей, и большим задержкам при работе с базой. Эти задержки вызываются тем, что на уровне конкретной таблицы одновременный доступ невозможен. Пока программа на одном из клиентских мест не закончит работу с таблицей (например, не выполнит модификацию записей), другие программы не могут обращаться к этой таблице. Это называется блокировкой на уровне таблицы и исключает возникновение путаницы в ее содержимом.
Клиент - серверная архитектура. В такой архитектуре на сервере не только хранится БД, но и работает программа СУБД, обрабатывающая запросы пользователей и возвращающая им наборы записей. При этом программы пользователей уже не работают, например, с БД как набором физических фалов, а обращаются к СУБД, которая выполняет операции. Нагрузка с клиентских мест при этом снимается, так как большая часть работы происходит на сервере. СУБД автоматически следит за целостностью и сохранностью БД, а также контролирует доступ к информации с помощью службы паролей. Клиент - серверные СУБД допускают блоки на уровне записи и даже отдельного поля. Это означает, что с таблицей может работать любое число пользователей, но доступ к функции изменения конкретной записи или одного из ее полей обеспечен только одному из них.
Основной недостаток этой архитектуры - не очень высокая надежность. Если сервер выходит из строя - вся работа останавливается.
Распределенная архитектура. В сети работает несколько серверов, и таблицы баз данных распределены между ними для достижения повышенной эффективности. На каждом сервере функционирует своя копия СУБД. Кроме того, в подобной архитектуре обычно используются специальные программы, так называемые серверы приложений. Они позволяют оптимизировать обработку запросов большого числа пользователей и равномерно распределить нагрузку между компьютерами в сети.
Недостаток распределенной архитектуры заключается в довольно сложном и дорогостоящем процессе ее создания и сопровождения (администрирования), а также на высоких требованиях к серверам.
Интернет - архитектура. Доступ к базе данных и СУБД (распространенных на одном компьютере или в сети) осуществляется из браузера по стандартному протоколу. Это предъявляет минимальные требования к клиентскому оборудованию. Такие программы называют «тонкими клиентами», потому что они способны работать даже на ПК с процессором 80386. Благодаря стандартизации всех протоколов и их внедрения, например, можно не организовывать локальную сеть, а обращаться к серверу через Интернет в локальной сети (в таком случае говорят о технологиях интранет). В этом случае не требуется разрабатывать специальные клиентские программы или придумывать собственные спецификации обмена данными между сервером и клиентскими местами. Достаточно использовать готовые браузера и программные решения.
3. Типы СУБД
3.1 Системы общего назначения и специализированные системы
Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей базы данных для множества приложений, поддержания ее в актуальном состоянии и обеспечения эффективности доступа пользователей к содержащимся в ней данным в рамках предоставленных им полномочий. СУБД предназначена, таким образом, для централизованного управления БД как социальным ресурсом в интересах всей совокупностей ее пользователей. Доступ к базе данных отдельных пользователей при этом возможен только через посредство СУБД.
По степени их универсальности различаются два вида СУБД - системы общего назначения и специализированные системы. СУБД общего назначения не ориентированы на какую-либо конкретную предметную область или на информационные потребности конкретной группы пользователей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной обстановке, и поставляется многим пользователям как коммерческое изделие. СУБД общего назначения обладают средствами настройки на работу с конкретной БД в условиях конкретного применения.
Использование СУБД общего назначения в качестве инструментального средства для создания автоматизированных информационных систем, основанных на технологии БД, позволяет существенно сокращать сроки разработки, экономить трудовые ресурсы. Развитые функциональные возможности таких СУБД, присущая им, как правило, функциональная избыточность позволяют иметь значительный «запас мощности», необходимый для безболезненного эволюционного развития построенных на их основе информационных систем в рамках их жизненного цикла. Вместе с тем средства настройки дают возможность достигнуть приемлемого уровня производительности информационной системы в процессе ее эксплуатации.
Однако в некоторых случаях доступные СУБД общего назначения не позволяют добиться требуемых характеристик производительности и/или удовлетворить заданные ограничения по объему памяти, предоставляемой для хранения БД. Тогда приходится разрабатывать специализированную СУБД для данного конкретного применения. Решение указанных проблем при этом может оказаться возможным благодаря знанию специфических особенностей данного применения, к которым оказываются нечувствительными средства настройки доступных СУБД общего назначения, либо за счет ущемления каких либо функций системы, не имеющих жизненно-важного значения. Как правило, в этой роли оказываются, прежде всего функции, обеспечивающие комфортную работу пользователя.
Создание специализированной СУБД - весьма трудоемкое дело даже в сравнительно простых случаях, и для того, чтобы избрать этот путь, нужно иметь действительно веские основания и твердую убежденность в невозможности или нецелесообразности использования какой - либо СУБД общего назначения.
СУБД общего назначения - это сложные программные комплексы, предназначенные для выполнения всей совокупности функций, связанных с созданием и эксплуатацией БД информационной системы. Они позволяют определить структуру создаваемой БД, инициализировать ее и произвести начальную загрузку данных. Системные механизмы выполняют также функции управления ресурсами среды хранения, обеспечения логической и физической независимости данных, предоставления доступа пользователям к БД, защиты логической целостности БД, обеспечения ее физической целостности - защиты от разрушений. Другая важная группа функций - управления полномочиями пользователей на доступ к БД, настройка на конкретные условия применения, организация параллельного доступа пользователей к базе данных в социальной пользовательской среде, поддержка деятельности системного персонала, ответственного за эксплуатацию БД.
Для создания БД разработчик описывает ее логическую структуру, организацию в среде хранения, а также способы ведения базы данных пользователями. При этом используются предоставляемые СУБД языковые средства определения данных, и система настраивается на работу с конкретной БД. Такие описания БД называются соответственно схемой (или логической схемой, или концептуальной схемой) БД, схемой хранения (или внутренней схемой) и внешними схемами.
Обрабатывая схемы БД, СУБД создает пустую БД требуемой структуры - хранилище, которое можно далее наполнить данными о предметной области начать эксплуатировать для удовлетворения информационных потребностей пользователей.
Принципиально важное свойство СУБД заключается в том, что она позволяет различать и поддерживать два независимых взгляда на БД - взгляд пользователя, воплощаемой в «логическом» представлении данных, и «взгляд» системы - «физическое» представление, характеризующее организацию хранимых данных. Пользователя не интересует при его работе с БД байты и биты, представляющие данные в среде хранения, их размещения в памяти, указатели, поддерживающие связи между структурными различными компонентами хранимых данных, выбранные методы доступа. В то же время эти факторы важны для выполнения функций управления данными самой СУБД.
Обеспечение логической независимости данных - одна из важнейших функций СУБД, предоставляющая определенную степень свободы вариации «логического» представления БД без необходимости соответствующей модификации «физического» представления. Благодаря этому достигается возможность адаптации взгляда пользователя на БД к его реальным потребностям, конструирования различных «логических» взглядов на одну и ту же «физическую» БД, что весьма важно в социальной пользовательской среде.
Под «физической» независимостью данных понимается способность СУБД предоставлять некоторую свободу модификации способов организации БД в среде хранения, не вызывая необходимости внесения соответствующих изменений в «логическое» представление. Благодаря этому становится легко вносить изменения в организацию хранимых данных, производить настройку системы с целью повышения ее эффективности, не затрагивая созданных прикладных программ, использующих базу данных. «Физическая» независимость данных реализуется в СУБД за счет тех же самых трансформационных механизмов архитектуры системы, которые обеспечивают «логическую» независимость данных.
Поддержка логической целостности (непротиворечивости) базы данных - другая важная функция СУБД. В развитых системах ограничения целостности базы данных объявляются в схеме базы данных, и их проверка осуществляется при каждом обновлении объектов данных или связей между ними, являющихся аргументами таких ограничений.
3.2 Настольные СУБД
Основы работы настольных СУБД. Многие авторы классифицируют СУБД на две большие категории: «настольные» и «серверные».
Настольные СУБД отличаются тем, что используют модель вычислений с сетью и файловым сервером (архитектура «файл-сервер»). Увеличение сложности задач, появление персональных компьютеров и локальных вычислительных сетей явилось предпосылками появления новой архитектуры «файл-сервер». Эта архитектура баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы базы данных. В соответствие с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных.
Работа построена следующим образом:
База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (файлового сервера). Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлены СУБД и приложение для работы с БД. На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.
Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на файловом сервере. СУБД инициирует обращения к данным, находящимся на файловом сервере, в результате которых часть файлов БД копируется на клиентский компьютер и обрабатывается, что обеспечивает выполнение запросов пользователя (осуществляются необходимые операции над данными). При необходимости (в случае изменения данных) данные отправляются назад на файловый сервер с целью обновления БД. Результат СУБД возвращает в приложение. Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов. В рамках архитектуры «файл-сервер» были выполнены первые версии популярных т.н. настольных СУБД, таких как dBase и Microsoft Access.
Указываются следующие основные недостатки данной архитектуры: при одновременном обращении множества пользователей к одним и тем же данным производительность работы резко падает, т.к. необходимо дождаться пока пользователь, работающий с данными, завершит свою работу. В противном случае возможно затирание исправлений, сделанных одними пользователями, изменениями других пользователей.
Наиболее популярные настольные СУБД. На сегодняшний день известно более двух десятков форматов данных настольных СУБД, однако наиболее популярными, исходя из числа проданных копий, следует признать dBase, Paradox, FoxPro и Access. Из появившихся недавно СУБД следует также отметить Microsoft Data Engine - по существу серверную СУБД, представляющую собой <облегченную> версию Microsoft SQL Server, но предназначенную, тем не менее, для использования главным образом в настольных системах и небольших рабочих группах.
Сведения о производителях перечисленных выше СУБД представлены в приложении 1.
Microsoft Access. Первая версия СУБД Access появилась в начале 90-х годов. Это была первая настольная реляционная СУБД для 16-разрядной версии Windows. Популярность Access значительно возросла после включения этой СУБД в состав Microsoft Office.
В отличие от Visual FoxPro, фактически превратившегося в средство разработки приложений, Access ориентирован в первую очередь на пользователей Microsoft Office, в том числе и не знакомых с программированием. Это, в частности, проявилось в том, что вся информация, относящаяся к конкретной базе данных, а именно таблицы, индексы (естественно, поддерживаемые), правила ссылочной целостности, бизнес-правила, список пользователей, а также формы и отчеты хранятся в одном файле, что в целом удобно для начинающих пользователей.
Последняя версия этой СУБД - Access 2007 входит в состав Microsoft Office 2007 Professional и Maximum, а также доступна как самостоятельный продукт. Окно работающей программы можно увидеть в приложении 2. В состав Access 2007 входят:
· Средства манипуляции данными Access и данными, доступными через ODBC (последние могут быть <присоединены> к базе данных Access).
· Средства создания форм, отчетов и приложений; при этом отчеты могут быть экспортированы в формат Microsoft Word или Microsoft Excel, а для создания приложений используется Visual Basic for Applications, общий для всех составных частей Microsoft Office.
· Средства публикации отчетов в Internet.
· Средства создания интерактивных Web-приложений для работы с данными (Data Access Pages).
· Средства доступа к данным серверных СУБД через OLE DB.
· Средства создания клиентских приложений для Microsoft SQL Server.
· Средства администрирования Microsoft SQL Server.
Поддержка COM в Access выражается в возможности использовать элементы управления ActiveX в формах и Web-страницах, созданных с помощью Access. В отличие от Visual FoxPro создание COM-серверов с помощью Access не предполагается.
Иными словами, Microsoft Access может быть использован, с одной стороны, в качестве настольной СУБД и составной части офисного пакета, а с другой стороны, в качестве клиента Microsoft SQL Server, позволяющего осуществлять его администрирование, манипуляцию его данными и создание приложений для этого сервера.
Помимо манипуляции данными Microsoft SQL Server, Access позволяет также в качестве хранилища данных использовать Microsoft Data Engine (MSDE), представляющий собой по существу настольный сервер баз данных, совместимый с Microsoft SQL Server.
Microsoft Data Engine. MSDE представляет собой СУБД, базирующуюся на технологиях Microsoft SQL Server, но предназначенную для использования в настольных системах или в сетевых приложениях с объемом данных до 2 Гбайт и небольшим количеством пользователей. По существу MSDE является облегченной версией Microsoft SQL Server, не содержащей средств администрирования, и к настольным СУБД может быть отнесена весьма условно.
В Microsoft Access пользователь может выбрать, какой механизм доступа к данным следует применять: Microsoft Jet - стандартный набор библиотек доступа к данным или MSDE (в этом случае управление базой данных осуществляется с помощью отдельного процесса). Возможно преобразование имеющихся баз данных Access в базу данных MSDE из среды разработки Access.
Базы данных MSDE полностью совместимы с базами данных Microsoft SQL Server и могут при необходимости управляться этим сервером. Как большинство серверных СУБД, эти базы данных поддерживают транзакции, позволяют создавать триггеры и хранимые процедуры (недоступные в базах данных Access), использовать механизмы защиты данных, предоставляемые операционной системой.
Помимо этого при большом числе пользователей и большом объеме данных приложения, использующие MSDE, отличаются более высокой производительностью, так как обработка запросов происходит внутри процесса, управляющего базой данных, а не внутри клиентского приложения, что позволяет снизить сетевой трафик, связанный с передачей данных от сервера к клиенту.
MSDE входит в состав Microsoft Office 2000 Premium или Developer, а также доступна на Web-сайте Microsoft для зарегистрированных пользователей Visual Studio 6.0 Professional, Enterprise Edition либо любого из средств разработки, являющегося частью Visual Studio 6.0 Professional или Enterprise Edition. MSDE может свободно распространяться в составе приложений, созданных с помощью любого из средств разработки, входящего в состав Visual Studio 6.0 или Office 2000 Developer.
Актуальность использования настольных СУБД. Несмотря на то, что многие авторы высказывают мнение, что время этих СУБД прошло, они по-прежнему используются и некоторые из них достаточно активно. К числу подобных СУБД относятся DBase,FoxPro, Paradox, MS Access. Конечно, настольные СУБД обладали, обладают и будут обладать всеми недостатками файл-серверной архитектуры. Не вызывают сомнения слова о плохой защищенности данных, медленной работе, трудностях с поддержкой ограничений целостности, проблемах с дублированием данных при миграции и резервном копировании, трудностях администрирования, катастрофического снижения скорости обработки при возрастании объемов данных и т.д. и т.п.
Однако, используемые для решения проблемы средства должны соответствовать сложности решаемой проблемы. Так, вряд ли имеет смысл тратить на разработку и внедрение информационной системы средства, существенно большие, чем весь годовой оборот предприятия, а для многих предприятий сферы малого (а, возможно, и среднего) бизнеса дело обстоит именно так.
Следует понимать, что расходы на приобретение готового программного обеспечения (в частности, серверной СУБД), а также разработку соответствующей информационной системы, функционирующей под управлением это СУБД, составят от нескольких десятков тысяч до нескольких миллионов долларов. Итак, где же и как используются на сегодняшний день перечисленные выше СУБД?
Прежде всего, это государственные (муниципальные) учреждения, сфера образования, сфера обслуживания, малый и средний бизнес.
Специфика возникающих там задач заключается в том, что объемы данных не являются катастрофически большими, частота обновлений не бывает слишком большой, организация территориально обычно расположена в одном небольшом здании, количество пользователей колеблется от одного до 10-15 человек.
В подобных условиях использование настольных СУБД для управления информационными системами является вполне оправданным и с успехом применяется.
Более того, последние версии настольных СУБД приобрели некоторые качества, необходимые для нормальной работы, такие, например, как поддержка ограничений целостности и механизма транзакций.
Некоторые настольные СУБД функционируют в среде MicrosoftWindows, а также «обзавелись» средствами реализации оконного пользовательского интерфейса, например, Microsoft Access и Visual FoxPro.
Подобные документы
Основные понятия базы данных и систем управления базами данных. Типы данных, с которыми работают базы Microsoft Access. Классификация СУБД и их основные характеристики. Постреляционные базы данных. Тенденции в мире современных информационных систем.
курсовая работа [46,7 K], добавлен 28.01.2014Классификации баз данных по характеру сберегаемой информации, способу хранения данных и структуре их организации. Современные системы управления базами данных и программы для их создания: Microsoft Office Access, Cronos Plus, Base Editor, My SQL.
презентация [244,3 K], добавлен 03.06.2014Особенности управления информацией в экономике. Понятие и функции системы управления базами данных, использование стандартного реляционного языка запросов. Средства организации баз данных и работа с ними. Системы управления базами данных в экономике.
контрольная работа [19,9 K], добавлен 16.11.2010Назначение и основные функции системы управления базами данных СУБД, особенности и признаки их классификации. Архитектура баз данных (БД). Разработка распределенных БД. Язык структурированных запросов (SQL). Правила Кодда: требования к реляционным БД.
курсовая работа [376,2 K], добавлен 21.07.2012Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.
реферат [46,4 K], добавлен 01.11.2009Алгоритмы обработки массивов данных. Система управления базами данных. Реляционная модель данных. Представление информации в виде таблицы. Система управления базами данных реляционного типа. Графический многооконный интерфейс.
контрольная работа [2,8 M], добавлен 07.01.2007Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.
лекция [15,5 K], добавлен 19.08.2013Понятие и особенности технологий распределенных и параллельных систем управления базами данных, их отличительные черты, схожие признаки. Уникальная роль системы каждого типа и их взаимодополняемость при использовании для решения задач управления данными.
курсовая работа [839,2 K], добавлен 24.05.2012Краткая характеристика и функциональные возможности MS Access. Базы данных и системы управления базами данных. Проектирование в теории и создание на практике базы данных в продукте корпорации Microsoft для управления базами данных "Microsoft Access".
курсовая работа [1,6 M], добавлен 07.03.2015Понятие, состав информационной системы. Управление целостностью БД. Обеспечение системы безопасности. Блокировка неверных действий приложений-клиентов. Тенденции в мире систем управления базами данных. Основные функции, классификация и механизмы доступа.
курсовая работа [205,0 K], добавлен 11.12.2014