Архитектура Microsoft Windows для разработчиков


Занятие 1. Реляционные базы данных

(Продолжительность занятия 30 минут)

Бизнес-решения почти всегда требуют поддержки баз данных. В настоящее время наиболее распространены два типа реляционных БД: файловые и клиент-серверные. На этом занятии обсуждаются реляционные базы данных, характеристики файловых и клиент-серверных баз данных, а также описываются области применения каждой из этих архитектур.

 
Изучив материал этого занятия, Вы сможете:

  • описать структуру реляционной базы данных;
  • объяснить различия между файловыми и клиент-серверными реляционными базами данных;
  • подобрать тип реляционной базы данных, подходящей для конкретной ситуации.

Структура реляционной базы данных

Реляционная модель — современный стандарт проектирования баз данных. Информация в ней представлена в виде набора таблиц. Отношения между данными определяются не по методу их физического хранения, а на основе отношений между таблицами.

В такой реляционной базе данных, как Microsoft Access, сведения из нескольких таблиц можно комбинировать в одном запросе, форме или отчете.

Независимо от того, как хранятся данные в файле БД, таблицы всегда представлены в виде набора строк и столбцов, как в электронной таблице (рис. 6.1). В реляционной базе данных строки называются записями, а столбцы — полями.

6-2.jpg

Рис. 6.1 Структура реляционной базы данных

Запись содержит информацию об одном элементе таблицы: например, в таблице Employees БД Northwind (рис. 6.2) это сведения о конкретном сотруднике. Каждое поле таблицы содержит элемент информации записи. Например, таблица Employees включает поля для идентификатора сотрудника (Employee ID), его фамилии (Last Name), имени (First Name) и других данных.

6-3.jpg

Рис. 6.2 База данных Northwind

Ключ — это поле или поля таблицы, которые проиндексированы для ускорения доступа к записям. Поле (или поля), значения которого однозначно идентифицируют запись, можно назначить первичным ключом. Например, для таблицы Employees наиболее удачный первичный ключ — поле идентификатора сотрудника (Employee ID), поскольку два сотрудника не могут иметь один и тот же идентификатор. Таблица может содержать и внешние ключи — они применяются для идентификации первичного ключа другой таблицы, связанной с данной.

Например, поле «идентификатор клиента» (Customer ID) таблицы заказов БД Northwind позволяет избежать дублирования информации о клиенте для каждого заказа. В таблице заказов такое поле — внешний ключ: оно ссылается на внешнюю по отношению к ней таблицу клиентов. Соотношение между заказами и клиентами, в терминологии реляционных БД, — это отношение «один ко многим»: каждому заказу соответствует один (и только один) клиент, но один клиент может сделать несколько заказов.

Файловые базы данных

Многие популярные системы управления базами данных (СУБД) для персональных компьютеров являются файловыми реляционными БД. Эти базы данных, как правило, размещают на сервере для совместного использования, и поэтому такая архитектура считается файл-серверной.

Ядро файл-серверной БД находится на рабочих станциях пользователей, а файл данных — на сервере (рис. 6.3). Когда клиентскому приложению нужны данные, ядро БД выполняет запрос и затем обращается к сетевому диску за необходимыми данными. Все запрашиваемые сведения из файла БД в этом случае пересылаются с сервера на рабочую станцию, что иногда создает значительную нагрузку на сеть.

6-4.jpg

Рис. 6.3 Файловая база данных

Базы данных индексно-последовательного доступа

Метод индексно-последовательного доступа (Indexed Sequential Access Method, ISAM) — это технология файловых баз данных, на основе которой построены такие СУБД, как FoxPro, Paradox и dBase. При получении информации средствами ISAM единственный ресурс — сами данные; никакие другие серверные компоненты при этом не используются.

Базы данных типа ISAM позволяют определить типы данных и создать на их основе хранилища. Кроме того, методы индексирования ускоряют извлечение и обработку данных. Несколько индексов, упорядочивающих ключи определенным образом, помогут более гибко и эффективно выбирать данные.

