Базы данных. Курс лекций
СОДЕРЖАНИЕ
Аннотация программы учебной дисциплины «Базы данных» 5
Цели и задачи дисциплины 5
В результате изучения дисциплины студент должен: 5
Содержание дисциплины. Основные разделы 6
Тема 1. Введение в базы данных (БД). Основные понятия 8
1. Данные. Базы данных. Системы управления базами данных (СУБД) 8
Данные и ЭВМ 8
Концепция баз данных (БД) 9
База данных. Банк данных. СУБД. 10
Системы управления базами данных (СУБД) 11
Архитектура и компоненты СУБД (архитектура ANSI/SPARC) 12
Инфологическая, концептуальная, физическая модели БД 13
О проектировании базы данных 14
2. Предметная область (ПО) 16
3. Информационная система 17
Пользователи информационной системы 18
4. Уровни абстракции данных 18
Понятие абстракции. 18
Уровни абстракции при проектировании БД 18
Тема 2: Модели данных. Реляционная модель данных 20
1. Модели данных. 20
1.1. Структуры данных 21
1.2. Ограничения целостности. 21
1.3. Операции. 22
2. Три вида моделей данных 22
2.1. Сетевая модель данных. 22
2.2. Иерархическая модель данных. 22
2.3. Реляционная модель данных. 22
Детализация реляционной модели данных. 23
2.4. Основные понятия. 23
2.5. Реляционная алгебра 24
2.6. Операции над отношениями. 24
- Теоретико-множественные операции (объединение, пересечении, разность, декартово произведение) 25
- Специальные операции (выбор, проекция, соединение, деление) 26
2.6. Структуры данных 29
2.7. Ограничения целостности. 29
Целостность сущностей. 30
Целостность ссылок 30
Целостность значений 30
Тема 3: Нормализация отношений 32
1. Нормальные формы. Основные понятия. 32
Избыточность данных и нормализация 32
Нормальные формы 33
2. Первая нормальная форма 33
3. Вторая нормальная форма 33
4. Третья нормальная форма 34
5. Нормальная форма Бойса-Кодда 35
6. Четвертая нормальная форма 36
7. Пятая нормальная форма 36
Тема 4: Модель «Сущность-Связь» 38
1. Введение 38
2. История 38
3. ER-диаграммы, основные понятия (нотация Баркера) 38
4. Типы связей 39
5. Пример разработки простой ER-модели 40
6. Концептуальные и физические ER-модели 42
7. Выводы 42
Тема 5: О механизмах доступа к БД. Индексы 44
Введение 44
Обновление базы данных 44
Удаление записей из базы данных (логическое и физическое удаление) 44
Ввод и запоминание новых записей 44
Корректировка значений элементов данных. 44
Доступ к записям БД. 45
Доступ по КБД 45
Доступ по первичному ключу. 45
Индексы 45
B-деревья 45
Хеширование 47
Тема 6: Язык запросов SQL. История, стандарты, терминология. СУБД 48
Введение 48
История языка SQL 48
Этапы стандартизации SQL 49
Особенности текущих реализаций 49
Важность применения стандартов SQL при разработке прикладных систем 50
Тема 7: SQL – операции определения данных (DDL) 52
Введение 52
Типы данных 52
Целые типы данных 52
Действительные числа 52
Типы даты и времени 53
Строковые типы данных 53
Перечисление. Перечисляемый тип данных. 54
Операторы манипулирования схемой базы данных (DDL) 54
Синтаксис оператора CREATE DATABASE 54
Синтаксис оператора DROP DATABASE 55
Синтаксис оператора CREATE TABLE – создание таблицы 55
Синтаксис оператора ALTER TABLE 60
Синтаксис оператора RENAME TABLE 63
Синтаксис оператора DROP TABLE 63
Синтаксис оператора CREATE INDEX 63
Синтаксис оператора DROP INDEX 64
Тема 8: SQL – операции манипулирования данными (DML). Добавление, удаление, изменение записей таблицы 65
Синтаксис оператора INSERT – добавление записи 65
Синтаксис оператора INSERT ... SELECT 66
Синтаксис оператора UPDATE – изменение записей 67
Синтаксис оператора DELETE – удаление записей 67
Синтаксис оператора TRUNCATE 68
Синтаксис оператора REPLACE 68
Тема 9: SQL – операции манипулирования данными (DML)-2. Выборка данных - оператор SELECT 70
Оператор SELECT (стандартный синтаксис) 70
Предложение SELECT 70
Построение вычисляемых полей 70
Предложение FROM 71
Предложение WHERE 71
Сравнение 71
Диапазон 72
Принадлежность множеству 72
Соответствие шаблону 72
Значение NULL 72
Предложение ORDER BY 72
Вычисления и подведение итогов в запросах 73
Использование итоговых функций 73
Предложение GROUP BY 73
Предложение HAVING 75
Оператор SELECT (реализация в СУБД MySQL) 76
Синтаксис блока JOIN в операторе SELECT 78
Тема 10: SQL – администрирование СУБД 80
Синтаксис команд GRANT и REVOKE 80
Глобальный уровень 80
Уровень базы данных 80
Уровень таблицы 80
Уровень столбца 80
Имена пользователей MySQL и пароли 83
Тема 11: ACID Транзакции 85
Введение 85
Транзакции и целостность баз данных 85
ACID-свойства транзакций 85
Изолированность пользователей 85
Первый уровень - отсутствие потерянных изменений. 86
Второй уровень - отсутствие чтения "грязных данных". 86
Третий уровень - отсутствие неповторяющихся чтений. 86
Четвертый уровень – запрет фантомов. 86
Сериализация транзакций 86
Методы сериализации транзакций 87
Синхронизационные захваты 87
Гранулированные синхронизационные захваты 88
Предикатные синхронизационные захваты 88
Тупики, распознавание и разрушение 89
Метод временных меток 90
Операторы SQL реализующие транзакции 90
Тема 12: Триггеры 91
Введение 91
Создание триггера 91
Триггеры в MySQL 92
Тема 13: Представления 94
Введение 94
Синтаксис оператора ALTER VIEW. 94
Синтаксис оператора CREATE VIEW 94
Пример создания представления 95
Синтаксис оператора DROP VIEW 95
Ограничения представлений в MySQL 96
Обновляемость представлений 96
Тема 14: Хранимые процедуры и функции. Курсоры 97
Введение 97
Реализация хранимых процедур 97
Назначение и преимущества хранимых процедур 97
Возможности программирования 97
Безопасность 97
Хранимые процедуры и функции в MySQL 98
Синтаксис операторов CREATE PROCEDURE и CREATE FUNCTION 98
Синтаксис операторов ALTER PROCEDURE и ALTER FUNCTION 98
Синтаксис операторов DROP PROCEDURE и DROP FUNCTION 98
Синтаксис оператора CALL 98
Операторы, используемые в процедурах и функциях 99
BEGIN ... END – составной оператор 99
SET – присваивание значений переменным 99
DECLARE Conditions – определение состояний (условий) 99
DECLARE Handlers – определение обработчика состояний 99
Объявление курсоров 99
Открытие курсора 99
Оператор считывания данных из курсора 99
Закрытие курсора 99
Конструкции ветвления и циклов 99
Конструкция IF 100
Конструкция CASE 100
Конструкция LOOP 100
Конструкция REPEAT 100
Конструкция WHILE 100
Тема 15: Постреляционные СУБД 101
Активные базы данных 101
Дедуктивные базы данных 101
Темпоральные базы данных 101
Интегрированные или федеративные системы и мультибазы данных 102
Объектно-ориентированные базы данных 103
Зарождение объектно-ориентированных баз данных 103
Общие понятия объектно-ориентированного подхода и их внедрение в ООБД 103
Литература 105
Основная 105
Дополнительная 105
ДОПОЛНЕНИЯ 106
Аномалии в реляционных базах данных 106
Аномалии и нормализация схем отношений 106
Аномалии по Фейджину 106
Обобщенное понятие аномалии в РБД 108
Заключение 110
Литература 110
Управление транзакциями в SQL 111
22.3.1. ACID-транзакция 111
Курс лекций по дисциплине «Базы данных»
|