Автор работы: Пользователь скрыл имя, 22 Июня 2011 в 07:55, курсовая работа
Исходными данными являются:
данные о студенте (ФИО, группа);
данные о преподавателе (ФИО, должность);
данные о группах (наименование, староста, эдвайзер, год поступления);
сведения о специальностях (наименование, год введения);
данные о дисциплинах (наименования, кредиты, наличие курсовой работы).
В появившемся диалоговом окне создания базы данных необходимо ввести следующие данные:
Далее укажем в таблице Options дополнительные сведения о базе данных:
Рисунок 3 - Диалоговое окно создания базы данных
После всего нажимаем ОК.
Программа IBConsole создает только файл базы данных, а каталог, в котором создается база данных, должен уже существовать на жестком диске. Например, в нашем случае, на диске С:\ должна существовать папка DATE, в противном случае база данных создана не будет, а на экране появится сообщение об ошибке.
Второй этап- создание объектов базы данных. Подключившись к базе данных, дважды щелкнув по ее значку, увидим все компоненты входящие в базу данных. Для работы с базами данных в составе IBConsole имеется дополнительный инструмент - программа для интерактивной работы с SQL-запросами «Interactive SQL». Для ее запуска следует выбрать в меню пункт Tools®Interactive SQL. Эта программа позволяет набирать SQL-запросы и выполнить, сразу же видя результат. Поэтому окно программы делится на две области: верхнюю - область SQL-запросов и нижнюю - область результатов.
С помощью уже имеющегося кода мы создадим в нашей базе данных таблицы, индексы, триггеры ссылочной целостности.
Создание доменов
Столбцы в различных таблицах базы данных могут содержать однотипные данные. Кроме того, виды контроля этих данных также могут быть одинаковыми. В этих условиях описания данных и методов их контроля целесообразно выполнить один раз, тогда при описании таблиц достаточно указывать только имя соответствующего описания данных. Для этих целей и служат описания доменов. Перед тем как создавать столбцы, которые ссылаются на домены, необходимо задать описания доменов. Для этих целей существует команда CREAT DOMAIN. В результате ее выполнения создается шаблон, на который можно ссылаться в командах создания и модификации таблиц.
Наиболее полезно использование доменов, когда большое число таблиц содержит идентичные типы данных.
Столбцы, базирующиеся на доменах, наследуют характеристики домена, причем часть из них может быть предопределена в локальных описаниях столбцов. Прежде чем создавать домены, необходимо выполнить проектирование базы данных, включающее проектирование системы таблиц и их нормализацию [3].
SQL коды для создания доменов:
CREATE DOMAIN t_disciplina_p VARCHAR(80);
CREATE DOMAIN t_disciplina_s VARCHAR(50);
CREATE DOMAIN t_doljnost VARCHAR(50);
CREATE DOMAIN t_examen INTEGER;
CREATE DOMAIN t_fio VARCHAR(50);
CREATE DOMAIN t_gruppa VARCHAR(20);
CREATE DOMAIN t_itog INTEGER;
CREATE DOMAIN t_kol_vo_kreditov INTEGER;
CREATE DOMAIN t_lc1 INTEGER;
CREATE DOMAIN t_lc2 INTEGER;
CREATE DOMAIN t_pr1 INTEGER;
CREATE DOMAIN t_pr2 INTEGER;
CREATE DOMAIN t_semestr INTEGER;
CREATE DOMAIN t_specialnost_p VARCHAR(80);
CREATE DOMAIN t_specialnost_s VARCHAR(20);
CREATE DOMAIN t_srs1 INTEGER;
CREATE DOMAIN t_srs2 INTEGER;
Выполнив
SQL коды получим:
Рисунок
4 - Окно IBConsole после создания доменов
Создание таблиц и индексов
Перед тем как перейти к созданию таблиц, необходимо выполнить проектирование базы данных и нормализацию таблиц.
Далее следует определить, какие таблицы и с какими столбцами (полями) подлежат созданию. Создать комплект необходимых доменов и только после этого можно перейти к физическому вводу описаний таблиц.
При создании таблицы мы должны задать, как минимум, ее имя и перечень полей с их атрибутами и контрольными ограничениями. Кроме того, при создании таблицы можно задать ее первичный ключ, внешние ключи, задающие требования по поддержанию логической целостности, дополнительные виды контроля на уровне записей [4].
Рисунок
5 - Окно Interactive SQL при создании таблицы
группа и уникального индекса для данной
таблицы.
Рисунок
6 - Таблица Студент
Выполнив
данный код нажав комбинацию клавиш
Ctrl+Enter мы получим таблицу, в которую затем
мы можем внести записи. Однако стоит заметить
т.к. между таблицей Student и Gruppa существует
связь по полю Gruppa, то перед заполнением
таблицы Student, необходимо заполнить соответствующие
значения в таблицу Gruppa, иначе на экране
появится сообщение об ошибке.
SQL коды для создания таблиц и индексов:
CREATE TABLE gruppa (
gruppa t_gruppa NOT NULL,
god_postuplenia varchar(20),
edvaizer VARCHAR(20)
);
CREATE UNIQUE INDEX XPKgruppa ON gruppa
(
gruppa
);
ALTER TABLE gruppa
ADD PRIMARY KEY (gruppa);
CREATE TABLE student (
kod_student INTEGER NOT NULL,
gruppa t_gruppa NOT NULL,
fio t_fio
);
CREATE UNIQUE INDEX XPKstudent ON student
(
kod_student
);
ALTER TABLE student
ADD PRIMARY KEY (kod_student);
CREATE TABLE Disciplina (
kod_disciplina INTEGER NOT NULL,
disciplina_p t_disciplina_p,
disciplina_s t_disciplina_s,
semestr INTEGER
);
CREATE UNIQUE INDEX XPKDisciplina ON Disciplina
(
kod_disciplina
);
ALTER TABLE Disciplina
ADD PRIMARY KEY (kod_disciplina);
CREATE TABLE specialnost (
shifr_specialnost VARCHAR(20) NOT NULL,
specialnost_p t_specialnost_p,
specialnost_s t_specialnost_s,
god_vvedenia varchar(20)
);
CREATE UNIQUE INDEX XPKspecialnost ON specialnost
(
shifr_specialnost
);
ALTER TABLE specialnost
ADD PRIMARY KEY (shifr_specialnost);
CREATE TABLE prepodavatel (
kod_prepod INTEGER NOT NULL,
fio t_fio NOT NULL,
doljnost t_doljnost NOT NULL
);
CREATE UNIQUE INDEX XPKprepodavatel ON prepodavatel
(
kod_prepod
);
ALTER TABLE prepodavatel
ADD PRIMARY KEY (kod_prepod);
CREATE TABLE vedomost (
shifr_specialnost VARCHAR(20) NOT NULL,
kod_prepod INTEGER,
kod_disciplina INTEGER NOT NULL,
kod_student INTEGER,
lc1 t_lc1,
lc2 t_lc2,
pr1 t_pr1,
pr2 t_pr2,
srs1 t_srs1,
srs2 t_srs2,
examen t_examen,
itog t_itog
);
CREATE UNIQUE INDEX XPKvedomost ON vedomost
(
shifr_specialnost,
kod_disciplina
);
ALTER TABLE vedomost
ADD PRIMARY KEY (shifr_specialnost, kod_disciplina);
CREATE TABLE uchebnii_plan (
kod_disciplina INTEGER NOT NULL,
shifr_specialnost VARCHAR(20) NOT NULL,
semestr t_semestr,
kol_vo_kreditov t_kol_vo_kreditov
);
CREATE UNIQUE INDEX XPKuchebnii_plan ON uchebnii_plan
(
kod_disciplina,
shifr_specialnost
);
ALTER TABLE uchebnii_plan
ADD PRIMARY KEY (kod_disciplina, shifr_specialnost);
ALTER TABLE student
ADD FOREIGN KEY (gruppa)
REFERENCES gruppa;
ALTER TABLE vedomost
ADD FOREIGN KEY (kod_prepod)
REFERENCES prepodavatel;
ALTER TABLE vedomost
ADD FOREIGN KEY (kod_student)
REFERENCES student;
ALTER TABLE vedomost
ADD FOREIGN KEY (shifr_specialnost)
REFERENCES specialnost;
ALTER TABLE vedomost
ADD FOREIGN KEY (kod_disciplina)
REFERENCES Disciplina;
ALTER TABLE uchebnii_plan
ADD FOREIGN KEY (shifr_specialnost)
REFERENCES specialnost;
ALTER TABLE uchebnii_plan
ADD FOREIGN KEY (kod_disciplina)
REFERENCES Disciplina;
Третий этап. Создав все объекты мы сможем увидеть их на дереве нашей базы (рис.7).
Затем необходимо автоматизировать уникальные значения таблиц, т.к. при работе с глобальной базой данных указать уникальное значение не всегда возможно. Так как вставкой записей могут заниматься одновременно несколько пользователей. Угадать последнее вставленное значение уникального значения практически невозможно, так что необходимо как-то автоматизировать этот процесс. С этой целью в базе данных предусмотрены специальные объекты – генераторы.
Генератор - это именованная числовая переменная, значение которой можно увеличивать с помощью специальной функции gen_id. Для того, чтобы можно было пользоваться генератором, его необходимо создать и инициализировать. Для создания генератора используется оператор (запрос).
Рисунок
7 - Окно IBConsole после создания таблиц
Рассмотрим установку генератора для таблицы Student(Студент), где уникальным является kod_student (номер студента). Создадим генератор, возвращающий уникальное значение для поля kod_student в таблице STUDENT и установим стартовое значение равное 1. Для этого введите в окно запросов ISQL следующее:
CREATE
GENERATOR kod_student_gen