- •Е.И. Асташева сетевые базы данных
- •Введение
- •1. Введение в базы данных
- •1.1. Что такое база данных
- •1.2. Структура базы данных
- •2. Иерархическая и сетевая модели организации данных
- •3. Реляционная модель базы данных
- •3.1. Домены и отношения
- •3.2. Целостность данных
- •3.3. Реляционная алгебра
- •3.4. Реляционное исчисление
- •4. Проектирование логической структуры базы данных
- •4.1. Концепция функциональной зависимости
- •4.2. Нормализация базы данных
- •4.3. Объектное моделирование
- •5. Функции защиты базы данных
- •5.1. Транзакции и параллелизм
- •5.2. Безопасность и целостность баз данных
- •6. Дополнительные аспекты реляционной технологии
- •6.1. Представления
- •6.2. Повышение производительности с помощью оптимизации
- •6.3. Домены, отношения и типы данных
- •6.4. Неопределенные значения и трехзначная логика
- •6.5. Распределенные базы данных
- •7. Технология физического хранения и доступа к данным
- •7.1. Основные этапы доступа к базе данных
- •7.2. Управление страницами
- •7.3. Процедура индексирования и хеширования
- •7.4. Сжатие данных
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
1. Введение в базы данных
1.1. Что такое база данных
В настоящее время жизнь человека настолько сильно насыщена различного рода информацией, что для управления ей требуется создание огромного количества баз и банков данных различного назначения. Сейчас практически любая задача связана с манипуляцией информацией и данными. По этой причине в последние годы появилось множество различных компьютерных систем - систем управления базами данных - предназначенных для этих целей.
Термины база данных (БД) и система управления базами данных (СУБД) чаще всего употребляются как относящиеся к компьютерам. Понятие БД можно применить к любой связанной между собой по определенному признаку информации, хранимой и организованной особым образом - как правило, в виде таблиц. По сути, БД - это некоторое подобие электронной картотеки, электронного хранилища данных, которое хранится в компьютере в виде одного или нескольких файлов. При этом возникает необходимость в выполнении ряда операций с БД, в первую очередь это:
- добавление новой информации в существующие файлы БД;
- добавление новых пустых файлов в БД;
- изменение (модификация) информации в существующих файлах БД;
- поиск информации в БД;
- удаление информации из существующих файлов БД;
- удаление файлов из БД.
Компьютеризированная информационная система представляет собой программный комплекс, задачи которого состоят в поддержке надежного хранения БД в компьютере, выполнении преобразований информации и соответствующих вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Традиционно объемы информации, с которыми приходится иметь дело таким системам, довольно велики, а сами БД имеют достаточно сложную структуру. Примерами информационных систем являются системы заказа железнодорожных или авиационных билетов, банковские системы и многие другие.
В качестве иллюстрации рассмотрим небольшую БД, приведенную на рис. 1.1, в которой хранится информация о стипендии студентов.
|
KOD |
NAME |
GROUP |
BALL |
STIP |
||||
|
525122 |
Батракова И.Н. |
5-4-УПП |
4,5 |
22.50 |
||||
|
525123 |
Баулин А.В. |
5-4-УПП |
5 |
18.75 |
||||
Запись |
525124 |
Белянжн Д. А. |
5-4-УПП |
4 |
25.00 |
||||
|
525125 |
Бондаренко О. В. |
5-4-УПП |
4,5 |
22.50 |
||||
|
525126 |
Зеленский И.В. |
5-4-УПП |
3,4 |
0.00 |
||||
|
525127 |
Климова В.В. |
5-4-УПП |
4,5 |
22.50 |
||||
|
525128 |
Кричун О.Б. |
5-4-УПП |
4 |
18.75 |
||||
|
525129 |
Кузнецова В.В. |
5-4-УПП |
4 |
22.50 |
||||
|
525130 |
Нестреляй А.Н. |
5-4-УПП |
3 |
0.00 |
||||
|
525131 |
СаловаО.П. |
5-4-УПП |
4,5 |
22.50 |
||||
|
|
|
|
Поле |
|
Рис. 1.1. Пример таблицы БД "Стипендия"
Данные о студентах записываются в таблицу, имеющую строгую структуру данных. Информация внутри таблицы состоит из полей, имеющих свое имя. В нашем примере - это поля, предназначенные для:
- KOD - номер студенческого билета;
- NAME - фамилия и инициалы студента;
- GROUP - наименование учебной группы студента;
- BALL - средний балл успеваемости студента;
- STIP - размер начисленной стипендии.
Каждую строку таблицы нужно рассматривать как запись, при этом информация заносится в соответствующие поля. В то же время все записи состоят из одинаковых полей, а характер информации для одного поля во всех записях одинаковый, но разные поля имеют разный характер хранимых данных.
Основным назначением БД в первую очередь является быстрый поиск содержащейся в ней информации. При значительном размере БД ручной поиск, а также модификация содержащейся информации занимает значительное время. Использование компьютера для ведения БД устраняет перечисленные выше проблемы - поиск и выборка информации, ее модификация осуществляются достаточно быстро и эффективно, а сама БД, состоящая из тысяч записей, может легко уместиться на дискете.
Существует большое количество программ, которые предназначены для организации информации, помещения ее в таблицы и манипуляции с нею - такие программы и получили название СУБД. Основная особенность СУБД - это наличие средств для ввода и хранения не только самих данных, но и описаний их структуры.
Если говорить более детально, то к функциям СУБД относят следующие:
- управление данными непосредственно в БД - функция, обеспечивающая хранение данных, непосредственно входящих в БД и служебной информация, обеспечивающей работу СУБД;
- управление данными в памяти компьютера - функция, связанная в первую очередь с тем, что СУБД работают с БД большого размера. В целях ускорения работы СУБД используется буферизация данных в оперативной памяти компьютера. При этом пользователь СУБД использует только необходимую для его конкретной задачи часть БД, а при необходимости получает новую "порцию" данных;
- управление транзакциями - функция СУБД, которая производит ряд операций над БД, как над единым целым Как правило, такие операции производятся в памяти компьютера. В первую очередь транзакции необходимы для поддержания логической целостности БД в многопользовательских системах. Если транзакция (манипуляция над данными) успешно выполняется, то СУБД вносит соответствующие изменения в БД. В обратном случае ни одно из сделанных изменений никак не влияет на состояние БД;
- управление изменениями в БД и протоколирование — функция, связанная с надежностью хранения данных, то есть возможностью СУБД восстанавливать состояние БД в аварийных ситуациях, например, при случайном выключении питания или сбое носителя информации. Очевидно, что для восстановления БД нужно располагать дополнительной информацией, по которой и осуществляется восстановление. С этой целью ведется протокол изменений БД, в который перед манипуляциями с данными делается соответствующая запись. Для восстановления БД после сбоя СУБД используется протокол и архивная копия БД - полная копия БД к моменту начала заполнения протокола;
- поддержка языков БД - для работы с БД используются специальные языки, в целом называемые языками баз данных. В СУБД обычно поддерживается единый язык, содержащий все необходимые средства - от создания БД до обеспечения пользовательского интерфейса при работе с данными. Наиболее распространенным в настоящее время языком СУБД является язык SQL (Structured Query Language).
B настоящее время в большинстве БД используются реляционные модели данных (о них поговорим ниже), однако для начала кратко рассмотрим прочие основные модели данных, а именно:
- модели, основанные на инвертированных списках;
- иерархические модели данных;
- сетевые модели данных;
- БД, организованная с помощью инвертированных списков, построена таким образом, что таблицы и пути доступа к ним видны пользователям, при этом строки таблиц физически упорядочены в некоторой последовательности. В этих БД поддерживаются операторы, устанавливающие адрес записи абсолютным (например, первая запись, последняя запись таблицы) или относительным образом (например, следующая за текущей запись таблицы);
- операторы над адресуемыми записями.
БД, основанная на иерархической модели, состоит из упорядоченного набора деревьев. Каждое дерево состоит из одного "корневого" (предок) и упорядоченного набора из нуля или более связанных с ним поддеревьев (потомки). Целостность связи между ними поддерживается автоматически.
В таких БД поддерживаются следующие операторы манипулирования данными:
- найти дерево БД по заданному признаку;
- перейти от одного дерева к другому;
- перейти к записи внутри дерева или в порядке обхода иерархии (сверху вниз, слева направо);
- вставить новую запись в указанную позицию.
- удалить текущую запись.
В БД с сетевой структурой данных поддеревья могут иметь любое число корневых. Фактически сетевая БД состоит из набора записей и множества связей между этими записями. Примерный перечень операций для сетевых БД может быть следующим:
- найти запись по заданному признаку;
- перейти от предка к потомку по указанной связи;
- перейти от потомка к предку по некоторой связи;
- создать новую запись или удалить существующую;
- модифицировать заданную запись;
- включить в связь или исключить из связи;
- переставить в другую связь.
Реляционные БД в настоящее время используются наиболее широко, поэтому на этой модели данных мы остановимся подробнее чуть ниже.