- •Оглавление
- •1. Основные понятия информационных систем
- •1.1. История возникновения информационных систем
- •1.2. Современное понятие информационной системы
- •2. Автоматизированные информационные системы
- •2.1. Преимущества автоматизированных информационных систем
- •2.2. Классификация аис
- •2.2.1. Классификация по типу хранимых данных.
- •2.2.2. Классификация по характеру обработки данных.
- •2.2.3. Классификация по степени интеграции данных и автоматизации управления.
- •2.2.4. Классификация по степени распределенности.
- •2.2.5 Классификация аис по другим признакам
- •3. Банки данных
- •3.1. Понятие банка данных
- •3.2. Преимущества банков данных
- •3.3. Предпосылки широкого использования банков данных
- •3.4. Общие требования к банкам данных
- •3.5. Компоненты банка данных
- •3.5.1. Информационная компонента
- •3.5.2. Программные средства банков данных
- •3.5.3. Языковые средства БнД
- •3.5.4. Технические средства банков данных
- •3.5.5. Организационно-методические средства.
- •4. Виды банков данных
- •4.1. Банки документов
- •4.2. Банки знаний
- •4.3. Экспертные системы
- •4.4. Хранилища данных
- •5. Системы управления базами данных (субд)
- •5.1. Назначение и состав субд
- •5.2. Классификация субд
- •5.3. Архитектура субд
- •5.4. Функции субд
- •5.5. Основные распространенные субд
- •6. Основы проектирования баз данных
- •6.1. Основные понятия в теории баз данных
- •6.2. Связи между сущностями
- •6.3. Этапы проектирования базы данных
- •6.3.1. Инфологическое моделирование
- •6.3.2. Даталогическое моделирование
- •6.3.3. Физическое моделирование
- •7. Модели данных
- •7.1. Иерархическая модель данных
- •7.2. Сетевая модель данных
- •7.3. Понятие реляционной модели данных
- •7.3. Постреляционная модель данных
- •7.4. Объектно-ориентированная модель данных
- •7.5. Объектно-реляционная модель данных
- •8. Реляционная модель данных
- •8.1. Понятие «отношения» в реляционной модели данных
- •8.2. Свойства отношений
- •8.3. Требования к реляционным базам данных
- •8.4. Основные математические понятия
- •9. Нормализация баз данных
- •9.1. Первая нормальная форма
- •9.2. Вторая нормальная форма
- •9.3. Третья нормальная форма
- •9.4. Нормальная форма Бойса – Кодда
- •9.5. Многозначные зависимости
- •9.6. Четвертая нормальная форма
- •9.7. Пятая нормальная форма
- •9.8. Принципы выбора нормальной формы для проектируемой базы данных
- •10. Введение в язык запросов sql
- •10.1. Назначение языка sql
- •10.2. Достоинства языка sql
- •10.3. Состав языка sql
- •10.4. Трехзначная логика
- •10.5. Основные типы данных языка sql
- •11. Sql. Некоторые Операторы языка определения данных
- •11.1. Оператор create table
- •11.2. Оператор alter table
- •11.3. Оператор drop table
- •12. Sql. Операторы изменения данных
- •12.1. Оператор insert into
- •12.2. Оператор update
- •12.3. Оператор delete from
- •13. Sql. Выбор информации из базы данных
- •13.1. Общее описание оператора select
- •13.1.1. Назначение оператора select
- •13.1.2. Синтаксическая диаграмма оператора select
- •13.2. Обязательные предложения оператора select
- •13.2.1. Предложение select.
- •13.2.2. Предложение from.
- •13.2.3. Примеры простейших запросов на выборку.
- •13.3. Отбор строк (предложение where)
- •13.3.1. Сравнение
- •13.3.2. Проверка на принадлежность диапазону значений (between)
- •13.3.3. Проверка на членство во множестве (in)
- •13.3.4. Проверка на соответствие шаблону (like)
- •13.3.5. Отслеживание отсутствия значений (null)
- •13.3.6. Составные условия отбора строк
- •13.4. Сортировка результатов запроса (предложение order by)
- •13.5 Примерный порядок выполнения простых однотабличных запросов
- •13.6. Многотабличные запросы
- •13.6.1. Полные имена столбцов.
- •13.6.2. Псевдонимы таблиц.
- •13.6.3. Особенности многотабличных запросов.
- •13.6.4. Примеры многотабличных запросов.
- •13.6.5. Соединение таблиц в предложении from.
- •13.6.6. Примерный порядок выполнения многотабличных запросов
- •13.7. Итоговые запросы на чтение
- •13.7.1. Агрегатные функции.
- •13.7.2. Группировка строк (предложение group by)
- •13.7.3. Отбор групп строк (предложение having)
- •13.7.4. Примерный порядок выполнения итоговых запросов
- •13.8. Вложенные запросы на чтение (подзапросы)
- •13.8.1. Использование вложенных запросов
- •13.8.2. Сравнение с результатом вложенного запроса
- •13.8.3. Проверка на принадлежность результатам вложенного запроса
- •13.8.4. Проверка на существование (exists)
- •13.8.5. Многократное сравнение (any, all)
- •13.9. Объединение результатов нескольких запросов
9.7. Пятая нормальная форма
Тот факт, что отношение может быть восстановлено без потерь соединением некоторых его проекций, известен как зависимость по соединению. Говорят, что отношение находится в пятой нормальной форме (5НФ) тогда и только тогда, когда любая зависимость по соединению в R определяется возможными ключами R. Другими словами, каждая проекция R содержит не менее одного возможного ключа и, по крайней мере, один непервичный атрибут. Различие 5НФ и 4НФ можно показать на примере, представленном на рисунке 8.4, где присутствуют отношения R1, R2, R3, и R4. Все атрибуты всех отношений являются первичными.
Рис. 8.4. Отношения в пятой нормальной форме
В отношении R1 отсутствуют независимые многозначные зависимости, и оно состоит только из первичных атрибутов (является «полностью ключевым»); следовательно, оно находится в 4НФ. Отношения R2, R3 и R4 получены разложением отношения R1 и находятся в 5НФ, так как R1 удовлетворяет зависимости по соединению R2, R3 и R4. Преимущество схемы с R2, R3 и R4 над R1 состоит в том, что она устраняет избыточность, а вместе с ней аномалии обновления.
9.8. Принципы выбора нормальной формы для проектируемой базы данных
При разработке базы данных, следует помнить, что все рассмотренные нормальные формы, кроме первой, не являются обязательными. Отношения, находящиеся в 1НФ, уже можно представить в виде таблиц реляционной базы данных. Аномалии, возникающие при работе с такой базой данных, хотя и создают неудобства, не являются критическими по отдельности. В тоже время большое количество таких не нормализованных до конца, но находящихся в 1НФ, отношений может создать такие серьезные неудобства в работе с базой данных, что вынудят пользователей отказаться от нее.
Соответственно, в процессе нормализации следует придерживаться таких принципов, которые позволят привести базу данных в достаточно нормализованное состояние, не увеличивая при этом лавинообразно количество отношений. Другими словами, следует ограничиваться таким количеством отношений, возникающих при декомпозиции, чтобы схема данных оставалась читаемой и наглядной, но в тоже время содержала минимум ненормализованных отношений, вызывающих аномалии.
10. Введение в язык запросов sql
10.1. Назначение языка sql
Неотъемлемой частью языковых средств современных реляционных СУБД является непроцедурный структурированный язык запросов SQL (Structured Query Language).
SQL является стандартным средством доступа пользователей всех уровней к реляционным базам данных. Практически такой доступ осуществляется посредством СУБД, как показано на рисунке 10.1.
Рис. 10.1. Применение SQL для доступа к базе данных
Как видно из рисунка 10.1, пользователь формирует запрос на языке SQL, содержащий требования на некие действия с данными, и отсылает его в СУБД (шаг 1). СУБД производит синтаксический разбор полученного запроса и, при отсутствии в нем ошибок, выполняет указанные в запросе действия с базой данных (шаг 2). В качестве результата СУБД возвращает выбранные данные (если пользователь отправлял запрос на выборку данных) либо результат обработки, если пользователь формировал запрос на обработку данных, определение структуры БД и т.п. (шаг 3).
SQL используется для реализации всех функциональных возможностей, которые СУБД предоставляет пользователю, а именно:
Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами базы данных.
Чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими.
Обработка данных. SQL дает пользователю или приложению возможность изменять базу данных, т.е. добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в ней данные.
Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.
Совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу.
Целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.