Управление данными - Вариант 4а

Курсовая работа по предмету «Программирование»
Информация о работе
  • Тема: Управление данными - Вариант 4а
  • Количество скачиваний: 4
  • Тип: Курсовая работа
  • Предмет: Программирование
  • Количество страниц: 19
  • Язык работы: Русский язык
  • Дата загрузки: 2014-05-02 21:34:56
  • Размер файла: 123.07 кб
Помогла работа? Поделись ссылкой
Информация о документе

Документ предоставляется как есть, мы не несем ответственности, за правильность представленной в нём информации. Используя информацию для подготовки своей работы необходимо помнить, что текст работы может быть устаревшим, работа может не пройти проверку на заимствования.

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:

Московский государственный университет путей сообщения (МИИТ)
Кафедра «Автоматизированные системы управления»



Курсовая работа по дисциплине
«Управление данными»
Вариант 4а.




Выполнила:
ст. гр. УИС-311
Проверил:














Москва 2013

Задание:
Отобразить заданную предметную область, описанную вербально, в реляционную БД, отношения которой должны находиться по крайней мере в БКНФ. Организовать операции ввода, редактирования и удаления информации из БД. Обеспечить ответ на заданные запросы и печать заданных форм отчёта.
4. Деканат (списочный состав) Ф.И.О. студента, № зачётной книжки (студенческого билета), группа, дата поступления, дата выбытия, № приказа, вид приказа, дата приказа, основание, примечания. 1. Студент может переходить из одной группы в другую.
2. Виды приказов - о зачислении, о предоставлении места в общежитии, о предоставлении академического отпуска, об отчислении, об окончании и т.д.
3. Студент может приступить к занятиям в группе раньше даты выхода приказа.
4. При восстановлении № студенческого билета и зачётной книжки сохраняется.
а)
1. Процент отчисления по курсам.
2. Процент отчисления по годам.
3. Список студентов, бравших академический отпуск более 2 раз.
4. Дополнительно.
5. Дополнительно.
а)
1. Приказы о зачислении.
2. Приказы о предоставлении академического отпуска.


Дополнительно:

Запросы:
1) Общее число студентов, поступивших в выбранном году, с группировкой по специальности
2)Список студентов, проживающих в общежитии в течение последних 3 лет.

ER-Диаграмма:
Создание таблиц и их заполнение:
CREATE TABLE Группы
(
Номер_группы VARCHAR2(20) NOT NULL ,
Специальность VARCHAR2(50) NOT NULL
);

ALTER TABLE Группы
ADD CONSTRAINT XPKГруппы PRIMARY KEY (Номер_группы);

CREATE TABLE Курс
(
ID_курса INTEGER NOT NULL ,
Номер_курса INTEGER NOT NULL
);

ALTER TABLE Курс
ADD CONSTRAINT XPKКурс PRIMARY KEY (ID_курса);

CREATE TABLE Обучение
(
Номер_группы VARCHAR2(20) NOT NULL ,
N_Зач_Книжки INTEGER NOT NULL ,
ID_курса INTEGER NOT NULL ,
Дата_поступл DATE NOT NULL ,
Дата_выбытия CHAR(18)
);

ALTER TABLE Обучение
ADD CONSTRAINT XPKОбучение PRIMARY KEY (Номер_группы,N_Зач_Книжки,ID_курса);

CREATE TABLE Приказы
(
N_Зач_Книжки INTEGER NOT NULL ,
N_приказа INTEGER NOT NULL ,
Вид_приказа VARCHAR2(20) NOT NULL ,
Дата_приказа DATE NOT NULL ,
Основания VARCHAR2(20) NULL ,
Примечания VARCHAR2(20) NULL
);

ALTER TABLE Приказы
ADD CONSTRAINT XPKПриказы PRIMARY KEY (N_приказа,N_Зач_Книжки);

CREATE TABLE Студенты
(
N_Зач_Книжки INTEGER NOT NULL ,
Фамилия VARCHAR2(20) NOT NULL ,
Имя VARCHAR2(20) NOT NULL ,
Отчество VARCHAR2(20) NOT NULL
);

ALTER TABLE Студенты
ADD CONSTRAINT XPKСтуденты PRIMARY KEY (N_Зач_Книжки);

ALTER TABLE Обучение
ADD (CONSTRAINT R_1 FOREIGN KEY (Номер_группы) REFERENCES Группы(Номер_группы));

