База данных (БД) - это хранилище структурированных данных, непротиворечивых, минимально избыточных и целостных.
Реляционная БД является связанной между собой совокупностью таблиц-сущностей базы данных (ТБД), каждая из которых представлена совокупностью строк и столбцов, где первые соответствуют экземпляру объекта, явлению или конкретному событию, а вторые - атрибутам (признакам, параметрам, характеристикам) объекта, явления, события.
На практике в ходе разработки БД таблицы-сущности называют таблицами, столбцы-атрибуты – полями, строки-экземпляры – записями ТБД.
Важным достоинством реляционных баз данных является возможность хранения логически сгруппированных данных в разных таблицах и связывания последних с объединением их в единую базу. Подобная организация данных позволяет уменьшать избыточность хранящихся данных, упрощать их ввод, а также организацию запросов, отчетов.
В каждой таблице БД, как правило, существует первичный ключ, под которым понимается поле или набор полей, которые, в свою очередь, уникально (однозначно) идентифицируют запись. Первичный ключ должен по минимуму достаточный, не должен содержать полей, удаление которых отразилось бы на его уникальности.
К примеру, приведем таблицу «Преподаватель».

Первичным ключом в приведенной таблице может быть лишь поле «Таб. №», значения остальных полей могут дублироваться внутри этой таблицы.
Между 2 или более таблицами базы возможны отношения подчиненности, которые будут определять, что каждой записи главной таблицы (родительской) соответствуют одна или несколько записей подчиненной таблицы (дочерней).
Отношения между таблицами БД бывают 3 видов:
Отношение один-ко-многим используется, когда 1 записи из родительской таблицы соответствует несколько записей из дочерней таблицы. Подобная связь самая распространенная для реляционных БД.
Отношение один-ко-многим изображают в виде соединения таблиц линией, оканчивающейся на стороне дочерней таблицы кружком или другим символом. Поля первичного ключа всегда расположены вверху и могут отделяться от других полей сплошной линией (рис. 1).

Отношение один-к-одному используется, когда 1 записи родительской таблицы соответствует 1 запись дочерней (рис.2).

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

Многими СУБД (например, Access) не поддерживаются связи многие-ко-многим на уровне индексов и ссылочной целостности. Считается, что такую связь можно заменить на 1 или более связей один-ко-многим (рис.4).
Например,


Рассмотрим довольно часто встречающуюся в базе данных связь один-ко-многим. Как видим из рисунка 5, дочерняя таблица и родительская связаны между собой общим полем Шифр группы. Это поле назовем полем связи.

Вероятны 2 вида изменений, которые могут привести к потере связей между записями в родительской и дочерней таблицах:
В обоих случаях наблюдаем нарушение целостности БД в результате использования в ней недостоверной информации. Как следствие, необходимо блокировать действия, нарушающие целостность связей между таблицами, так называемую ссылочную целостность.
Во избежание потери ссылочной целостности используют механизм каскадных изменений, состоящий в обеспечении нижеприведенных требований:
Необходимость разрешения каскадного изменения обычно используется в СУБД в ходе определения связей между таблицами. Так создается ссылочная целостность.
Чтобы обеспечить ссылочную целостность в дочерней таблице создают внешний ключ, содержащий поля связи дочерней таблицы. Для обеспечения связи типа один-ко-многим внешний ключ по составу полей необходимо, чтобы совпадал с первичным ключом родительской таблицы.
Индексы являются механизмами быстрого доступа к данным таблиц БД. Их сущность заключается в хранении значений индексных полей и указателя на запись в таблице. Чтобы выполнить запрос к таблице БД при последовательном методе доступа, просматриваются все записи таблицы, от начала до конца.
При индексно-последовательном методе доступа, чтобы выполнить запрос к таблице, указатель в индексе устанавливается на первой строке, удовлетворяющей условию запроса (или части), и считывается соответствующая запись из таблицы по указателю, хранящемуся в индексе.
При определении первичных и внешних ключей таблиц БД создаются индексы по полям, которые объявлены в составе первичных или внешних ключей.
В ходе проектирования структуры новой БД определяются сущности (объекты, явления) предметной области. В результате анализа предметной области создается эскиз БД. Вначале изображаются сущности и связи между ними. Каждой сущности в БД обычно соответствует таблица. Далее в эскизе второго порядка - для каждой таблицы БД приводят список атрибутов - полей записи. На данном этапе проектирования должно выполняться требование, в соответствии с которым реляционная БД должна быть нормализована. Процесс нормализации устраняет избыточность данных и приводит к третьей нормальной форме (3НФ).
Первая нормальная форма (1НФ) требует, чтобы все поля таблиц БД были неделимыми и не содержали бы повторяемых групп.
Неделимость поля заключается в том, что значение поля не делится на более мелкие значения.
Повторяемые поля содержат одинаковые смысловые значения.
Для второй нормальной формы (2НФ) характерно требование зависимости всех полей таблицы от первичного ключа, то есть первичный ключ должен однозначно определять запись и не быть избыточным. Поля, зависящие только от части первичного ключа, нужно выделять в составе отдельных таблиц.