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

учебник БД

.pdf
Скачиваний:
229
Добавлен:
12.03.2016
Размер:
2.41 Mб
Скачать

Алтайский государственный технический университет им. И.И. Ползунова

П.И. Ананьев М.А. Кайгородова

ОСНОВЫ БАЗ ДАННЫХ

Учебное пособие

Барнаул 2015

Министерство образования и науки Российской Федерации

Алтайский государственный технический университет им. И.И. Ползунова

П.И. Ананьев, М.А. Кайгородова ОСНОВЫ БАЗ ДАННЫХ

Барнаул 2015

УДК 681.3.06(075.8)

Ананьев П.И., Кайгородова М.А. Основы баз данных, 2-е изд..: Учебное пособие/ Алт. госуд. технич. ун-т им. И.И. Ползунова.- Барнаул: 2015.- 189.- ил.

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

Рецензент: Е.Н. Крючкова - профессор кафедры Прикладной математики АлтГТУ

1 ОСНОВНЫЕ ПОНЯТИЯ

1.1 ИНФОРМАЦИЯ КАК РЕСУРС

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

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

информационным обеспечением будем понимать совокупность процессов сбора,

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

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

американского математика К. Э. Шеннона еще называют информацией по Шеннону. Известна также и широко используется философская, или точнее говоря,

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

Существует еще и нормативно-правовая трактовка понятия информации, которая используется в законодательных актах, регламентирующих информационные процессы и технологии. Так, в частности, в Федеральном законе от 27 июля 2006 г. N 149-ФЗ "Об информации, информационных технологиях и о защите информации" дается следующее определение термина «информация» — сведения (сообщения, данные) независимо от формы их представления.

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

информацию будем понимать как изменение объема и структуры знания о некоторой

3

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

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

В качестве примера неструктурированной формы можно привести:

связный текст (т. с. документ на естественном языке — на литературном, официально-деловом и т. д.);

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

Примерами структурированной формы данных являются:

анкеты;

таблицы;

графические данные в виде чертежей, схем, диаграмм.

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

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

информационные ресурсы.

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

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

4

реализующих информационные процессы».

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

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

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

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

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

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

— дата изготовления, исполнитель, тематика и т. д.

5

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

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

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

1.2 НЕДОСТАТКИ ТРАДИЦИОННЫХ ФАЙЛОВЫХ СИСТЕМ

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

*Избыточность данных

*Слабый контроль данных

*Недостаточные возможности управления данными

*Большие затраты труда программиста

Избыточность данных. Главная трудность состоит в том, что многие приложения используют свои собственные файлы данных. Таким образом, некоторые единицы данных повторяются в разных приложениях. Например, в банке одно и то же имя клиента встречается в файлах, содержащих сведения о текущих счетах, сберегательных счетах и ссудах. Более того, хотя это одно и то же имя клиента, соответствующие поля в разных файлах могут называться по-разному. Так, поле CNAME файла текущих счетов превращается в SNAME файла сберегательных счетов и в INAME файла ссуд. Одно и то же поле в разных файлах может, кроме того, иметь разную длину. Например, поле CNAME может содержать до 20 символов, а поля SNAME и INAME допускают максимальную длину 15 символов. Следствием такой избыточности данных являются лишние затраты на поддержание и хранение данных. Избыточность данных также порождает риск противоречий между разными версиями общих данных.

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

6

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

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

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

Омонимы. Разные значения одного и того же термина. Синонимы. Термины, имеющие одно и то же значение.

Недостаточные возможности управления данными. Индексно-

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

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

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

7

зависимость между программами и данными.

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

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

1.3 ИНФОРМАЦИОННЫЕ СИСТЕМЫ, ИСПОЛЬЗУЮЩИЕ БАЗЫ ДАННЫХ

Информационные системы, использующие базы данных, позволили преодолеть ограничения файловых систем. Поддерживая целостную, централизованную структуру данных, информационные системы, использующие базы данных, позволили избавиться от проблем избыточности и слабого контроля данных. Доступ к централизованной базе данных имеет вся компания и если, например, необходимо внести изменение в имя клиента, это изменение будет известно всем пользователям. Данные контролируются посредством словаря/каталога данных (data dictionary/directory, DD/D), которым в свою очередь управляет группа сотрудников компании, называемых администраторами базы данных (АБД). Новые методы обращения к данным сильно упростили процесс связывания элементов данных, что в свою очередь привело к расширению возможностей работы с данными. Все эти характеристики систем управления базами данных упрощают процесс программирования и уменьшают необходимость программной поддержки.

1.4 БАЗА ДАННЫХ

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

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

независимая от прикладных программ». Нормативно-правовая трактовка понятия базы данных представлена в законе «О правовой охране программ для ЭВМ и баз данных»,

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

8

вычислительной машины (ЭВМ).». Для наших целей вполне подойдет следующее: база данных — это совокупность данных, организованная с определенной целью. Здесь слово

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

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

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

9