ALTER TABLE Обучение
ADD (CONSTRAINT R_2 FOREIGN KEY (N_Зач_Книжки) REFERENCES Студенты(N_Зач_Книжки));

ALTER TABLE Обучение
ADD (CONSTRAINT R_3 FOREIGN KEY (ID_курса) REFERENCES Курс(ID_курса));

ALTER TABLE Приказы
ADD (CONSTRAINT R_4 FOREIGN KEY (N_Зач_Книжки) REFERENCES Студенты(N_Зач_Книжки));

insertinto Группы values (УИС-111, Информационные системы и технологии);
insertinto Группы values (УИС-211, Информационные системы и технологии);
insertinto Группы values (УИС-311, Информационные системы и технологии);
insertinto Группы values (УИС-411, Информационные системы и технологии);
insertinto Группы values (УИС-511, Информационные системы и технологии);
insertinto Группы values (УАИ-111, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-211, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-311, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-411, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-511, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УПП-111, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-211, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-311, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-411, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-511, Организация и управление перевозоками на транспорте);

insert into Курс values (1, 1);
insert into Курс values (2, 2);
insert into Курс values (3, 3);
insert into Курс values (4, 4);
insert into Курс values (5, 5);

insert into Студенты values (001, Сидоров, Михаил, Петрович);
insert into Студенты values (002, Мишина, Анастасия, Сергеевна);
insert into Студенты values (003, Петров, Антон, Юрьевич);
insert into Студенты values (004, Малявина, Альбина, Ренатовна);
insertinto Студенты values (005, Красильников, Сергей, Сергеевич);
insertinto Студенты values (006, Ефимов, Владимир, Андреевич);
insertinto Студенты values (007, Аксенова, Оксана, Михайловна);
insertinto Студенты values (008, Иванов, Олег, Николаевич);
insertinto Студенты values (009, Смирнова, Екатерина, Сергеевна);
insertinto Студенты values (010, Калясина, Дарья, Михайловна);
insertinto Студенты values (011, Мошкин, Данил, Владимирович);
insertinto Студенты values (012, Суслов, Владислав, Никонорович);
insertinto Студенты values (013, Лещев, Игорь, Андреевич);
insertinto Студенты values (014, Шубко, Марина, Эдуардовна);
insertinto Студенты values (015, Элькин, Семен, Семенович);
insertinto Студенты values (016, Семенов, Александр, Васильевич);
insertinto Студенты values (017, Ткачева, Ольга, Сергеевна);
insertinto Студенты values (018, Тургунова, Эльмира, Женишбековна);
insertinto Студенты values (019, Кузьменко, Екатерина, Сергеевна);
insertinto Студенты values (020, Овсянкина, Яна, Юрьевна);

insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (001, 001, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (002, 002, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (003, 003, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (004, 004, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (005, 005, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (006, 006, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (007, 007, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (017, 017, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (018, 018, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (019, 019, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (020, 020, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 008, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (009, 009, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (010, 010, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (011, 011, О зачислении, to_date(10.08.2009,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (012, 012, О зачислении, to_date(10.08.2009,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (013, 013, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (014, 014, О зачислении, to_date(10.08.2008,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (015, 015, О зачислении, to_date(10.08.2008,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (016, 016, О зачислении, to_date(10.08.2007,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (016, 021, Об окончании, to_date(10.06.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 022, О предоставлении академического отпуска, to_date(10.11.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 027, О предоставлении академического отпуска, to_date(10.02.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (009, 023, Об отчислении, to_date(10.03.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 024, Об отчислении, to_date(10.03.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (017, 025, О предоставлении места в общежитии, to_date(10.03.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (018, 026, О предоставлении места в общежитии, to_date(10.03.2010,DD.MM.YYYY));

insert into Обучение values (УИС-111, 001, 1, to_date (01.09.2012,DD.MM.YYYY), to_date (01.07.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-111, 002, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-111, 003, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-111, 004, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-111, 005, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-111, 006, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение values (УПП-111, 008, 1, to_date (01.09.2011,DD.MM.YYYY), to_date (10.11.2012,DD.MM.YYYY));
insert into Обучение values (УАИ-111, 009, 1, to_date (01.09.2011,DD.MM.YYYY), to_date (01.03.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 017, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 018, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 019, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 020, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-311, 007, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение values (УПП-111, 010, 1, to_date(01.09.2011,DD.MM.YYYY), to_date(31.08.2012,DD.MM.YYYY));
insert into Обучение values (УАИ-111, 013, 1, to_date(01.09.2011,DD.MM.YYYY), to_date(31.08.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-211, 010, 2, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-411, 011, 4, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-411, 012, 4, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-211, 013, 2, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-511, 014, 5, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-511, 015, 5, to_date(01.09.2012,DD.MM.YYYY));







Триггеры
create sequence s1
start with 50
maxvalue 10000
minvalue 50
nocycle
order;

CREATE OR REPLACE TRIGGER Trig1
BEFORE Insert
ON приказы FOR EACH ROW
declarenew_n integer;
begin
select s1.nextval into new_n from dual;
:new.n_приказа:=new_n;
end Trig1;

create sequence s2
start with 50
maxvalue 10000
minvalue 50
nocycle
order;

CREATE OR REPLACE TRIGGER Trig2
BEFORE Insert
ON студенты FOR EACH ROW
declarenew_n integer;
begin
select s2.nextval into new_n from dual;
:new.n_зач_книжки:=new_n;
end Trig2;

create sequence s3
start with 6
maxvalue 10000
minvalue 6
nocycle
order;

CREATE OR REPLACE TRIGGER Trig3
BEFORE Insert
ON курс FOR EACH ROW
declarenew_n integer;
begin
select s3.nextval into new_n from dual;
:new.id_курса:=new_n;
end Trig3;

select * fromuser_errors;

Код программы:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit2, ExtCtrls, ComCtrls, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Splitter1: TSplitter;
Splitter2: TSplitter;
DBGrid1: TDBGrid;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
Panel4: TPanel;
Panel5: TPanel;
Button5: TButton;
Edit3: TEdit;
DBGrid2: TDBGrid;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button6: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
DBGrid3: TDBGrid;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Splitter3: TSplitter;
Splitter4: TSplitter;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Edit5: TEdit;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Edit6: TEdit;
Edit7: TEdit;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
Label5: TLabel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
DBGrid4: TDBGrid;
Edit4: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
Button27: TButton;
Button28: TButton;
Edit10: TEdit;
Edit11: TEdit;
Label9: TLabel;
Label10: TLabel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
DBGrid5: TDBGrid;
Button29: TButton;
Button30: TButton;
Button31: TButton;
Button32: TButton;
Splitter5: TSplitter;
Splitter6: TSplitter;
Splitter7: TSplitter;
Splitter8: TSplitter;
Button33: TButton;
Button34: TButton;
Button35: TButton;
Edit12: TEdit;
Label11: TLabel;
Panel15: TPanel;
Panel16: TPanel;
Panel17: TPanel;
Splitter9: TSplitter;
Splitter10: TSplitter;
DBGrid6: TDBGrid;
Button36: TButton;
Button37: TButton;
Button38: TButton;
Button39: TButton;
Button40: TButton;
Button41: TButton;
Button42: TButton;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button29Click(Sender: TObject);
procedure Button30Click(Sender: TObject);
procedure Button31Click(Sender: TObject);
procedure Button32Click(Sender: TObject);
procedure Button33Click(Sender: TObject);
procedure Button34Click(Sender: TObject);
procedure Button35Click(Sender: TObject);
procedure Button36Click(Sender: TObject);
procedure Button37Click(Sender: TObject);
procedure Button38Click(Sender: TObject);
procedure Button39Click(Sender: TObject);
procedure Button40Click(Sender: TObject);
procedure Button41Click(Sender: TObject);
procedure Button42Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.next;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
DataModule2.ADOTable1.Insert;
DataModule2.ADOTable1.FieldByName(íîìåð_ãðóïïû).AsString:=Edit1.Text;
DataModule2.ADOTable1.FieldByName(Ñïåöèàëüíîñòü).AsString:=Edit2.Text;
DataModule2.ADOTable1.Post;
DataModule2.ADOTable1.Active:=false;
DataModule2.ADOTable1.Active:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
DataModule2.ADOTable1.Delete;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
DataModule2.ADOTable1.Edit;
DataModule2.ADOTable1.Post;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ñïåöèàëüíîñòü, count(ïåðâîêóðñíèêè.n_çà÷_êíèæêè) as êîëè÷åñòâî from (select n_çà÷_êíèæêè, ñïåöèàëüíîñòü from îáó÷åíèå, ãðóïïû, (select id_êóðñà from êóðñ where íîìåð_êóðñà=1) êóðñ_1);
DataModule2.q1.SQL.Add(where îáó÷åíèå.íîìåð_ãðóïïû=ãðóïïû.íîìåð_ãðóïïû and îáó÷åíèå.id_êóðñà=êóðñ_1.id_êóðñà)ïåðâîêóðñíèêè,(select n_çà÷_êíèæêè);
DataModule2.q1.SQL.Add(from (select n_çà÷_êíèæêè, n_ïðèêàçà, extract (year from äàòà_ïðèêàçà)as ãîä from ïðèêàçû where âèä_ïðèêàçà=Î çà÷èñëåíèè) where ãîä=+Edit3.Text+)çà÷èñëåííûå);
DataModule2.q1.SQL.Add(where ïåðâîêóðñíèêè.n_çà÷_êíèæêè=çà÷èñëåííûå.n_çà÷_êíèæêè group by ñïåöèàëüíîñòü);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select îò÷èñë_ïî_êóðñàì.id_êóðñà, îò÷èñë_ïî_êóðñàì.íîìåð_êóðñà, îò÷èñë_ïî_êóðñàì.êîëè÷åñòâî/êóðñ_ñòóäåíòû.êîëè÷åñòâî*100 as ïðîöåíò+
from (select êóðñ_ñòóäåíò.id_êóðñà, êóðñ_ñòóäåíò.íîìåð_êóðñà, count(n_ïðèêàçà)as êîëè÷åñòâî+
from (select êóðñ.id_êóðñà, êóðñ.íîìåð_êóðñà, id_êóðñà_ñòóä.n_çà÷_êíèæêè+
fromêóðñ, (select ñòóäåíòû.n_çà÷_êíèæêè, id_êóðñà+
fromñòóäåíòû, îáó÷åíèå+
where ñòóäåíòû.n_çà÷_êíèæêè=îáó÷åíèå.n_çà÷_êíèæêè) id_êóðñà_ñòóä+
whereêóðñ.id_êóðñà=id_êóðñà_ñòóä.id_êóðñà)êóðñ_ñòóäåíò,+
(select ñòóäåíòû.n_çà÷_êíèæêè, N_ïðèêàçà+
fromñòóäåíòû, ïðèêàçû+
where ñòóäåíòû.N_çà÷_êíèæêè=ïðèêàçû.N_çà÷_êíèæêè and ïðèêàçû.âèä_ïðèêàçà=Îáîò÷èñëåíèè)îò÷èñëåííûå+
where êóðñ_ñòóäåíò.n_çà÷_êíèæêè=îò÷èñëåííûå.n_çà÷_êíèæêè+
group by êóðñ_ñòóäåíò.id_êóðñà, êóðñ_ñòóäåíò.íîìåð_êóðñà)îò÷èñë_ïî_êóðñàì,+
(select id_êóðñà, count(n_çà÷_êíèæêè)as êîëè÷åñòâî+
fromîáó÷åíèå+
group by id_êóðñà)êóðñ_ñòóäåíòû+
where îò÷èñë_ïî_êóðñàì.id_êóðñà=êóðñ_ñòóäåíòû.id_êóðñà);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ãîä, count(n_ïðèêàçà)as êîë_âî_îò÷èñë from (select n_ïðèêàçà, extract (year from äàòà_ïðèêàçà)as ãîä from ïðèêàçû where âèä_ïðèêàçà=Îáîò÷èñëåíèè) group by ãîä);
DataModule2.q1.Active:=true;
end;



procedure TForm1.Button8Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_çà÷_êíèæêè from (select n_çà÷_êíèæêè, count(n_ïðèêàçà) as n from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèàêàäåìè÷åñêîãîîòïóñêà group by n_çà÷_êíèæêè) êîëè÷åñòâî where êîëè÷åñòâî.n>=2);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ôàìèëèÿ, èìÿ, îò÷åñòâî from ñòóäåíòû, (select n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèìåñòà â îáùåæèòèè and sysdate-äàòà_ïðèêàçà>=1095)îáùàæíèêè where ñòóäåíòû.n_çà÷_êíèæêè=îáùàæíèêè.n_çà÷_êíèæêè);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_ïðèêàçà, n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î çà÷èñëåíèè order by n_ïðèêàçà);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_ïðèêàçà, n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèàêàäåìè÷åñêîãîîòïóñêà order by n_ïðèêàçà);
DataModule2.q1.Active:=true;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Prior;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Last;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.First;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.next;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Prior;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Last;
end;

procedure TForm1.Button18Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.First;
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
DataModule2.ADOTable2.Insert;
DataModule2.ADOTable2.FieldByName(Ôàìèëèÿ).AsString:=Edit5.Text;
DataModule2.ADOTable2.FieldByName(Èìÿ).AsString:=Edit6.Text;
DataModule2.ADOTable2.FieldByName(Îò÷åñòâî).AsString:=Edit7.Text;
DataModule2.ADOTable2.Post;
DataModule2.ADOTable2.Active:=false;
DataModule2.ADOTable2.Active:=true;
end;

procedure TForm1.Button21Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Edit;
DBGrid3.DataSource.DataSet.Post;
end;

procedure TForm1.Button20Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Delete;
end;




procedure TForm1.Button23Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Prior;
end;

procedure TForm1.Button24Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Last;
end;

procedure TForm1.Button25Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.First;
end;

procedure TForm1.Button26Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Edit;
DBGrid4.DataSource.DataSet.Post;
end;

procedure TForm1.Button27Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Delete;
end;

procedure TForm1.Button28Click(Sender: TObject);
begin
DataModule2.ADOTable3.Insert;
DataModule2.ADOTable3.FieldByName(N_çà÷_êíèæêè).AsInteger:=StrToInt(Edit4.Text);
DataModule2.ADOTable3.FieldByName(Âèä_ïðèêàçà).AsString:=Edit8.Text;
DataModule2.ADOTable3.FieldByName(Äàòà_ïðèêàçà).AsString:=Edit9.Text;
DataModule2.ADOTable3.FieldByName(Îñíîâàíèÿ).AsString:=Edit10.Text;
DataModule2.ADOTable3.FieldByName(Ïðèìå÷àíèÿ).AsString:=Edit11.Text;
DataModule2.ADOTable3.Post;
DataModule2.ADOTable3.Active:=false;
DataModule2.ADOTable3.Active:=true;
end;

procedure TForm1.Button22Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.next;
end;

procedure TForm1.Button29Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.next;
end;

procedure TForm1.Button30Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Prior;
end;

procedure TForm1.Button31Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Last;
end;

procedure TForm1.Button32Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.First;
end;

procedure TForm1.Button33Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Edit;
DBGrid5.DataSource.DataSet.Post;
end;

procedure TForm1.Button34Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Delete;
end;

procedure TForm1.Button35Click(Sender: TObject);
begin
DataModule2.ADOTable4.Insert;
DataModule2.ADOTable4.FieldByName(Íîìåð_êóðñà).AsInteger:=StrToInt(Edit12.Text);
DataModule2.ADOTable4.Post;
DataModule2.ADOTable4.Active:=false;
DataModule2.ADOTable4.Active:=true;
end;

procedure TForm1.Button36Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.next;
end;

procedure TForm1.Button37Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Prior;
end;

procedure TForm1.Button38Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Last;
end;

procedure TForm1.Button39Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.First;
end;

procedure TForm1.Button40Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Edit;
DBGrid6.DataSource.DataSet.Post;
end;

procedure TForm1.Button41Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Delete;
end;

procedure TForm1.Button42Click(Sender: TObject);
begin
DataModule2.ADOTable5.Insert;
DataModule2.ADOTable5.FieldByName(Íîìåð_ãðóïïû).AsString:=Edit13.Text;
DataModule2.ADOTable5.FieldByName(N_çà÷_êíèæêè).AsInteger:=StrToInt(Edit14.Text);
DataModule2.ADOTable5.FieldByName(ID_êóðñà).AsInteger:=StrToInt(Edit15.Text);
DataModule2.ADOTable5.FieldByName(Äàòà_ïîñòóïë).AsString:=Edit16.Text;
DataModule2.ADOTable5.FieldByName(Äàòà_âûáûòèÿ).AsString:=Edit17.Text;
DataModule2.ADOTable5.Post;
DataModule2.ADOTable5.Active:=false;
DataModule2.ADOTable5.Active:=true;
end;

end.

Результат: