Понятие базы данных. Примеры использования и сферы применения баз данных

 

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

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

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

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

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

Информационные системы

Решение задач посредством СУБД приводит к созданию информационных систем (ИС).

По сферам применения различают два основных класса ИС: информационно-поисковые системы (ИПС) и системы обработки данных (СОД).

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

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

Локальные и глобальное пользовательские представления

Чтобы разобраться в задаче, нам необходимо структурировать информацию:

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

• определить участников событий и пересечение их интересов;

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

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

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

Завершение этапа приведет к формированию глобального пользовательского представления (ГПП), т.е. будет отражать точку зрения администратора БД.

 

  1. информационная модель данных. Типы логических моделей

 

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

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

 

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

 

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

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

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

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

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

  • Логическая модельотражает логические связи между элементами данных вне зависимости от их содержания и среды хранения.

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

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

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

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

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

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

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

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

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

 

  1. основные понятия реляционной базы данных

 

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

Для начала покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации:

 

Тип данных

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

Домен

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

Наиболее правильной интуитивной трактовкой понятия домена является понимание домена как допустимого потенциального множества значений данного типа. Например, домен "Имена" в нашем примере определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя (в частности, такие строки не могут начинаться с мягкого знака).

Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов "Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми. Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle V.7 оно уже поддерживается.