1. Введение в базы данных

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

Для этой цели созданы множество систем – системы управления базами данных, предназначенных для этой цели. Мощь современных баз данных основывается на результатах исследований и технологических разработок, полученных на протяжении нескольких десятилетий, и заключена в специализированных программных продуктах, которые принято называть системами управления базами данных (СУБД) (Database Management System - DBMS), или просто системами баз данных (database systems).

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

·         Добавление информации в существующие таблицы

·         Добавление новых таблиц

·         Изменение информации в таблицах

·         Поиск информации в БД

·         Удаление информации из существующих таблиц

·         Удаление таблиц из БД

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

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

 

В качестве примера приведем небольшую БД (Рисунок 1 Пример таблицы БД «Стипендия»).

 

GRANT

KOD

NAME

GROUP

BALL

STIP

525001

Иванов А.А.

525

4

запись

 500

525002

Петров Н.Н.

525

2

0

525003

Сидоров М.А.

525

3

300

525004

Кузнецов О.П.

525

3.5

350

поле

 

 

 

Рисунок 1 Пример таблицы БД «Стипендия»

 

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

·         KOD – номер студенческого билета

·         NAME – фамилия и инициалы студента

·         GROUP – учебная группа

·         BALL – средний балл

·         STIP – размер стипендии

 

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

Основное назначение БД в первую очередь – быстрый доступ к данным. При значительном размере «бумажной БД» ручной поиск, а также модификация занимает значительное время. Использование компьютера для ведения БД устраняет эти недостатки. Операции над БД производятся быстро, а сама база данных может поместиться на дискете.

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

СУБД предлагают следующие функциональные возможности:

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

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

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

·         изолированность (isolation) транзакций - транзакции выполняются независимо одна от другой, так как если бы они выполнялись не параллельно, а последовательно.

·         атомарность (atomicity)  - каждая транзакция выполняется целиком, либо не выполняется вовсе.

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

 

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

1.      Позволять пользователям создавать новые базы данных и определять их логические схемы (schemata) (логические структуры данных) с помощью некоторого специализированного языка, называемого языком определения данных (Data Definition Language - DDL).

2.      Предлагать пользователям возможности задания запросов (queries) и модификации данных средствами соответствующего языка запросов (query language), или языка управления данными (Data Manipulation Language - DML).

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

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