
- •Содержание
- •Список сокращений
- •Введение
- •Основные понятия теории баз данных
- •Понятие системы баз данных
- •Базы данных и их назначение
- •Данные и модели данных
- •Типы систем баз данных
- •Архитектура системы баз данных
- •Уровни архитектуры
- •Система управления базами данных
- •Система управления передачей данных
- •Архитектура «клиент-сервер»
- •Утилиты
- •Распределенная обработка
- •Семантическое моделирование
- •Общий подход
- •Модель «сущность/связь»
- •Введение в реляционные базы данных
- •Реляционная модель
- •Отношения и переменные-отношения
- •Оптимизация
- •Каталог
- •Базовые переменные отношения и представления
- •Транзакции
- •Введение в язык sql
- •Обзор языка sql
- •Каталог в sql
- •Представления
- •Транзакции в sql
- •Взаимодействие приложений и субд
- •Домены, отношения и базовые переменные-отношения
- •Значения отношений
- •Средства sql
- •Реляционная алгебра
- •Введение в реляционную алгебру
- •Реляционная замкнутость
- •Синтаксис
- •Семантика
- •Примеры
- •Назначение реляционной алгебры
- •Реляционное исчисление
- •Введение в реляционное исчисление
- •Исчисление кортежей
- •Примеры для исчисления кортежей
- •Средства языка sql
- •Целостность данных
- •Введение в целостность данных
- •Ограничения типа
- •Ограничения атрибута
- •Ограничения переменной-отношения
- •Ограничения баз данных
- •«Золотое правило»
- •Ограничения состояния и ограничения перехода
- •Средства языка sql
- •Функциональные зависимости
- •Введение
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Вопросы для самопроверки
- •Дополнительная литература
Система управления передачей данных
Запросы от конечных пользователей в действительности передаются от рабочей станции пользователя (которая может быть физически удалена от самой системы баз данных) к некоторому интерактивному приложению (встроенному или нет), а от него – к СУБД в форме коммуникационных сообщений. Более того, ответы пользователю (от СУБД и оперативного приложения к станции пользователя) также передаются в форме подобных сообщений. Передача таких сообщений происходит под управлением другого программного компонента – менеджера передачи данных.
Менеджер передачи данных не является частью СУБД, он представляет собой автономную систему со своими правами. Однако, поскольку очевидно, что от менеджера передачи данных и СУБД требуется согласованная совместная работа, они иногда рассматриваются как равноправные партнеры в компоненте более высокого уровня, называемого системой баз данных и передачи данных. В этой системе СУБД отвечает за работу с базой данных, а менеджер передачи данных обрабатывает все сообщения, поступающие в СУБД и из нее, а точнее, в то приложение, которое использует СУБД, и из него.
Архитектура «клиент-сервер»
В данном разделе система баз данных рассматривается с несколько другой точки зрения, чем приведенная ранее архитектура ANSI/SPARC, и состоящей в том, что система баз данных предназначена для поддержки разработки и выполнения приложений баз данных. С этой точки зрения, СБД можно представить как систему с очень простой структурой, состоящей их двух частей – сервера (внутреннего компонента или машины базы данных) и набора клиентов (внешнего компонента или внешнего интерфейса), как показано на рис. 2.3.
Сервер – это сама СУБД. Он выполняет все основные функции, которые рассматривались ранее: определение данных, обработку данных, защиту данных, поддержание целостности данных и т.д.
Клиенты – это различные приложения, выполняющиеся поверх СУБД, как приложения написанные пользователями, так и встроенные приложения, предоставляемые поставщиками СУБД или некоторыми сторонними поставщиками программного обеспечения. С точки зрения сервера разницы между ними нет, так как все они используют один и тот же интерфейс сервера, а именно – интерфейс внешнего уровня.
Рис. 2.3 Схематическое представление архитектуры «клиент/сервер»
Приложения, в свою очередь, делятся на несколько четко определенных категорий:
Приложения, написанные пользователями. Чаще всего это обычные прикладные приложения, чаще всего написанные на каком-либо популярном языке программирования (C++, C#, Java, Object Pascal и др.).
Приложения, предоставляемые поставщиками. Часто данные приложения называют инструментальными средствами. В целом, назначение таких приложений – содействие процессу создания и выполнения других приложений, т.е. приложений, которые разрабатываются специально для решения некоторой специфической задачи. Инструментальные средства предоставляют пользователям возможности создавать приложения без написания традиционных программ. Например, одно из предоставляемых поставщиком СУБД инструментальных средств может быть генератором отчетов, с помощью которого конечный пользователь может получить отформатированный отчет, выполнив обычный запрос к системе. Каждое подобное приложение является не чем иным, как небольшим специальным приложением, написанным на языке высокого уровня. Другие примеры инструментальных средств – процессор языка запросов, статистические пакеты, графические бизнес-системы, средства управления копированием или средства извлечения данных и др.
Так как согласно приведенной архитектуре система может быть разделена на две части (серверы и клиенты), появляется возможность работы этих двух частей на разных машинах, т.е. существует возможность организации распределенной обработки. Машины в этом случае соединяются коммуникационной сетью таким образом, что выполнение одной задачи обработки данных можно будет распределить на несколько машин этой сети.