Цель работы: освоение приемов работы с LibreOffcie Base в процессе создания спроектированной базы данных.
Используемые программные средства: LibreOffice Base.
Задание
1. Открыть файл для новой базы данных:
=> выполнить команду Файл —> Создать —> Базу данных;
=> выбрать радиокнопку Создать новую базу данных;
=> в файловом окне указать путь и имя файла: «Приемная комиссия».
2. Создать таблицу «Факультеты»:
=> в режиме Таблица выполнить команду Создать таблицу в режиме дизайна;
=> для всех полей таблицы «Факультеты» указать имена, типы и свойства (размер, формат):
Факультеты

3. Назначить главный ключ таблицы:
=> указатель установить на ключевое поле КОД_ФКТ;
=> щелкнуть на появившейся зеленой стрелке слева от названия поля правой кнопкой мыши (вызвать контекстное меню);
=> выбрать команду Первичный ключ.
4. Сохранить таблицу под именем Факультеты.
5. Создать таблицу «Специальности» следующей структуры:
Специальности

6. Назначить главным ключом таблицы поле КОД_СПЕЦ.
7. Сохранить таблицу под именем Специальности.
8. Связать таблицы «Факультеты» и «Специальности» через общее поле код фкт:
=> выполнить команду Сервис -> Связи;
=> откроется окно Добавить таблицы; выделить название таблицы «Факультеты»; выполнить команду Добавить;
=> Выделить название таблицы «Специальности»;
=> выполнить команду Добавить -> Закрыть. В результате на поле окна Схема данных появляются образы двух таблиц.
Установить связь:
=> при нажатой левой кнопке мыши перетащить ключевое поле КОД_ФКТ из таблицы «Факультеты» на это же поле в таблицу «Специальности»;
=> щелкнуть правой кнопкой мыши на соединительной стрелке между таблицами;
=> в открывшемся окне Связи установить радиокнопки Обновить каскадно и Удалить каскадно. Тип связи «один-ко-многим» будет выбран автоматически.

9. Ввести данные в таблицу «Факультеты»:
=> в окне LibreOffice Base дважды щелкнуть по названию таблицы «Факультеты» — на экране появится бланк таблицы, содержащий заголовки и пустую строку;
=> ввести три строки (данные трех факультетов):
Факультеты

10. Аналогично заполнить таблицу «Специальности». Ввести 6 строк — данные о шести специальностях:
Специальности

Действия, выполняемые над информацией, хранящейся в базе данных, называются манипулированием данными. К ним относятся выборка данных по некоторым условиям, сортировка данных, обновление, удаление устаревших и добавление новых данных. Выполнение этих действий производится с помощью запросов.
Конструктор запросов — высокоуровневое средство формирования запросов в СУБД LibreOffice Base, который можно рассматривать как пользовательскую оболочку к языку запросов SQL. Для формирования запроса в конструкторе используется табличная форма.
Окно конструктора запросов:

Поле схемы запроса — верхняя часть окна конструктора запросов, куда помещаются схемы таблиц, данные из которых используются в запросе.
Бланк запроса — таблица в нижней части окна. Столбцы относятся к полям, участвующим в формировании запроса. В первой строке указываются имена всех этих полей. Вторая строка — псевдоним, под которым будет выступать данное поле в запросе (можно оставить пустым). Третья строка — имя таблицы, из которой извлекается соответствующее поле. Четвертая строка — признак сортировки. Используется лишь для ключей сортировки. Флажки в пятой строке отмечают признак вывода данного поля на экран при выполнении запроса. В следующих строках формируется условие отбора.
Задание 1
Построить и выполнить запрос к базе «Приемная комиссия»: получить список всех экзаменов на всех факультетах. Список отсортировать в алфавитном порядке названий факультетов.
Для его выполнения достаточно одной таблицы «Факультеты». Команда (на гипотетическом языке) для такого запроса имеет вид:
.выбрать ФАКУЛЬТЕТ, ЭКЗАМЕН_1, ЭКЗАМЕН_2, 9K3AMEH_3 сортировать ФАКУЛЬТЕТ по возрастанию
1. Перейти к работе с конструктором запросов:
=> перейти на вкладку Запросы;
=> выполнить команду Создать запрос в режиме дизайна.
2. В поле схемы запроса поместить таблицу «Факультеты»: в окне Добавление таблицы на вкладке Таблицы выбрать название таблицы «Факультеты», выполнить команду Добавить, затем — Закрыть.
3. Заполнить бланк запроса: выбрать поля «Факультет», «Экзамен_1», «Экзамен_2», «Экзамен_3», установить сортировку по полю «Факультет» (по возрастанию).
4. Сохранить запрос.
5. Исполнить запрос: дважды щелкнуть на названии запроса. На экране появится таблица следующего вида:

