- •Оглавление
- •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. Объединение результатов нескольких запросов
8.4. Основные математические понятия
Пусть имеются множества А и В. Отношение А R В указывает на связь между отдельными элементами этих множеств. Различают рефлексивные отношения А R А (связи между элементами одного и того же множества), транзитивные (опосредованные связи) и т. д. На практике используется некоторая смысловая интерпретация связей между множествами и кардинальных чисел этих связей (т. е. числа элементов в экземпляре связи). Множества могут соответствовать атрибутам или типам записей. Связи могут быть функциональными, т. е. удовлетворяющими определению математической функции. Кардинальные числа связей используются также для определения типа отображения между парами множеств.
Для всех функциональных связей справедливо, что атрибут (или сущность), являющийся областью определения, однозначно определяет атрибут (или сущность) области значений. (Например, «если вы назовете стоимость дома, то можно однозначно определить его тип».) Говорят, что атрибут области определения определяет атрибут области значений, или иначе — что последний зависит от первого. Это приводит к понятию функциональной зависимости в теории баз данных. Функциональные зависимости играют большую роль в проектировании баз данных. Армстронг выделил некоторые свойства функциональных зависимостей и сформулировал их в виде аксиом. Эти аксиомы называются также правилами вывода, так как, используя их, можно вывести или получить из известных функциональных зависимостей ряд других. Это важно при проектировании и исследовании баз данных. Были сформулированы следующие правила вывода.
Основные правила:
1) Рефлексивность. Пусть задано множество Х и У Х, тогда Х Х или Х У. Это тривиальные функциональные зависимости, означающие, что множество определяет любое свое подмножество.
2) Транзитивность. Если Х У, У Z, то Х Z.
3) Дополнительность. Если Х У и Х W, то W Y
Следствия из основных правил:
1) Аддитивность (объединение). Если Х Y и W Z, то ХW УZ, или X Y и X Z, то Х YZ.
2) Проективность (декомпозиция). Если Х YZ, то Х Y и X Z
3) Псевдотранзитивность. Если Х У и YW Z, то XW Z.
Функциональные зависимости выражают семантику (т. е. смысл) базы данных. В любой момент непосредственно доступна только семантика, выраженная заданными функциональными зависимостями. Однако с помощью правил вывода можно получить дополнительную информацию или знания о базе данных, которые не сформулированы явно и не очевидны из доступной информации.
9. Нормализация баз данных
В реляционных базах данных схема содержит как структурную, так и семантическую информацию. Структурная информация связана с объявлением отношений, а семантическая выражается множеством известных функциональных зависимостей между атрибутами отношений, объявленных в схеме. Однако некоторые функциональные зависимости могут быть нежелательными из-за побочных эффектов или аномалий, которые они вызывают при модификации базы данных. В связи с этим возникает вопрос о корректности представленной схемы. Корректной считается схема, в которой отсутствуют нежелательные функциональные зависимости. В противном случае приходится прибегать к процедуре, называемой декомпозицией (разложением), при которой данное множество отношений заменяется другим множеством отношений (число их возрастает), являющихся проекциями первых. Цель этой процедуры—устранить нежелательные функциональные зависимости (а следовательно, и аномалии), что составляет суть процесса нормализации. Другими словами, нормализация – это пошаговый обратимый процесс замены данной схемы (или совокупности отношений) другой схемой, в которой отношения имеют более простую и регулярную структуру.
В теории нормальных форм определяются различные нормальные формы, которые ограничивают типы допустимых функциональных зависимостей отношения. Как уже было сказано, для приведения отношения к какой-либо нормальной форме прибегают к декомпозиции. При этом мы сталкиваемся с проблемой обратимости, т. е. возможности восстановления исходной схемы. Это означает, что декомпозиция должна сохранять эквивалентность схем при замене одной схемы на другую. Для обеспечения эквивалентности схем необходима декомпозиция, гарантирующая отсутствие потерь и сохраняющая зависимости. Декомпозиция без потерь гарантирует обратимость, т. е. получение исходного множества отношений путем применения последовательности естественных соединений над их проекциями. При этом в результирующем отношении не должны появляться ранее отсутствовавшие кортежи, являющиеся следствием ошибочного соединения. Сохранение зависимостей подразумевает выполнение исходного множества функциональных зависимостей на отношениях новой схемы.
Обеспечение отсутствия потерь и сохранения зависимостей при декомпозиции требует знания всех возможных функциональных зависимостей, имеющихся в данной схеме. Вначале известно лишь их подмножество, но можно получить все остальные, пользуясь рассмотренными выше правилами вывода функциональных зависимостей.
При нормализации базы данных используют следующую терминологию. Атрибут, входящий в первичный ключ, называется первичным; в противном случае он называется непервичным. Функциональная зависимость А В называется полной функциональной зависимостью, если В зависит от всей группы атрибутов А, а не от ее части (подмножества). Например, если А = А1, А2, ..., Аk и А1, А2 В, то функциональная зависимость В от A неполная.
Ниже мы рассмотрим нормальные формы от первой до пятой, включая нормальную форму Бойса – Кодда. Для обозначения нормальных форм используются сокращения 1НФ, 2НФ, 3НФ, НФБК, 4НФ, 5НФ. Первая (1НФ), вторая (2НФ) и третья (3НФ) нормальные формы ограничивают зависимость непервичных атрибутов от первичных ключей. Нормальная форма Бойса – Кодда (НФБК) ограничивает также зависимость первичных атрибутов. Четвертая нормальная форма (4НФ) формулирует ограничения на виды многозначных зависимостей, обсуждаемых ниже. Пятая нормальная форма (5НФ) вводит другие типы зависимостей, называемых зависимостями соединения.
Уровень нормализации отношения зависит от его семантики и не может быть однозначно определен из данных, содержащихся в текущий момент в базе данных. Это означает, что семантика должна быть задана с помощью функциональных зависимостей.