西电数据库大作业学籍管理系统.docx

上传人:b****9 文档编号:26111476 上传时间:2023-06-17 格式:DOCX 页数:18 大小:103.17KB
下载 相关 举报
西电数据库大作业学籍管理系统.docx_第1页
第1页 / 共18页
西电数据库大作业学籍管理系统.docx_第2页
第2页 / 共18页
西电数据库大作业学籍管理系统.docx_第3页
第3页 / 共18页
西电数据库大作业学籍管理系统.docx_第4页
第4页 / 共18页
西电数据库大作业学籍管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

西电数据库大作业学籍管理系统.docx

《西电数据库大作业学籍管理系统.docx》由会员分享,可在线阅读,更多相关《西电数据库大作业学籍管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

西电数据库大作业学籍管理系统.docx

西电数据库大作业学籍管理系统

学籍管理系统

1、需求分析:

(1)、功能:

a使得学生的学籍管理工作更加清晰、条理化、自动化。

b容易地完成学生信息的查询、更新、修改等操作。

c对于学生成绩管理模块,能更加容易的求得学生的平均成绩、补考次数,所修的学分,最高分、最低分等,可以按照学生的成绩进行排序处理等,同时方便学生管理。

(2)、系统数据:

下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。

名称

注释

数据类型

长度

最小值

最大值

主要的

班级

varchar(16)

16

FALSE

学号

唯一标识学生的信息

integer

TRUE

院系代号

varchar(5)

5

FALSE

专业号

varchar(5)

5

FALSE

姓名

varchar(6)

6

FALSE

性别

varchar

(2)

2

FALSE

出生年月

datetime

FALSE

籍贯

varchar(8)

8

FALSE

民族

varchar

(2)

2

FALSE

家庭住址

varchar(20)

20

FALSE

入学时间

datetime

FALSE

政治面貌

varchar(6)

6

FALSE

身份证号

char(18)

18

FALSE

联系电话

varchar(12)

12

FALSE

备注

varchar(14)

14

FALSE

课程号

varchar(5)

5

TRUE

先行课

smallint

FALSE

学分

integer

FALSE

备注

varchar(16)

16

FALSE

院系代号

varchar(5)

5

TRUE

院系名

varchar(10)

10

FALSE

系主任

varchar(8)

8

FALSE

备注

varchar(16)

16

FALSE

教师号

varchar(5)

5

TRUE

院系代号

varchar(5)

5

FALSE

姓名

varchar(6)

6

FALSE

性别

char

(2)

2

FALSE

年龄

integer

FALSE

工龄

integer

FALSE

备注

varchar(16)

16

FALSE

专业号

varchar(5)

5

TRUE

院系代号

varchar(5)

5

FALSE

专业名称

varchar(16)

16

FALSE

备注

varchar(16)

16

FALSE

学号

integer

TRUE

课程号

varchar(5)

5

TRUE

分数

float

FALSE

课程号

varchar(5)

5

TRUE

教师号

varchar(5)

5

TRUE

(3)、数据结构:

分别如下表所示:

数据结构名

含义说明

组成

学生基本信息

学生基本信息的描述

班级+学号+院系代号+专业号+姓名+性别+出生年月

+籍贯+民族+家庭住址+入学时间+政治面貌+身份证号+联系电话+备注;

成绩管理

学生成绩的管理

与查询管理描述

学号+课程号+分数;

平均分数+最高分+最低分;

学生相关信息

学校的院系、教师信息以及课程信息的描述

课程号+课程名+先行课+学分+备注;

院系代号+院系名+系主任+备注;

教师号+院系代号+姓名+性别+年龄+工龄+备注;

系统管理

对系统中的所有表的更新、删除、修改描述

——————

 

2、概念结构设计

(1)、学生基本信息与课程信息视图:

学生基本信息视图课程信息视图

根据学生与课程的关系

可设计如下关系图:

(2)、专业院系与教师视图:

院系教师及专业关系图

(3)、E-R图:

合并数据抽象与局部视图设计中的各个局部视图以及各个实体之间的关系生成E-R图如下:

 

3、逻辑结构设计

关系模型如下:

 

4、应用程序设计:

(1)、触发器设计:

1.StudentInfo表上的出发器触发器:

