Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УП СУБД ч1

.pdf
Скачиваний:
14
Добавлен:
11.06.2015
Размер:
1.05 Mб
Скачать

более сложное устройство (например, быть комплексом взаимодействующих экземпляров БД).

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

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

Исторически можно выделить следующие основные виды архитектуры:

1.Терминальная модель.

2.Модель файлового сервера.

3.Модель «клиент-сервер».

4.Трехуровневые модели.

5.Модель Web-клиента.

При использовании терминальной модели в функции клиента входит только взаимодействие с пользователем; полученные данные непосредственно пересылаются на сервер, который выполняет обработку данных (включая взаимодействие с БД), формирует результат и пересылает его клиенту (см. рис. 2.1).

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

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

21

Рис. 2.1. Терминальная модель

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

Рис. 2.2. Файл-серверная модель.

22

Файл-серверная модель существенно уступает более современным моделям (например, клиент-серверной), как по производительности, так и по другим параметрам, таким как обеспечение параллельного доступа, безопасность и т.д. Типичным примером использования данной технологии являются приложения на основе системы ForPro; в целом файловая модель в настоящее время считается устаревшей.

В области традиционных приложений баз данных наиболее типичной является модель «клиент-сервер». К функциям клиента в основном относятся функции ввода-вывода и обработки бизнес-логики, а к функциям сервера – управление базой данных. Клиент и сервер взаимодействуют по сети при помощи специализированных компонент, описанных выше (см. п. 5).

Рис. 2.3. Модель «клиент-сервер»

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

23

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

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

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

Рис. 2.4. Трехуровневая модель

24

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

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

Эта модель получила чрезвычайно широкое распространение для разработки приложений для сети Интернет,

вчастности on-line-магазинов, систем для подачи разнообразных отчетов и заявок в электронном виде, Интернетфорумов и т.д. Основное достоинство этих систем состоит

втом, что страницы (как программные компоненты) доступны непосредственно в сети и не требуют никакой предварительной установки и сложной настройки. Однако такие системы значительно уступают традиционным приложениям (например, графическим приложениям Windows),

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

Выводы

система управления базой данных – это программный компонент, выполняющий централизованную связующую роль между приложениями, с одной стороны, и базой данных – с другой;

к основным функциям СУБД относятся: хранение данных на внешних носителях, реализация базовых средств доступа к данным, поддержка транзакций, обеспечение параллельного доступа к данным, ведение системного каталога, реализация функций безопасности;

25

системы баз данных включают такие основные программные компоненты, как ядро СУБД, библиотеки программных интерфейсов, программные средства для доступа­ к данным, средства администрирования, программные компоненты для сетевого доступа к базе данных, а также инструментальные средства для разработки прило­жений;­

приложение БД выполняет три основных задачи: доступ к данным, обработку логики приложения и ввод данных и визуализацию результатов;

модель архитектуры взаимодействия определяет, каким образом эти три функции распределены между физическими программными и аппаратными компонентами ИС;

к известным архитектурам относятся следующие модели: терминальная, файл-серверная, клиент-серверная и трехуровневая модели, включая модель Web-прило­ жений;

в области построения бизнес-приложений наибольшее распространение получила клиент-серверная модель.

Вопросы для контроля

1.Опишите, какие преимущества обеспечивает применение СУБД при построении АИС.

2.Перечислите основные программные компоненты, входящие в состав типичной системы баз данных.

3.Что такое обработка логики приложения?

4.Что такое разделение представления данных на физический и логический уровни?

5.Объясните понятия «клиент» и «сервер».

6.Опишите основные виды архитектур взаимодействия клиентской и серверной частей приложений баз данных.

7.Опишите особенности Web-приложения базы данных

сточки зрения архитектуры.

26

Раздел 3. Модели данных и языки запросов БД. Реляционная модель данных

Вданном разделе определяются понятия модели данных,

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

При определении понятия базы данных в разделе 1 было указано, что информация в ней хранится в структурированном виде. Для определения средств структурирования данных, или, иными словами, для описания, каким образом информация может быть представлена в БД, используется понятие модели данных. Моделью данных называется набор средств для построения структур данных, или набор средств типообразования.

Понятие модели данных является универсальным и может относиться не только к области баз данных, в которой оно и возникло, но и применительно к смежной области языков программирования. Поэтому целесообразно проиллюстрировать это понятие, используя терминологию и примеры из области языков программирования, предположительно, более знакомую студентам.

Втрадиционных языках программирования (VisualBasic, C, JavaScript и т.д.) типичным объектом, в котором хранится информация и с которым могут выполняться какие-либо операции, является переменная. Современные языки программирования являются типизированными, что означает, что каждая переменная при создании соотнесена с какимлибо типом, ей можно присваивать значения только своего типа и выполнять с ней действия, предусмотренные для данного типа.

