- •1. Понятие баз данных и систем управления базами данных.
- •Логическая организация баз данных, концептуальные модели баз данных.
- •Основные функции и типовая организация субд.
- •Основные черты и примеры современных настольных субд.
- •Структура локальных информационных систем.
- •Этапы проектирования баз данных.
- •Последовательность создания информационной модели.
- •Базовые понятия реляционных баз данных.
- •Проектирование реляционных бд. Проектирование реляционных баз данных с использованием нормализации.
- •Внутренняя организация реляционных субд. Журнализация изменений бд. Индивидуальный откат транзакции.
- •Проектирование баз данных. Общая характеристика.
- •Проектирование базы данных. Определение сущностей.
- •Проектирование баз данных. Определение взаимосвязи между сущностями.
- •Проектирование баз данных. Словарь данных.
- •Проектирование баз данных. Администрирование базы данных. Защита информации.
- •Физическая организация баз данных.
Основные функции и типовая организация субд.
Организация типичной СУБД и состав ее компонентов соответствует набору основных функций СУБД:
• управление данньми во внешней памяти;
• управление буферами оперативной памяти;
• управление транзакциями;
• журнализация и восстановление БД после сбоев;
• поддержание языков БД.
Логически в современной реляционной СУБД можно выделить наиболее внутреннюю часть - ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В некоторых системах эти части выделяются явно, в других - нет, но логически такое разделение можно провести во всех СУБД.
Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра (по крайней мере, логически, хотя в некоторых системах эти компоненты выделяются явно), как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенньм протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД является основной резидентной частью СУБД. При использовании архитектуры "клиент-сервер" ядро является основной составляющей серверной части системы.
Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую выполняемую программу. Основной проблемой реляционных СУБД является то, что языки этих систем (а это, как правило, SQL) являются непроцедурными, т.е. в операторе такого языка специфицируется некоторое действие над БД, но эта спецификация не является процедурой, а лишь описывает в некоторой форме условия совершения желаемого действия. Поэтому компилятор должен решить, каким образом выполнять оператор языка прежде, чем произвести программу. Применяются достаточно сложные методы оптимизации операторов, которые мы подробно рассмотрим в следующих лекциях. Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки времени выполнения, представляющей собой, по сути дела, интерпретатор этого внутреннего языка.
Основные черты и примеры современных настольных субд.
Можно выделить следующие отличительные черты современных настольных СУБД.
1. Наличие объектно-ориентированного языка программирования, позволяющего наиболее эффективно использовать модульный принцип составления программ.
2. Визуальные средства разработки, предоставляющие возможность заменить написание программного кода рисованием пользовательского интерфейса и заданием необходимой функциональности диалоговым средствам.
3. Поддержка стандартных протоколов обмена между приложениями, позволяющая разрабатывать многоуровневые приложения, не зависящие от источника данных. Здесь же заложена возможность применения компонентной технологии создания приложений.
4. Возможность создания приложений типа клиент-сервер, позволяющая разрабатывать прикладные программы неограниченной сложности и удовлетворять потребности целого предприятия в обработке данных.
Перечень современных средств разработки систем автоматизации обработки данных весьма обширен. Почти каждый месяц появляются новые версии этих продуктов той или иной фирмы – производителя программного обеспечения. Они включают все новые и новые возможности, облегчающие труд программиста. Мы предлагаем ограничиться обзором средств разработки корпорации Microsoft. Объясняется это тем, что, во-первых, охватить в данной работе все подобные средства все равно не удастся (это могло бы стать темой отдельного исследования); во-вторых, Microsoft – самая крупная и на данный момент наиболее удачливая фирма – производитель программного обеспечения, продуктами которой пользуются десятки миллионов человек во всем мире; в-третьих, средства разработки Microsoft отлично интегрированы между собой, поддерживают все современные протоколы обмена данными (OLE, ODBC, DAO, RDAO, ActiveX и др.), поэтому можно использовать наиболее удобный и эффективный в каждой конкретной ситуации пакет программ.
Компания Microsoft в настоящий момент предлагает пять пакетов программ, которые могут быть использованы для создания пользовательского приложения по обработке данных: Access, SQL Server, Visual Basic, Visual C++ и Visual FoxPro. Эти средства могут быть использованы как по отдельности – для решения конкретной поставленной задачи, так и в качестве интегрированного набора, каждый компонент которого может быть использован при разработке больших проектов масштаба предприятия. Ниже приведена краткая характеристика этих продуктов.
Access привлекает простотой освоения и возможностью использования непрофессиональным программистом. Он имеет мощные средства подготовки отчетов из БД различных форматов. Поэтому его основное назначение – создание отчетов произвольной формы на основании различных данных и разработка некоммерческих приложений.
SQL Server обладает высокой степенью защиты информации, мощными средствами работы с данными и высокой производительностью. Используется для хранения больших массивов данных, а также данных, требующих соблюдения режима секретности или недопустимости потери. Эта система не предназначена непосредственно для разработки пользовательских приложений, а выполняет функции управления базой данных. Для пользовательского приложения SQL Server является мощным источником генерации и управления нужными данными.
Visual Basic ценится в основном благодаря своей универсальности, возможностью создания компонентов OLE и невысокими требованиями к мощности ПЭВМ. Используется для создания приложений средней мощности, не связанных с большой интенсивностью обработки данных, для разработки компонентов OLE и создания приложений для интеграции компонентов Microsoft Office.
Visual C++ является универсальным пакетом, обладающим неограниченной функциональностью. Разработанные с его помощью приложения имеют наибольшую скорость работы. Применяется с целью создания компонентов приложений для выполнения критичных по скорости процессов или обеспечения функциональности, не достижимой в других средствах разработки. Однако этот пакет является инструментом профессионала.
Visual FoxPro обладает высоким уровнем объектной модели и высокой скоростью обработки данных. Его объектно-ориентированный язык программирования полностью интегрирован с Xbase и SQL. Еще одно достоинство Visual FoxPro – многоплатформенность. Этот пакет может использоваться для создания приложений масштаба предприятия, а также приложений для работы на различных платформах (Windows 3.x, Windows 95, Windows 98, Windows NT, Macintosh и т. д.).
Схема обмена данными при работе с базой данных.
Раскроем внутренние механизмы этого процесса на примере наиболее общего случая организации ИС, функционирующей на одном ПК, — когда пользователь работает с «полной» версией программы СУБД.
При работе пользователя с базой данных над ее содержимым выполняются следующие основные операции: выбор, добавление, модификация (замена) и удаление данных. Рассмотрим, как происходит обмен данными между отдельным пользователем и персональной СУБД при выполнении наиболее часто используемой операции выбора данных. Обмен данными между пользователем и БД для других операций отличается несущественно.
Схематично обмен данными при работе пользователя с БД можно представить так, как показано на рис. 1.6, где обычными стрелками обозначены связи по управлению, утолщенными — связи по информации.
Рис. 1.6. Схема обмена данными при.работе с БД
Цикл взаимодействия пользователя с БД с помощью приложения можно разделить на следующие основные этапы:
Пользователь терминала (1) в процессе диалога с приложением формулирует запрос (2) на некоторые данные из БД.
2. Приложение (3) на программном уровне средствами языка манипулирования данными формулирует запрос (4), с которым обращается к СУБД.
3. Используя свои системные управляющие блоки и таблицы, СУБД с помощью словаря данных определяет местоположение требуемых данных и обращается (5) за ними к ОС.
4. Программы методов доступа файловой системы ОС считывают (6) из внешней памяти искомые данные и помещают их в системные буферы СУБД.
5. Преобразуя полученные данные к требуемому формату, СУБД пересылает их (7) в соответствующую область программы и сигнализирует (8) о завершении операции каким-либо образом (например, кодом возврата).
6. Результаты выбора данных из базы приложение (3) отображает (9) на терминале пользователя (1).
В случае работы пользователя в диалоговом режиме с СУБД (без приложения) цикл взаимодействия пользователя с БД упрощается. Его можно представить следующими этапами:
1. Пользователь терминала (10) формулирует на языке запросов СУБД, например QBE, по связи (11) требование на выборку некоторых данных из базы.
2. СУБД определяет местоположение требуемых данных и обращается (5) за ними к ОС, которая считывает (6) из внешней памяти искомые данные и помещает их в системные буферы СУБД.
3. Информация из системных буферов преобразуется (12) к требуемому формату, после чего отображается (13) на терминале пользователя (10).
Напомним, что описанная схема поясняет, как функционирует СУБД с одним пользователем на отдельной ПЭВМ.
Если компьютер и ОС поддерживают многопользовательский режим работы, то в такой вычислительной системе может функционировать многопользовательская СУБД. Последняя, в общем случае, позволяет одновременно обслуживать нескольких пользователей, работающих непосредственно с СУБД или с приложениями (каждое из которых может поддерживать работу с одним или несколькими пользователями).
Иногда к вычислительной системе подключается так называемый «удаленный пользователь», находящийся на некотором удалении от ЭВМ и соединенный с ней при помощи какой-либо передающей среды (интерфейс ЭВМ, телефонный канал связи, радиоканал, оптико-волоконная линия и т. д.). Чаще всего такой пользователь программным способом эмулируется под обычного локального пользователя. СУБД, как правило, этой подмены «не замечает» и работает по обслуживанию запросов обычным образом.
В многопользовательских СУБД при выполнении различных операций параллельно проистекают процессы, подобные описанным выше и показанным на рис. 1.6.
