- •1. Цель лабораторной работы
- •2. Основные сведения
- •2.1. Информационные системы и базы данных
- •2.2. Основные элементы реляционных баз данных
- •2.3. Связывание таблиц
- •2.4. Запросы в бд
- •Субд org. Base
- •2.5.1. Общее описание
- •2.5.3. Создание таблиц в oOoBase
- •2.5.2. Проектирование и создание базы данных
- •2.5.4. Формирование связей между таблицами многотабличной реляционной бд (создание схемы данных)
- •2.5.5. Заполнение таблиц и организация форм в бд
- •2.5.6. Запросы
- •2.5.7. Отчеты
- •3. Порядок выполнения л/р
- •4. Контрольные вопросы
2.5.2. Проектирование и создание базы данных
Рассмотрим основные особенности работы с базами данных OpenOffice.org Base на примере базы данных с информацией о студентах института.
Поставим задачу следующим образом.
Создать БД, содержащую информацию: о Студентах, Группах обучения, Специальностях, Факультетах, Дисциплинах, Преподавателях и о Ре-
зультатах сдачи Студентами сессии.
Студент имеет фамилию, имя и отчество, а также год рождения. Каждый студент однозначно определяется по номеру зачетной книжки. Студенты разделены по группам, группы распределены по факультетам и специальностям, в номере группы закодированы номер специальности и курс, на котором в данный момент обучается студент. На каждой специальности студенты могут обучаться как на бюджетной (бесплатной), так и на платной основе, и стоимости обучения для разных специальностей различны. На основе информации, введенной в базу, нужно иметь возможность формировать списки групп, выбирать студентов по различным признакам, подсчитывать количество платных студентов и поступление средств по каждой специальности и пр. На одном факультете может быть более одной специальности. Преподаватели имеют фамилию, имя, отчество, стаж, название кафедры, дату рождения. Каждый преподаватель однозначно определяется по табельному номеру. Дисциплины имеют код, название, количество часов и номер семестра. Дисциплины однозначно определяются по коду предмета. Сведения о сдаче студентами сессии: номер зачетной книжки студента, код дисциплины, табельный номер преподавателя, дата сдачи, вид аттестации, оценка. Для однозначного определения записи вводится поле код.
Порядок создания БД
Создадим БД из семи таблиц. Первая будет содержать список всех студентов. Таблицы: Факультет, Группы, Специальность, Дисциплина и Преподаватель - будут справочниками. Первые три таблицы связывают номера групп с кодами специальностей и кодами факультетов, коды специальностей со стоимостью обучения, и коды факультетов с их реальными названиями. Таблица Сессия будет обобщающей, в ней хранится информациях о сдаче студентами сессии. По данной таблице можно будет узнать, какую дисциплину, когда и на какую оценку сдавал тот или иной студент.
Для создания новой базы данных запускаем приложение OpenOffice.org Base (или выбираем в Главном меню Файл→Создать→База данных. . . ).
Рис.3. Мастер баз данных. Создание новой базы
В появившемся диалоге Мастера баз данных (рис.3) выбираем пункт «Создать новую базу» и нажимаем кнопку «Далее>>». Затем на втором шаге устанавливаем параметры «Зарегистрировать новую базу» и «Открыть базу», «Готово». Зарегистрированная база данных становится источником данных для других приложений пакета OpenOffice.org.
Рис.4. Редактирование созданной БД
В завершение процесса предлагается присвоить имя новой базе. Назовем ее student и подтверждаем нажатием на кнопку «Готово». После подтверждения сохранения появляется главное окно приложения OpenOffice.org Base (рис.4).
2.5.3. Создание таблиц в oOoBase
Для создания таблицы выбираем категорию объектов «Таблицы» в левой части окна приложения, а в правой верхней части этого окна - режим «Создать таблицу в режиме дизайна». В результате откроется окно Конструктора таблиц (рис.5). Создадим таблицу Факультет (facultet).
Рис.5. Определение структуры таблицы в Конструкторе таблиц
Устанавливаем свойства полей:
• f_num - TINYINT, обязательное, длина 3, ключевое;
• f_name - VARCHAR, длина 50, необязательное.
После определения полей необходимо задать ключевое поле. В данной таблице это будет поле f_num. Для того чтобы сделать поле ключевым, необходимо активизировать правой кнопкой мыши указатель строки (слева от имени поля) и из выпадающего меню выбрать пункт «Первичный ключ». В результате слева от имени поля появится знак ключа. Далее сохраняем таблицу. В результате в правой нижней части окна приложения появляется таблица с именем fakultet. Ее содержание (пока отсутствующее) можно просмотреть, выбрав для зоны предварительного просмотра режим «Документ» (рис.6).
Далее аналогичным образом создадим еще шесть таблиц. Таблицу Специальность (special) со структурой:
• s_code - VARCHAR(6), ключевое;
• s_name - VARCHAR(50), обязательное;
• s_price - DECIMAL(6), знаков после запятой 0.
Рис.6. Новая таблица и режим предварительного просмотра
Следующая таблица – Группы (groups), в которой описываются номера групп, соответствующие специальности и курсы.
Описание полей таблицы groups:
• n_group - DECIMAL(4), знаков после запятой 0, первичный ключ;
• s_code - VARCHAR(6);
• f_num - TINYINT, длина 3;
• course - то же, что и f_num.
Теперь можно приступить к созданию таблицы - Списка студентов (spisok):
• n_zach - VARCHAR(6), первичный ключ;
• last - VARCHAR(50), обязательное;
• birth - DATE;
• n_group - DECIMAL(4), знаков после запятой 0;
• pay - VARCHAR(3).
Таблица Преподаватель (teacher):
• t_num - BIGINT, первичный ключ;
• t_fam - VARCHAR(30), обязательное;
• t_name- VARCHAR(10), обязательное;
• t_otch- VARCHAR(20), обязательное;
• kafedra- VARCHAR(50), обязательное;
• t_birth - DATE;
• stag - TINYINT, обязательное, длина 3.
Описание полей в таблице Дисциплина (predmet):
• p_code - TINYINT, первичный ключ;
• p_name - VARCHAR(30), обязательное;
• kol_chasov- INTEGER, обязательное;
Описание полей в таблице Сессия (session):
• code – INTEGER, первичный ключ;
• n_zach - VARCHAR(6), обязательное;
• t_num – BIGINT, обязательное;
•p_code - TINYINT, обязательное;
• date_sd- DATE, обязательное;
• bal- TINYINT, обязательное;
• semestr - TINYINT, обязательное;
• vid - VARCHAR(7), обязательное.
