设为首页 - 加入收藏
  • 热门搜索: 名人名言 党建教育
  • 当前位置:首页 > 范文大全 > 九号文库

    教务系统数据库总结报告

    栏目:九号文库 来源:网络 作者:海棠云影 时间:2024-09-24 18:58:53 下载.docx文档

    第一篇:教务系统数据库总结报告

    教务系统数据库总结报告

    常州信息学院 网络095 在信息时代的今天,数据成为传递信息的重要载体,而随着信息的不断增加,数据也变得相当繁琐。因此数据库的出现,正是为数据的处理提供了良好的媒介。

    例如一所大学,通常由校长办公司、教务处、财务处、学工处、团委、招就处、科技处。同时下设各系以及各分处。因此这些工作如果处理起来,或许需要几百人,而且还不能保证信息处理的有效性与正确率。如果使用数据库,我们可以轻松解决这些问题。学校行政管理,可以使用数据库系统,保证每个教师的所带课程,上班情况,工资情况以及每位教师获奖与资历等信息,都可以通过数据库统一管理。学生方面,每个学生自从正式录取输入档案信息后,到入学注册都可用教务系统数据库来管理。学生的选课、排课,考试成绩、课堂表现,在校表现,生活状况等、以及就业乃至毕业离校都可以通过系统来自动管理。

    系统处理信息方便而准确,近一万人的学生和老师,系统可以用很短的时间处理。所需的工作仅是首次的信息输入,如果需要,便可以永久保存。信息处理准确性高,虽然数据信息量大,但是系统依然能很好的处理。因此对于学校来说,教务管理系统的使用可以极大的方便教务教学任务,很大幅度的提高工作效率。

    数据库可以说是信息处理的载体,庞大的数据通过数据库实现了有序而快速的调入与调出。数据库之所以能如此高效率的工作,得益于其工作原理。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。dBASEII就是这类数据库管理系统的典型代表。对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。用dBASEII建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。dBASEII的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。因此具备这样的功能,数据库才能在信息处理中发挥着重要的作用。、在数据库的学习中,我们可以利用企业管理器和查询分析器两种方式快速尔简单的使用数据库。利用企业管理器操作起来全部是图形界面,简单易学。查询分析器全部用代码实现,虽然代码比较繁琐,但是这样实现快捷,功能强大。在数据库的学习中,刚开始主要是利用企业管理器,去创建一些数据库,表格及一些属性关系及应用。后来,可以使用

    查询分析器借助代码做一些简单的查询,数据库和表格的创建。但是其中的一些关系及属性无法创建,这也正是数据库学习的核心与关键。

    得力于数据库在信息处理中扮演如此重要的作用,因此数据库的学习应该作为以后学习的重点,相信在不久的将来,数据库一定会在互联网中发挥着更加重要的作用,数据库也定会成为今后的热门专业和学习方向。

    第二篇:教务管理系统 数据库实例设计

    第17章 数据库系统设计实例

    本章以一个考务管理系统的设计过程为例,介绍在VB 6.0+SQL Server 2024环境中开发数据库系统的一般方法。

    17.1 系统概述

    17.1.1 系统功能

    本系统用于从考生报名、产生准考证到录取考生和打印成绩单即对考生考试和录取全过程进行管理的考务系统,包含主要功能如下:

          考生报名,按报名顺序产生报名号

    产生准考生号和以紧凑方式打印准考证 输入考生考试成绩和输入录取合格标准 根据合格标准录取上线考生 打印考生成绩单和考生录取通知书 设置系统用户和系统初始化

    17.1.2 设计技巧

    本系统设计中的一些技巧如下:     公共模块设计(参见17.4节的Module1.Bas模块)SQL Server数据库设计(参见17.3节)VB菜单设计方法(包括菜单项的有效性设计,对于“一般操作员”,使若干菜单项无效。参见menu多文档窗体设计过程)统一的数据编辑设计方法:以ksb表为例进行说明:为了编辑其记录,设计了edks窗体,在其中的DataGrid数据网格控件中显示所有已输入的考生记录。用户可以先通过“设置条件”框架查找到满足指定条件的考生记录,然后选择“修改”或“删除”命令按钮进行考生记录的修改或删除,或者选择“添加”命令按钮输入新的考生记录。   VB报表设计方法(包括使用Data Report设计器和PrintForm方法)图像数据的存取方法(参见edks窗体设计过程)事件编程技术:一些数据编辑窗体(如edks等窗体)上有两个事件过程即Load和Activate,它们的执行过程是:在启动本窗体时先执行Load(仅执行一次)事件过程,

    第三篇:数据库课程设计 计算机教务管理系统

    中北大学

    数据库课程设计

    说 明 书

    学 院、系: 专

    业: 学 生 姓 名: 设 计 题 目:

    李翰超

    软件学院 软件工程

    学 号: 1221010619

    计算机等级考试教务管理系统

    起 迄 日 期: 2024年5月26日-2024年6月20日 指 导 教 师:

    2024 年 6月 21 日.引言

    随着全国计算机等级考试的全面推广,我市学生每年参加两次全国计算机等级考试,考试管理工作量相当大。但是靠人工的方式管理等级考试相关的信息,这种管理方式存在着许多缺点,如:工作效率低、统计容易出错,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。所以开发一个计算机等级考试成绩管理系统是非常必要的。2.需求分析

    计算机等级考试分为若干种类:如:计算机一级VB、C语言;计算机二级VB、C语言、C++;计算机三级数据库、网络技术;计算机四级数据库工程师、网络工程师。对于每个种类,考试分为笔试和机试.计算机等级考试工作过程如下:每个考生在报名时,登记姓名、性别、报考种类、学校、身份证号、个人照片等。考试办公室根据考生报考的种类,以及所在的考区来安排考场,编排准考证号码,打印准考证。考生参加考试后,登记每个考生每项的成绩,并计算出每个考生笔试和机试的成绩是否都>=60分。对机试和笔试都>=60分的考生,按所在考区打印通过证书,同一考区按准考证号码顺序打印出通过证书,分发给考生;计算机四级只要笔试成绩>=60则通过;打印成绩表供考试办公室留存、备查。

    开发计算机等级考试成绩管理系统,有计算机辅助实现上述过程,代替人工操作,节省人力、时间,提高工作效率。

    2.1 处理对象(1)用户帐号密码管理 对考点代码,考点名称进行管理 用户与密码进行管理(2)报名管理功能模块

    报各库录入(姓名不能不空,之间不能有空格)增加、删除、修改、浏览(3)准考证管理模块

    准考证生成规则:xxx+yy+zz+kk 其中XXX为考点代码;YY为语言代码,XX为考场号,KK为座位号(4)考务管理功能模块

    考生信息查询、浏览 成绩管理模块

    成绩数据录入、接收

    成绩合成(总成绩=笔试成绩*0.6+上机成绩*0.4),按大于或等于60合格

    2.2数据字典:

    考生信息表(考生主键(主键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,备注)

    准考证表(准考证号主键,准考证号)

    成绩表(成绩表主键,笔试成绩,上机成绩,总成绩)

    级别语言代码表(级别语言代码主键,级别语言代码,级别,语言)考生考点信息表(考生考点主键,考点代码,考点名称,)用户帐号管理(用户帐号主键,用户名,密码)

    信息操作表(考生主键(主键),准考证号主键, 级别语言代码主键,考生考点主键,用户帐号主键)

    3.E-R图

    4.关系模型

    考生信息表(考生主键(主键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,备注)

    准考证表(准考证号主键,准考证号)

    成绩表(成绩表主键,笔试成绩,上机成绩,总成绩)

    级别语言代码表(级别语言代码主键,级别语言代码,级别,语言)

    考生考点信息表(考生考点主键,考点代码,考点名称,)用户帐号管理(用户帐号主键,用户名,密码)

    信息操作表(考生主键(主键),准考证号主键, 级别语言代码主键,考生考点主键,用户帐号主键)

    其模式定义:

    见附件:模式定义。

    5.物理设计

    本数据库共有5张表组成,其中t_manage表为管理表,而其他4张表:t_grade,t_information,t_level,t_regist都为基本表,当要查询所需要的信息时,就用连接查询将管理表和基本表连接在一起,从而看到想看到信息。

    6.数据库实施

    create table t_grade(grade number primary key, write number, shangji number, totalgrade number);alter table t_grade add constraint write check(write<=40 and write>=0);alter table t_grade add constraint shangji check(shangji<=60 and

    shangji>=0);alter table t_grade add constraint totalgrade check

    (totalgrade=write+shangji);

    insert into t_grade values(001,40,50,90);insert into t_grade values(002,30,50,80);insert into t_grade values(003,20,60,80);insert into t_grade values(004,25,50,75);insert into t_grade values(005,30,40,70);create table t_information(information number, sname varchar2(20)not null, gender varchar2(2)check(gender='n' or gender='v'), birth number, nation varchar2(20)not null, idnumber char(18), address varchar2(20)not null, phone number not null, note varchar2(20),primary key(information));alter table t_information add constraint birth check(birth<=20020101 and

    birth>=19200101);

    insert into t_information values

    (006,'ling','n',19950302,'han','***014','shanxi','0101111',null);insert into t_information values

    (007,'wang','n',19950607,'han','***014','shanxi','0101241',null);insert into t_information values

    (008,'john','n',19950504,'german','***014','german','010234511' ,'forgien');insert into t_information values

    (009,'liu','v',19930407,'han','***014','shanxi','010123511',nul l);insert into t_information values

    (010,'yuan','n',19910408,'han','***014','shanxi','0101211',null);create table t_level(leve number primary key, codes number not null, language varchar2(15)not null);insert into t_level values(015,01,'chinese');insert into t_level values(016,01,'chinese');insert into t_level values(017,02,'chinese');insert into t_level values(018,01,'english');insert into t_level values(019,01,'chinese');

    create table t_regist(regist number, place varchar2(14), registnumber varchar2(9), primary key(regist));

    insert into t_regist values(020,10101,'14010101');insert into t_regist values(021,10201,'14010102');insert into t_regist values(022,11101,'14010103');insert into t_regist values(023,12101,'14010104');insert into t_regist values(024,15103,'14010105');create table t_user(use number, username varchar2(14)not null, code varchar2(20)not null, primary key(use));

    insert into t_user values(025,'ling','asasn');insert into t_user values(026,'wang','asasn');insert into t_user values(027,'john','sdrhy');insert into t_user values(028,'liu','eryery');insert into t_user values(029,'yuan','hjlmyu');

    create table t_manage(information number, grade number, leve number, use number, regist number, foreign key(grade)references t_grade(grade), foreign key(information)references t_information(information), foreign key(leve)references t_level(leve), foreign key(regist)references t_regist(regist), foreign key(use)references t_user(use));

    insert into t_manage values(006,001,015,025,020);5

    insert into t_manage values(007,002,016,026,021);insert into t_manage values(008,003,017,027,022);insert into t_manage values(009,004,018,028,023);insert into t_manage values(010,005,019,029,024);

    7.系统调试

    通过sql语句对其进行调试,以测试其正确性,如图1,2,3,4,5

    图 1 6

    图 2

    图 3 7

    图 4 用自然连接查询:

    图 5

    8.心得体会

    本次课程设计主要设计一个计算机管理系统,我的大体思路就是将基本信息录入到基本表当中,并保证没有重复属性,然后设计一个管理表,让其它基本表参照这个管理表,这个管理表当中只有各表主键,需要查看信息时,就将两表连接。。

    这次课设我觉得有两个难点,一个是表间的参照,另一个是约束条件的设置,尤其是约束条件一定要充分考虑到,还有当有那种范围值的约束时要在建表后要用alter修改,而不是在定义时直接约束。

    最后一点是关于主键的问题,主键最好别用学号什么的,最好应该用连续的、无意义的数字,create sequence之后,每加一个元组就用一次nextval,这样可以让电脑自动排号。

    第四篇:数据库课程设计之教务管理系统

    源代码:

    CREATE DATABASE JWGL

    /*建立教务管理系统*/ ON

    (NAME = JWGL_Data,FILENAME = 'e:sql_dataJwgl_Data.mdf', SIZE = 20, MAXSIZE = 500, FILEGROWTH = 25%)LOG ON

    (NAME = JWGL_LOG,FILENAME = 'e:sql_dataJwgl_Log.ldf', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 1%);

    CREATE TABLE Student

    /*建立学生表*/(Sno CHAR(8)PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex IN('男','女'))NOT NULL,Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12)UNIQUE, Sdept VARCHAR(20)NOT NULL,);

    CREATE TABLE Course

    /*建立课程表*/(Cno CHAR(10)PRIMARY KEY NOT NULL, Cname VARCHAR(20)UNIQUE NOT NULL,Total_perior TINYINT CHECK(Total_perior BETWEEN 32 AND 108),/*总学时*/ Week_perior TINYINT CHECK(Week_perior BETWEEN 2 AND 7),/*周学时*/ Credit TINYINT CHECK(Credit BETWEEN 1 AND 7)NOT NULL,/*学分*/ Pcno CHAR(10)/*先修课*/);

    CREATE TABLE SC

    /*建立学生选课表*/(Sno CHAR(8)NOT NULL, Cno CHAR(10)NOT NULL,Grade TINYINT CHECK(Grade BETWEEN 1 AND 100), PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno), FOREIGN KEY(Cno)REFERENCES Course(Cno));

    DROP TABLE Student

    /*删除学生表*/ DROP TABLE Course

    /*删除课程表*/ DROP TABLE SC

    /*删除学生选课表*/

    INSERT

    /*向学生表中插入数据*/ INTO Student

    VALUES('04111020','张倩','女',19,'***','计算机');INSERT

    INTO Student

    VALUES('04111021','张花','女',20,'***','信息');INSERT

    INTO Student

    VALUES('04111022','李强','男',20,'***','英语');INSERT

    INTO Student

    VALUES('04111023','王若','女',19,'***','计算机');INSERT

    INTO Student

    VALUES('04111024','小淼','男',20,'***','信息');INSERT

    INTO Student

    VALUES('04111025','李新','男',20,'***','英语');INSERT INTO Student

    VALUES('04111026','刘浮','男',19,'***','信息');INSERT

    INTO Student

    VALUES('04111027','二毛','男',20,'***','英语');INSERT

    INTO Student

    VALUES('04111028','朱琪','女',19,'***','计算机');INSERT

    INTO Student

    VALUES('04111029','小马','男',20,'***1','信息');INSERT

    INTO Student

    VALUES('04111030','吴欣','女',20,'***','英语')

    INSERT

    /*向课程表中插入数据*/ INTO Course

    SELECT '0011','数据结构','64','2','3','c语言'

    UNION SELECT '0012','数据库','64','2','3','离散数学' UNION SELECT '0013','信息管理','64','2','3','计算机基础' UNION SELECT '0014','专业英语','64','2','4','基础英语' UNION SELECT '0015','电气学','64','2','4','电子科技'

    INSERT

    /*向学生选课表中插入数据*/ INTO SC

    SELECT '04111020','0011','90' UNION SELECT '04111020','0012','87' UNION SELECT '04111022','0012','85' UNION SELECT '04111022','0015','76' UNION SELECT '04111023','0014','69' UNION SELECT '04111024','0013','90' UNION SELECT '04111025','0011','92' UNION SELECT '04111026','0011','83' UNION SELECT '04111027','0012','87' UNION SELECT '04111027','0013','79' UNION SELECT '04111028','0011','88' UNION SELECT '04111028','0014','85' UNION SELECT '04111029','0012','97' UNION SELECT '04111030','0013','69' UNION SELECT '04111028','0015','88'

    CREATE TABLE Student_temp

    /*建立 Student_temp空表*/(Sno CHAR(8)PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex IN('男','女'))NOT NULL,Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12)UNIQUE, Sdept VARCHAR(20)NOT NULL,);

    INSERT INTO

    Student_temp

    /*在Student_temp表中保存计算机系所有学生的情况*/ SELECT * FROM Student

    WHERE Sdept = '计算机';

    ALTER TABLE Student ADD Address CHAR(20);

    /*向Student表中插入地址列*/

    DELETE FROM SC

    /*删除计算机系学生的选课记录*/ WHERE Sno IN(SELECT Sno FROM Student

    WHERE Sdept ='计算机');

    UPDATE Student

    /*将每个学生的年龄增加1岁*/ SET Age=Age+1;UPDATE

    SC SET Grade=0 WHERE Sno IN(SELECT Sno FROM Student

    WHERE Sdept = '计算机');

    SELECT Sno,Sname,Sdept

    /*查询学生表中所有学生的学号、姓名、所在系*/ FROM Student;

    SELECT *

    /*查询学生表中的所有信息*/ FROM Student;

    SELECT Sname,2024-Age AS Birthday

    /*查询学生表中所有学生的出生年份,用2024-Age的值作为Birthday的列值*/ FROM Student;

    SELECT *

    /*查询课程表中的所有信息*/ FROM Course;

    SELECT *

    /*查询学生选课表中的所有信息*/ FROM SC;

    SELECT DISTINCT Sno

    /*查询所有选了课程的学生的学号*/ FROM SC;

    SELECT Sno,Sname

    /*查询计算机系所有学生的学号和姓名*/ FROM Student

    WHERE Sdept ='计算机';

    SELECT Sno

    /*查询考试成绩在80分以上的学生学号*/ FROM SC

    WHERE Grade >=80;

    SELECT Sname,Sdept,Age /*查询年龄在20-23岁的学生姓名、所在系和年龄*/ FROM Student

    WHERE Age >=20 AND Age <=23;

    SELECT Sname,Sdept,Age,Sex /*查询计算机和英语系的学生姓名、年龄和性别*/ FROM Student

    WHERE Sdept IN('计算机','英语');

    SELECT Sname,Sdept,Age,Sex /*查询不是计算机和英语系的学生姓名、年龄和性别*/ FROM Student

    WHERE Sdept NOT IN('计算机','英语');

    SELECT *

    /*查询信息系所有学生的情况*/ FROM Student

    WHERE Sdept LIKE '信息';

    SELECT *

    /*查询姓张的学生所有信息*/ FROM

    Student

    WHERE Sname LIKE '张%';

    SELECT

    Cno,Credit

    /* 查询'数据结构'课程的课程号和学分*/ FROM Course

    WHERE Cname LIKE '数据结构';

    SELECT Sno,Cno

    /*查询没有考试成绩的课程后和学分*/ FROM SC

    WHERE Grade IS NULL;

    SELECT *

    /*查询全体学生的信息,查询结果按所在系的升序排列,同一系中的学生按年龄降序排列*/ FROM Student

    ORDER BY Sdept ,Age DESC;

    SELECT AVG(Grade)AS '平均成绩'

    /*查询选修'0014'号课程的学生的平均分*/ FROM SC

    WHERE Cno ='0014';

    SELECT MIN(DISTINCT Grade)AS '最低分' /*查询成绩表中的最低分*/ FROM SC;

    SELECT COUNT(*)AS'总人数'

    /*统计学生总人数*/ FROM Student;

    SELECT COUNT(DISTINCT Sno)/*统计选修了课程的学生人数*/ FROM SC;

    SELECT Cno ,COUNT(Sno)/*查询每门课程的课程号及选课人数*/ FROM SC GROUP BY Cno;

    SELECT Student.*,SC.*

    /*查询每个学生及其选修课的情况*/ FROM Student ,SC

    WHERE Student.Sno=SC.Sno;

    SELECT Student.Sno,Sname,Grade

    /*查询选修了'数据库'课程并且成绩在85分以上的学生的学号和姓名*/

    FROM Student ,Course,SC

    WHERE Student.Sno = SC.Sno AND SC.Cno

    = Course.Cno AND Cname = '数据库'AND Grade>85;

    SELECT Sno,Sname

    /*查询和王若在同一个系学习的学生的学号和姓名*/ FROM Student

    WHERE Sdept =

    (SELECT Sdept

    FROM Student

    SELECT Sname ,Age

    /*查询其他系中比英语系某一学生年龄小的学生是姓名和年龄*/ FROM Student

    WHERE Sdept <>'英语'

    AND AGE

    FROM Student

    WHERE Sdept ='英语');

    SELECT Sname /*查询选修了0014号课程的学生的姓名*/ FROM Student

    WHERE EXISTS

    (SELECT * FROM SC

    WHERE Sno =Student.Sno AND Cno='0014');

    SELECT Cno FROM Course

    UNION ALL

    /*ALL表示合并两个查询输出的全部记录,没有ALL表示结果中不包含重复行*/ SELECT Cno FROM SC ORDER BY Cno;

    CREATE PROCEDURE Student_Course

    /*在学生-课程数据库中创建存储过程,查看和'小马'有关的基本信息及选修课程*/ AS

    SELECT Student.Sno,Sname,Cname,Grade

    FROM Student,Course,SC

    WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Sno AND Sname='王若' IF EXISTS(SELECT name FROM sysobjects

    WHERE name='Student_Course' AND type='P')

    DROP PROCEDURE Student_Course;WHERE Sname = '王若');EXECUTE Student_Course;/*查看存储的信息*/

    SELECT Sno

    /*查询选修'0012'或'0015'号课程的所以学生的学号*/ FROM SC

    WHERE Cno='0012' UNION SELECT Sno FROM SC

    WHERE Cno='0015';

    CREATE UNIQUE INDEX Stusno ON Student(sno);/*建立索引*/ CREATE UNIQUE INDEX Coucon ON Course(Cno);

    CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Grade DESC);

    drop index Stusno ON Student/*删除索引*/ drop index Coucon ON Course drop index SCno ON SC

    CREATE VIEW C_Student

    /*建立计算机系学生的视图,进行修改和插入操作时只能对计算机系的学生操作*/ AS

    SELECT Sno,Sname,Sex,Age FROM Student WHERE Sdept='计算机' WITH CHECK OPTION

    CREATE VIEW Student_Course_0013(Sno,Sname,Sex,Age,Grade)/*建立选择0013号课程并且成绩在80分以上的学生视图*/ AS

    SELECT Student.Sno,Sname,Sex,Age,Grade FROM Student,SC

    WHERE Student.Sno=SC.Sno AND Grade>=80 AND Cno='0013'

    CREATE VIEW Student_Birth(Sno,Sname,Sbirth)/*建立反应学生出生年份的视图*/ AS

    SELECT Sno,Sname,2024-Age FROM Student

    CREATE PROCEDURE student_count/*创建一个存储过程,返回选修某门课程的学生人数*/ @CourseName VARCHAR(20), @StudentSum INT OUTPUT AS SELECT @StudentSum=COUNT(*)FROM Course ,SC

    WHERE Course.Cno=SC.Cno AND Cname =@CourseName;

    drop procedure student_count;/*

    DELCARE @StudentSum INT;

    EXECUTE student_count '专业英语',@StudentSum output;SELECT 'the result is:',@Student_Sum;*/

    CREATE PROCEDURE student_course1 /*通过参数@StudentName将指定学生的姓名传递给存储过程*/

    @StudentName VARCHAR(10)AS

    SELECT Student.Sno,Sname,Cname,Grade

    FROM Student,Course,SC

    WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

    AND Sname=@StudentName;

    EXECUTE

    student_course1 '小马';/*调用存储过程*/

    /*删除视图*/

    DROP VIEW C_Student;

    DROP VIEW Student_Course_0013;DROP VIEW Student_Birth;

    CREATE TRIGGER student_change/*创建触发器,当学生表中的记录被更新时,显示表中的所有记录*/

    ON Student AFTER INSERT,UPDATE,DELETE AS

    SELECT * FROM Student;

    CREATE TRIGGER sc_insert3 ON SC

    /*在SC表上创建触发器,当向SC表中添加学生的选课记录时,检查学生的学号是否存在。若不存在,不能插入改条记录*/ AFTER INSERT AS

    IF(SELECT COUNT(*)FROM Student ,inserted WHERE Student.Sno=inserted.Sno)=0 BEGIN

    PRINT'学号不存在,不能插入记录' ROLLBACK TRANSACTION END;

    INSERT INTO SC

    VALUES('04111098','0015',73)

    ALTER TABLE SC

    /*删除触发器*/

    DISABLE TRIGGER sc_insert2

    第五篇:数据库实习报告-教务管理系统.

    数据库系统课程设计 学生姓名: 班 学 号: 指导教师:

    教务管理系统

    1、需求分析 1.1 信息要求: 教务管理系统涉及的实体有: ●教师——工作证号、姓名、职称、电话等;●学生——学号、姓名、性别、出生年月等;●班级——班号、最低总学分等;

    ●系——系代号、系名和系办公室电话等;●课程——课序号、课名、学分、上课时间及名额等。这些实体之间的联系如下: ●每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。●每个班的班主任都由一名教师担任。

    ●一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同 的(课序号是唯一的。

    ●一名同学可以选多门课,一门课可被若干同学选中。●一名同学选中的课若已学完,应该记录有相应成绩。

    ●本单位学生、教师都有重名,工作证号、学号可以作为标识。1.2 处理要求: 教学系统主要提供数据维护、选课和信息查询。其中常见的查询有:系统中各对象的基本信息查询。查 询指定班、系的学生信息(名单、人数等。查询学生的成绩、学分情况。查询教师授课情况和学生选课情 况„„。

    1.3 安全性与完整性要求: ●安全性要求: 1.系统应设置访问用户的标识以鉴别是否是合法用户, 并要求合法用户设置其密码, 保证用户身份不被 盗用;2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;

    3.系统应对不同用户设置不同的权限,区分不同的用户,如学生,教师,系统管理员。

    ●完整性要求: 1.各种信息记录的完整性,关键信息记录内容不能为空;2.各种数据间相互的联系的正确性;3.相同的数据在不同记录中的一致性。1.4 系统功能的设计和划分

    根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分: 第一部分:用户管理部分 第二部分:管理员管理部分 各部分完成的功能如下:

    1、用户管理部分

    1、处理用户注册

    2、处理用户登录

    3、用户可以查询学生信息。

    4、用户可以查询快件信息。

    5、用户可以提交与查询报修信息。

    6、用户可以插入与删除用户自己的离返校信息。

    7、用户可以修改用户自己密码。

    2、管理员管理部分

    1、处理管理员登录

    2、管理员可以查询学生信息。

    3、管理员可以发布与更新快件信息。

    4、管理员可以插入、修改与查询报修信息。

    5、管理员可以插入与查询学生夜归信息。

    6、管理员可以查询在校与离校学生信息。

    7、管理员可以修改管理员密码。

    2、概念设计(1 概念模型(E-R 图 :

    选修联系的分 E-R 图 负责联系的分 E-R 图

    授课联系的分 E-R 图

    教务管理系统的总 E-R 图(2 数据字典 :

    (3数据流图

    查询 课程信息 课程信息表 课程信息 查询 课 程 成绩信息 信 息 教师 学 生 选课信息信 息 查询学 生信息 修改教 师信息 教 师 信 息 系 信 息 课 程 选课信息 信 息 学生 学 生 信 息 选课信息 修改学 教 师 信 息 生信息 查询教 师信息 选课信息 选课 已 选 课 信 息 成绩信息 选 课 表 登记 成绩 成 绩 信 息 查询 选课信息 选课信息 查询 系 信 息 班 级 信 息 学生信息 学生信息表 教师信息 教师信息表 学生信息 教师信息 班 级 信 息 班级信息 查询 系信息 班级信息表 系信息表 总 数 据 流 图 班级信息 查询 系信息

    3、逻辑结构设计

    -R 图向关系模型的转换(关系的码用下横线表出)教师(工作证号,姓名,职称,电话,系代号)代码表示:Teacher(Tno, Tname, Title, Tel, Dno 此为“教师”实体对应的关系模式。其中 1:n 联系“工作”与此关系模式合并,Dno 为外码。存在的函数 依赖为 Tno →(Tname,Title,Tel,Dno),且不存在多值依赖,所以满足 4NF。学生(学号,姓名,性别,出生年月,班号)代码表示:Student(Sno, Sname, Ssex, Sbirth, Class 此为“学生”实体对应的关系模式。其中 1:n 联系“属于”与此关系模式合并,Class 为外码。存在的函数 依赖为 Sno →(Sname,Ssex,Sbirth,Class),且不存在多值依赖,所以满足 4NF。系(系代号,系名,系办公室电话)代码表示:Department(Dno, Dname, Dphone 此为“系”实体对应的关系模式。存在的函数依赖为 Dno →(Dname,Dphone),且不存在多值依赖,所 以满足 4NF。课程(课序号,课名,学分,上课时间,名额,工作证号)代码表示:Course(Cno, Cname, Credit, Ctime, Cnum, Tno 此为“课程”实体对应的关系模式。其中 1:n 联系“授课”与此关系模式合并,Tno 为外码。存在的函数 依赖为 Cno →(Cname,Credit,Ctime,Cnum,Tno),且不存在多值依赖,所以满足 4NF。选课(学号,课序号,成绩)代码表示:SC(Sno, Cno, Grade 此为 m: 联系 n “选修” 所对应的关系模式。Sno 和 Cno 均为外部码。存在的函数依赖为完全函数依赖(Sno,Cno)→ Grade,且不存在多值依赖,所以满足 4NF。班级(班号,最低总学分,工作证号,系代号)代码表示:Class(Class, TotalCredit, Tno, Dno 此为“班级”实体对应的关系模式。其中 1:n 联系“属于”和 1:1 联系“负责”与此关系模式合并,Tno 和 Dno 为外码。该关系模式中存在传递函数依赖:Class → Tno,(Tno Class,Tno → Dno,可得 Class → Dno,故 Class 不属于

    3NF。解决方法是将其模式分解为:Class(Class, TotalCredit, Tno 和 T-D(Tno, Dno,分解后的关系模式满足 4NF,并且 T-D 与 Teacher 的码相同,可合并为同一模式。但 是考虑到系统要经常进行系的学生信息查询,此时就不得不对 Student、Class 和 Teacher 三个表进行连接 查询,而连接是影响查询效率的主要原因,所以取消对 Class 的模式分解。此时 Class 关系模式满足 2NF。

    设计用户子模式 为了方便程序查询,建立了如下用户视图:

    1、某系的学生信息视图(学号,姓名,性别,出生年月,班号)

    2、某系的教师信息视图(工作证号,教师姓名,职称,电话,负责班级)

    3、某课程的学生成绩单(学号,姓名,班级,成绩)

    4、教师授课信息表(工作证号,教师姓名,职称,教授课程,学分,上课时间)

    5、学生已选课表(课序号,课名,学分,授课教师,上课时间,名额)

    4、物理设计 4.1 选择存取方法

    1、数据库管理系统自动在每个表的主码上建立索引,通常为 B + 树索引。

    2、在 Student 表 Sname 列上建立 Stu_name 索引,因为查询操作很多都使通过学生姓名进行的。

    3、在 Teacher 表 Tname 列上建立 Tea_name 索引,因为查询操作很多都使通过教师姓名进行的。4.2 确定数据库的存储结构

    1、为了提高系统性能,根据具体情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部 分分开存放。

    2、DBMS 产品一般都提供了一些系统配置变量、存储分配参数,根据应用环境确定这些参数值,并且 在系统运行时还要根据系统实际运行情况进行调整,以使系统性能最佳。4.3 评价物理结构 根据所选用的 DBMS,如 SQL Server 2024,从定量估算各种方案的存储空间、存取时间和维护代价入 手,对估算结果进行权衡、比较,选择一个较优的合理的物理结构。

    5、系统实施 编写关系模式,载入数据。分期分批地组织数据入库,先输入小批量数据做调试用,待试运行基本合 格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价。需要注意的是,要首先调试运行 DBMS 的 恢复功能,做好数据库的转储和恢复工作。基本 SQL 语言代码如下: CREATE SCHEMA “TeachAffair” AUTHORIZATION Gao CREATE TABLE Department(Dno CHAR(3 PRIMARY KEY, Dept CHAR(20 UNIQUE NOT NULL, Dphone CHAR(11,;CREATE TABLE Teacher(Tno CHAR(6 PRIMARY KEY, Tname CHAR(20 NOT NULL, Title CHAR(8, Tel CHAR(11,Dno CHAR(3, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Class(Class CHAR(6 PRIMARY KEY, TotalCredit NUMERIC(4,1, Tno CHAR(6, Dno CHAR(3, FOREIGN KEY(Tno REFERENCES Teacher(Tno, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Student(Sno CHAR(11 PRIMARY KEY, Sname CHAR(20 NOT NULL, Ssex CHAR(2, Sbirth DATETIME, Class CHAR(6, FOREIGN KEY(Class REFERENCES Class(Class;CREATE TABLE Course(Cno CHAR(6 PRIMARY KEY, Cname CHAR(20 NOT NULL, Credit NUMERIC(2,1, Ctime DATETIME, Cnum SMALLINT, Tno CHAR(6, FOREIGN KEY(Tno REFERENCES Teacher(Tno;CREATE TABLE SC(Sno CHAR(11 NOT NULL, Cno CHAR(6 NOT NULL, Grade SMALLINT CHECK(Grade>=0 AND Grade<=100, PRIMARY KEY(Sno, Cno, FOREIGN KEY(Sno REFERENCES Student(Sno ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(Cno REFERENCES Course(Cno ON DELETE NO ACTION ON UPDATE CASCADE,;/*建立索引*/ CREATE UNIQUE INDEX Stu_name ON Student(Sname;CREATE UNIQUE INDEX Tea_name ON Teacher(Tname;CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC;/*查询某个系的学生信息*/ CREATE VIEW GIS_Student AS SELECT * FROM Student WHERE Class IN(SELECT Class FROM Class WHERE Dname='GIS' WITH CHECK OPTION;SELECT * FROM GIS_Student;SELECT COUNT(* FROM GIS_Student;/*查询班级的学生信息*/ SELECT Sno, Sname, Ssex, Birth FROM Student WHERE Class = '114072';SELECT COUNT(* FROM Student WHERE Class='114072';/*查询学生的成绩、学分*/ SELECT SC.Cno, Cname, Credit, Grade FROM Course, SC WHERE Sno = '20071000500' AND SC.Cno=Course.Cno;SELECT SUM(Credit FROM SC,Course WHERE Sno='20071000500' AND SC.Cno=Couse.Cno;/*查询教师授课信息*/ SELECT Course.* FROM Course WHERE Tno='100123';SELECT Student.Sno,Sname,Class,Grade FROM Course,SC,Student WHERE Tno='100123' AND Course.Cno=SC.Cno AND SC.Sno=Student.Sno;

    6、运行维护

    1、针对不同的应用要求制定不同的转储计划,一旦发生故障尽快将数据库恢复到某种一致的状态,并

    尽可能减少对数据库的破坏;

    2、根据实际情况修改数据库原有的安全性、完整性控制;

    3、在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法;

    4、数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低数据的 存取效率,数据库性能下降。这时应按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系 统性能。当原有的数据库设计不能满足新的需求,需要重构造数据库,调整数据库的模式和内模式。

    7、用户手册(<五号宋体>,具体内容:使用、操作说明。)

    8、附录(<五号宋体>,源程序清单和结果:源程序必须有注释,以及必要的测试数据和运行结果数据,提倡 用英文描述。)



    推荐阅读:
    教务系统数据库总结报告
    班主任案例
    洼里小学家长委员会工作计划2024
    华侨中学2024届高三语文备课组工作总结
    洮北区安全生产大排查工作总结
    中学生
    Top