Основные понятия баз данных
Исторически понятие БД возникло как альтернатива файловой организации данных при хранении с помощью ЭВМ. Файловая организация предполагала хранение данных в виде совокупности файлов, ориентированных на использование какой-либо одной прикладной программы, предназначенной для решения некоторой специфической задачи. Такая неуниверсальность в организации информации привела к большой избыточности при хранении, противоречивости данных, хранящихся в различных системах.
База данных – это реализованная с помощью компьютера информационная структура, отражающая состояние объектов и их отношения.
Поскольку основу любой БД составляет информационная структура, БД делят на четыре рассмотренные выше типа: линейные (списки), табличные (реляционные), сетевые и иерархические. В них данные представлены в формах, адекватных соответствующим структурам. Однако линейные, иерархические и сетевые БД являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных систем управления базами данных, поэтому на них далее останавливаться не будем.
Характеристики БД:
-
полнота – чем полнее БД, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации);
-
правильная организация – чем лучше структурирована БД, тем легче в ней найти необходимые сведения;
-
актуальность – любая БД может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы БД в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;
-
удобство для использования – БД должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
Реляционные базы данных
Наиболее распространенными в практике являются реляционные БД. Название «реляционная» (relation – отношение) связано с тем, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту.
Очень важным для реляционной модели данных является понятие ключа данных. Первичный ключ – это поле или совокупность нескольких полей, однозначно идентифицирующие запись в таблице (поле с уникальными записями). В реляционной модели связь двух таблиц осуществляется с помощью ключей.
Другим важным понятием реляционной модели является тип связи между таблицами. Предположим, что имеются три таблицы, содержащие данные о студентах, группах, преподавателях и факультетах некоторого вуза. Таблица 1 (СТУДЕНТ) содержит данные о студенте (уникальный идентификатор – номер студента, его ФИО и группу). Таблица 2 (ГРУППА) содержит данные о группе (уникальный идентификатор – номер группы, количество студентов, принадлежность к конкретному факультету). Таблица 3 (ФАКУЛЬТЕТ) содержит данные о факультете, его преподавателях и декане.
В базе данных, состоящей из трех вышеприведенных таблиц, между таблицами ГРУППА и СТУДЕНТ, ФАКУЛЬТЕТ и ГРУППА существует связь «один ко многим». Связь «один ко многим» означает, что одному экземпляру данного информационного объекта А соответствует 0, 1 или более экземпляров объекта В, но каждый экземпляр объекта В связан не более чем с одним экземпляром объекта А.
Если предположить, что на каждом факультете всегда учится только одна-единственная группа, то тогда между таблицами ФАКУЛЬТЕТ и ГРУППА была бы связь «один к одному». Связь «один к одному» означает, что одному экземпляру данного информационного объекта А соответствует не более одного экземпляра объекта В, и наоборот.
Если же предположить, что любой студент может обучаться в нескольких группах (т.е. допускается получение им нескольких специальностей одновременно), то в этом случае между таблицами ГРУППА и СТУДЕНТ имела бы место связь «многие ко многим». Связь «многие ко многим» означает, что одному экземпляру данного информационного объекта А соответствует 0, 1 или более экземпляров объекта В, и наоборот.
Так как описание одних и тех же информационных объектов и связей между ними можно выполнить разными способами, т.е. получить в результате разный набор таблиц, то возникает проблема наиболее рациональной группировки этих объектов и связей в некоторый набор таблиц. При рациональном конструировании набора таблиц и структуры каждой из этих таблиц следует обеспечить:
-
минимальное дублирование данных в таблицах, что упрощает процедуры их ведения (ввод новых данных, модификация и удаление), обработки и поиска ошибок;
-
минимизацию времени обработки данных.
В общем случае два этих требования могут оказаться противоречащими друг другу, так как для сокращения времени обработки данных оказывается необходимым ввести определенное дублирование (избыточность) данных.
Реляционные БД удобны тем, что для получения ответов на различные запросы существует разработанный математический аппарат, который называется исчислением отношений или реляционной алгеброй. Ответы на запросы получаются путем «разрезания» и «склеивания» таблиц по строкам и столбцам.