Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс лекций СБД.doc
Скачиваний:
23
Добавлен:
13.11.2019
Размер:
1.94 Mб
Скачать
  1. Базы данных и системы управления

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

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

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

    1. Файловые системы

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

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

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

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

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

    1. Данные

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

Фиксация данных осуществляется с помощью конкретного средства общения (например, с помощью естественного языка или изображений) на конкретном носителе (например, камне или бумаге). Обычно данные (факты, явления, события, идеи или предметы) и их интерпретация (семантика) фиксируются совместно, так как естественный язык достаточно гибок для представления того и другого. Например, в утверждении «Время вылета 21.50» 21.50 – данное, а «Время вылета» – его семантика.

Нередко данные и их интерпретация разделены. Например, в таблицах, где интерпретация данных представлена в первых строках в названиях столбцов (или в заголовке таблицы), а данные сгруппированы отдельно (рис.1.2.1). Такое разделение затрудняет работу с данными (особенно, если интерпретация и данные находятся на разных страницах).

Номер рейса

Дни недели

Пункт отправл.

Время вылета

Пункт назнач.

Время прибыт.

Тип самолета

Стоимость билета

138

2_4_7

Минск

21.12

Москва

0.52

ИЛ-86

115.00

57

3_6

Ереван

7.20

Киев

9.25

ТУ-154

92.00

1234

2_6

Москва

22.40

Минск

23.50

ТУ-134

73.50

242

1 по 7

Киев

14.10

Москва

16.15

ТУ-154

57.00

86

2_3_5

Минск

10.50

Сочи

13.06

ИЛ-86

78.50

137

1_3_5

Москва

17.15

Минск

18.44

ИЛ-86

115.00

241

1 по 7

Москва

9.05

Киев

11.05

ТУ-154

57.00

577

1_3_5

Рига

21.53

Таллинн

22.57

АН-24

21.50

78

3_6

Сочи

18.25

Минск

20.12

ТУ-134

44.00

578

2_4_6

Таллинн

6.30

Рига

7.37

АН-24

21.50

Рис. 1.2.1. Разделение данных и их интерпретации

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

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

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

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

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