- •Базы данных: основные понятия
- •Индексирование
- •Введение. Для чего нужны базы данных.
- •Компоненты субд
- •1.1.2.Обобщенные структуры или модели данных.
- •1.2.Методы доступа к данным.
- •1.2.1.Методы поиска по дереву.
- •1.2.2.Хеширование.
- •2.1.Представление данных с помощью модели "сущность-связь".
- •2.1.1.Назначение модели.
- •2.1.2.Элементы модели.
- •2.2.Диаграмма "сущность-связь".
- •Выделим интересующие нас сущности и связи:
- •Обобщая все проведенные выше рассуждения, получим диаграму "сущность-связь", показанную на слудющем рисунке.
- •2.3.Целостность данных.
- •2.4.Обзор нотаций, используемых при построении диаграмм "сущность-связь"
- •2.4.1.Нотация Чена.
- •2.4.2.Нотация Мартина
- •2.4.3.Нотация idef1x.
- •2.4.4.Нотация Баркера.
- •3.1.Иерархическая модель данных.
- •3.1.1.Структура данных.
- •3.1.2.Операции над данными, определенные в иерархической модели:
- •3.1.3.Ограничения целостности.
- •3.2.Сетевая модель данных
- •3.2.1.Структура данных.
- •3.2.2.Операции над данными.
- •3.2.3.Ограничения целостности.
- •4.1.Реляционная модель данных
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •4.2.Теория нормальных форм.
- •4.2.1.Функциональные зависимости.
- •4.2.2. 1Nf - первая нормальная форма.
- •4.2.3. 2Nf - вторая нормальная форма.
- •4.2.4. 3Nf - третья нормальная форма.
- •4.2.5. Bcnf - нормальная форма Бойса-Кодда.
- •4.2.6. Многозначные зависимости и четвертая нормальная форма (4nf).
- •4.2.7. Зависимости по соединению и пятая нормальная форма (5nf).
- •4.3.Ограничения целостности
- •4.3.1.Целостность сущностей.
- •4.3.2.Целостность ссылок
- •4.4.Операции над данными (реляционная алгебра).
- •4.4.0.Система управления базами данных leap
- •4.4.1.Операции обработки кортежей.
- •4.4.2.Операции обработки отношений.
- •4.5.Реляционное исчисление.
- •4.6.Язык sql
- •4.6.1.Типы данных sql.
- •4.6.2.Ddl: Операторы создания схемы базы данных.
- •Операторы базы данных
- •Создание и удаление таблиц
- •4.6.3.Ddl: Операторы создания индексов.
- •4.6.4.Ddl: Операторы управления правами доступа.
- •4.6.5.Dml: Команды модификации данных.
- •Удаление записей
- •4.6.6.Dml: Выборка данных.
- •4.6.7.Dml: Выборка из нескольких таблиц.
- •4.6.8.Dml: Вычисления внутри select.
- •4.6.9.Dml: Групировка данных.
- •4.6.10.Dml: Cортировка данных.
- •4.6.11.Dml: Операция объединения.
- •4.6.12.Использование представлений.
- •4.6.13.Другие возможности sql.
- •4.7.Вопросы практического програмирования.
- •4.7.1.Использование специализированных библиотек и встраиваемого sql.
- •4.7.2.Cli - интерфейс уровня вызовов.
- •4.7.3.Odbc - открытый интерфейс к базам данных на платформе ms wIndows.
- •4.7.4.Jdbc - мобильный интерфейс к базам данных на платформе Java.
- •4.8.Навигационный подход к манипулированию данными и персональные субд.
- •4.9.Транзакции, блокировки и многопользовательский доступ к данным.
- •4.10.Как определить степень соответствия субд реляционной модели.
- •5.1.Этапы проектирования данных
- •5.2.Инструментальные средства проектирования информационных систем.
- •5.3.Методологии функционального моделирования.
- •5.3.1.Диаграммы потоков данных. Нотация Йордона - Де Марко
- •5.3.2.Другие нотации, используемые при построении диаграмм потоков данных.
- •5.3.3.Методология sadt (idef0).
- •5.3.4.Сравнительный анализ методологий функционального моделирования.
- •5.4.Концептуальное моделирование. Пример построения модели "сущность-связь"
- •5.5.Правила порождения реляционных отношений из модели "сущность-связь"
- •5.5.1.Бинарные связи
- •5.5.2.N - арные связи.
- •5.5.3.Иерархические связи.
- •5.6.Проектирование реляционной базы данных на основе декомпозиции универсального отношения.
- •5.7.Обзор некоторых case-систем.
- •5.7.1.Power Designer компании Sybase.
- •5.7.2.Silverrun компании Silverrun Technologies Ltd.
- •5.7.3.BpWin и erWin компании LogicWorks.
- •5.7.4.Designer/2000 компании Oracle.
- •6.1.Ограничения реляционных баз данных.
- •6.2.Постреляционные субд.
- •6.3.Объектно-ориентированные субд.
- •6.3.1.Объектно-ориентированная парадигма.
- •6.3.2.Объектно-ориентированные субд.
- •6.3.3.Стандарт odmg.
- •6.3.4.Объектные расширения реляционных субд. Язык sql-3.
- •6.4.Объектно-реляционные субд.
- •6.5.Нечисловая обработка и ассоциативные процессоры.
- •7.1.Архитектура "клиент-сервер".
- •7.1.1.Основные понятия.
- •7.1.2.Модели взаимодействия клиент-сервер.
- •7.1.3.Мониторы транзакций.
- •Основные понятия субд
6.5.Нечисловая обработка и ассоциативные процессоры.
В предыдущих разделах данной главы мы говорили о недостатках реляционных СУБД и способах их преодоления. Теперь настала пора обсудить некоторые более общие вопросы использования баз данных и их поддержки вычислительными архитектурами.
Компьютеры, как известно, были созданы для удовлетворения потребностей исследователей, решавших вычислительные задачи. Однако, со временем все чаще и чаще они стали использоваться для решения невычислительных задач, а именно для хранения, поиска и преобразования документов (инофрмации). Когда компьютеры стали широко применяться в таких задачах, обнаружилась неприспособленность их традиционной (фоннеймановской) архитектуры для этих целей.
Архитектура компьютера, разработанная Дж. Фон Нейманом показана на следующем рисунке.
Центральный процессор связан каналом с памятью, представляющей набор ячеек, каждая из которых харакетризуется адресом (последовательным номером). В ячейках хранятся команды (вычислительные, а также условного и безусловного переходов на другую ячейку), которые процессор последовательно извлекает и обрабатывает. Некоторые команды могут требовать каких-либо данных, которые также хранятся в ячейках памяти. Ссылка на данные осуществялется при этом при помощи указания адресов хранящих их ячеек. Таким образом, способы построения запоминающих устройств и способы обращения к ним центрального процессора у современных ЭВМ ориентированы на числовую обработку.
В качестве примера рассмотрим фрагмент программы, связанный с обработкой массива:
for i=1 to 10 do a[i]=a[i]+b[i];
При обращении к массиву компьютер определяет начальный адрес массива и по значению индекса выбирает его конкретный элемент (адрес элемента = начальный адрес + смещение).
Теперь рассмотрим пример, связанный с выборкой из базы данных:
SELECT имя FROM служащие WHERE возраст < 35 AND зарплата > 400
Здесь имена служащих выбираются из файла не по адресу, а по содержимому полей "возраст" и "зарплата". Этот способ адресации называется ассоциативным обращениемилиассоциативной адресацией.
Поскольку в современных компьютерах для нечисловой обработки используется та же архитектура, что и для числовой, используются методы эмуляции ассоциативного доступа - создается специальная таблица для перевода ассоциативного запроса в соответствующий адрес - индекс.
В общем виде архитектура нечисловой обработки должна удовлетворять следующим требованиям:
ассоциативная память с ориентацией на обработку наборов данных
специализированный набор команд с непосредственной аппаратной поддержкой
параллелизм и использование процессоров в памяти:
параллельное выполнение таких задач как "повысить зарплату всем служащим"
процессор в памяти - ликвидация канала процессор-память
К сожалению, до настоящего времени не достигнуто больших успехов в создании ассоциативных систем. Более подробно с этим вопросом можно ознакомиться в книге Э.Озкарахана (см. список литературы).
7.1.Архитектура "клиент-сервер".
7.1.1.Основные понятия.
Как правило компьютеры и программы, входящие в состав информационной системы, не являются равноправными. Некоторые из них владеют ресурсами (файловая система, процессор, принтер, база данных и т.д.), другие имеют возможность обращаться к этим ресурсам. Компьютер (или программу), управляющий ресурсом, называют сервером этого ресурса (файл-сервер, сервер базы данных, вычислительный сервер...). Клиент и сервер какого-либо ресурса могут находится как в рамках одной вычислительной системы, так и на различных компьютерах, связанных сетью.
Основной принцип технологии "клиент-сервер" заключается в разделении функций приложения на три группы:
ввод и отображение данных (взаимодействие с пользователем);
прикладные функции, характерные для данной предметной области;
функции управления ресурсами (файловой системой, базой даных и т.д.)
Поэтому, в любом приложении выделяются следующие компоненты:
компонент представления данных
прикладной компонент
компонент управления ресурсом
Связь между компонентами осуществляется по определенным правилам, которые называют "протокол взаимодействия".