对于学生基本信息表,当学生信息修改时,其它表中若有对应的该信息时,应该对其进行修改;当学生信息删除时,对应的如SC表中的对应学生成绩信息也应该自动修改:

 

①Supdata:

CREATETRIGGERSupdateON[dbo].[StudentsInfo]

FORUPDATE

AS

updateSC

set学号=(select学号frominserted)

whereSC.学号=(select学号fromdeleted);

②Sdelete:

CREATETRIGGERSdeleteON[dbo].[StudentsInfo]

FORDELETE

AS

DELETE

FROMSC

WHERESC.学号=(select学号fromdeleted);

2.Course表上的触发器:

其功能是当一个课程的信息改变时,或当一个课程的信息被删除时,相应的在SC和TC表中的相应信息修改或删除。

①Cupdata:

CREATETRIGGERCupdateON[dbo].[Course]

FORUPDATE

AS

updateSC

set课程号=(select课程号frominserted)

whereSC.课程号=(select课程号fromdeleted)

updateTC

setTC.课程号=(select课程号frominserted)

whereTC.课程号=(select课程号fromdeleted);

②Cdelete:

CREATETRIGGERCdeleteON[dbo].[Course]

FORDELETE

AS

DELETE

FROMSC

WHERESC.课程号=(select课程号fromdeleted)

DELETE

FROMTC

WHERETC.课程号=(select课程号fromdeleted);

;

3.Department表上的触发器:

当院系的代号改变时,对应的学生所在院系、专业所属院系以及教师所在院系都应当做相应的更改。

①Dupdata:

CREATETRIGGERDupdateON[dbo].[Department]

FORUPDATE

AS

updateStudentsInfo

setStudentsInfo.专业号=(select专业号frominserted)

whereStudentsInfo.专业号=(select专业号fromdeleted)

updateMajor

setMajor.专业号=(select专业号frominserted)

whereMajor.专业号=(select专业号fromdeleted)

updateTeacher

setTeacher.专业号=(select专业号frominserted)

whereTeacher.专业号=(select专业号fromdeleted);

4.Teacher表上的触发器:

当教师号改变或教师离任时,TC表上的信息应相应的得到改变。

①Tupdata:

CREATETRIGGERTupdateON[dbo].[Teacher]

FORUPDATE

AS

updateTC

setTC.教师号=(select教师号frominserted)

whereTC.教师号=(select教师号fromdeleted);

②Sdelete:

CREATETRIGGERTdeleteON[dbo].[Teacher]

FORDELETE

AS

DELETE

FROMTC

WHERETC.教师号=(select教师号fromdeleted);

5.Major表上的触发器:

当专业编号发生改变或专业取消,对应的学生表的专业号应该发生改变或置为空值。

①Mupdata:

CREATETRIGGERMupdateON[dbo].[Major]

FORUPDATE

AS

updateStudentsInfo

set专业号=(select专业号frominserted)

where专业号=(select专业号fromdeleted);

②Mdelete:

CREATETRIGGERMupdateON[dbo].[Major]

FORDELETE

AS

updateStudentsInfo

set专业号=NULL

where专业号=(select专业号fromdeleted);

(2)、应用程序:

-----------------------创建课程表-------------------