Microsoft Access

Microsoft Access — это настольная реляционная система управления базами данных. Если файл БД хранится на сетевом сервере, сетевому клиенту предоставляется только сервис хранения данных. Поскольку Microsoft Access использует те же ядро БД (Jet) и формат, что и Microsoft Visual Basic, базы данных, созданные посредством Access, можно использовать так, будто они созданы непосредственно в Visual Basic.

Достоинства файловых баз данных

  • Хотя база данных может находится на сервере, сервер необязателен.
  • Создание БД на локальном компьютере уменьшает сетевой трафик.
  • Реализация файловой БД гораздо проще, чем системы клиент-сервер, поскольку в этом случае сервер только хранит данные.

Клиент-серверные базы данных

Клиент-серверная архитектура — эффективный и популярный метод создания распределенных приложений. Клиент-серверные БД, как и файловые, хранят данные, но также обеспечивают и дополнительные функциональные возможности (рис. 6.4).

6-5.jpg

Рис. 6.4 Клиент-серверная база данных

В модели клиент-сервер приложение разделено на две части: клиентскую, предоставляющую информацию пользователю, и серверную, которая хранит, выбирает и обрабатывает данные, а также выполняет основную часть вычислений при обработке запросов клиентов. В клиент-серверной системе в качестве сервера обычно выступает компьютер более мощный, чем рабочие станции-клиенты. Он же, как правило, служит единым хранилищем данных для множества клиентских компьютеров, что облегчает администрирование системы.

Среди типовых примеров клиент-серверных приложений — базы данных общего доступа, удаленные файл-серверы и удаленные серверы печати.

Достоинства клиент-серверных баз данных

Клиент-серверная архитектура обладает рядом достоинств, делающих ее оптимальным вариантом для многих приложений управления данными.

  • Гарантирует надежность, поскольку все действия над данными выполняет сервер БД.
  • Значительно увеличивает производительность некоторых операций, особенно в случае «тощих» клиентов с медленными процессорами и ограниченной памятью. Например, большой запрос во много раз быстрее выполняется на мощном сервере, чем на клиентской рабочей станции.
  • Снижает сетевой трафик за счет передачи клиенту только необходимых ему данных.
  • Обеспечивает отказоустойчивость за счет протоколирования транзакций, интеллектуального резервирования, избыточных дисковых массивов и средств восстановления после сбоев.

Структуры данных SQL

Структуры данных SQL предназначены для реляционных баз данных большого размера. При увеличении объема данных БД ISAM менее эффективны, чем SQL, которые могут обрабатывать большие наборы данных и одновременные запросы множества пользователей. Усовершенствованные методы индексирования и механизмы оптимизации запросов делают базы данных SQL оптимальным выбором для отказоустойчивых приложений и процессов, оперирующих с большими объемами информации.

В конфигурации клиент-сервер (например Microsoft SQL Server) и ядро БД, и сами данные находятся на сетевом сервере. Вместо запуска копии ядра БД на каждой рабочей станции, ядро выполняется только на сервере, а рабочая станция просто передает запросы в виде операторов SQL серверу, который выбирает нужные данные и возвращает их клиенту.

Microsoft SQL Server

Microsoft SQL Server — это масштабируемая высокопроизводительная система управления реляционными базами данных для платформ на базе Windows NT Server. Она разработана с учетом требований к современным распределенным клиент-серверным вычислениям и тесно интегрирована с серверными продуктами семейства Microsoft Office.

Резюме

Реляционная модель — это наиболее популярная архитектура баз данных. В настоящее время наиболее распространены два типа реляционных БД: файловые и клиент-серверные.

В первых ядро находится на каждой пользовательской рабочей станции, а файл данных — на сервере.

Во второй приложение разделено на две части: клиентскую, предоставляющую информацию пользователю, и серверную, которая хранит, выбирает и обрабатывает данные, а также выполняет основную часть вычислений при обработке запросов клиентов.