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