createtableCourse(

课程号varchar(5)notnull,

课程名varchar(10)null,

先行课smallintnull,

学分intnull,

备注varchar(16)null,

constraintPK_COURSEprimarykey(课程号)

go

executesp_addextendedproperty'MS_Description',

'学校所有课程描述',

'user','','table','Course'

go

-----------------------创建院系表-------------------

createtableDepartment(

院系代号varchar(5)notnull,

院系名varchar(10)null,

系主任varchar(8)null,

备注varchar(16)null,

constraintPK_DEPARTMENTprimarykey(院系代号)

go

executesp_addextendedproperty'MS_Description',

'学校所有的院系信息描述',

'user','','table','Department'

go

-----------------------创建专业表-------------------

createtableMajor(

专业号varchar(5)notnull,

院系代号varchar(5)null,

专业名称varchar(16)null,

备注varchar(16)null,

constraintPK_MAJORprimarykey(专业号)

go

executesp_addextendedproperty'MS_Description',

'学校所有专业信息描述',

'user','','table','Major'

go

-----------------------在专业表上创建索引-------------------

createindexDM_FKonMajor(

院系代号ASC

go

-----------------------创建学生与课程的成绩表----------------------

createtableSC(

学号bigintnotnull,

课程号varchar(5)notnull,

constraintPK_SCprimarykey(学号,课程号)

go

-----------------------在SC表上创建索引SC_FK与SC2_FK-------------------

createindexSC_FKonSC(

学号ASC

Go

createindexSC2_FKonSC(

课程号ASC

go

-----------------------创建学生基本信息表-------------------

createtableStudentsInfo(

班级varchar(16)null,

学号bigintnotnull,

院系代号varchar(5)null,

专业号varchar(5)null,

姓名varchar(6)null,

性别varchar

(2)null,

出生年月datetimenull,

籍贯varchar(8)null,

民族varchar

(2)null,

家庭住址varchar(20)null,

入学时间datetimenull,

政治面貌varchar(6)null,

身份证号char(18)null,

联系电话varchar(12)null,

备注varchar(14)null,

constraintPK_STUDENTSINFOprimarykey(学号)

go

executesp_addextendedproperty'MS_Description',

'学生基本信息描述',

'user','','table','StudentsInfo'

go

---------------------------创建院系代号索引------------------------------

createindexSD_FKonStudentsInfo(

院系代号ASC

go

--------------------------创建专业号索引------------------------------

createindexSM_FKonStudentsInfo(

专业号ASC

go

---------------------------创建教师与课程关系表------------------------------

createtableTC(

课程号varchar(5)notnull,

教师号varchar(5)notnull,

constraintPK_TCprimarykey(课程号,教师号)

go

---------------------------建立课程号索引------------------------------

createindexTC_FKonTC(

课程号ASC

go

--------------------------建立教师号索引------------------------------

createindexTC2_FKonTC(

教师号ASC

go

---------------------------创建教师表------------------------------

createtableTeacher(

教师号varchar(5)notnull,

院系代号varchar(5)null,

姓名varchar(6)null,

性别char

(2)null,

年龄intnull,

工龄intnull,

备注varchar(16)null,

constraintPK_TEACHERprimarykey(教师号)

go

executesp_addextendedproperty'MS_Description',

'学校教师信息描述',

'user','','table','Teacher'

go

---------------------------建立TD_FK索引------------------------------

createindexTD_FKonTeacher(

院系代号ASC

go

altertableMajor

addconstraintFK_MAJOR_DM_DEPARTMEforeignkey(院系代号)

referencesDepartment(院系代号)

go

altertableSC

addconstraintFK_SC_SC_STUDENTSforeignkey(学号)

referencesStudentsInfo(学号)

go

altertableSC

addconstraintFK_SC_SC2_COURSEforeignkey(课程号)

referencesCourse(课程号)

go

altertableStudentsInfo

addconstraintFK_STUDENTS_SD_DEPARTMEforeignkey(院系代号)

referencesDepartment(院系代号)

go

altertableStudentsInfo

addconstraintFK_STUDENTS_SM_MAJORforeignkey(专业号)

referencesMajor(专业号)

go

altertableTC

addconstraintFK_TC_TC_COURSEforeignkey(课程号)

referencesCourse(课程号)

go

altertableTC

addconstraintFK_TC_TC2_TEACHERforeignkey(教师号)

referencesTeacher(教师号)

go

altertableTeacher

addconstraintFK_TEACHER_TD_DEPARTMEforeignkey(院系代号)

referencesDepartment(院系代号)

go

 

5、总结:

此次数据库设计,受益匪浅,提升了自己的认识,虽然不全,但开始慢慢懂得数据库的设计流程,似乎能体会到其中的乐趣,训练思维,提升自我能力,将知识应用与实践。

在课程设计中,设计了一个学生学籍管理系统,其中包含了对学生基本信息的管理,学生必修课程以及成绩管理,学校教师资源管理,学校专业以及院系等。

基本上包含了学籍管理所要求的信息,能够完成一定的数据管理功能。

但是这是一个完全不能真正用与实际的系统,它没有操作界面,没有完善的数据完整性的约束,也不具有可靠的安全性。

但总之在设计当中我们学习到了许多东西,用到了很多的数据库的理论知识,增强了一定的实践能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1