Базы и банки данных

СОДЕРЖАНИЕ

 

1. Базы и банки данных…………………………………………………………………………………..……….………

1.1.  Понятие базы и банка даны……………………………………………………………………….………2

2. Компоненты банка данных…………………………………………………………………………………….……4

2.1.  Информационная база………………………………………………………………………………….……4

2.2.  Лингвистические средства……………………………………………………………………..….………5

2.3.  Программные средства…………………………………………………………………………….….……6

2.4.  Технические средства……………………………………………………..……………………….……..…7

2.5.      Организационно-административные подсистемы……..……………..………...………8

3. Пользователи  баз данных…………………………………………………………………………….……..………8

4. Типология  баз данных………………………………………………………………………………….………………8

4.1. Типология  баз данных с точки зрения  информационных процессов….…………...9

5. Семантика  баз данных……………………………………………………………………………………….………10

6. Типология  моделей…………………………………………………………………………………………...………11

7. Модели  и структуры данных……………………………………………………………..…………….…..……15

8. Литература………………………………………………………………………………………………………….………17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Базы и банки данных

1.1.  Понятие базы и банка данных  

 

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

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

 

 

 

 

 

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

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

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

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

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

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

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

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

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

Многократное  использование данных: пользователи должны иметь возможность использовать данные различным образом.

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

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

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

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

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

База  данных — это основа для будущего наращивания прикладных программ: базы данных должны обеспечивать возможность быстрой и дешевой разработки новых приложений.

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

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

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

Адаптивность  и расширяемость: база данных должна быть настраиваемой, причем настройка не должна вызывать перезаписи прикладных программ. Кроме того, поставляемый с СУБД набор предопределенных типов данных должен быть расширяемым — в системе должны иметься средства для определения новых типов и не должно быть различий в использовании системных и определенных пользователем типов.

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

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

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

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

 

2. Компоненты банка данных 

 

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

В структуре банка данных выделяют следующие компоненты (подсистемы):

• информационная база;

• лингвистические средства;

• программные средства;

• технические средства;

• организационно-административные подсистемы и нормативно-методическое обеспечение. 

 

2.1.  Информационная база 

 

Данные, отражающие состояние определенной предметной области и используемые информационной системой, принято называть информационной базой. Информационная база состоит из двух компонент: 1) коллекции записей собственно данных; 2) описания этих данных — метаданных.

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

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

В литературе по базам данных упоминаются  три уровня представления данных — концептуальный, внутренний и  внешний (рис. 1.2).

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

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

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

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

 

 

2.2.  Лингвистические средства  

 

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

Работа с базами данных предполагает несколько этапов:

• описание БД;

• описание частей БД, необходимых для конкретных приложений (задач, групп задач);

• программирование задач или описание запросов в соответствии с правилами конкретного языка и использованием языковых конструкций для обращения к БД;

• загрузка БД и т. д.

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

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

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

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

В ряде предметных областей структура  данных имеет более сложный вид, в котором поддерживаются связи  типа «многие к одному», и которые могут быть представлены ориентированным графом. Такие структуры называют сетевыми. Для управления БД сетевой структуры международной ассоциацией Кодасил была предложена обобщенная архитектура системы с ЯОД схемы (модели БД) и подсхемы (модели части БД для конкретного приложения), а также ЯМД для оперирования данными БД в прикладных программах.

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

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

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

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

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

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

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

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

Наиболее распространенным языком для работы с базами данных является SQL (Structured Query Language), в своих последних реализациях предоставляющий не только средства для спецификации и обработки запросов на выборку данных, но также и функции по созданию, обновлению, управлению доступом и т. д.

По существу SQL уже соединяет в себе язык описания данных и язык манипулирования данными. Он не является полноценным языком программирования, и в случае его использования для организации доступа к БД из прикладных программ, ЯП -выражения встраиваются в конструкции базового языка.

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

 

2.3.  Программные средства 

 

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

• ядро, обеспечивающее управление данными во внешней и оперативной памяти, а также протоколирование изменений;

• процессор языка базы данных, обеспечивающий обработку (трансляцию или компиляцию) и оптимизацию запросов на выборку и изменение данных;

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

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

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

 

 

 

 

 

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

Именно централизованное управление данными обеспечивает:

• сокращение избыточности в хранимых данных;

• совместное использование хранимых данных;

• стандартизацию представления данных, упрощающую эксплуатацию БД;

• разграничение доступа к данным;

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

 

2.4.  Технические средства 

 

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

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

Для повышения надежности хранения часто используют специализированные дисковые подсистемы — RAID (Redundant Array of Inexpensive Disk). Один логический RAID-диск — это несколько физических дисков, объединенных в одно устройство, управляемое специализированным контроллером, что позволяет распределять основные и системные данные между несколькими носителями (дисками), в том числе дублировать данные. Таким образом, в случае повреждения одного из дисков, можно оперативно восстановить потерянные данные.

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

Для распределенных и удаленно используемых баз данных также важно сетевое  окружение: связное оборудование и  сетевые протоколы. Здесь важны  не только показатели быстродействия, но и поддерживаемые ими возможности  обеспечения безопасности. 

 

 

 

 

2.5.      Организационно-административные подсистемы 

 

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

 

3. Пользователи баз данных  

 

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

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

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

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

 

4. Типология баз данных  

 

Классификация баз и банков данных может быть произведена по разным признакам (относящимся к разным компонентам и сторонам функционирования банков данных (БнД), среди которых выделяют, например, в [5] следующие.

По форме представляемой информации можно выделить фактографические, документальные, мультимедийные, в той или иной степени соответствующие цифровой, символьной и другим (нецифровой и не символьной) формам представления информации в вычислительной среде. К последним можно отнести картографические, видео-, аудио-, графические и другие БД.

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

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

По топологии хранения данных различают локальные и распрей деленные БД.

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

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

Базы и банки данных