
- •Классификация субд [5]
- •Функции субд
- •Централизованная архитектура
- •Технология с сетью и файловым сервером (архитектура «файл-сервер»)
- •Технология «клиент-сервер»
- •Трехзвенная (трехуровневая) архитектура
- •Реляционная модель данных
- •Методология idef1x
- •Определение отношения, домена, кортежа, реляционной базы данных, ключей
- •Связи между отношениями (таблицами)
- •Базовые теоретико-множественные операции реляционной алгебры
- •Специальные операции реляционной алгебры
- •Аномалии обновления
- •Первая Нормальная Форма
- •Определение функциональной зависимости
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •Вторая Нормальная Форма
- •Определение
- •3Нф (Третья Нормальная Форма)
- •Алгоритм нормализации (приведение к 3нф)
- •Реляционная модель данных: сравнение нормализованных и ненормализованных моделей.
- •16, Сравнение нормализованных и ненормализованных моделей
- •Null-значения
- •Потенциальные ключи
- •Целостность сущностей
- •Внешние ключи
- •Целостность внешних ключей
- •Замечания к правилам целостности сущностей и внешних ключей
- •Операции, которые могут нарушить ссылочную целостность
- •Для родительского отношения
- •Для дочернего отношения
- •20, Целостность реляционных данных: стратегии поддержания ссылочной целостности.
- •Стратегии поддержания ссылочной целостности
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Create table – создать таблицу
- •Оператор check
- •Определение первичных и альтернативных ключей с помощью оператора alter
- •Операторы drop
- •Выборка данных
- •Сортировка результатов
- •Встроенные функции sql
- •Средства модификации данных языка sql
- •Вставка данных – insert
- •Изменение данных – update
- •Удаление данных – delete
- •Выборка данных
- •Представления
- •Применение представлений
- •Обновление представлений
- •Триггеры
- •Хранимые процедуры
- •Большая безопасность и меньший сетевой трафик.
- •Sql можно оптимизировать
- •Совместное использование кода:
- •Структура памяти эвм
- •Представление экземпляра логической записи
- •Организация обмена между оперативной и внешней памятью
- •Структуры хранения данных во внешней памяти эвм
- •Назначение и проверка полномочий, проверка подлинности
- •Средства защиты базы данных
- •Архитектура системы безопасности ms sql Server
- •34.Роли сервера
- •35, Права доступа
- •36, Необходимость в атомарных транзакциях
- •П , Параллельная обработка транзакций
- •Проблема потерянного обновления
- •Блокировка ресурсов
- •Блокировочная терминология
- •Сериализуемые транзакции
- •Взаимная блокировка
- •Оптимистическая и пессимистическая блокировки
- •Объявление характеристик блокировки
- •Свойства транзакций
- •Атомарность
- •Долговечность или устойчивость
- •Согласованность
- •Изолированность транзакции. Уровни изоляции
- •Типы курсоров
Определение отношения, домена, кортежа, реляционной базы данных, ключей
Реляционная модель данных была предложена Е. Коддом в 1970 г. В основе реляционной модели данных лежит понятие отношения.
Математически отношение определяется следующим образом. Пусть даны n множеств Dl, D2, ..., Dn. Тогда R есть отношение над этими множествами, если R есть множество упорядоченных кортежей длины n вида (dl, d2, ..., dn), где d1 – элемент из Dl, d2 – элемент из D2, dn – элемент из Dn. Dl, D2, ..., Dn называют доменами отношения R. Заметим, что данное определение эквивалентно определению декартова произведения множеств Dl, D2, ..., Dn.
Дадим определение отношения с точки зрения теории обработки данных. Отношение – подмножество декартова произведения одного или более доменов. Домен – множество возможных значений конкретного атрибута. Атрибут – свойство объекта, явления или процесса. Примеры атрибутов: фамилия, имя, отчество, дата рождения. Кортеж – элемент отношения, это отображение имен атрибутов в значения, взятые из соответствующих доменов. Конечное множество кортежей образует отношение. Если отношение создается из n доменов, то каждый кортеж имеет n компонент.
Пример 1. Пусть, имеется два домена:
D1= (0, 1), D2= (a, b, c).
Построим декартово произведение доменов D1, D2:
Dl x D2= {(0,a),(0,b),(0,c),(l,a),(l,b),(l,c)}.
В качестве отношения, построенного на доменах D1, D2, можно выбрать, например, следующее:
R={(0,а),(0,с),(1,b),(1,с)}.
Отношение 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 состоит из трех кортежей, в каждом кортеже по четыре элемента.
Удобно представить отношение как таблицу, где каждая строка есть кортеж, содержащий данные о конкретном объекте, явлении или процессе. Каждый столбец таблицы – это домен, содержащий возможные значения одного из свойств объекта, процесса или явления.
Например:
Следующие наборы терминов эквивалентны:
отношение, таблица, файл;
кортеж, строка, запись;
атрибут, поле.
Поименованный список имен атрибутов отношения называют схемой отношения. Пример схемы:
Детали (Номер детали, Название детали, Вид обработки, Вес).
Ключевой атрибут в схеме отношения подчеркивают.
Совокупность схем отношений, используемых для представления информации, называется схемой реляционной базы данных.
Число столбцов в отношении называют степенью отношения. Текущее число кортежей в отношении называют мощностью. Степень отношения обычно не изменяется после создания отношения, но мощность будет колебаться по мере добавления новых и удаления старых кортежей.
Реляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в базе данных.
Пример фрагмента базы данных:
Отношение 1 Радиоэлементы (транзисторы)
Тип прибора |
Материал |
Структура |
Технология |
Мощность коллектора |
ГТ109Г |
Ge |
p-n-p |
С |
30 |
ГГП5Б |
Ge |
p-n-p |
С |
50 |
КТ208А |
Si |
p-n-p |
ПЭ |
200 |
Отношение 2. Склад
Номер стеллажа |
Тип прибора |
Количество |
10 |
ГТ109Г |
100 |
11 |
ГТ109Г |
50 |
10 |
КТ208А |
12 |
Каждое отношение имеет ключ.
Пусть R – отношение с атрибутами A1, A2, ..., An. Говорят, что множество атрибутов K=(Ai, Aj, ..., Ak) отношения R является возможным ключом R тогда и только тогда, когда удовлетворяются два условия:
Уникальность: в произвольный заданный момент времени никакие два различных кортежа R не имеют одного и того же значения для Ai, Aj, ..., Ak.
Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть исключен из K без нарушения уникальности.
Каждое отношение обладает хотя бы одним возможным ключом, поскольку по меньшей мере комбинация всех его атрибутов удовлетворяет условию уникальности. Один из возможных ключей (выбранный произвольным образом) принимается за его первичный ключ. Остальные возможные ключи, если они есть, называются альтернативными ключами.
В отношении «Радиоэлементы (транзисторы)» ключом является «Тип прибора», в отношении «Склад» -– «Номер стеллажа, Тип прибора».
Ключи обычно используют для достижения следующих целей:
исключения дублирования значений в ключевых атрибутах различных кортежей атрибутов;
упорядочения кортежей;
ускорения работы с кортежами отношения;
организации связи между отношениями.
Пусть в отношении R1 имеется атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 (атрибут В отношения R2) есть внешний ключ. С помощью внешних ключей устанавливаются связи между отношениями.
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ: КЛАССЫ ОТНОШЕНИЙ, ТИПЫ СВЯЗЕЙ МЕЖДУ ОТНОШЕНИЯМИ.
Отношения реляционной базы данных в зависимости от содержания подразделяются на два класса: объектные отношения и связные отношения.
Объектные отношения хранят данные о группе однородных объектов, явлений или процессов, имеющих однотипные характеристики.
Объектное отношение в большинстве случаев содержит только первичный ключ, который при этом скорее всего является простым (состоит из одного атрибута).
Связное отношение хранит данные о связях между объектными отношениями. Связное отношение содержит ключи связанных объектных отношений и данные, количественно или качественно характеризующие связь. Ключи связных отношений называют внешними ключами, поскольку они являются первичными ключами других отношений.
Реляционная модель накладывает на внешние ключи ограничение, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа должен соответствовать кортеж объектного отношения. Без этого возможна ситуация, когда внешний ключ ссылается на объект, о котором ничего не известно.
Рассмотрим пример объектных и связных отношений.
Объектное отношение «Детали»
Номер детали |
Название детали |
401000 |
Втулка |
409857 |
Кронштейн |
Объектное отношение «Материалы»
Код материала |
Марка |
Вид материала |
181508 |
АД1Н |
Лист |
181440 |
АМГ2М |
Лист |
Связное отношение «Технологический процесс»
Номер детали |
Код материала |
Норма расхода материала |
401000 |
181508 |
23.78 |
409857 |
181440 |
112.6 |
В отношении «Детали» первичный ключ – номер детали. В отношении «Материал» первичный ключ – код материала. В отношении «Технологический процесс» внешний ключ состоит из двух атрибутов – номер детали, код материала. Атрибут «Норма расхода материала на деталь» – количественная характеристика связи между деталью и материалом.
Поскольку не всякой таблице можно поставить в соответствие отношение, приведем условия, выполнение которых позволяет считать таблицу отношением.
Каждая таблица состоит из однотипных строк и имеет уникальное имя.
Имена столбцов таблицы должны быть различны, а их значения простыми, т.е. недопустима группа значений в одном столбце одной строки.
Все строки таблицы должны быть уникальны, т.е. не может быть строк с одинаковыми первичными ключами.
Порядок размещения строк в таблице может быть произвольным... При выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию.