2. Системы управления базами данных
Модели данных
Хранимые в базе данные имеют определенную логическую структуру, то есть, представлены некоторой моделью, поддерживаемой СУБД. К числу важнейших относятся следующие модели данных:
иерархическая (в виде древовидной, иерархической структуры);
сетевая (в виде произвольного графа);
реляционная (в виде таблицы; используется для создания БД среднего размера);
объектно-ориентированная (реляционная + сетевая) - для создания крупных БД.
Реляционная модель данных (РМД) получила название от английского термина relation — отношение. При соблюдении определенных условий отношение представляется в виде двумерной таблицы, привычной для человека. Большинство современных БД для персональных ЭВМ являются реляционными. Достоинствами реляционной модели данных являются ее простота, удобство реализации на ЭВМ, наличие теоретического обоснования и возможность формирования гибкой схемы БД, допускающей настройку при формировании запросов.
Объектно-ориентированные БД объединяют в себе две модели данных, реляционную и сетевую, и используются для создания крупных БД со сложными структурами данных.
Виды СУБД
БД, как правило, разделяют по используемой модели данных (как и базы данных) на следующие типы: иерархические, сетевые, реляционные и объектно-ориентированные.
По характеру использования СУБД делят на персональные (СУБДП) и многополъзовательские (СУБДМ).
3. Реляционные базы данных
Модель данных в общем случае описывает набор базовых признаков, которыми должны обладать все конкретные СУБД и управляемые ими БД, основанные на этой модели.
Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Элементы РМД и формы их представления приведены в таблице 1.
Таблица 1
Элемент реляционной БД |
Форма представления |
Отношение |
Таблица |
Схема отношения |
Строка заголовков таблицы |
Кортеж |
Строка таблицы |
Атрибут (поле) |
Заголовок столбца |
Первичный ключ |
Один или несколько столбцов |
Тип данных |
Тип значений элементов (текстовый, числовой и др.) |
Структура простейшей БД.
Даже если в базе данных нет никаких данных (база пуста), то это все равно полноценная БД, поскольку существует ее структура, которая уже определяет методы занесения и хранения данных.
Базы данных могут содержать различные объекты, но их основу составляют таблицы. Простейшая БД имеет хотя бы одну таблицу. Табличная БД содержит перечень объектов одного типа, т.е. объектов, имеющих одинаковый набор свойств. Такую БД удобно представить в виде двухмерной таблицы: в каждой ее строке последовательно размещаются значения свойств одного объекта, а каждое значение свойства озаглавлено в столбце, которое является именем этого свойства (таблица 2).
Столбцы такой таблицы называют полями, каждое поле характеризуется своим именем и типом данных, представляющих значение данного свойства.
Поле БД – это столбец таблицы, содержащий значение определенного свойства.
Строки таблицы являются записями об объекте., которые разбиты на поля столбцами таблицы, поэтому каждая запись представляет набор значений, содержащихся в полях.
Запись БД – это строка таблицы, содержащая набор значений определенного свойства, размещенный в полях данных.
Каждая таблица должна содержать, по крайней мере одно ключевое поле, содержимое которого уникально для каждой записи в этой таблице. Ключевое поле позволяет однозначно идентифицировать каждую запись в таблице.
Ключевое поле – это поле, значения которого однозначно определяют каждую запись в таблице2.
Таблица 2
№ п/п |
Название провайдера |
Плата |
Почасовая оплата |
Количество телефонных линий |
Скорость канала |
Web-сайт |
1 |
Демос |
Да |
44,00р. |
400 |
45 |
www.demos.ru |
2 |
Гласнет |
Да |
44,00р. |
850 |
112 |
www.glasnet.ru |
3 |
МТУ-Интел |
Нет |
26,00р. |
1200 |
112 |
www.mtu.ru |
4 |
Зенон |
Нет |
52,00р. |
450 |
155 |
www.zenon/ru |
В таблице 2 таким ключевым полем может быть столбец "№ п/п" или "Название провайдера".
Свойства полей БД.
Поля БД не только определяют структуру базы, но еще определяют групповые свойства данных, записываемых в ячейки, принадлежащему каждому из полей. К основным свойствам относятся:
Имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц);
Тип поля – определяет тип данных, которые могут содержаться в данном поле;
Размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле;
Формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю;
Маска ввода – определяет форму, в которой вводятся данные в поле;
Подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля);
Значение по умолчанию – то значение, которое вводится в ячейки поля автоматически;
Условие на значение – ограничение, используемое для проверки правильности ввода данных;
Сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных;
Обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы;
Пустые строки – свойство, разрешающее ввод пустых строковых данных;
Индексированное поле – если поле обладает этим свойством, все операции связанные с полем или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Типы данных.
Тип поля определяется типом данных, которые оно содержит. Таблицы баз данных созданных с помощью Microsoft Access содержат следующие типы данных: счетчик, текстовый, числовой, дата/время, денежный, логический, поле МЕМО, поле объекта OLE, гиперссылка, вложение.
СУБД позволяет создавать следующие типы объектов
Таблицы. Это основной объект любой БД. В таблицах хранятся все данные, имеющиеся в базе и структура БД, а именно поля, их типы и свойства.
Запросы. Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде.
Формы. Формы – это средства для ввода данных. Предоставляют пользователю средства для заполнения только тех полей, к которым он допущен и ему их положено заполнять. Одновременно с этим в форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и прочее) для автоматизации ввода. С помощью форм данные можно не только вводить, но и отображать.
Отчеты. По своим свойствам и структуре отчеты во многом похожи на формы, но предназначены только для вывода данных, причем только на печать, а не на экран.
Страницы. Это специальные объекты баз данных. Физически это особый объект, выполненный в коде HTML, размещенный на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данных, но содержит компоненты, через которые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере.
Макросы и модули.
Макрос – программный объект, при обработке «развёртывающийся» в последовательность действий или команд. Макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой.
Модуль (программирование) – функционально законченный фрагмент программы как часть её исходного текста. Модули создаются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications (VBA).
Связи между таблицами (отношениями)
Содержание таблицы заключено в ее строках. Каждая строка таблицы содержит данные о конкретном экземпляре сущности и называется записью. Для однозначного определения каждой записи, таблица должна иметь уникальный первичный ключ. Ключ может состоять из одного или нескольких полей. По значению ключа отыскивается единственная запись.
Связи между таблицами дают возможность совместно использовать данные из разных таблиц.
Различают следующие виды связей:
1. Отображение 1:1. С помощью отображения 1:1 отображают вид связи между экземплярами классов А и В, когда каждому из класса А соответствует один и только один экземпляр класса В и наоборот.
2. Отображение 1:М. Отображение 1:М (связь один ко многим) означает, что одному экземпляру сущности А может соответствовать один или несколько экземпляров сущности В или не соответствовать ни одного, однако каждому экземпляру сущности В соответствует только один экземпляр сущности А, т.е. с одним экземпляром сущности А может быть связано либо несколько экземпляров сущности В, либо один, либо не одного.
3. Отображение М:N (связь многие ко многим). С помощью связи M:N отображается связь между типами сущности А и В, при которой каждому экземпляру сущности А может соответствовать 0 (ни одного), 1 или несколько экземпляров сущности В и наоборот. С одним экземпляром сущности В, либо 1, либо 0 (ни одного) и наоборот, т.е. идентификация экземпляров сущностей неуникальна в обоих направлениях.
Таким образом, связь каждой пары таблиц обеспечивается одинаковыми полями в них – ключом связи (Таблица 3). Ключом таких связей всегда является уникальный ключ главной таблицы связи. В подчиненной таблице он называется внешним ключом. В качестве примера рассмотрим две таблицы: Кафедра и Преподаватели. Они связаны одним ключом Код кафедры.
Размещение сведений о каждой сущности в отдельной таблице и связывание таблиц позволяет избежать повторения значений данных в разных таблицах и упрощает процесс их обновления и поиска в базе. При этом обеспечивается однократный ввод данных при загрузке и корректировке базы данных. Если данные двух таблиц в приведенном примере разместить в одной таблице, то каждая запись должна соответствовать одному преподавателю. Причем данные о кафедре (название, телефон) должны повторяться во всех записях о преподавателях одной кафедры.
Таблица 3
Главная таблица
Код кафедры |
Название |
ФИО заведующего |
Телефон |
0 |
Информатики |
Иванов В.В. |
450-00-00 |
0 |
Математики |
Петров В.В. |
420-00-00 |
Подчиненная таблица
Таб. номер |
ФИО преподавателя |
Код кафедры |
Ученая степень |
101 |
Андреев А.П. |
01 |
ДТН |
102 |
Чернов В.С. |
01 |
КТН |
103 |
Попов Ю.А. |
01 |
КТН |
201 |
Суриков И.П |
02 |
КТН |
202 |
Новиков И.И |
02 |
ДТН |
В БД возможно отображение информации в иерархическом виде. При раскрытии одного уровня иерархии рядом с записью главной таблицы могут быть открыты связанные записи подчиненной. Для записи подчиненной также могут быть открыты связанные записи и т.д.

1
2