База данных "Кафедра"

Автор работы: Пользователь скрыл имя, 22 Июня 2011 в 07:55, курсовая работа

Описание работы

Исходными данными являются:
данные о студенте (ФИО, группа);
данные о преподавателе (ФИО, должность);
данные о группах (наименование, староста, эдвайзер, год поступления);
сведения о специальностях (наименование, год введения);
данные о дисциплинах (наименования, кредиты, наличие курсовой работы).

Файлы: 1 файл

МУ_СРС_ПБД_рус12.doc

— 655.00 Кб (Скачать файл)

    В появившемся диалоговом окне создания базы данных необходимо ввести следующие данные:

  • Введите в поле Alias название базы данных: date_as;
  • В первой строке таблицы Files укажите полное имя базы данных: C:\DATE\date.gdb и ее размер в страницах: 230;

Далее укажем в таблице Options дополнительные сведения о базе данных:

  • Page size (размер страницы) - 4096. Это значение проставляется по умолчанию.
  • Default character set (набор символов по умолчанию) выберем из списка WIN1251. Это необходимо для того, чтобы в нашей базе данных можно было сохранять строковые данные, содержащие символы кириллицы.
  • SQL Dialect - вводим 3 [5].

    

Рисунок 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 

Информация о работе База данных "Кафедра"