Чтобы создавать сколь-либо сложные реляционные базы данных, а также извлекать из них информацию, требуется некоторое знакомство с их теоретическим обоснованием.
Создание любой базы данных начинается с проектирования, или определения структуры. Для реляционных СУБД структура – это набор таблиц и то, какие столбцы будут в каждой из них. Могоа структура создана, можно начинать наполнение базы данными (и, соответственно, таблицы будут заполняться строками)..
Причём таблиц может быть достаточно много, со ссылками друг на друга. Почему был выбран именно такой способ хранения? Казалось бы, не очень-то удобно работать с информацией книгах, имеющихся в библиотеке, если информация об авторах хранится в одной таблице, об издателе – в другой, а сама таблица книг содержит малоинформативные номера:
id |
title |
author_id |
subject_id |
class_n |
publisher_id |
publish_year |
quantity |
1 |
|
1 |
2 |
7 |
2 |
2001 |
100 |
2 |
Электромагнитные явления |
2 |
2 |
8 |
2 |
2001 |
100 |
3 |
|
1 |
2 |
8 |
2 |
2001 |
100 |
4 |
|
1 |
2 |
9 |
2 |
2001 |
100 |
5 |
Механика |
3 |
2 |
10 |
2 |
2002 |
100 |
На самом деле такой способ хранения действительно наиболее оптимальный. С помощью специальных SQL-запросов данные могут извлекаться из нескольких таблиц одновременно, подставлять вместо идентификаторов соответствующие записи из других таблиц и составлять результирующие таблицы с нужными наборами столбцов.
Такой подход основан на фундаментальных теоретических разработках – реляционной модели. Она создана в рамках раздела высшей математики – реляционной алгебры.
Реляционная алгебра достаточно сложна и для ее понимания требуются знание теории множеств и хотя бы базовых концепций дискретной математики, поэтому ее изложение выходит за рамки данного курса. Тем не менее, мы в общих чертах изучим практическое ее применение.