6. Сменить заголовки граф запроса (использовать псевдонимы полей).
Пояснение. Заголовками граф полученной ранее таблицы являются имена полей. Это может не устраивать пользователя. Имеется возможность замены их на любые другие надписи, при этом имена полей в БД не изменятся. Делается это через строку Псевдоним в конструкторе запросов.

Задание 2
Вывести список всех специальностей с указанием факультета и плана приема. Отсортировать список в алфавитном порядке по двум ключам: название факультета (первичный ключ) и название специальности (вторичный ключ).
Пояснение. Напомним, что в таком случае сортировка сначала происходит по первичному ключу, и в случае совпадения у нескольких записей его значения они упорядочиваются по вторичному ключу. Для выполнения этого запроса потребуются две таблицы — «Факультеты» и «Специальности». Команда для данного запроса на гипотетическом языке будет следующей:
.выбор Факультеты.ФАКУЛЬТЕТ, Специальности .СПЕЦИАЛЬНОСТЬ, Специальности .ПЛАН
сортировать Факультеты.ФАКУЛЬТЕТ по возрастанию, Специальности.СПЕЦИАЛЬНОСТЬ по возрастанию
Здесь использованы составные имена полей, включающие разделенные точкой имя таблицы и имя поля в этой таблице.
В результате должна получиться следующая таблица:
План приема: запрос на выборку

Обратите внимание на надписи к графам этой таблицы. Выполнить необходимые действия для приведения надписей к такому виду.
Задание
1. Открыть базу данных «Приемная комиссия».
2. Создать таблицу «Абитуриенты» следующей структуры:

3. Организовать связь таблицы «Абитуриенты» с таблицей «Специальности» через поле КОД_СПЕЦ.
4. Создать таблицу «Анкеты» следующей структуры:

5. Организовать связь таблиц «Анкеты» и «Абитуриенты» через поле РЕГ_НОМ.
Пояснение. Таблица «Анкеты» содержит семь полей, которые не умещаются в ширину экрана. Поэтому в данном случае для заполнения таблицы удобно использовать форму:

6. Создать форму для ввода и просмотра таблицы «Анкеты»:
=> перейти на вкладку Формы;
=> выполнить команду Использовать мастер форм для создания формы;
=> выбрать таблицу «Анкеты»;
=> переместить все поля таблицы из окна Существующие поля в окно Поля в форме и выполнить команду Дальше;
=> выбрать пункт «Расположить элементы управления»;
=> выбрать расположение подписи по левому краю (радиокнопка);
=> выбрать Столбцы — подписи слева;
=> выбрать пункт Установка источника данных;
=> выбрать радиокнопку Форма для отображения всех данных;
=> выбрать пункт Применить стили и выбрать понравившийся вам стиль;
=> выбрать пункт Задать имя и ввести имя формы, после чего нажать кнопку Готово.
7. Ввести записи в таблицу «Анкеты» с помощью формы. Содержание таблицы следующее:

8. Создать форму для ввода и просмотра таблицы «Абитуриенты».
9. Ввести записи в таблицу «Абитуриенты», содержание которых следующее:

Пояснение. В LibreOffice Base логическое значение ИСТИНА обозначается галочкой, заключенной в квадратик, ЛОЖЬ — пустым квадратиком.
10. Создать таблицу «Итоги» следующей структуры:

11. Связать таблицы «Итоги» и «Абитуриенты» через поле РЕГ_НОМ.
12. Ввести в таблицу данные в следующем виде:

Пояснение. В дальнейшем, после проведения приемной комиссией зачисления абитуриентов в университет по результатам приемных экзаменов, в графу ЗАЧИСЛЕНИЕ будет выставлено значение ИСТИНА (галочки в квадратах) для зачисленных абитуриентов.