- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
Разделы 6 и 7 посвящены изложению структуры СУБД и основным функциям СУБД. Подробно рассмотрены понятие транзакции, которое является базовым при выполнении параллельных запросов к базам данных, свойства транзакций и проблемы, возникающие при параллельном выполнении транзакций.
В разделе 8 излагаются вопросы журнализации и восстановления на ее основе информации базы данных, искаженной в результате сбоев вычислительной системы.
Раздел 9 посвящен вопросам защиты информации в базах данных. Понятие защиты информации в базах данных чаще всего связано с концепцией защиты от несанкционированного доступа. В данном разделе обсуждается общая концепция защиты информации, которая применяется в базах данных, вводится понятие пользователя и рассматриваются вопросы определения прав и привилегий пользователей по работе с отдельными объектами в базе данных.
Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
В разделе 11 излагаются вопросы, касающиеся основных положений работы с объектно-реляционной СУБД Oracle. Рассматривается архитектура базы данных, объекты базы данных, архитектура экземпляра Oracle.
Раздел 12 полностью посвящен современному стандартному языку работы с базами данных, языку SQL. Рассматриваются основные элементы языка, создание и модификация объектов базы данных, построение запросов к базе данных.
В разделе 13 рассматривается процедурное расширение языка SQL – язык PL/SQL, который используется при разработке триггеров, хранимых процедур и функций, пакетов, работающих с базами данных, а также для работы с объектами, их созданию, хранению в базе данных и выборке.
Материал пособия включает достаточно большое количество примеров. Пособие может быть использовано для самостоятельного освоения курса «Модели данных и СУБД».
1. Основные понятия и определения теории баз данных.
1.1. Причины возникновения систем баз данных.
Основой решения большинства задач является обработка информации. Информация – это совокупность фактов, наблюдений, сведений об объектах, явлениях, событиях реального мира. Для обработки информации создаются информационные системы, которые воспринимают информацию из окружающей среды, хранят, обрабатывают ее и выдают в окружающую среду. Как правило, обработке подвергается информация, относящаяся к одной определенной предметной области, то есть к некоторой области знаний, имеющей практическую ценность для пользователя. В 60-х годах прошлого века появились первые автоматизированные информационные системы (АИС), включающие в свой состав вычислительную технику. Массивы информации в АИС, для их компьютерного хранения и обработки, необходимо оптимальным образом организовывать, обеспечивать их целостность и непротиворечивость. Решение подобных задач с нужной производительностью невозможно осуществлять, используя только функции стандартных файловых систем.
Укажем очевидные недостатки файловой организации данных на внешних носителях.
Изолированность и разделенность данных. Операционная система контролирует и разграничивает доступ к данным, как правило, на уровне файлов. Поэтому несколько параллельно работающих приложений не смогут одновременно обновлять различные записи в одном и том же файле. Операции совместной обработки нескольких файлов так же достаточно сложны.
Зависимость программ от данных. Поскольку описание структуры данных задается в прикладной программе, то любое внесение изменений в эту структуру требует, как минимум, перекомпиляции всех программ, использующих этот файл.
Дублирование данных. В случае, когда различные приложения используют данные, относящиеся к одному и тому же объекту, но хранят эту информацию в своих независимых файлах, возникает неконтролируемое дублирование данных. Это приводит к непроизводительному расходу памяти на внешних устройствах и, что гораздо опаснее, может привести к противоречивости данных. Данные, измененные в одном файле, в другом файле могут остаться без изменений.
Отсутствие описаний данных. В файлах операционной системы данные, обрабатываемые прикладными программами, хранятся без описания. Это создает сложности при документировании системы, затрудняет поиск нужных данных и создает условия для ошибок.
Для устранения перечисленных недостатков было предложено отделить процесс хранения данных от процесса их обработки, выделив специальную программу-посредник – систему управления базами данных (СУБД), а сами данные организовать и хранить в виде определенной структуры – базы данных (БД).
1.2. Базы данных.
Предметная область АИС “материализуется” в форме хранимой в памяти ЭВМ структурированной совокупности данных, которые характеризуют состав объектов предметной области, их свойства и взаимосвязи. Такое отражение предметной области принято называть базой данных. Более строго определение базы данных звучит следующим образом.
База данных – это именованная совокупность данных, отражающая состояние объектов и их взаимосвязей (отношений) в рассматриваемой предметной области.
Жизненный цикл системы обработки данных состоит из нескольких этапов:
проектирование базы данных;
проектирование приложений;
реализация базы данных, включающая начальную загрузку базы данных и запуск ее в эксплуатацию;
разработка специальных средств администрирования БД;
эксплуатация базы данных (анализ функционирования, модификация и адаптация).
Процесс проектирования базы данных представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию в терминах некоторой модели и включает несколько этапов.
Системный анализ и словесное описание информационных объектов предметной области. Основной задачей этого этапа является сбор требований, предъявляемых всеми пользователями к содержимому базы данных и процессу обработки информации. Объединяя частные представления о содержимом базы данных, полученные в результате опроса пользователей, и свои представления о данных, которые могут потребоваться в будущих приложениях, проектировщики создают обобщенное неформальное описание базы данных. Это описание, выполняется с использованием естественного языка, математических формул, таблиц, графиков и других средств, понятных всем людям, работающих над проектированием базы данных.
Проектирование инфологической модели предметной области представляющей собой частично формализованное описание объектов предметной области в терминах некоторой семантической модели, например, в терминах ER-модели. В результате выполнения этого этапа строится концептуальная (СУБД-независимая) модель предметной области, которая в дальнейшем будет конкретизирована. Инфологическая модель полностью независима от физических параметров среды хранения данных.
Логическое проектирование базы данных, то есть описание базы данных в терминах принятой логической модели данных. На этом этапе выполняется выбор типа СУБД, строится схема базы данных в терминах соответствующей модели данных, подсхемы для различных пользователей, создается набор возможных типовых запросов и спецификации для программного обеспечения.
Физическое проектирование базы данных, заключается в выборе эффективного размещения базы данных на внешних носителях для обеспечения наиболее эффективной работы приложения. Определяется используемая СУБД. Создается реальная база данных, программируются и отлаживаются приложения, которые будут работать с базой данных.
Результатом этапа проектирования являются готовая к заполнению реальной информацией база данных и готовое к работе программное обеспечение.
Современные базы данных, как правило, имеют трехуровневую архитектуру, которая образуется в процессе проектирования базы данных. Трехуровневая архитектура, то есть инфологический, логический и физический уровни, позволяет обеспечить логическую и физическую независимость хранимых данных от использующих их программ. При необходимости можно переписать хранимые данные на другие носители информации и (или) реорганизовать их физическую структуру, изменив лишь физическую модель данных. Можно подключить к системе любое число новых пользователей (новых приложений), дополнив, если надо, логическую модель. Указанные изменения физической и логической моделей не будут замечены пользователями системы (окажутся “прозрачными” для них), так же как не будут замечены и новые пользователи. Следовательно, независимость данных обеспечивает возможность развития системы баз данных без разрушения существующих приложений.
