Практическая работа 4
Тема: Создание многотабличной БД в среде Borland Delphi 7 или Borland C++Builder 6.0.
Цель: приобрести навыки работы с многотабличной базой данных.
Ход выполнения работы
I. Установка индексов для связывания таблиц
В теории баз данных существуют различные типы связей, устанавливаемые между двумя таблицами. В настоящее время различают три вида связей, которые задаются между родительской и дочерней таблицами:
1. «один-к-одному» – только одной записи родительской таблицы соответствует одна запись дочерней таблицы;
2. «один-ко-многим» – только одной записи родительской таблицы соответствует одна или более записей дочерней таблицы;
3. «много-ко-многим» – одной записи родительской таблицы соответствует одна или более записей дочерней таблицы, и наоборот.
Допускается, что в родительской таблице могут находиться записи, которые не связаны с дочерней таблицей (в дочерней таблице отсутствуют записи для связи с родительской). Кроме того, в настоящее время связь «много-к-одному» потеряла актуальность, хотя в некоторых СУБД направление связи имеет большое значение для обработки данных и их просмотра.
Рассмотрим две таблицы из базы данных СЕССИЯ: student.db и ozenka.db, которые связаны отношением 1:М. Данное отношение объясняется тем, что у каждого студента за время учебы должно быть большое количество оценок по различным зачетам и экзаменам.
Таблица ozenka.db представлена в Приложении.
Таблица student.db создана на предыдущих практических занятиях.
Для связи таблиц воспользуемся следующим рисунком (рис. 1).
Рисунок 1 - Описание индексов таблиц СТУДЕНТ и ОЦЕНКА
I. Дополнительные действия с таблицей student.db
1. Загрузить в среде Borland C++Builder 6.0 Database Desktop (клавиша Пуск– Все программы – C++Builder 6.0 - Database Desktop).
2. Открыть таблицу student.db и перейти в структуру таблицы (команды File - Open–Table - student.db - Restructure).
3. В столбце Key поля Nomer нажать пробел для установки в нем звездочки (первичный ключ, если она отсутствует).
4. В поле Table properties окна выбрать пункт Secondary Indexes (рис. 2а).
5. Через кнопку <Define> открыть окно Define Secondary Index (рис.2а).
6. Кнопкой «Стрелка вправо» перевести в правый список поле Nomer; установить опцию «Unique» для первичного индекса (рис. 2а).
7. После нажатия кнопки <Ok> в открывшемся окне сохранить индекс под именем nmrS (рис.2б), ответив Да.
8. Сохранив все изменения в структуре таблицы, выйти из структуры таблицы (Save).
В случае, если индекс не устанавливается, необходимо проверить значения в поле, по которому создается индекс; возможно, что в этом поле существуют повторяющиеся значения, а этого не должно быть!
Примечание.
По умолчанию данные в поле индекса сортируются по возрастанию (Ascending); при необходимости изменения направления сортировки используется флажок Descending.
а)
б)
Рисунок 2 – Создание уникального индекса таблицы student.db
II. Создание таблицы ozenka.db
1. Загрузить в среде Borland C++Builder 6.0 Database Desktop (клавиша Пуск– Все программы – C++Builder 6.0 - Database Desktop).
2. Для создания таблицы ozenka.db (Приложение), необходимо выполнить следующие действия:
2.1 Выполнить команду File / New / Table.
2.2 В появившемся окне выбрать таблицу типа Paradox 7.0. Нажать <Ok>.
2.3 В новом окне необходимо ввести названия поля (Field Name), типы полей (Type) и размеры полей (Size) в символах.
Через контекстное меню можно открыть список типов данных и выбрать необходимый тип или ввести букву или символ, закрепленный по умолчанию за тем или иным типом данных (рис. 3). Переход на новую строку – клавиши управления курсором.
2.4 Установить для поля Nomer флажок Required Field, это означает, что данное поле в активном состоянии не должно быть пустым (рис.3, поле выделено красным цветом).
2.5 В столбце Key поля Nomer нажать пробел для установки в нем звездочки (первичный ключ, рис.3, поле выделено синим цветом).
Рисунок 3 – Окно таблицы ozenka.db
2.6 Для поля Ocenka установить значения: минимальное, максимальное и по умолчанию (рис. 4).
Рисунок 4 – Параметры поля Ocenka
2.7 Таким же образом установить значения для поля Zachet: минимальное, максимальное и по умолчанию (рис. 5).
Рисунок 5 – Параметры поля Zachet
2.8 Сохранить структуру таблицы ozenka.db, используя кнопку <Save As…>, выбрав алиас student.db и указав имя таблицы ocenka.db (обратите внимание на сохранение таблицы в папке Project).
Заполнить таблицу данными из Приложения (Таблица) и сохранить ее.
2.9 Не выходя из Database Desktop, пиктограммой <Restructure> войти в структуру таблицы ozenka.db.
2.10 В поле Table properties окна выбрать пункт Secondary Indexes (рис. 6а).
2.11 Через кнопку <Define> перейти в окно создания индекса (рис.6а).
2.12 Кнопкой «Стрелка вправо» перевести в правый список поле Nomer (рис. 6а).
2.13 После нажатия кнопки <Ok> в открывшемся окне сохранить индекс под именем nmrО (вторичный - не уникальный индекс рис. 6б).
а) б)
Рисунок 6 – Создание вторичного индекса таблицы ozenka.db
2.14 Выйти из структуры таблицы ozenka.db, сохранив все изменения, используя кнопку <Save As…> (рис.7).
Рисунок 7 – Окно запроса на подтверждение
Примечание
Для работы с индексами используются следующие кнопки:
<Define> – для создания нового индекса;
<Modify> – для модификации уже существующего индекса; <Erase> – для удаления выделенного индекса.
Приложение
Описание базы данных «СЕССИЯ»
Структура базы данных «Сессия»
Таблица
Nomer |
Kod_predm |
Dat_ekz |
Ozenka |
Zachet |
100 |
1 |
18.12.2020 |
4 |
1 |
101 |
2 |
20.12.2020 |
5 |
1 |
102 |
3 |
23.12.2020 |
3 |
0 |
103 |
4 |
26.12.2020 |
5 |
1 |
104 |
5 |
29.12.2020 |
4 |
1 |
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.