
- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
2.4 Реляционная модель данных
В этом разделе рассматриваются два подхода к проектированию реляционной базы данных. Первый подход является более традиционным. В нем предполагается, что на этапе концептуального проектирования создается не концептуальная модель данных, а непосредственно реляционная схема базы данных, состоящая из определений реляционных таблиц. Проектирование реляционной базы данных заключается в нормализации этих определений таблиц согласно стандартной процедуре. Второй подход основан на концептуальной модели базы данных, создаваемой на этапе концептуального проектирования. Затем эта модель по определенным правилам преобразуется в реляционную модель.
До широкого распространения и признания концептуальных моделей традиционно использовался первый подход. Он все еще полезен в ситуациях, когда требуется достаточно простая схема базы данных. Второй подход с использованием концептуальных моделей имеет высокую ценность при проектировании больших, сложных схем баз данных, необходимых для корпоративных информационных систем.
Реляционная модель данных организует и представляет данные в виде таблиц или реляций. Реляция – это математический термин, обозначающий простую двумерную таблицу, состоящую из строк и столбцов данных.
Столбец таблицы – это атрибут реляции. Количество атрибутов реляции называется степенью реляции. Строки реляции называются кортежами. В литературе по базам данных строка таблицы (реляции) ранее называлась записью, клетка таблицы - полем. В дальнейшем таблицу будем описывать следующим образом:
<ИМЯ ТАБЛИЦЫ> (<СПИСОК АТРИБУТОВ>),
где список атрибутов – это множество неповторяющихся имен атрибутов, в котором ключевые атрибуты будут выделены подчеркиванием.
Набор всех возможных значений, которые могут принимать атрибуты, называется областью атрибута.
Пустые значения. Значение атрибута может быть пустым (иметь значение NULL). Значение NULL приписывается атрибуту в кортеже, если атрибут неприменим или его значение неизвестно.
Реляционная схема базы данных - список, в котором даются имена реляционных таблиц с перечислением их атрибутов (ключи подчеркнуты) и определений внешних ключей.
2.4.1 Поддержка целостности данных
К одной из основных проблем при работе с реляционными базами данных относится поддержка целостности данных, которая необходима, если реляционная схема базы данных включает несколько связанных друг с другом таблиц. Целостность данных связана с проблемой непротиворечивости значений данных. Для поддержания целостности данных служат такие механизмы защиты, как система паролей, ограничение значений и правила проверки, хранящиеся в словаре данных. Следует отметить, что ограничения значений и обязательные требования к данным является пока слабой стороной современных СУБД, поскольку программисты могут придумать значительно большее количество ограничений, чем можно реализовать с помощью СУБД. Поэтому возникает необходимость в написании программ, которые будут проверять, удовлетворяют ли вводимые данные нужным значениям. Забота о таких программах обычно возлагается на администратора баз данных.
Целостность данных – это точность и непротиворечивость значений данных в базе данных.
Для сохранения данных в случае сбоя системы современные СУБД поддерживают механизмы создания резервных копий и восстановления данных. Администратор базы данных должен определять процедуры восстановления потерянных данных. Пользователи должны знать, что делать после сбоя в работе системы, чтобы заново ввести все нужные данные.
Ограничительные условия, поддерживающие целостность данных. Ограничительное условие – это правило, определяющее возможные значения в базе данных. В реляционной модели Кодда есть несколько ограничительных условий, используемых для проверки данных в базе данных и для придания данным осмысленной структуры. Рассмотрим следующие ограничения:
категорная целостность;
целостность на уровне ссылок;
функциональные зависимости.
Строки реляционной таблицы представляют в базе данных элементы конкретных объектов реального мира или категорий. Ключ таблицы однозначно определяет каждую строку и, следовательно, каждый элемент категории. Для извлечения данных конкретной строки или манипулирования ими необходимо знать значение ключа этой строки. Поэтому нельзя допускать пустого значения ключа.
Правило категорной целостности. Никакой ключевой атрибут строки не может быть пустым.
При построении реляционных таблиц для связывания строк одной таблицы со строками другой таблицы используются внешние ключи.
Правило целостности на уровне ссылок. Значение непустого внешнего ключа должно быть равно одному из текущих значений ключа другой таблицы. В качестве примера рассмотрим две таблицы, в которых хранятся протоколы испытаний некоторого изделия:
ЗАГОЛОВКИ (НОМЕР_ПРОТОКОЛА, ДАТА, ТИП_ОБЪЕКТА, ИСПЫТАТЕЛЬ),
РЕЗУЛЬТАТЫ (НОМЕР_ПРОТОКОЛА, ПАРАМЕТР_1,…, ПАРАМЕТР_N).
Внешним ключом для связи между этими таблицами служит атрибут НОМЕР_ПРОТОКОЛА.
Если в рассмотренном выше примере из таблицы ЗАГОЛОВКИ удалить некоторую запись, не удалив при этом связанные с ней записи из дочерней таблицы РЕЗУЛЬТАТЫ, то эти записи как бы повиснут в воздухе.
Условиями ссылочной целостности данных называют набор правил для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных.
Условия целостности данных выполняются в следующих случаях:
связанное поле главной таблицы является ключевым полем;
связанные поля (внешние ключи) имеют один тип данных;
обе таблицы принадлежат одной базе данных.
При определении условия целостности данных действуют следующие ограничения.
Для изменения записей:
при изменении значений внешнего ключа в родительской таблице автоматически осуществляется каскадное изменение всех соответствующих значений в дочерней таблице;
не разрешается изменять значения внешнего ключа в родительской таблице, если в дочерней таблице имеется хотя бы одна запись, содержащая ссылку на изменяемую запись.
При удалении записей:
при удалении записей в родительской таблице автоматически осуществляется каскадное удаление всех записей из дочерней таблицы, связанных с удаляемой записью;
запрещено удалять записи в родительской таблице, если в дочерней таблице имеется хотя бы одна запись, содержащая ссылку на удаляемую запись.
При добавлении новой записи не разрешается вводить запись, если значение внешнего ключа дочерней таблицы не соответствует одной из записей в родительской таблице.