Банк данных, его состав, модели баз данных.

 

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

Таким образом, банк данных (БнД) — это система специальным образом организованных данных (баз данных), программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.

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

Базы данных создаются в БнД предприятия для решения на ПК задач управления производством.

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

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

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

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

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

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

языки БД (Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.

В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

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

Систе́ма управле́ния ба́зами да́нных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для манипулирования базой данных. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.

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

По организации и технологии обработки данных базы данных подразделяются на централизованные и распределенные.

Централизованную базу данных отличает традиционная архитектура баз данных (рисунок 1).

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

 

Рисунок 1 - Централизованная БД

 

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

По способу доступа к данным БД разделяются на БД с локальным доступом и БД с удаленным (сетевым) доступом.

Системы централизованных БД с сетевым доступом предполагают различные архитектуры подобных систем: файл-сервер и клиент-сервер.

Появление персональных компьютеров и локальных вычислительных сетей привело к разработке архитектуры «файл-сервер», показанной на рисунке 2. При такой архитектуре приложение, выполняемое на ПК, может получить прозрачный доступ к файл-серверу, на котором хранятся совместно используемые файлы. Когда приложению, работающему на ПК, требуется получить данные из совместно используемого файла, сетевое программное обеспечение автоматически считывает требуемый блок данных с сервера. Наиболее популярные БД для ПК, включая Microsoft Access, Paradox и dBase, поддерживают архитектуру «файл-сервер», при которой на каждом ПК работает своя копия СУБД.

 

Рисунок 2 - . Архитектура «файл-сервер»

 

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

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

 

Рисунок 3 - Архитектура «клиент-сервер»

 

Вернемся к примеру определения потребности материалов на деталь. При архитектуре «клиент-сервер» запрос передается по сети на сервер БД в виде SQL-запроса. Ядро БД на сервере обрабатывает запрос и просматривает БД, которая также расположена на сервере. После вычисления результата ядро БД посылает его обратно по клиентскому приложению, которое отображает его на экране ПК. Архитектура «клиент-сервер» позволяет сократить трафик и распределить процесс загрузки базы данных. Функции работы с пользователем, такие, как обработка ввода и отображение данных, выполняются на ПК пользователя. Функции работы с данными, такие, как дисковый ввод-вывод и выполнение запросов, выполняются сервером БД. Наиболее важно здесь то, что SQL обеспечивает четко определенный интерфейс между клиентской и серверной системами, эффективно передавая запросы на доступ к БД. Эта архитектура используется в современных СУБД Oracle, Informix, Sybase и др.

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

Основным средством организации и автоматизации работы с БД являются системы управления базами данных (СУБД).

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

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

Рисунок 4 - Схема иерархической модели БД

 

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

 

Рисунок 5 - Сетевая модель БД

 

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

Таблица 1 – Реляционная модель БД

Код технологической группы оборудования Код изделия Программа выпуска

 

Реляционная организация БД в виде таблицы содержит программу выпуска изделий (таблица 1). Эта база данных включает в себя три атрибута: код технологической группы оборудования, код изделия, программу выпуска.

Одно из основных различий между тремя типами моделей СУБД состоит в том, что для иерархических и сетевых СУБД их структура не может быть изменена после ввода данных, тогда как для реляционных СУБД структура может изменяться в любое время. Для больших БД, структура которых остается длительное время неизменной, именно иерархические и сетевые СУБД могут оказаться наиболее эффективными, ибо они могут обеспечивать более быстрый доступ к информации БД, чем реляционные СУБД. Однако большинство СУБД для ПК работают с реляционной моделью. К реляционным моделям относят, например, Clipper, dBase, Paradox, FoxPro, Access, Oracle.

В последние годы все большее признание и развитие получают объектно-ориентированные базы данных (ООБД), толчок к появлению которых дали объектно-ориентированное программирование и использование ПК для обработки и представления Практически всех форм информации, воспринимаемых человеком.

В чем принципиальное отличие реляционных и объектно-ориентированных баз данных? В ООБД модель данных более близка сущностям реального мира. Объекты можно сохранить и использовать непосредственно, не раскладывая их по таблицам. Типы данных определяются разработчиком и не ограничены набором предопределенных типов. В объектных СУБД данные объекта, а также его методы помещаются в хранилище как единое целое. Объектная СУБД именно то средство, которое обеспечивает запись объектов в базу данных. Существенной особенностью ООБД можно назвать объединение объектно-ориентированного программирования (ООП) с технологией баз данных для создания интегрированной среды разработки приложений.

ООБД обеспечивает доступ к различным источникам данных, в том числе, конечно, и к данным реляционных СУБД, а также разнообразные средства манипуляции с объектами баз данных. Традиционными областями применения объектных СУБД являются системы автоматизированного проектирования (САПР), моделирование, мультимедиа, поскольку именно из нужд этих отраслей выросло новое направление в базах данных.

СУБД ACCESS.

Основные понятия и определения.

Системой управления базами данных (СУБД, DBMS – Data Base Management System) называют программу, предназначенную для создания и ведения баз данных, а также организации доступа к данным и их обработки.

Под базой данных (БД, DB – Data Base) понимают совокупность данных, относящихся к некоторой предметной области, организованных определенным образом на материальном носителе, как правило, средствами СУБД.

База данных организуется в соответствии с моделью данных, которая поддерживается в СУБД. Реляционная модель данных (англ. Relation – отношение) является одной из самых распространенных моделей, используемых в современных СУБД. Реляционная модель ориентирована на организацию данных в виде прямоугольных двухмерных таблиц.

Применительно к реляционной модели используется следующая стандартная терминология теории отношений: двухмерная таблица определяется как отношение. Столбцы таблицы называют полями (или доменами), строки – записями (или кортежами).

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

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

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

СУБД Аccess относится к СУБД реляционного типа, работающая в среде Windows. Этот программный продукт является составной частью интегрированного пакета для офиса Microsoft Office Professional.

Объекты Аccess:

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

Запросы являются средством выборки необходимых данных из одной или нескольких таблиц БД.

Формы представляют собой электронный вариант физических форм документов. Они предназначены для ввода, просмотра и корректировки данных.

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

Макросы содержат описания действий, которые должны быть выполнены в ответ на некоторое событие. Каждое действие реализуется макрокомандой.

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

Для создания объектов базы данных (таблиц, запросов, форм, отчетов) используются специализированные диалоговые графические средства, называемые Конструктор (Design), а также программы-мастера Access (Wizard). Наряду с диалоговыми средствами создания объектов БД, Access располагает средствами программирования:

SQL(Structured Query Language) – структурированный язык запросов;

язык макрокоманд;

VBA (Visual Basic for Applications) - объектно-ориентированный язык программирования.