- •Учреждение «Университет «Туран»
- •Лекционный комплекс-контент (тезисы лекций, иллюстративный и раздаточный материал, список рекомендуемой литературы) «базы данных в информационных системах»
- •Тема 1. Введение. Базы данных и файловые системы Лекция 1. Файловые системы. Структуры файлов. Именование файлов.
- •Файловые системы
- •Структуры файлов
- •Именование файлов
- •Тема 1. Введение. Базы данных и файловые системы Лекция 2. Защита файлов. Режим многопользовательского доступа. Области применения файлов. Защита файлов
- •Режим многопользовательского доступа
- •Области применения файлов
- •Потребности информационных систем
- •Тема 2. Функции субд. Типовая организация субд. Примеры Лекция 3. Функции субд. Типовая организация субд. Примеры
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •Типовая организация современной субд
- •Пример: System r
- •Основные особенности систем, основанных на инвертированных списках
- •Структуры данных
- •Манипулирование данными
- •Ограничения целостности
- •Манипулирование данными
- •Ограничения целостности
- •Сетевые системы
- •Сетевые структуры данных
- •Манипулирование данными
- •Общие понятия реляционного подхода к организации бд. Основные концепции и термины
- •Базовые понятия реляционных баз данных
- •Тип данных
- •Кортеж, отношение
- •Фундаментальные свойства отношений
- •Отсутствие кортежей-дубликатов
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов
- •Тема 4. Общие понятия реляционного подхода к организации бд. Основные концепции и термины Лекция 7. Реляционная модель данных
- •Общая характеристика
- •Целостность сущности и ссылок
- •Тема 5. Базисные средства манипулирования реляционными данными Лекция 8. Реляционная алгебра. Специальные реляционные операции. Реляционное исчисление.
- •Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Особенности теоретико-множественных операций реляционной алгебры
- •Специальные реляционные операции
- •Реляционное исчисление
- •Кортежные переменные и правильно построенные формулы
- •Целевые списки и выражения реляционного исчисления
- •Реляционное исчисление доменов
- •Тема 6. Проектирование реляционных бд. Лекция 9. Проектирование реляционных баз данных с использованием нормализации. Семантическое моделирование данных, er-диаграммы.
- •Проектирование реляционных баз данных с использованием нормализации
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Семантическое моделирование данных, er-диаграммы
- •Семантические модели данных
- •Основные понятия модели Entity-Relationship (Сущность-Связи)
- •Нормальные формы er-схем
- •Более сложные элементы er-модели
- •Получение реляционной схемы из er-схемы
- •Используемая терминология
- •Основные цели System r и их связь с архитектурой системы
- •Тема 7. Две классические экспериментальные системы. Лекция 11. Организация внешней памяти в базах данных System r. Интерфейс rss. Синхронизация в System r. Журнализация и восстановление в System r.
- •Интерфейс rss
- •Синхронизация в System r
- •Журнализация и восстановление в System r
- •Ingres как unix-ориентированная субд. Динамическая структура системы: набор процессов
- •Структуры данных, методы доступа, интерфейсы доступа к данным
- •Общая характеристика языка quel. Язык программирования equel
- •Общий подход к организации представлений, ограничениям целостности и контролю доступа
- •Тема 9. Внутренняя организация реляционных субд Лекция 13. Структуры внешней памяти, методы организации индексов. Хранение отношений. Индексы. Журнальная информация. Служебная информация.
- •Хранение отношений
- •Индексы
- •B-деревья
- •Хэширование
- •Журнальная информация
- •Служебная информация
- •Тема 10. Управление транзакциями, сериализация транзакций
- •Транзакции и целостность баз данных
- •Изолированность пользователей
- •Сериализация транзакций
- •Методы сериализации транзакций
- •Синхронизационные захваты
- •Гранулированные синхронизационные захваты
- •Предикатные синхронизационные захваты
- •Тупики, распознавание и разрушение
- •Метод временных меток
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Физическая согласованность базы данных
- •Восстановление после жесткого сбоя
Поддержка языков бд
Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language).SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные. Мы рассмотрим более подробно языки ранних СУБД в следующей лекции.
В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language). В нескольких лекциях этого курса язык SQL будет рассматриваться достаточно подробно, а пока мы перечислим основные функции реляционной СУБД, поддерживаемые на "языковом" уровне (т.е. функции, поддерживаемые при реализации интерфейса SQL).
Прежде всего, язык SQL сочетает средства SDL и DML, т.е. позволяет определять схему реляционной БД и манипулировать данными. При этом именование объектов БД (для реляционной БД - именование таблиц и их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.
Язык SQL содержит специальные средства определения ограничений целостности БД. Опять же, ограничения целостности хранятся в специальных таблицах-каталогах, и обеспечение контроля целостности БД производится на языковом уровне, т.е. при компиляции операторов модификации БД компилятор SQL на основании имеющихся в БД ограничений целостности генерирует соответствующий программный код.
Специальные операторы языка SQL позволяют определять так называемые представления БД, фактически являющиеся хранимыми в БД запросами (результатом любого запроса к реляционной БД является таблица) с именованными столбцами. Для пользователя представление является такой же таблицей, как любая базовая таблица, хранимая в БД, но с помощью представлений можно ограничить или наоборот расширить видимость БД для конкретного пользователя. Поддержание представлений производится также на языковом уровне.
Наконец, авторизация доступа к объектам БД производится также на основе специального набора операторов SQL. Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с этой таблицей. В число этих полномочий входит полномочие на передачу всех или части полномочий другим пользователям, включая полномочие на передачу полномочий. Полномочия пользователей описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.
Более точное описание возможных реализаций этих функций на основе языка SQL будет приведено в лекциях, посвященных языку SQL и его реализации.