- •Введение
- •1. Концепция информационных систем
- •1.1. Информация и данные предметных областей
- •1.2. Структура банка данных
- •1.2.1. База данных
- •1.2.2. Система управления базами данных
- •1.2.3. Словарь данных
- •1.2.4. Администратор базы данных и его функции
- •1.3. Контрольные вопросы
- •2. Инфомационное моделирование предметных областей для баз данных
- •2.1. Отображение явлений реального мира данными
- •2.2. Инфологическое моделирование по
- •2.3. Трехуровневое представление информационных объектов
- •2.4. Структурные элементы для моделирования данных
- •2.5. Ключи бд
- •2.6. Интеграция полей бд в отношения
- •2.7. Требования интеграции полей в отношения
- •2.8. Обобщенная структура модели данных в бнд
- •2.9. Er-модель бд
- •2.10. Формирование связей сущностей
- •Способ 1. Определение связи сущностей введением дополнительной сущности
- •Способ 2. Определение связей сущностей добавлением в тип сущности общих атрибутов
- •2.11. Бинарные отношения сущностей
- •2.12. Формы представления структур данных
- •2.13. Организация систем бд
- •2.14. Средства поддержки бд
- •2.15. Виды моделей данных для бд
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Контрольные вопросы
- •3. Системы управления базами данных
- •3.1. Функции и состав универсальной субд
- •3.2. Лингвистическое обеспечение субд
- •3.3. Независимость прикладных программ от данных
- •3.4. Операции над данными
- •Селекция данных
- •Обработка данных
- •Запросы к бд
- •3.5. Схема реализации запроса в БнД
- •Распределенная обработка данных
- •Комбинированная обработка данных
- •3.7. Целостность и ограничения целостности данных
- •3.8. Защита данных в бд
- •Контрольные вопросы
- •4.2.2. Вторичный ключ
- •4.3. Функциональные и многозначные зависимости
- •4.3.1. Функциональные зависимости
- •X y (X влечет y).
- •4.3.2. Аксиомы функциональных зависимостей
- •Контрольные вопросы
- •5. Реляционная алгебра
- •5.1. Операции над отношениями
- •5.2. Оператор "объединение" (union)
- •5.3. Оператор "вычитание" (difference)
- •5.4. Оператор "пересечение" (intersection)
- •5.5. Оператор "проектирование" (proj)
- •5.6. Оператор "выбор" (sel)
- •Комбинированный запрос с операторами proj и sel
- •5.7 Оператор "соединение" (join)
- •Запрос с соединением по одному полю
- •Алгоритм реализации
- •Запрос с соединением по нескольким полям
- •Алгоритм реализации
- •Оператор "соединение по условию"
- •5.8. Оператор "умножение" (product)
- •Запрос с оператором умножения
- •Алгоритм реализации
- •5.9. Оператор "деление" (division)
- •5.10. Оптимизация алгоритмов реализации запросов
- •Контрольные вопросы
- •6. Нормализация реляционных бд
- •6.1. Задачи нормализации Бд
- •6.2. Первая нормальная форма
- •6.3. Декомпозиция реляционных таблиц
- •Проблема дублирования, операторы реляционной алгебры для декомпозиции и объединения таблиц
- •Присоединенные записи
- •Теорема Хита
- •Критерий полной декомпозиции с исключением дублирования
- •6.4. Вторая нормальная форма
- •6.5. Третья нормальная форма
- •6.6. Экстранормализационные формы
- •Нормальная форма Бокса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •6.7. Методические аспекты реализации нормализации
- •Контрольные вопросы
Контрольные вопросы
Что называется СУБД?
Каковы функции и состав универсальной СУБД?
Перечислите программы, выполняемые СУБД.
Что называется лингвистическим обеспечением СУБД и каков его состав?
Каковы задачи и способы защиты данных?
Определите понятие запроса к БД и перечислите виды запросов.
Опишите схему реализации запроса в БнД.
Что называется ограничением целостности данных?
4. РЕЛЯЦИОННЫЕ БД
4.1. Свойства реляционных таблиц
В реляционных БД при формировании реляционных таблиц необходимо выполнение следующих условий, определяемых свойствами этих таблиц:
домены, должны иметь индивидуальные уникальные имена;
каждое значение поля таблицы должно представляет собой один элемент данных;
в каждом домене все значения полей однородны;
недопустимы идентичные кортежи;
каждый кортеж должен иметь первичный ключ.
4.2. Назначение первичных и вторичных ключей реляционных таблиц
4.2.1. Первичный ключ
В реляционных таблицах в общем случае может быть несколько вариантов возможных первичных ключей, или ключей-кандидатов.
Ключом-кандидатом называется минимальный набор полей, однозначно идентифицирующих кортеж, или запись, в БД. Минимальность набора понимается в том смысле, что при исключении из набора какого-либо поля он теряет свойства ключа-кандидата.
Поля, входящие в ключи-кандитаты, называются первичными атрибутами. Остальные поля, т.е. не входящие в ключи-кандитаты, называются непервичными атрибутами.
Пример.
Рассмотрим БД "Адреса клиентов", приведенную на Рис. 0 .20.Здесь можно выделить два ключа-кандидата:
а) ШифрКлиента; б) ФИО + Адрес.
Для пользователя удобнее принять в качестве первичного несцепленный ключ - ШифрКлиента, который и подчеркнут в таблице на рисунке.
ШифрКлиента |
ФИО |
Адрес |
391 |
Белов Г. Р. |
Орлина, 4 |
403 |
Гринев Р. Г. |
Комова, 11 |
569 |
Белов Г. Р. |
Комова,11 |
615 |
Яшин Р. А. |
Орлина,4 |
Рис. 0.20
4.2.2. Вторичный ключ
Вторичным ключом, как отмечалось выше, называется идентификатор, выбираемый в качестве ключа и неоднозначно идентифицирующий кортеж, или запись, в БД. Вторичный ключ применяется для выбора множества записей, имеющих одинаковые значения полей, определенных в качестве вторичного ключа.
Пример.
Рассмотрим БД Сотрудники, имеющую структуру:
Сотрудники(№Таб, ФИО, ПаспортныеДанные, Должность).
Здесь вторичным ключом может быть тип поля Должность. Тогда по нему будет выбираться множество сотрудников, занимающих одну и ту же должность на предприятии.
4.3. Функциональные и многозначные зависимости
Понятия функциональной и многозначной зависимостей широко используются при разработке моделей данных различных приложений. Выявление функциональных зависимостей важно для выявления ключей-кандидатов, назначения первичных и вторичных ключей в реляционных таблицах, для нормализации баз данных. Они являются одними из основных понятий в реляционной алгебре, являющейся основным математическим аппаратом реляционных моделей данных.