Переменные, помимо атомарных значений (например, чисел), в современных языках программирования могут содержать и агрегатные значения, к наиболее распространенным из которых относятся массивы и структуры (записи). Виды подобных структур данных, которые можно создать в конкретном языке, и называются набором средств типообразования, или моделью данных.

27

Более формально модель данных определяют следующие три составляющие:

1.Структуры данных, которые можно образовывать для представления информации в БД.

2.Операции, предусмотренные для данных, помещенных

вэти структуры.

3.Ограничения, которые можно при необходимости наложить на данные.

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

втом числе развитие технологии баз данных с момента ее появления в 60 гг. XX в.

1.Так называемые иерархические и сетевые модели. Под этим понятием объединяют способы структурирования данных, которые можно было использовать для хранения информации в системах баз данных, относящихся к концу 60-х – 70-м годам.

2.Реляционная модель Э. Кодда (подробнее описана ниже в данном разделе) и примыкающая к ней модель языка SQL.

3.Модели, классифицирующиеся как постреляционные, объектные и другие.

Следует отметить, что с начала 90-х годов в практической технологии БД доминирует модель данных языка SQL,

вкоторую в определенном смысле интегрируются новые технологические предложения, например элементы объектного подхода, концепции структурирования данных на основе языка XML и т.д.

Рассмотрим более подробно содержание понятия «реляционная модель данных». Этот термин и стоящая за ним концепция были предложены Э. Коддом в ряде статей (начиная с 1970 г.), в которых был изложен подход к структурированию хранимой в базе данных информации и ее извлечению, развитый автором на основе применения средств теории множеств и математической логики. Отметим, что в настоящее время при изложении основ реляционной теории баз данных традиционно используется сформировавшийся

вболее позднее время подход, изложенный, например, в монографиях Дж. Ульмана или Дж. Мейера, несколько от-

28

личающийся от оригинальных предложений ранних работ Э. Кодда.

Структурой данных для представления информации, согласно подходу Э. Кодда, является множество (близкое к понятию множества в традиционном смысле в математике), элементами которого являются записи (кортежи). Запись состоит из значений атрибутов (полей). Отношение можно представить в виде плоской таблицы, строки которой соответствуют записям, колонки – атрибутам. Термин «плоская таблица» в данном контексте указывает, что значение каждого атрибута (т.е. клетка таблицы) является атомарным значением, а не агрегатом.

Для манипулирования подобными структурами данных Э. Кодд предложил формальный подход, получивший название «реляционная алгебра» и состоящий, в крайне упрощенном изложении, в следующем. Он переопределил традиционные операции с множествами, такие как объединение, пересечение, разность и декартово произведение, и добавил три новых – селекцию, проекцию и соединение. Применение операции селекции, как следует из названия, используется для отбора кортежей множества, удовлетворяющих заданному в операции условию; используя аналогию с таблицей, операция селекции удаляет строки, т.е. «уменьшает» таблицу по вертикали. Операция проекции создает новое множество из исходного, «удаляя» неиспользуемые колонки (т.е. уменьшает таблицу по горизонтали). Операция соединения, являясь комбинацией операций декартового произведения, проекции и селекции, создает новую таблицу из двух исходных.

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

Кроме того, Э. Кодд заложил основы теории нормализации, используемой для анализа и улучшения структур отношений. Работы Э. Кодда оказали огромное значение на развитие технологии баз данных, и оригинальная статья 1970 года является первым по цитируемости источником в научных работах о базах данных. На основе концепции реляционных баз данных был создан язык SQL, изучению которого посвящена основная часть настоящего пособия.

29

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

К основным функциям языка базы данных относятся:

1.Определение схемы базы данных (определение см. ниже). Группу команд, используемых для определения схемы, традиционно называют подъязыком определения данных (Data Definition Language).

2.Добавление (сохранение) новых данных в базу данных, удаление и изменение существующих данных. Эта группу команд называется подъязыком манипулирования данных (Data Manipulation Language).

3.Поиск и извлечение данных из БД. Эта группа команд называется языком запросов (Query Language).

Существуют также и другие виды команд, например для управления базой данных, и др. Каждая конкретная система баз данных имеет свой язык. В настоящее время эти языки являются вариантами языка SQL.

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

Можно сказать, что схема базы данных представляет собой модель структур данных предметной области, которые будут в базе данных храниться. Применительно к схемам БД используются термины «физическая схема» и «логическая схема». В данном пособии физической схемой базы данных называется описание структур данных предметной области, выполненное при помощи средств языка базы данных и, соответственно, в рамках соответствующей модели данных этой СБД. Иными словами, физическая схема конкретной базы данных – это набор команд языка

30