В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Paradox, dBase.
- клиент-серверные
Сервер обеспечивает не только хранение данных, но и основной объем обработки данных.
Спецификой архитектуры клиент-сервер является использования языка запросов SQL.
Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера. Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.
Примеры: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, ЛИНТЕР, MDBS.
- встраиваемые
Встраиваемая СУБД — библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных (например, геоинформационные системы).
Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.
Типовые функции СУБД: хранение, поиск данных; обеспечение доступа из прикладных программ и с терминала конечного пользователя; преобразование данных; словарное обеспечение БД; импорт и экспорт данных из(в) файлов ОС ЭВМ.
* управление данными во внешней памяти (на дисках);
* управление данными в оперативной памяти с использованием дискового кэша;
* журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
* поддержка языков БД (язык определения данных, язык манипулирования данными).
СУБД организует хранение информации таким образом, чтобы ее было удобно:
* просматривать,
* пополнять,
* изменять,
* искать нужные сведения,
* делать любые выборки,
* осуществлять сортировку в любом порядке.
СУБД обеспечивают правильность, полноту и непротиворечивость данных, а также удобный доступ к ним.
Типовая структура СУБД: ядро, обрамление, утилиты, интерпретатор/компилятор пользовательского языка манипулирования данными.
Обычно современная СУБД содержит следующие компоненты:
* ядро, которое отвечает за управление данными во внешней и оперативной памяти, и журнализацию,
* процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,
* подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД
* а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).
Среда конечного пользователя.
Иерархия представления архитектуры системы обработки данных
Уровень архитектуры системы обработки данных | Компоненты системы обработки данных | |||
Интерфейсы | Средства обработки данных | Представление и хранение данных | Коммуникации | |
Среда для конечного пользователя и инструментарий прикладного программиста | Генераторы форм и отчетов | Утилиты и библиотеки | Языки программирования 4GL | OSI. Прикладной уровень |
Языки программные и командные языки (оболочки) | Прикладные программы | Языки запросов СУБД | OSI. Уровни сессий и представительный | |
Операционная система | Средства оконного интерфейса | Верхний уровень ОС (организация процесса обработки) | Средства доступа к среде хранения | OSI. Транспортный уровень |
Драйверы | Ядро операционной системы | Файловая система | OSI. Сетевой уровень | |
Оборудование | Системные интерфейсы (в т.ч. организация ввода-вывода) | Процессоры (система команд) | Организация памяти | OSI. Уровень передачи данных |
Периферийные устройства | Системная шина | Шины (интерфейс) массовой памяти | OSI. Физический уровень |
Работа пользователя с программными продуктами должна по возможности быть комфортной и осуществляться в соответствующей программно-технической среде (тип процессора, объем оперативной и внешней памяти, платформа сетевой и локальной операционной системы и др.).
Для работы пользователя большое значение имеет пользовательский интерфейс (вид, размер и местоположение основного экрана, функции обработки, доступные через систему меню, панели инструментов и т.п.). Как правило, интерфейс прикладных программных продуктов строится по типу графического, ориентированного на среду Windows (или Macintosh) интерфейса с развитыми элементами управления: командные кнопки, выпадающие меню, переключатели и т.п.
Программные продукты должны гарантировать надежную и безопасную работу как для компьютера, так и для информационной системы пользователя (сохранность устройств компьютера, программного обеспечения, хранимых данных). В значительной степени это достигается наличием в составе программного продукта контекстно-зависимой помощи и обучающих систем, демоверсий, раскрывающих функциональные возможности и технологию работы программного продукта, специальных программных решений по обеспечению сохранности программ и данных, антивирусной защиты и др.
Прикладные программные продукты автоматизируют деятельность специалистов (экономистов, менеджеров, бухгалтеров, агентов и т.д.) предметных областей. Сформировалась тенденция на создание автоматизированных рабочих мест - АРМ, полностью поддерживающих всю профессиональную деятельность конечного пользователя в компьютерной среде.
Тенденция развития прикладных программных продуктов состоит также в создании инструментальных средств конечногопользователя .Инструментальные средства подобного типа предназначены для совершенствования функций обработки, создания новых приложений силами конечного пользователя.
Front-end-процессор.
Коммуникационный процессор
Коммуникационное устройство, связанное с главным компьютером, управляющим линиями связи и передачей данных по сети. Коммуникационный процессор используется для обработки передаваемой информации, контроля и устранения ошибок, кодирования сообщений и т.п.
Back-end-процессор.
вспомогательный процессор, спецпроцессор
Процессор, который очень быстро выполняет одну специализированную задачу, освобождая главный процессор для другой, более важной работы.
Новейшие направления в области создания технологий программирования. Программирование в средах современных информационных систем: создание модульных программ, элементы теории модульного программирования, объектно-ориентированное проектирование и программирование. Объектно-ориентированный подход к проектированию и разработке программ: сущность объектно-ориентированного подхода, объектный тип данных, переменные объектного типа, инкапсуляция, наследование, полиморфизм, классы и объекты. Логическое программирование. Компонентное программирование.