- •1 Основные понятия и определения
- •1.1Информационные системы и банки данных
- •1.2Назначение и основные компоненты банка данных
- •1.3Трех уровневая архитектура абстракций базы данных.
- •1.4Физическая и логическая независимость данных
- •1.5Администратор базы данных
- •1.6Системы управления базами данных
- •1.7Схема обмена данными при работе с базой данных
- •1.8Локальные информационные системы
- •1.9Информационные системы в сетях
- •2Модели данных концептуального уровня
- •2.1Иерархическая модель данных
- •2.2Сетевая модель
- •2.3Реляционная модель
- •2.4Постреляционная модель
- •2.5Многомерная модель
- •2.6Объектно-ориентированная модель
- •3Физические модели баз данных
- •3.1Файловые структуры, используемые в базах данных
- •3.2 Хешированные файлы
- •3.2.1Стратегия разрешения коллизий с областью переполнения
- •3.2.2Организация стратегии свободного замещения
- •3.3Индексные файлы
- •3.3.1Файлы с плотным индексом, или индексно-прямые файлы
- •3.3.2Файлы с неплотным индексом, или индексно-последовательные файлы
- •3.3.3Организация индексов в виде b-tree (в-деревьев)
- •3.4Моделирование отношений «один-ко-многим» на файловых структурах
- •3.5Инвертированные списки
- •3.6Модели бесфайловой организации данных
- •4Реляционная модель данных
- •4.1Основные определения
- •4.2Соглашения об отношениях в реляционных системах
- •4.3Классы отношений
- •4.3.1Классы отношений с точки зрения способов создания и хранения
- •4.3.2Классификация отношений с точки зрения их содержания
- •4.4Операции реляционной алгебры
- •4.4.1Основные понятия
- •4.4.2Базовые теоретико-множественные операции
- •4.4.3Специальные операции реляционной алгебры
- •4.4.4Связи между отношениями (таблицами)
- •4.5Реляционное исчисление
- •4.6Язык запросов по образцу qbe
- •4.7Структурированный язык запросов sql
- •4.7.1История развития sql
- •4.7.2Общая характеристика языка
- •4.7.3Структура sql
- •4.7.4Оператор выбора select
- •4.7.5Применение агрегатных функций и группировки
- •4.7.6Раздел order by и ключевое слово top
- •4.7.7Вложенные запросы
- •4.7.8Внутренние и внешние объединения
- •4.7.9Перекрестные запросы
- •4.7.10Операторы манипулирования данными
- •4.7.11Запросы на создание таблиц
- •4.7.12Использование языка определения данных
- •4.8Правила Кодда (требования к реляционным бд)
- •5Проектирование баз данных
- •5.1Этапы проектирования бд
- •5.2Проблемы проектирования реляционных баз данных
- •5.3Нормализация отношений
- •5.4Метод сущность-связь
- •5.5Средства автоматизации проектирования
- •5.5.1Основные определения
- •5.5.2Модели жизненного цикла
- •5.5.3Модели структурного проектирования
- •5.5.4Объектно-ориентированные модели
- •5.5.5 Классификация case-средств
- •6Защита информации в базах данных
- •6.1Общие подходы к обеспечению безопасности данных
- •6.2Назначение и проверка полномочий, проверка подлинности
- •6.3Средства защиты базы данных
- •7Базы данных в сетях
- •7.1Организация базы данных в локальной сети
- •7.2Модели архитектуры клиент-сервер
- •7.3Управление распределенными данными
- •8История развития баз данных
4Реляционная модель данных
4.1Основные определения
Для того чтобы представить, как устроена предметная область, нужно задать множество объектов реального мира. Объект – семантическое понятие, которое может быть полезно (существенно) при обсуждении устройства реального мира. Сущности реального мира – объекты – не обязательно материальны. У объектов важным является только понятие существенности и различимости каждого объекта от других. Протекающие в предметной области процессы или явления также попадают под это определение объекта. Будем считать, что объект обладает рядом свойств. Именованное свойство объекта будем называть атрибутом объекта. Примеры атрибутов: фамилия, имя, отчество, дата рождения. Атрибуты могут принимать некоторые значения. Множество, из которого выбираются значения конкретного атрибута, называется доменом этого атрибута.
Схема отношения это конечное множество атрибутов, определяющих объект. Пример схемы отношения:
Детали (Номер детали, Название детали, Вид обработки, Вес).
Отношение это конечное множество кортежей, составленных из допустимых значений атрибутов схемы отношений.
Напомним, что кортежем называется упорядоченное множество. Можно дать еще одно определение отношения.
Отношение это подмножество прямого произведения одного или нескольких доменов атрибутов.
Напомним, что прямое произведение двух множеств называется декартовым произведением.
Поясним данные определения на примерах.
Пример 1. Пусть имеется два домена:
D1 = (0,1); D2 = (a,b,c).
Построим прямое произведение доменов D1,D2:
D1 x D2 = {(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}.
В качестве отношения, построенного на доменах D1, D2, можно выбрать любое подмножество D1 x D2, например, следующее:
R = {(0,a),(0,c),(1,b),(1,c)}.
Отношение R состоит из четырех кортежей, в каждом кортеже по два элемента, первый выбирают из домена D1, второй – из домена D2.
Пример 2. Пусть имеется четыре домена:
D1 – множество целых чисел, например, множество номеров деталей (101, 34, 23, 109, 147).
D2 – множество символьных строк, например, множество названий деталей (втулка, кронштейн, скоба, муфта, болт).
D3 – множество символьных строк, например, множество названий видов обработки (холодная штамповка, металлическое литье, литье из пластмасс, механическая обработка).
D4 – множество вещественных чисел, например, множество весов деталей (45.8, 6.9, 123, 69.3, 5.2, 2.34).
В качестве отношения, построенного на доменах D1, D2, D3, D4, можно выбрать, например, следующее:
R = { (34, втулка, литье из пластмасс, 69.3), (23, кронштейн, холодная штамповка, 45.8), (101, болт, механическая обработка, 5.2)}.
Отношение R состоит из трех кортежей, в каждом кортеже по четыре элемента.
На практике рассматривается только конечное множество кортежей. В этом случае удобно конечное множество кортежей записывать в виде таблицы, где каждая строка есть кортеж, содержащий данные о конкретном объекте, явлении или процессе. Значения в каждом столбце таблицы выбираются из соответствующего домена.
Например:
Детали
Номер детали |
Название детали |
Вид обработки |
Вес |
401000 |
Втулка |
Литье из пластмасс |
69.3 |
409857 |
Кронштейн |
Холодная штамповка |
45.8 |
409900 |
Стойка |
Механическая обработка |
5.2 |
409870 |
Скоба |
Холодная штамповка |
0.2 |
409859 |
Шайба |
Токарная обработка |
0.3 |
409887 |
Шасси |
Механическая обработка |
1.4 |
Будем считать, что следующие наборы терминов эквивалентны:
отношение, таблица, файл;
кортеж, строка, запись;
атрибут, столбец, поле.
Число столбцов в отношении называют степенью (арностью). Текущее число кортежей в отношении называют мощностью. Степень отношения обычно не изменяется после создания отношения, но мощность будет изменяться по мере добавления новых и удаления старых кортежей.
Ключ это не пустое множество атрибутов, значение которых уникальным образом идентифицирует кортеж в отношении.
Отношение это множество, следовательно, его элементы (кортежи) различимы. Таким образом, у любого отношения всегда существует хотя бы один ключ, который, возможно, является конкатинацией всех атрибутов отношения. Ключевой атрибут в схеме отношения подчеркивают.
Схема реляционной базы – множество используемых в приложениях схем отношений данных.
Реляционная база данных (РБД) – множество отношений, содержащих всю информацию, которая должна храниться в базе данных.
Пример фрагмента базы данных:
Отношение 1. Радиоэлементы (транзисторы)
Тип прибора |
Материал |
Структура |
Технология |
Мощность Коллектора |
ГТ109Г |
Ge |
p-n-p |
C |
30 |
ГТ115Б |
Ge |
p-n-p |
C |
50 |
КТ208А |
Si |
p-n-p |
ПЭ |
200 |
Отношение 2. Склад
Номер стеллажа |
Тип прибора |
Количество |
10 |
ГТ109Г |
100 |
11 |
ГТ109Г |
50 |
10 |
КТ208А |
12 |
Реляционные операции – операции над отношениями. Результатом любой реляционной операции является также отношение.
Реляционное выражение – выражение над отношениями, составленное с помощью реляционных операций. Результатом вычисления реляционного выражения является также отношение.
Реляционный запрос – описание свойств (условий), которые должны удовлетворять интересующие пользователя данные.
Одной из эквивалентных формой описания запроса является реляционное выражение.
Как и во всякой алгебре, мы приходим к понятиям «переменная» и «значение переменной». В нашем случае – переменная отношения и значение отношения.
Переменной отношение – это абстрактное понятие, под которым мы будем понимать произвольное отношение. Для некоторых операций произвольное отношение с определенной схемой отношения.
Для того чтобы задать значение отношения необходимо задать:
схему отношения, как множество атрибутов, точнее, множество пар вида (имя_атрибута, имя_ домена).
множество кортежей (тело отношения).
Каждый кортеж – упорядоченное множество. С каждым значением в кортеже связано имя атрибута, т.е. кортеж можно понимать как множество пар (имя _ атрибута, значение _атрибута).
