Реляционные базы данных
Замечание
Взаимодействие с базой данных происходит при помощи Системы Управления Базой Данных (СУБД), которая расшифровывает запросы и производит операции с информацией в базе данных. Поэтому более правильно было бы говорить о запросе к СУБД и о взаимодействии с СУБД из Web-приложения. Но так как это несколько усложняет восприятие, далее везде мы будем говорить "база данных", подразумевая при этом СУБД.
Существуют следующие разновидности баз данных:
иерархические;
реляционные;
объектно-ориентированные;
гибридные.
Иерархическая база данных основана на древовидной структуре хранения информации. В этом смысле иерархические базы данных очень напоминают файловую систему компьютера.
В реляционных базах данных данные собраны в таблицы, которые в свою очередь состоят из столбцов и строк, на пересечении которых расположены ячейки. Запросы к таким базам данных возвращает таблицу, которая повторно может участвовать в следующем запросе. Данные в одних таблицах, как правило, связаны с данными других таблиц, откуда и произошло название "реляционные".
В объектно-ориентированных базах данных данные хранятся в виде объектов. С объектно-ориентированными базами данных удобно работать, применяя объектно-ориентированное программирование. Однако, на сегодняшний день такие базы дан-ных еще не достигли популярности реляционных, поскольку пока значительно уступают им в производительности.
Гибридные СУБД совмещают в себе возможности реляционных и объектно-ориентированных баз данных.
В Web-приложениях, как правило, используются реляционные базы данных. Мы будем рассматривать пример базы данных, на которой основано большинство форумов, в том числе и тот, который мы далее будем разрабатывать. В этой базе хранится информация об авторах форума (authors), о названиях форумов (forums), о темах форума (themes) и, собственно, сами сообщения (posts). Таким образом, наша база данных будет включать следующие таблицы:
Таблица 1 Таблицы базы данных Forum.
authors |
forums |
posts |
themes |
Таблица 2 Структура реляционной базы данных.
Ряд |
|||
Строка |
id_forum |
name |
Description |
1 |
дизайн |
Обсуждаются вопросы дизайна |
|
2 |
MySQL |
Обсуждаются вопросы, связанные с MySQL |
|
3 |
PHP |
Обсуждаются вопросы, связанные с PHP |
|
4 |
разное |
Другие вопросы |
Каждый столбец таблицы forums представляет один элемент данных для каждого из форумов. Столбец id_forum содержит уникальный идентификатор форума, столбец name содержит название форума и столбец description содержит краткое описание проблемы, обсуждаемой на форуме.
Кратко особенности реляционной базы данных можно описать следующим образом:
Данные хранятся в таблицах, состоящих из столбцов и строк;
На пересечении каждого столбца и строчки стоит в точности одно значение;
У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип. Например, в столбце id_forum все значения имеют целочисленный тип, а в строке name - текстовый;
Столбцы располагаются в определённом порядке, который определяется при создании таблицы, в отличие от строк, которые располагаются в произвольном порядке. В таблице может не быть не одной строчки, но обязательно должен быть хотя бы один столбец;
Запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов.