- •2. Реляционная модель данных
- •2.1. Определения и понятия
- •2.2. Первичные ключи и индексы
- •2.3. Реляционные отношения между таблицами
- •2.3.1. Отношение один-ко-многим
- •2.3.2. Отношение один-к-одному
- •2.3.3. Отношение многие-ко-многим
- •2.3.4. Связи между записями одной таблицы
- •2.4. Ссылочная целостность
- •2.5. Индексы
- •Упражнения и задачи
- •3. Нормализация отношений
- •3.1. Первая нормальная форма
- •3.2. Функциональные зависимости и детерминанты
- •3.3. Вторая нормальная форма
- •3.4. Третья нормальная форма
- •3.5. Нормальная форма Бойса-Кодда (нфбк)
- •3.6. Нормализация за и против
- •Контрольные вопросы
- •Упражнения и задачи
- •4. Операции с данными в реляционной модели
- •4.1. Объединение
- •4.2. Пересечение
- •4.3. Вычитание
- •4.4. Декартово произведение
- •4.5. Выбор
- •4.6. Проекция
- •4.7. Соединение
- •4.8. Деление
- •Упражнения и задачи
- •5. Запросы к бд
- •5.1. Простые запросы
- •5.2. Многотабличные запросы
- •5.3. Подзапросы
- •6. Сетевая модель данных
- •6.1. Исторический контекст
- •6.2. Основные понятия и определения
- •Торговый-агент
- •Строка-элемент
- •6.3. Преимущества и недостатки сетевых моделей
- •Упражнения и задачи
- •7. Иерархическая модель данных
- •7.1. Основные понятия и определения
- •7.2. Преимущества и недостатки иерархических моделей
- •Упражнения и задачи
- •Часть 2. Управление окружением базы данных
- •1. Администрирование баз данных
- •1.1. Функции абд
- •1.1.1. Работа с пользователями
- •1.1.2. Установление стандартов и процедур
- •1.2. Задачи абд
- •2. Защита базы данных
- •2.1. Идентификация пользователя
- •2.2. Проверка полномочий и представления данных
- •2.3. Шифровка
- •Метод поалфавитной подстановки
- •2.4. Секретность данных
- •4. Целостность данных
- •4.1. Контроль типов
- •4.2. Контроль изменений
- •4.3. Целостность на уровне ссылок
- •5. Параллельная работа с бд
- •5.1. Обработка транзакций
- •5.2. Параллельная работа с бд
- •Литература
2. Реляционная модель данных
2.1. Определения и понятия
Базы данных (БД) всегда создаются для хранения сведений об определенном виде деятельности. Это может быть любой вид деятельности - от коллекционирования марок до ведения домашнего хозяйства. Любая БД хранит сведения о некоторой части реального мира - о людях и предметах, вовлеченных в деятельность, о происходящих событиях, фактах и т.д.
Часть реального мира, сведения о которой хранятся в БД, называется предметной областью(ПО) базы данных.
В БД хранятся только те сведения, которые представляют интерес с точки зрения соответствующего вида деятельности. Так, в вузе о студенте Иванове как о лице, участвующем в процессе обучения, нужно знать, в какой группе он учится, какие оценки по каким предметам получал и т.д. В поликлинике опациентеИванове нужно знать, когда и по какому поводу он обращался к врачу, каков его резус-фактор, группа крови и т.д., но совсем ни к чему здесь сведения об его успеваемости.
Объекты- это вовлеченные в деятельность люди, предметы, места, происходящие события и т.д., информация о которых должна храниться в БД. Можно сказать, что объект есть то, что в словесном описании ПО обозначается именем существительным.
Например, СТУДЕНТ, ПРЕПОДАВАТЕЛЬ, УЧЕБНАЯ ДИС-ЦИПЛИНА, АУДИТОРИЯ -объекты ПО «Учебный процесс».ПАЦИЕНТ, ПАЛАТА, ВРАЧ- объекты ПО «Больница».
Объекты обладают определенным набором свойств, которые называются атрибутами. Например: фамилия студента, номер студбилета, номер группы, адрес - атрибуты, соответствующие характеристикам объекта ПО СТУДЕНТ. Объект ПРЕПОДАВАТЕЛЬ имеет такие атрибуты, как: фамилия, номер диплома, специальность, ученая степень и т.д.
В таблице 2.1 приведены экземпляры объекта ПРЕПОДАВАТЕЛЬ с атрибутами НОМЕР, ФИО, Кафедра.
Таблица 2.1
№ преподавателя |
ФИО |
Кафедра |
10 |
Краснов Ю.Б. |
ТИ-1 |
12 |
Володин В.Н. |
ТИ-1 |
62 |
Булгаков В.М. |
РИО |
78 |
Тоянский Л.С. |
ТИ-1 |
85 |
Подушкин М.А. |
ЭИ-1 |
… |
… |
… |
Единицей хранящейся в БД информации является таблица. Каждая таблица представляет собой совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы - атрибутам (признакам, характеристикам, параметрам) объекта, события, явления. На рис. 2.1. приведен пример таблицы, в которой содержатся сведения об отпуске товаров со склада. Столбцы представляют собой такие параметры, как дата отпуска товара, наименование товара, наименование покупателя, количество единиц отпущенного товара. Каждая строка содержит сведения о конкретном событии - отпуске товара покупателю. В терминах БД столбцы таблицы называются полями, а ее строки - записями.
Дата
|
Товар
|
Покупатель
|
Отпущено (ед.)
|
10.12.99 |
Сахар |
Геракл, ТОО |
100 |
10.12.99 |
Сахар |
Геракл, ТОО |
100 |
12.12.99 |
Сахар |
Пищеторг, ЗАО |
2 000 |
12.12.99 |
Макароны |
Пищеторг, ЗАО |
300 |
14.12.99 |
Сахар |
Геракл, ТОО |
200 |
15.12.99 |
Дрожжи |
База № 28 |
100 |
Рис. 2.1. Пример таблицы «Отпуск товаров»
Между отдельными таблицами БД могут существовать связи. Например, информация о покупателе в предыдущей таблице может дополняться в другой (рис. 2.2).
Покупатель
|
Адрес
|
Телефон
|
Геракл, ТОО
|
107005, Москва, 2-я Бауманская ул., 12 |
273-00-14
|
Пищеторг, ЗАО |
105066, Москва, Измайловский б-р, 18/11 |
165-18-99
|
База № 28
|
274088, Хотьково МО, ул. Лесная, 1 |
17-54
|
Рис. 2.2. Пример таблицы «Покупатель»
Базы данных, между отдельными таблицами которых существуют связи, называются реляционными (от relation - связь, отношение).
Связанные отношениями таблицы взаимодействуют по принципу главная (master) - подчиненная (detail). В нашем примере таблица «Отпуск товаров» - главная, а таблица «Покупатель» - подчиненная. Главную таблицу часто называют родительской, а подчиненную - дочерней. Одна и та же таблица может быть главной по отношению к одной таблице БД и дочерней по отношению к другой.