Функциональные возможности СУБД
Разработка СУБД
Введение…………………………………………………….2
Глава 1. Теоретические аспекты СУБД
Основные понятия……………………………………….3
Функциональные возможности СУБД…………………7
Архитектура систем управления………………………..9
Типы СУБД………………………………………………13
Глава 2. Разработка базы данных………………16
Заключение………………………………………………….
Список литературы…………………………………………22
Введение.
Развитие
средств вычислительной техники
обеспечило для создания и широкого
использования систем обработки
данных разнообразного назначения. Разрабатываются
информационные системы для обслуживания
различных систем деятельности, систем
управления хозяйственными и техническими
объектами, модельные комплексы
для научных исследований, системы
автоматизации проектирования и
производства, всевозможные тренажеры
и обучающие системы. Одной из
важных предпосылок создания таких
систем стала возможность оснащения
их «памятью» для накопления, хранения
и систематизация больших объемов
данных. Другой существенной предпосылкой
нужно признать разработку подходов,
а также создание программных
и технических средств
Такие
программные комплексы
В настоящее
время разработаны и
Данная работа представлена некоторые теоретические аспекты теории Б, основные понятия, функциональные возможности систем управления БД, а также описана БД по рынку бытовой химии города Улан-Удэ.
I. Теоретические аспекты СУБД.
1. Основные понятия БД.
Всякая прикладная программа является отображением какой – то части реального мира и поэтому содержит его формализованное описание в виде данных. Крупные массивы данных размещают, как правило, отдельно от исполняемого программы, и организуют в виде Базы данных. Начиная с 60-х годов для работы с данными, стали использовать особые программные комплексы, называемые системами управления базами данных (СУБД). Системы управления базами данных отвечают за:
физическое размещение данных и их описаний;
поиск данных;
поддержание баз данных в актуальном состоянии;
защиту данных от некорректных обновлений и несанкционированного доступа;
обслуживание одновременных запросов к данным от нескольких пользователей (прикладных программ).
Модели данных.
Хранимые в базе данных имеют определенную логическую структуру, то есть, представлены некоторой моделью, поддерживаемой СУБД. К числу важнейших относятся следующие модели данных:
иерархическая;
сетевая;
реляционная;
обЪектно – ориентированная;
В иерархической модели данные представляются в виде древовидной (иерархической) структуры. Она удобна для работы с иерархически упорядоченной информацией и громоздка для информации со сложными логическими связями.
Сетевая модель означает представление данных в виде произвольного графа. Достоинством сетевой и иерархической моделей данных является возможность их эффективной реализации показателей затрат памяти и оперативности. Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе.
Реляционная модель данных (РМД) название получила от английского термина Relation – отношение. Модель данных описывает некоторый набор родовых понятий и признаков, которыми должны обладать все конкретные СУБД и управляемые ими БД, если они основываются на этой модели.
Объектно-ориентировочная модель данных – это когда в базе хранятся не только данные, но и методы их обработки в виде программного кода. Это перспективное направление, пока также не получившее активного распространения из-за сложности создания и применения подобных СУБД.
База данных - это совокупность записей различного типа, содержащая перекрестные ссылки.
Файл - это совокупность записей одного типа, в котором перекрестные ссылки отсутствуют.
Более
того, в определении нет упоминания
о компьютерной архитектуре. Дело в
том, что, хотя в большинстве случаев
БД действительно представляет собой
один или (чаще) несколько файлов, физическая
их организация существенно
Поэтому
при работе с базами данных обычно
применяются понятия более
Таким
образом, сама по себе база данных - это
только набор таблиц с перекрестными
ссылками. Чтобы универсальным способом
извлекать из нее группы записей,
обрабатывать их, изменять и удалять,
требуются специальные
По характеру использования СУБД делят на персональные (СУБДП) и многопользовательские (СУБДМ).
К персональным
СУБД относятся VISUAL FOXPRO, ACCESS и др. К
многопользовательским СУБД относятся,
например, СУБД ORACLE и INFORMIX. Многопользовательски
СУБДП представляет собой совокупность языковых и программных средств, предназначенных для создания, ведения и использования БД.
Персональные СУБД обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними, и при необходимости создания приложений, работающих с сервером БД.
Для обработки
команд пользователя или операторов
программ в СУБДП используютсяинтерпрета
Обеспечение
целостности БД-необходимое
Обеспечение безопасности достигается СУБД шифрованием прикладных программ, данных, защиты паролем, поддержкой уровней доступа к базе данных, к отдельной таблице.
Расширение возможностей пользователя СУБДП достигается за счет подключения систем распространения Си или Ассемблера.
Поддержка функционирования в сети обеспечивается:
средствами управления доступом пользователей к совместно используемым данным, т.е. средствами блокировки файлов (таблиц), записей, полей, которые в разной степени реализованы в разных СУБДП;
средствами механизма транзакций, обеспечивающими целостность БД при функционировании в сети.
Теперь рассмотрим функции СУБД немного подробнее:
Определение данных.
СУБД
должна допускать определения данных
(внешние схемы, концептуальную схему,
внутреннюю схему, а также все
связанные отображения) в исходной
форме и преобразовывать эти
определения в форму
Обработка данных.
СУБД должна уметь обрабатывать запросы пользователя на выборку, изменение или удаление существующих данных в базе данных или на добавление новых данных в базу данных. Другими словами, СУБД должна включать в себя компонент процессора языка обработки данных.
Запросы языка обработки данных бывают «планируемые» и «не планируемые».
Планируемый запрос-это запрос, необходимость которого предусмотрена заранее. Администратор базы данных, возможно, должен настроить физический проект БД таким образом, чтобы гарантировать достаточное быстродействие для таких запросов.
Не
планируемый запрос-это, наобор
Безопасность и целостность данных.
СУБД должна контролировать пользовательские запросы и пресекать попытки нарушения правил безопасности и целостности, определенные АБД.
Восстановление данных и дублирование.
СУБД или другой связанный с ней программный компонент, обычно называемый администратором транзакций, должны осуществлять необходимый контроль над восстановлением данных и дублированием. Подробности использования этих функций системы приводятся далее в этой книге.
Словарь данных.
СУБД должна обеспечить функцию словаря данных. Сам словарь данных можно по праву считать БД (но не пользовательской, а системой). Словарь «содержит данные о данных» (иногда называемые метаданными), т.е. определения других объектов системы, а не просто «сырые данные». В частности, исходная и объектная формы различных схем (внешних, концептуальных и т.д.) и отображений будут сохранены в словаре. Расширенный словарь будет включать также перекрестные ссылки, показывающие, например, какие из программ какую часть БД используют, какие отчеты требуются тем или иным пользователям, какие терминалы подключены к системе и т.д. Словарь может быть (а на самом деле даже должен быть) интегрирован в определяемую им БД, а значит, должен содержать описание самого себя. Конечно, должно быть возможность обращения к словарю, как и к другой БД, например, для того узнать, какие программы и/или пользователи будут затронуты при предполагаемом внесении изменения в систему. (Дальнейшее обсуждение этого вопроса приводится в следующих главах книги.)
Производительность.
Очевидно,
что СУБД должна выполнять все
указанные функции с
Подводя
итог сказанному, можно сделать вывод,
что в целом назначением СУБД
является предоставление пользовательско
В заключении вкратце сопоставим описанную СУБД с системой файлами (или с управлением файлами). В своей основе система управления файлами является компонентом общей системы, которая управляет хранимыми файлами; проще говоря, она «ближе к диску», чем СУБД. Таким образом, пользователь системы управления файлами может создавать и уничтожать хранимые файлы, а также выполнять простые операции выборки и обновления хранимых записей в таких файлах. Однако, в отличие от СУБД, системы управления файлами имеют некоторые недостатки.
2. Функциональные возможности СУБД.
Управляющим компонентом многих СУБД является ядро, выполняющее следующие функции:
управление данными во внешней памяти;
управление буферами оперативной памяти (рабочими областями, в которые осуществляется подкачка данных из базы для повышения скорости работы);
управление транзакциями.
Непосредственное управление данными
во внешней памяти.
Эта функция включает обеспечение необходимых структур внешней памяти, как для хранения данных, непосредственно входящие в базу данных так и для служебных целей. Например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используется индекс).
В некоторых реализациях СУБД активно используется возможность существующих файловых систем. В других работа производится вплоть до уровня устройств внешней памяти. Но подчеркнем, что в развитых СУБД пользователь в любом случае не обязан знать использование СУБД файловую систему и если использует, то, как организованные файлы. В частности СУБД поддерживает собственную систему и наименование объектов баз данных.
Управление буторами оперативной памяти.
СУБД
обычно работает с БД, по крайней
мере, этот размер обычно существует, больше
доступен объему оперативной памяти.
Что если при обращении к любому
элементу данных будет производиться
объем с внешней памятью, то вся
система будет работать со скоростью
устройства внешней памяти. Практическим
единственным способом реально увеличение
этой скорости является буферизация
данных в оперативной памяти. При
этом даже если операционная система
производит общесистемную буферизацию.
Этого не достаточно для цели СУБД,
которая располагает гораздо
больше информации о полезности буферизации,
т.е. той или иной части БД. Поэтому
в развитых СУБД поддерживается собственный
набор буферов оперативной
Управление транзакциями.
Транзакция – это последовательность операций над БД, рассматриваемая СУБД как единое целое. При выполнении транзакция может быть либо успешно завершена, и СУБД зафиксирует произведенные изменения во внешней памяти, либо, например, при сбое в аппаратной части ПК, ни одного из изменений не отразится в БД. Понятие транзакция необходимо для поддержания логической целостности БД. Таким образом, поддержание механизма транзакции является обязательным условием даже однопользовательских СУБД. (Если такая система заслуживает СУБД). Но понятие транзакция гораздо более важно много пользователь СУБД, то свойство, то каждая транзакция начинается при целостном состоянии БД и оставляет это состояние целостное после своего завершения, делает очень удобным, использование понятие транзакция как единицы активности пользователя по отношению БД. При соответствующем управлении управляющимися транзакциями со стороны СУБД каждым использованием может в принципе ощущать себя единственным пользователем СУБД. Управление транзакции многопользовательской СУБД связаны важные понятия сериализация транзакции и сериального плана выполнения смеси транзакции. Под стерилизацией выполнении параллельно сериализация понимают такой порядок планирования их работ при которой суммарный эффект смеси транзакции эквивалентен эффекту их некоторого последовательного управления. Сериальный план выполнения смеси транзакции это такой план, который приводит к сериализация транзакции. Что если удается добиться действительного сериального выполнения смеси транзакции, то для каждого пользователя по инициативе, которой образованна транзакция присутствие других транзакций будет незаметно (если не считать некоторого замедления работы по сравнению с одно пользованием режимом). Существует несколько базовых алгоритмов сериализация транзакции. Централизованных СУБД наиболее распространены алгоритмы, основанные на синхронизации захвата объектов БД. При использовании любого алгоритма возможная ситуация конфликта между двумя или более транзакциями по доступу объекта БД. В этом случае для поддержания сериализация необходимы, выполнять откат одной ли более транзакции. Это один из случаев, когда пользователь многопользовательской СУБД может реально (и достаточно неприятно) ощутить присутствие в системе транзакции других пользователей.
Архитектура СУБД.
Три уровня архитектуры.
Архитектура ANSI/SPARC включает три уровня: внутренний, концептуальный и внешний. В общих чертах они представляют собой следующее:
Внутренний уровень-это уровень, наиболее близкий к физическому хранению, т.е. связанный со способами сохранения информации на физических устройствах хранения.
Внешний уровень наиболее близок к пользователям, т.е. он связан со способами представления данных для отдельных пользователей.
Концептуальный уровень-это «
Внешний уровень (индивидуальные представления пользователей).
Концептуальный уровень (обобщенное представление пользователей).
Внутренний уровень (представление в
памяти).
Если
внешний уровень с
Внешний уровень-это индивидуальный уровень пользователя. Пользователь может быть прикладным программистом или конечным пользователем с любым уровнем профессиональной подготовки. Особое место среди пользователей занимает администратор БД. (В отличие от остальных пользователей его интересует также концептуальный и внутренний уровень.)
У каждого пользователя есть свой язык общения.
Для прикладного программиста это либо один из распространенных языков программирования, такой как C, COBOL или PL/1, либо специальный язык рассматриваемой системы. Такие оригинальные языки называют (неформально!) языками четвертого поколения на том основании, что машинный код, язык ассемблера и такие языки, как COBOL, можно считать языками трех первых «поколений», а оригинальные языки модернизированы по сравнению с языками третьего поколения так же, как языки третьего поколения улучшены по сравнению с языком ассемблера.
Для конечного
пользователя это или специальный
язык запросов, или язык специального
назначения, возможно, основанный на формах
и меню, созданный специально с
учетом требований и поддерживаемый
некоторым оперативным
Хотя с точки зрения архитектуры удобно различать подъязык данных и включающий его базовый язык, на практике они могут быть неразличимыми настолько, насколько это имеет отношение к пользователю. Безусловно, сточки зрения пользователя, предпочтительнее, чтобы они неразличимы или трудно различимым, их называют сильно связанными. Если они ясно и легко различаются, говорят, что они слабо связаны. Большинство систем на сегодняшний день поддерживает лишь слабую связь. Система с сильной связью могли бы предоставить пользователю более унифицированный набор возможностей, но, очевидно, требуют больше усилий со стороны системных проектировщиков и разработчиков (которые, вероятно, рассчитывают на статус-кво); однако есть основания предполагать, что на протяжении следующих нескольких лет будет происходить постепенное продвижение к более сильно связанным системам.
Язык обработки данных состоит из таких выполняемых операторов PL/1, которые передают информацию в и из БД; опять же, возможно, включая, новые специальные операторы.
В общем, внешнее представление состоит из множества экземпляров каждого типа внешней записи, которые, в свою очередь, отнюдь не обязательно должны совпадать с ранимыми записями. Находящийся в распоряжении пользователя подъязык данных определен в терминах внешних записей; например, операция выборки языка обработки данных будет проводить выборку из экземпляров внешних, а не хранимых записей.
Концептуальный уровень.
Концептуальное
представление – это
Концептуальное
представление состоит из множества
экземпляров каждого типаконцеп
Концептуальное представление определяется с помощью концептуальной схемы, которая включает определения каждого типа концептуальных записей. Концептуальная схема использует другой язык определения данных - концептуальный.
Концептуальное
представление – это
Теперь перейдем к более детальному исследованию трех уровней архитектуры.
Внутренний уровень.
Третьим уровнем архитектуры является внутренний уровень. Внутреннее представление – это представление нижнего уровня всей БД; оно состоит из многих экземпляров каждого типа внутренней записи. Термин «внутренняя запись» принадлежит терминологии ANSI/SPARC и означает конструкцию, называемую хранимой записью. Внутреннее представление так же, как внешнее и концептуальное, не связано с физическим уровнем, так как в нем не рассматриваются физические области устройства хранения, такие как цилиндры и дорожки. Другими словами, внутреннее представление предполагает бесконечное линейное адресное пространство; подробности того, как адресное пространство отображено на физическое устройство хранения, очень зависят от системы и умышленно не включены в общую архитектуру.
Внутреннее представление описывается с помощью внутренней схемы, которая определяет не только различные типы хранимых записей, но также существующие индексы, способы представления хранимых полей, физическую последовательность хранимых записей и т.д. Внутренняя схема пишется с использованием еще одного языка определения данных – внутреннего.
В заключении отметим, что в некоторых исключительных ситуациях прикладные программы, в частности те, которые называют утилитами могут выполнять операции непосредственно на внутреннем, а не на внешнем уровне. Конечно, такой практикой пользоваться не рекомендуется; она определяет риск с точки зрения безопасности (правила безопасности игнорируются ) и целостности (правила целостности тоже игнорируется), к тому же программа будет зависеть от загруженных данных; но иногда это может быть единственным способом достичь выполнения требуемой функции или добиться необходимого быстродействия – так же, как пользователю языка высокого уровня иногда по тем же причинам необходимо прибегнуть к языку ассемблера.