
- •1. Цель лабораторной работы
- •2. Основные сведения
- •2.1. Информационные системы и базы данных
- •2.2. Основные элементы реляционных баз данных
- •2.3. Связывание таблиц
- •2.4. Запросы в бд
- •Субд org. Base
- •2.5.1. Общее описание
- •2.5.2. Проектирование и создание базы данных
- •2.5.3. Создание таблиц в oOoBase
- •2.5.4. Формирование связей между таблицами многотабличной реляционной бд (создание схемы данных)
- •2.5.5. Заполнение таблиц и организация форм в бд
- •2.5.6. Запросы
- •2.5.7. Отчеты
- •3. Порядок выполнения л/р
- •4. Контрольные вопросы
2.3. Связывание таблиц
При проектировании реальных БД информацию обычно размещают в нескольких таблицах. Таблицы при этом связаны семантикой (смыслом) информации. В реляционных СУБД для указания связей таблиц производят операцию их связывания. Многие СУБД при связывании таблиц автоматически выполняют контроль целостности вводимых в базу данных в соответствии с установленными связями. Это повышает достоверность хранимой в БД информации. Кроме того, установление связи между таблицами облегчает доступ к данным.
Чаще всего между таблицами устанавливают бинарные связи (между двумя таблицами). В таком случае выделяют основную таблицу и подчиненную. Для связывания таблиц в реляционной модели используют поля связи - внешние ключи: пусть в отношении R1(подчиненном) имеется не ключевой атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2 (основного). Тогда говорят, что атрибут А отношения R1 есть внешний ключ.
Например, имеются два отношения СТУДЕНТ (№зачетной книжки, ФИО, Дата рождения, Код специальности) и СПЕЦИАЛЬНОСТЬ (Код специальности, Наименование, Факультет). Отношение СПЕЦИАЛЬНОСТЬ – основное, отношение СТУДЕНТ – подчиненное. В отношении СТУДЕНТ внешним ключом является поле Код специальности, оно ссылается на первичный ключ Код специальности в отношении СПЕЦИАЛЬНОСТЬ. Таким образом, связь между таблицами установлена (рис.2).
Рис.2. Связь между таблицами по внешнему ключу
Данная связь имеет вид 1:М (один-ко-многим). Ее смысл заключается в том, что одному кортежу в таблице СПЕЦИАЛЬНОСТЬ может соответствовать несколько кортежей в таблице СТУДЕНТ (на одной Специальности могут обучаться множество Студентов).
Реляционная модель накладывает на внешние ключи ограничение для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа в подчиненной таблице должны соответствовать значения первичного ключа в основной таблице для связываемых отношений. Например, в данном случае множество кодов специальностей в таблице СПЕЦИАЛЬНОСТЬ может быть таким:
Код специальности = {230200, 211800, 211010}.
А в таблице СТУДЕНТ, откуда происходит ссылка:
Код специальности = {230200, 211800}.
Такая ситуация допустима, т.е. ссылочная целостность поддерживается, так как выполняется ссылка на существующие значения. Если бы в таблице СТУДЕНТ были следующие значения Кода специальности = {230200, 211800, 240612}, то система сразу же зафиксировала бы состояние ошибки, так как значения 240612 среди Кодов специальности в таблице СПЕЦИАЛЬНОСТЬ нет.
2.4. Запросы в бд
К отношениям можно применять систему операций, позволяющую получать одни отношения из других. Запрос – специальным образом описанное требование, определяющее состав производимых над базой данных операций по выборке или модификации хранимых данных. Существуют запросы на выборку, обновление, удаление, или добавление записей в таблицах. С помощью запросов можно также создавать новые таблицы, используя данные из одной или нескольких существующих таблиц. С их помощью можно также просматривать, анализировать и изменять данные из нескольких таблиц, а можно использовать запросы в качестве источника данных для форм и отчётов. Запросы позволяют вычислять итоговые значения и выводить их в компактном формате, подобном формату электронной таблицы, а также выполнять вычисления над группами записей.
Запрос позволяет выбрать необходимые данные из одной или нескольких взаимосвязанных таблиц, произвести вычисления и получить результат в виде виртуальной таблицы. Полученная таблица может использоваться в качестве источника данных в следующих запросах, формах, отчетах, страницах доступа к данным.
С помощью запроса можно выполнить следующие виды обработки данных:
выбрать записи, удовлетворяющие условиям отбора;
включить в результирующую таблицу запроса заданные пользователем поля;
произвести вычисления в каждой из полученных записей;
сгруппировать записи с одинаковыми значениями в одном или нескольких полях в одну запись с одновременным выполнением над другими полями групповых функций;
произвести обновление полей в выбранном подмножестве записей;
создать новую таблицу базы данных, используя данные из существующих таблиц;
удалить выбранное подмножество записей из таблицы базы данных; добавить выбранное подмножество записей в другую таблицу.
Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц БД и включения нужных полей из нескольких таблиц. В частности, при объединении двух связанных одно-многозначными отношениями таблиц результирующая запись образуется на основе записи подчиненной таблицы, в которую добавляются поля из связанной записи в главной таблице. По умолчанию связи устанавливаются путем объединения: объединение только тех записей, в которых значения связанных полей обеих таблиц совпадают.
Последовательное выполнение ряда запросов по образцу позволяет решать достаточно сложные задачи, не прибегая к программированию.
Например, на основе схемы данных на рис.2, можно было бы составить запросы на выборку данных:
на основе одной таблицы СПЕЦИАЛЬНОСТЬ: вывести на экран наименования и коды всех хранимых в БД специальностей;
на основе двух таблиц СТУДЕНТ и СПЕЦИАЛЬНОСТЬ: вывести на экран номера зачетных книжек, фамилии, наименования специальностей всех студентов, обучающихся на факультете ФЭВТ и т.д.