Интернет и базы данных. Введение

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

Что такое база данных?

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

Какие бывают базы данных

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

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

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

Настоящий прорыв в развитии баз данных произошел тогда, когда возросшая мощность компьютеров позволила в полной мере реализовать реляционную модель данных. Теория реляционных баз данных была разработана доктором Коддом в начале 70-х годов 20 века. В реляционных базах данные хранятся в виде таблиц, состоящих из строк и столбцов. Столбцы таблиц реляционной базы могут содержать скалярные данные фиксированного типа - числа, строки, даты... Таблицы в реляционной базе данных могут быть связаны отношениями "один к одному" или "один ко многим".

Реляционные базы данных занимают сейчас доминирующее положение. Не будет большим преувеличением сказать, что иерархическая и сетевая структуры баз данных ушли в прошлое, уступив свое место реляционным базам. MS SQL Server и MS Access, InterBase и FoxPro, PostgreSQL и Paradox... Все они построены на реляционной модели данных. Реляционной базой в чистом виде является и MySQL.

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