Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Глава 7 Нормальные формы более высоких порядков 74

НФБК (Нормальная Форма Бойса-Кодда) 74

4НФ (Четвертая Нормальная Форма) 76

5НФ (Пятая Нормальная Форма) 79

Выводы 82

Глава 8. Элементы модели «сущность-связь» 83

Основные понятия ER-диаграмм 83

ER-модель Oracle 86

Нормальные формы ER-схем 87

Более сложные элементы ER-модели 87

Пример разработки простой ER-модели 89

Концептуальные и физические ER-модели 92

Выводы 93

Внутренняя организация реляционных СУБД 94

Cтруктуры внешней памяти, методы организации индексов 94

Хранение отношений 94

Индексы 96

Журнальная информация 98

Служебная информация 98

Управление транзакциями, сериализация транзакций 99

Транзакции и целостность баз данных 99

Изолированность пользователей 100

Сериализация транзакций 101

Методы сериализации транзакций 101

Синхронизационные захваты 101

Метод временных меток 105

Журнализация изменений БД 105

Журнализация и буферизация 106

Индивидуальный откат транзакции 107

Восстановление после мягкого сбоя 107

Физическая согласованность базы данных 108

Восстановление после жесткого сбоя 109

Глава 5. Элементы языка sql 110

Предварительные сведения о работе с SQL сервером. 110

InterBase сервер 110

Выполнение в IBConsole 110

Регистрация псевдонима (алиаса). 111

Пользователи. 111

Создание модельных БД. 112

  Сеанс SQL 112

Структура учебных баз данных 113

Операторы SQL 114

Операторы DDL (Data Definition Language) - операторы определения объектов базы данных 114

Операторы DML (Data Manipulation Language) - операторы манипулирования данными 114

Операторы DQL (Data Query Language) – операторы запросов к данным 114

Операторы DCL (Data Control Language) - защиты и управления данными 114

Основные типы данных 114

Строки фиксированной длины 114

Строки переменной длины 115

Числовые значения 115

Десятичные значения 115

Целые 116

Десятичные значения с плавающей точкой 116

Значения даты и времени 116

Буквальные значения 116

Значения NULL 117

Значения типа BOOLEAN 117

Пользовательские типы данных 117

Типы данных InterBase 118

BLOB 118

CHAR 118

DATE 118

TIME 118

TIMESTAMP 118

DECIMAL 118

DOUBLE PRECISION 118

FLOAT 119

INTEGER 119

NUMERIC 119

SMALLINT 119

VARCHAR 119

Управление объектами базы данных 120

Что такое объекты базы данных? 120

Что такое схема? 120

Поля и столбцы 121

Оператор CREATE DATABASE 121

Оператор CREATE TABLE 122

CREATE TABLE (InterBase) 123

Ключевое слово STORAGE (В InterBase НЕ действует!) 126

Команда ALTER TABLE 127

Модификация элементов таблицы 129

Добавление столбцов, требующих обязательного ввода данных 129

Изменение столбцов 130

Создание таблицы на основе уже существующей 130

Удаление таблиц 131

Условия целостности 131

Ключевые поля 131

Требования уникальности 132

Внешние ключи 132

Атрибут NOT NULL 133

Использование условий проверки 133

Удаление условий 133

Определение представлений 134

Определение привилегий 136

Примеры 137

Обзор возможностей манипуляции данными 149

Заполнение таблиц новыми данными 149

Ввод данных в таблицу 149

Ввод данных в определенные столбцы таблицы 149

Ввод данных из другой таблицы 150

Ввод значений NULL 150

Обновление уже имеющихся данных 151

Обновление значений одного столбца 151

Обновление нескольких столбцов в одной или нескольких записях 151

Удаление данных из таблиц 151

DML в InterBase 152

DELETE 152

INSERT 152

UPDATE 152

Примеры использования операторов манипулирования данными 153

Знакомство с запросами 154

Что такое запрос? 154

Оператор SELECT 154

Синтаксис оператора выборки данных (SELECT) 154

Select в InterBase 155

SELECT 155

Синтаксис 155

Примеры 157

Ключевое слово SELECT 157

Ключевое слово FROM 158

Использование условий для отбора данных 158

Сортировка вывода 159

Учет регистра символов 160

Примеры простых запросов 160

Подсчет записей в таблице 160

Получение данных из таблиц других пользователей 161

Псевдонимы столбцов 161

Резюме 161

Операции в условиях для отбора данных 161

Что такое операции в SQL? 162

Операции сравнения 162

Равенство 162

Неравенство 162

«Меньше» и «больше» 162

Логические операции 163

Использование операторов EXISTS, ANY, ALL, И SOME 166

Описание учебной базы данных 166

Операции конъюнкции и дизъюнкции 171

Арифметические операции 173

Резюме 175

Подведение итогов по данным запроса 176

Что такое итоговые функции? 176

Функция COUNT 176

Функция SUM 177

Функция AVG 177

Функция MAX 178

Функция MIN 178

Резюме 179

InterBase 180

AVG() 180

Описание 180

Синтаксис 180

Примеры 180

CAST() 181

Описание 181

Синтаксис 181

Примеры 181

COUNT() 181

Описание 181

Синтаксис 181

Примеры 181

MAX() 181

Описание 181

Синтаксис 182

Примеры 182

MIN() 182

Описание 182

Синтаксис 182

Примеры 182

SUM() 182

Описание 182

Синтаксис 182

Примеры 182

Сортировка и группирование данных 183

