1、西电数据库大作业学籍管理系统 学籍管理系统1、需求分析:(1)、功能:a 使得学生的学籍管理工作更加清晰、条理化、自动化。b 容易地完成学生信息的查询、更新、修改等操作。c 对于学生成绩管理模块,能更加容易的求得学生的平均成绩、补考次数,所修的学分,最高分、最低分等,可以按照学生的成绩进行排序处理等,同时方便学生管理。(2)、系统数据:下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。名称注释数据类型长度最小值最大值主要的班级varchar(16)16FALSE学号唯一标识学生的信息integerTRUE院系代号varchar(5)5FALSE专业号varchar(
2、5)5FALSE姓名varchar(6)6FALSE性别varchar(2)2FALSE出生年月datetimeFALSE籍贯varchar(8)8FALSE民族varchar(2)2FALSE家庭住址varchar(20)20FALSE入学时间datetimeFALSE政治面貌varchar(6)6FALSE身份证号char(18)18FALSE联系电话varchar(12)12FALSE备注varchar(14)14FALSE课程号varchar(5)5TRUE先行课smallintFALSE学分integerFALSE备注varchar(16)16FALSE院系代号varchar(5)5
3、TRUE院系名varchar(10)10FALSE系主任varchar(8)8FALSE备注varchar(16)16FALSE教师号varchar(5)5TRUE院系代号varchar(5)5FALSE姓名varchar(6)6FALSE性别char(2)2FALSE年龄integerFALSE工龄integerFALSE备注varchar(16)16FALSE专业号varchar(5)5TRUE院系代号varchar(5)5FALSE专业名称varchar(16)16FALSE备注varchar(16)16FALSE学号integerTRUE课程号varchar(5)5TRUE分数floa
4、tFALSE课程号varchar(5)5TRUE教师号varchar(5)5TRUE(3)、数据结构:分别如下表所示:数据结构名含义说明组成学生基本信息学生基本信息的描述班级+学号+院系代号+专业号+姓名+性别+出生年月+籍贯+民族+家庭住址+入学时间+政治面貌+身份证号+联系电话+备注;成绩管理学生成绩的管理与查询管理描述学号+课程号+分数;平均分数+最高分+最低分;学生相关信息学校的院系、教师信息以及课程信息的描述课程号+课程名+先行课+学分+备注;院系代号+院系名+系主任+备注;教师号+院系代号+姓名+性别+年龄+工龄+备注;系统管理对系统中的所有表的更新、删除、修改描述2、概念结构设计
5、(1)、学生基本信息与课程信息视图: 学生基本信息视图 课程信息视图 根据学生与课程的关系可设计如下关系图:(2)、专业 院系与教师视图: 院系 教师及专业关系图(3)、E-R图: 合并数据抽象与局部视图设计中的各个局部视图以及各个实体之间的关系生成E-R图如下:3、逻辑结构设计关系模型如下:4、应用程序设计:(1)、触发器设计:1StudentInfo 表上的出发器触发器:对于学生基本信息表,当学生信息修改时,其它表中若有对应的该信息时,应该对其进行修改;当学生信息删除时,对应的如SC表中的对应学生成绩信息也应该自动修改: Supdata:CREATE TRIGGER Supdate ON
6、dbo.StudentsInfo FOR UPDATE AS update SC set 学号 = ( select 学号 from inserted) where SC.学号=(select 学号 from deleted) ; Sdelete:CREATE TRIGGER Sdelete ON dbo.StudentsInfo FOR DELETE AS DELETE FROM SC WHERE SC.学号=(select 学号 from deleted) ;2. Course表上的触发器:其功能是当一个课程的信息改变时,或当一个课程的信息被删除时,相应的在SC和TC表中的相应信息修改或删
7、除。 Cupdata:CREATE TRIGGER Cupdate ON dbo.Course FOR UPDATE AS update SC set 课程号 = ( select 课程号 from inserted) where SC.课程号=(select 课程号 from deleted) update TC set TC.课程号 = ( select 课程号 from inserted) where TC.课程号=(select 课程号 from deleted) ; Cdelete:CREATE TRIGGER Cdelete ON dbo.Course FOR DELETE AS
8、DELETE FROM SC WHERE SC.课程号=(select 课程号 from deleted)DELETE FROM TC WHERE TC.课程号=(select 课程号 from deleted) ; ;3Department表上的触发器:当院系的代号改变时,对应的学生所在院系、专业所属院系以及教师所在院系都应当做相应的更改。 Dupdata:CREATE TRIGGER Dupdate ON dbo.Department FOR UPDATE AS update StudentsInfo set StudentsInfo.专业号 = ( select专业号from inser
9、ted) where StudentsInfo.专业号=(select 专业号 from deleted) update Major set Major.专业号 = ( select专业号from inserted) where Major.专业号=(select 专业号 from deleted) update Teacher set Teacher.专业号 = ( select专业号from inserted) where Teacher.专业号=(select 专业号 from deleted);4Teacher 表上的触发器:当教师号改变或教师离任时,TC表上的信息应相应的得到改变。
10、Tupdata:CREATE TRIGGER Tupdate ON dbo.Teacher FOR UPDATE AS update TC set TC.教师号 = ( select 教师号 from inserted) where TC.教师号=(select 教师号 from deleted) ; Sdelete:CREATE TRIGGER Tdelete ON dbo.Teacher FOR DELETE AS DELETE FROM TC WHERE TC.教师号=(select 教师号 from deleted) ; 5Major表上的触发器:当专业编号发生改变或专业取消,对应的学
11、生表的专业号应该发生改变或置为空值。 Mupdata:CREATE TRIGGER Mupdate ON dbo.Major FOR UPDATE AS update StudentsInfo set 专业号= ( select 专业号 from inserted) where 专业号=(select 专业号 from deleted) ; Mdelete:CREATE TRIGGER Mupdate ON dbo.Major FOR DELETE AS update StudentsInfo set 专业号 = NULL where 专业号=(select 专业号 from deleted)
12、 ;(2)、应用程序:-创建课程表-create table Course ( 课程号 varchar(5) not null, 课程名 varchar(10) null, 先行课 smallint null, 学分 int null, 备注 varchar(16) null, constraint PK_COURSE primary key (课程号)goexecute sp_addextendedproperty MS_Description, 学校所有课程描述, user, , table, Coursego-创建院系表-create table Department ( 院系代号 va
13、rchar(5) not null, 院系名 varchar(10) null, 系主任 varchar(8) null, 备注 varchar(16) null, constraint PK_DEPARTMENT primary key (院系代号)goexecute sp_addextendedproperty MS_Description, 学校所有的院系信息描述, user, , table, Departmentgo-创建专业表-create table Major ( 专业号 varchar(5) not null, 院系代号 varchar(5) null, 专业名称 varch
14、ar(16) null, 备注 varchar(16) null, constraint PK_MAJOR primary key (专业号)goexecute sp_addextendedproperty MS_Description, 学校所有专业信息描述, user, , table, Majorgo-在专业表上创建索引-create index DM_FK on Major (院系代号 ASC)go-创建学生与课程的成绩表-create table SC ( 学号 bigint not null, 课程号 varchar(5) not null, constraint PK_SC pr
15、imary key (学号, 课程号)go-在SC表上创建索引SC_FK与SC2_FK-create index SC_FK on SC (学号 ASC)Gocreate index SC2_FK on SC (课程号 ASC)go-创建学生基本信息表-create table StudentsInfo ( 班级 varchar(16) null, 学号 bigint not null, 院系代号 varchar(5) null, 专业号 varchar(5) null, 姓名 varchar(6) null, 性别 varchar(2) null, 出生年月 datetime null, 籍
16、贯 varchar(8) null, 民族 varchar(2) null, 家庭住址 varchar(20) null, 入学时间 datetime null, 政治面貌 varchar(6) null, 身份证号 char(18) null, 联系电话 varchar(12) null, 备注 varchar(14) null, constraint PK_STUDENTSINFO primary key (学号)goexecute sp_addextendedproperty MS_Description, 学生基本信息描述, user, , table, StudentsInfogo-
17、创建院系代号索引-create index SD_FK on StudentsInfo (院系代号 ASC)go-创建专业号索引-create index SM_FK on StudentsInfo (专业号 ASC)go-创建教师与课程关系表-create table TC ( 课程号 varchar(5) not null, 教师号 varchar(5) not null, constraint PK_TC primary key (课程号, 教师号)go-建立课程号索引-create index TC_FK on TC (课程号 ASC)go-建立教师号索引-create index T
18、C2_FK on TC (教师号 ASC)go-创建 教师表-create table Teacher ( 教师号 varchar(5) not null, 院系代号 varchar(5) null, 姓名 varchar(6) null, 性别 char(2) null, 年龄 int null, 工龄 int null, 备注 varchar(16) null, constraint PK_TEACHER primary key (教师号)goexecute sp_addextendedproperty MS_Description, 学校教师信息描述, user, , table, Te
19、achergo-建立TD_FK 索引-create index TD_FK on Teacher (院系代号 ASC)goalter table Major add constraint FK_MAJOR_DM_DEPARTME foreign key (院系代号) references Department (院系代号)goalter table SC add constraint FK_SC_SC_STUDENTS foreign key (学号) references StudentsInfo (学号)goalter table SC add constraint FK_SC_SC2_C
20、OURSE foreign key (课程号) references Course (课程号)goalter table StudentsInfo add constraint FK_STUDENTS_SD_DEPARTME foreign key (院系代号) references Department (院系代号)goalter table StudentsInfo add constraint FK_STUDENTS_SM_MAJOR foreign key (专业号) references Major (专业号)goalter table TC add constraint FK_TC
21、_TC_COURSE foreign key (课程号) references Course (课程号)goalter table TC add constraint FK_TC_TC2_TEACHER foreign key (教师号) references Teacher (教师号)goalter table Teacher add constraint FK_TEACHER_TD_DEPARTME foreign key (院系代号) references Department (院系代号)go5、总结: 此次数据库设计,受益匪浅,提升了自己的认识,虽然不全,但开始慢慢懂得数据库的设计流程,似乎能体会到其中的乐趣,训练思维,提升自我能力,将知识应用与实践。 在课程设计中,设计了一个学生学籍管理系统,其中包含了对学生基本信息的管理,学生必修课程以及成绩管理,学校教师资源管理,学校专业以及院系等。基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。但是这是一个完全不能真正用与实际的系统,它没有操作界面,没有完善的数据完整性的约束,也不具有可靠的安全性。但总之在设计当中我们学习到了许多东西,用到了很多的数据库的理论知识,增强了一定的实践能力。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1