Технологии и инструментальные средства построения СУБД
Процедуры хранения данных в базе должны подчиняться некоторым общим принципам, среди которых в первую очередь следует выделить:
- целостность и непротиворечивость данных, под которыми понимается как физическая сохранность данных, так и предотвращение неверного использования данных, поддержка допустимых сочетаний их значений, защита от структурных искажений и несанкционированного доступа;
- минимальная избыточность данных обозначает, что любой элемент данных должен храниться в базе в единственном виде, что позволяет избежать необходимости дублирования операций, производимых с ним.
СУБД обеспечивает не только создание, но и процесс использования баз данных. Необходимость применения СУБД как самостоятельной программной системы диктуется следующими обстоятельствами:
• операционные системы и языки программирования не ориентированы на специфические параметры логической и физической организации баз данных;
• для описания баз данных недостаточно стандартных прикладных программ, а требуется специальное программное обеспечение, создаваемое и обрабатываемое с помощью программных средств (языки программирования СУБД);
• доступ к данным требует разработки специальных алгоритмов и управляющих программ;
• в операционных системах и языках программирования не разработаны вопросы специальной обработки баз данных (целостность и непротиворечивость данных, декомпозиция запросов, параллельное выполнение транзакцийи т.д.), не предусмотрены операции реляционной алгебры, которые необходимы в реляционных базах данных.
Для создания, ведения и корректировки баз данных используются пакеты систем управления базами данных (СУБД), которые включают:
• языковые средства (трансляторы с языков описания данных, языков манипулирования данными, языков программирования, редакторов и отладчиков);
• прикладные программные пакеты управления процессами обработки данных (обслуживание задач, поддержка запросов, пополнение и корректировка данных, взаимодействие программ обработки с операционной системой, регулирование доступа и т.д.).
СУБД выполняет три группы функций: управляющую, обрабатывающую (трансляция) и сервисную. Управление заключается в выполнении операций над файлами (открытие, закрытие, копирование, переименование и т.д.), записями (кортежами), полями записей (атрибутами). Обработка предусматривает отладку и выполнение прикладных программ операций с данными. Сервисная функция поддерживает ряд вспомогательных операций.
В соответствии с основными группами функций СУБД включает в себя взаимосвязанные управляющие, обрабатывающие и сервисные программы, которые взаимодействуют с операционной системой. После запуска СУБД происходит загрузка в память компьютера большинства управляющих программ, которые называют ядром системы, а подключение остальных модулей осуществляется по желанию пользователя.
При разработке базы данных обычно выделяется несколько уровней моделирования, при помощи которых происходит переход от предметной области к конкретной реализации базы данных средствами конкретной СУБД. Можно выделить следующие уровни:
· Сама предметная область
· Модель предметной области
· Логическая модель данных
· Физическая модель данных
· Собственно база данных и приложения
Предметная область - это часть реального мира, данные о которой мы хотим отразить в базе данных.
Модель предметной области - это наши знания о предметной области. Знания могут быть как в виде неформальных знаний в мозгу эксперта, так и выражены формально при помощи каких-либо средств.
Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью.
Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь).
Физическая модель данных описывает данные средствами конкретной СУБД.
Собственно база данных и приложения. Результат предыдущих - собственно сама база данных. База данных реализована на конкретной программно-аппаратной основе, и выбор этой основы позволяет существенно повысить скорость работы с базой данных.