Зачем группировать данные? 183

  Ключевое слово GROUP BY 183

  Группирование выбранных данных 183

  Создание групп и использование итоговых функций 184

  Представление имен столбцов числами 185

  GROUP BY И ORDER BY 185

  Ключевое слово HAVING 186

  Резюме 187

Объединение таблиц в запросах 188

  Отбор данных из нескольких таблиц 188

  Типы связывания 188

  Компоненты условия связывания 189

  Связывание по равенству 189

  Естественное связывание 189

  Использование псевдонимов для имен таблиц 190

  Связывание по неравенству 190

  Внешнее связывание 191

InterBase 192

  Рекурсивное связывание 192

  Связывание по нескольким ключам 193

  Вопросы связывания 193

  Использование связующей таблицы 194

  Декартово произведение 194

  Резюме 195

Вопросы и ответы 195

Практикум 195

Упражнения 196

Использование подзапросов 197

Что такое подзапрос? 197

  Подзапросы в операторе SELECT 197

  Подзапросы в операторе INSERT 198

  Подзапросы в операторе UPDATE 198

  Подзапросы в операторе DELETE 199

  Подзапросы внутри подзапросов 199

  Связанные подзапросы 200

  Резюме 200

Объединение запросов 201

Обычные и составные запросы 202

Зачем использовать составные запросы? 202

Команды построения сложных запросов 202

Команда UNION 202

Команда UNION ALL 203

Команда INTERSECT 204

Команда EXCEPT 204

Использование ORDER BY в составных запросах 205

Использование GROUP BY в составных запросах 206

Обеспечение правильности результатов 207

Резюме 207

Примеры использования оператора SELECT 208

Отбор данных из одной таблицы 208

Отбор данных из нескольких таблиц 209

Использование имен корреляции (алиасов, псевдонимов) 211

Использование агрегатных функций в запросах 213

Использование агрегатных функций с группировками 213

Использование подзапросов 214

Использование объединения, пересечения и разности 215

Синтаксис соединенных таблиц 216

Синтаксис условных выражений раздела WHERE 217

Порядок выполнения оператора SELECT 219

Стадия 1. Выполнение одиночного оператора SELECT 219

Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECT 219

Стадия 3. Упорядочение результата 219

Как на самом деле выполняется оператор SELECT 219

Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL) 220

Оператор декартового произведения 220

Оператор проекции 220

Оператор выборки 221

Оператор объединения 221

Оператор вычитания 221

Оператор соединения 221

Оператор пересечения 221

Оператор деления 221

Выводы 222

Использование индексов для ускорения поиска данных 222

Что такое индекс? 223

Принцип работы индексов 223

Команда CREATE INDEX 223

CREATE INDEX (InterBase) 224

Типы индексов 224

Простые индексы 224

Уникальные индексы 225

Составные индексы 225

Простые и составные индексы 225

Неявные индексы 225

Когда следует создавать индекс? 225

Когда не следует создавать индекс? 226

Удаление индексов 227

Резюме 227

Повышение эффективности работы с базой данных 227

Что означает оптимизация операторов SQL? 228

Оптимизация базы данных и оптимизация операторов SQL 228

Форматирование операторов SQL 228

Форматирование операторов для лучшего восприятия 228

Правильный порядок таблиц в выражении FROM 229

Правильный порядок условий связывания 230

Наиболее ограничительное условие 230

Полное сканирование таблиц 231

Когда и как избегать полного сканирования таблиц 231

Другие аспекты оптимизации 231

Использование LIKE и знаков подстановки 231

Замена операций OR выражением с ключевым словом IN 232

Недостатки использования выражения с ключевым словом HAVING 232

Долгие операции сортировки 232

Использование готовых процедур 232

Отмена использования индексов в больших пакетных операциях 232

Средства для анализа производительности 233

Резюме 233

Создание и использование представлений и синонимов 234

Что такое представление? 234

Использование представлений для защиты данных 235

Использование представлений для управления выводом данных 236

Хранение представлений 236

Создание представлений 236

Создание представления для данных одной таблицы 236

Создание представления для данных нескольких таблиц 237

Создание представления на основе другого представления 237

Уровни зависимости представлений 238

Опция WITH CHECK OPTION 238

Опции CASCADED и LOCAL 239

CREATE VIEW (InterBase) 239

Синтаксис 240

Примеры 240

Обновление данных представления 241

Добавление строк в представление 241

Удаление строк из представления 241

Связывание представлений с таблицами и другими представлениями 241

Создание таблицы из представления 241

Представления и выражение ORDER BY 242

Удаление представлений 242

Что такое синонимы? (InterBase не поддержвается) 242

Управление синонимами 243

Создание синонимов 243

Удаление синонимов 243

Резюме 243

Триггеры и хранимые процедуры (InterBase) 245

SQL для триггеров и хранимых процедур в InterBase 245

CREATE EXCEPTION 246

Обработка исключений 249

Обработка ошибок SQL 249

Обработка ошибок InterBase 249

Комментарий 249

Триггеры и их назначение 250

Синтаксис CREATE TRIGGER 251

Примеры 252

CREATE GENERATOR 253

GEN_ID() 253

SET GENERATOR 254

SET TERM 254

Дополнительные сведения по работе с генераторами 255

Хранимые процедуры и их назначение 257

CREATE PROCEDURE 258

EXECUTE PROCEDURE 261

DROP PROCEDURE 261

Процедуры для работы с датой и временем 261

First/last day of month 261