教务管理信息系统的数据库设计实例.docx

上传人:b****7 文档编号:11228462 上传时间:2023-02-25 格式:DOCX 页数:21 大小:21.08KB
下载 相关 举报
教务管理信息系统的数据库设计实例.docx_第1页
第1页 / 共21页
教务管理信息系统的数据库设计实例.docx_第2页
第2页 / 共21页
教务管理信息系统的数据库设计实例.docx_第3页
第3页 / 共21页
教务管理信息系统的数据库设计实例.docx_第4页
第4页 / 共21页
教务管理信息系统的数据库设计实例.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

教务管理信息系统的数据库设计实例.docx

《教务管理信息系统的数据库设计实例.docx》由会员分享,可在线阅读,更多相关《教务管理信息系统的数据库设计实例.docx(21页珍藏版)》请在冰豆网上搜索。

教务管理信息系统的数据库设计实例.docx

教务管理信息系统的数据库设计实例

***大学

本科生设计性实验报告

课程名称:

数据库系统

实验项目名称:

教务管理信息系统

数据库设计

学生:

姓名学号

班级***班第组

***至***学年第*学期

****年*月**日

1.引言

制作教务管理信息系统的目的是为学校学生提供一个方便创建教师、学生信息的工具,实现能够方便、快捷的查询信息。

本系统功能概述:

(1)管理员通过后台数据库管理系统插入、修改、删除课表,并把相应信息保存到数据库中。

(2)用户浏览所有挂牌课课程,教师,学生的信息。

(3)用户查询课程,系统输出该课程所有信息。

(4)双击某门课程,即选中该门课,把这门课放到课表里

(5)统计已选课程的学分。

(6)根据用户查询的课程,系统排列出所有课表并输出。

(7)用户增加、修改、删除查询的课程,系统从新排列所有课表并输出。

(8)若管理员/用户输入信息有误,系统报错。

1.1编写目的

管理信息系统是进行信息的采集,存储,修改,维护,备份和使用的系统,它是随着管理科学和技术科学的发展而形成的.教务管理信息系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教务管理信息系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的信息以及选课等。

1.2背景

项目名称:

教务管理信息系统(Educationaladministrationinformationsystem简称EAIS)。

项目提出者:

EAIS项目组织人员。

项目开发者:

EAIS项目开发小组。

项目鉴定者:

***老师和各位同学。

项目开始时间:

****。

1.3定义

列出本文件中用到的专门术语的定义和缩写词的源词组。

1.所有的表名的命名规则:

用该表的英文含义,首字母必须大写,如学生表:

Student.

2.所有的主键命名规则:

用“表名_PK“表示.

3.所有外键的命名规则:

用”本表名_FK”表示.

4.所有规则的命名规则:

用具有实际含义的英文单词组成.

5.所有索引的命名规则:

用“表名_IX“表示.

6.所有字段的命名规则:

用具有实际含义的英文单词组成.

7所有的触发器名用”表名+Update/Insert/Delete”组成.

8.所有的变量、属性、约束和规则必须给出详细的注解.

9.所有的存储过程用pro+具有实际含义的英文单词组成.

10.所有的函数名用fun+具有实际含义的英文单词组成.

2.数据字典

2.1学院表Depart

用于说明学院基本信息中的记载

2.1.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

DepartmentNo

Char(3)

NOTNULL

主键

学院编号

DepartmentName

Varchar2(30)

NULL

unique

学院名称

Manager

Varchar2(20)

NULL

院长

Telephone

Varchar2(20)

NULL

办公室电话

2.2班级表Class

用于记载班级基本信息

2.2.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

ClassNo

Char(5)

NOTNULL

主键、届数+流水号

班级编号

ClassName

Varchar2(30)

NULL

unique

班级名称

TeacherNo

Char(8)

NULL

外键

班主任编号

MonitorNo

Char(8)

NULL

外键

班长编号

DepartNo

Char(3)

NOTNULL

外键

学院编号

2.3学生表Student

用于存储学生基本信息

2.3.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

StudentNo

Char(8)

NOTNULL

主键、届数+流水号

学号

StudentName

Varchar2(20)

NOTNULL

学生姓名

Sex

Varchar2

(2)

NULL

“男”

只取“男”、“女”

性别

DepartmentNo

Char(3)

NOTNULL

外键

学院编号

ClassNo

Char(5)

NOTNULL

外键

班级编号

BirthdayDate

date

NULL

出生日期

FamilyAddress

Varchar2(30)

NULL

unique

家庭地址

QQ

Varchar2(20)

NULL

unique

QQ号码

Telephone

Varchar2(20)

NULL

unique

移动电话

StudentImage

blob

NULL

相片

StudentMemo

Varchar2(300)

NULL

/*备注*/

createindexStudent_IXonStudent(StudentNo)pctfree30tablespaceMyspaceIndex;

2.4教师表Teacher

用于存储教师基本信息

2.4.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

TeacherNo

Char(8)

NOTNULL

主键

教师编号

TeacherName

Varchar2(20)

NOTNULL

教师姓名

Sex

Varchar2

(2)

NULL

“男”

只取“男”、“女”

性别

Position

Varchar2(20)

NULL

职称

Telephone

Varchar2(20)

NULL

移动电话

DepartmentNo

Char(3)

NOTNULL

学院编号

TeacherMemo

varchar2(1000)

NULL

/*备注*/

createindexTeacher_IXonTeacher(TeacherNO)pctfree30tablespaceMyspaceIndex;

2.5学生选课表Student_Coursing

用于存储学生所选的课基本信息

2.5.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

StudentNo

Varchar2(9)

NOTNULL

主键

学号

CourseNo

Varchar2(6)

NOTNULL

课程代码

CourseName

Varchar2(20)

NOTNULL

课程名称

TeacherNo

Varchar2(9)

NOTNULL

教师编号

2.6课程表Course

用于存储管理员创建的课程基本信息

2.6.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

CourseNo

Char(5)

NOTNULL

主键

课程代码

CourseName

Varchar2(20)

NULL

课程名称

Grades

Char

(1)

NULL

学分

ClassLeaves

Char(3)

NULL

班别

SchoolHours

Char(5)

NULL

上课时间

TeacherName

Varchar2(20)

NULL

教师姓名

Position

Varchar2(20)

NULL

职称

Capacity

Char(3)

NULL

容量

2.7用户权限表PrivilegeUsers

用于定义用户角色基本信息

2.7.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

PrivilegeCode

Char

(1)

NOTNULL

主键

权限代码

UserName

Varchar2(80)

NOTNULL

用户名称

2.8超级管理员登陆表Super_Login

用于存储管理员的编号和密码

2.8.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

SuperNo

Char(8)

NOTNULL

主键

管理员编号

Password

Char(10)

NOTNULL

密码

PrivilegeCode

Char

(1)

NOTNULL

权限代码

2.9学生登陆表Student_Login

用于存储学生的编号和密码

2.9.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

StudentNo

Char(8)

NOTNULL

主键

学号

Password

Char(10)

NOTNULL

密码

PrivilegeCode

Char

(1)

NOTNULL

权限代码

3.0教师登陆表Teacher_Login

用于存储教师的编号和密码

3.0.1字典结构

属性名称

属性类型

是否允许空

默认值

约束

含义

TeacherNo

Char(8)

NOTNULL

主键

教师编号

Password

Char(10)

NOTNULL

密码

PrivilegeCode

Char

(1)

NOTNULL

权限代码

3.数据库脚本设计

3.1学院表Depart

CREATETABLEDepart(

DepartNoChar(3)NOTNULL,/*学院编号*/

DepartNameVarchar2(30)NULL,/*学院名称*/

ManagerVarchar2(20)NULL,/*院长*/

TelephoneVarchar2(20)NULL,/*办公室电话*/

constraintDepart_PKprimarykey(DepartNo));

学院编号的组成为:

字符。

该表允许操作员和系统管理员可以修改,其他人员仅不可以。

3.2班级表Class

CREATETABLEClass(

ClassNoVarchar2(8)NOTNULL,/*班级编号*/

ClassNameVarchar2(30)NULL,/*班级名称*/

TeacherNoVarchar2(9)NULL,/*班主任编号*/

MonitorNoChar(9)NULL,/*班长编号*/

DepartNoChar(3)NOTNULL,/*学院编号*/

constraintClass_PKprimarykey(ClassNo),

constraintClass_FK1foreignkey(DepartNo)referencesDepart(DepartNo),

constraintClass_FK2foreignkey(TeacherNo)referencesTeacher(TeacherNo)

);

课程编号必须用外键(学院编号,班主任编号)关联。

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.3学生表Student

CREATETABLEStudent(

StudentNoVarchar2(9)NOTNULL,/*学号*/

StudentNameVarchar2(20)NOTNULL,/*学生姓名*/

SexVarchar2

(2)

check(sexin('男','女'))NULL,/*性别*/

DepartNoChar(3)NOTNULL,/*学院编号*/

ClassNoVarchar2(8)NOTNULL,/*班级编号*/

BirthdayDatedateNULL,/*出生日期*/

FamilyAddressVarchar2(30)NULL,/*家庭地址*/

QQVarchar2(20)NULL,/*QQ号码*/

TelephoneVarchar2(20)NULL,/*移动电话*/

StudentImageblobNULL,/*相片*/

StudentMemovarchar2(1000)NULL,/*备注*/

constraintStudent_PKprimarykey(StudentNo),

constraintStudent_FK1foreignkey(ClassNo)referencesClass(ClassNo),

constraintStudent_FK2foreignkey(DepartNo)referencesDepart(DepartNo)

);

学号必须用外键(班级编号,学院编号)关联。

createindexStudent_IXonStudent(StudentNo)pctfree30tablespaceMyspaceIndex;

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.4教师表Teacher

CREATETABLETeacher(

TeacherNoVarchar2(9)NOTNULL,/*教师编号*/

TeacherNameVarchar2(20)NOTNULL,/*教师姓名*/

SexVarchar2(3)

check(sexin('男','女'))NULL,/*性别*/

PositionVarchar2(20)NULL,/*职称*/

TelephoneVarchar2(20)NULL,/*移动电话*/

DepartNoChar(3)NOTNULL,/*学院编号*/

TeacherMemovarchar2(1000)null,

constraintTeacher_PKprimarykey(TeacherNo),

constraintTeacher_FK1foreignkey(DepartNo)referencesDepart(DepartNo)

);

教师编号必须用外键(学院编号)关联。

createindexTeacher_IXonTeacher(TeacherNO)pctfree30tablespaceMyspaceIndex;

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.5课程表Course

CREATETABLECourse(

Numnumber(3)NOTNULL,

CourseNoVarchar2(6)NOTNULL,/*课程代码*/

CourseNameVarchar2(20)NOTNULL,/*课程名称*/

GradesVarchar2

(2)NULL,/*学分*/

ClassLeavesVarchar2(4)NULL,/*班别*/

SchoolHoursVarchar2(6)NULL,/*上课时间*/

TeacherNoVarchar2(9)NOTNULL,/*教师编号*/

CapacityVarchar2(3)NULL,/*容量*/

constraintCourse_PKprimarykey(Num),

constraintCourse_FK1foreignkey(TeacherNo)referencesTeacher(TeacherNo)

);

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.6学生选课表Student_Coursing

CREATETABLEStudent_Coursing(

StudentNoVarchar2(9)NOTNULL,/*学号*/

CourseNoVarchar2(6)NOTNULL,/*课程代码*/

CourseNameVarchar2(20)NOTNULL,/*课程名称*/

TeacherNoVarchar2(9)NOTNULL,/*教师编号*/

constraintStudent_Coursing_PKprimarykey(StudentNo),

constraintStudent_Coursing_FK1foreignkey(StudentNo)referencesStudent(StudentNo),

constraintStudent_Coursing_FK3foreignkey(TeacherNo)referencesTeacher(TeacherNo)

);

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.7用户权限表PrivilegeUsers

CREATETABLEPrivilegeUsers(

PrivilegeCodeChar

(2)NOTNULL,/*权限代码*/

UserNameVarchar2(80)NOTNULL,/*用户名称*/

constraintPrivilege_PKprimarykey(PrivilegeCode)

);

该表允许操作员和系统管理员可以修改,其他人员仅可以查询。

3.8教师登陆表Teacher_Login

CREATETABLETeacher_Login(

TeacherNoVarchar2(9)NOTNULL,/*教师编号*/

PasswordVarchar2(10)NOTNULL,/*密码*/

PrivilegeCodeChar

(2)NOTNULL,/*权限代码*/

constraintTeacher_Login_PKprimarykey(TeacherNo),

constraintTeacher_Login_FK1foreignkey(TeacherNo)referencesTeacher(TeacherNo)

);

3.9超级管理员登陆表Super_Login

CREATETABLESuper_Login(

SuperNoVarchar2(9)NOTNULL,/*管理员编号*/

PasswordVarchar2(10)NOTNULL,/*密码*/

PrivilegeCodeChar

(2)NOTNULL,/*权限代码*/

constraintSuper_Login_PKprimarykey(SuperNo)

);

4.0学生登陆表Student_Login

CREATETABLEStudent_Login(

StudentNoVarchar2(9)NOTNULL,/*学号*/

PasswordVarchar2(10)NOTNULL,/*密码*/

PrivilegeCodeChar

(1)NOTNULL,

/*权限代码*/

constraintStudent_Login_PKprimarykey(StudentNo),

constraintStudent_Login_FK1foreignkey(StudentNo)referencesStudent(StudentNo)

);

4.1触发器设计

4.1.1功能:

当插入教师编号时,编号必须满足为数字

CREATEorREPLACETRIGGERTeacherIns

beforeinsert

ONTeacher

FOReachrow

declare

myErrorEXCEPTION;/*出错处理*/

varLeftchar(4);/*编号前4位*/

varMidchar(4);/*编号第5位*/

varRightchar(3);/*编号后3位*/

inumber;

begin

ifLENGTH(:

new.TeacherNo)!

=8then

RAISEmyError;

endif;

varLeft:

=SUBSTR(:

new.TeacherNo,1,4);

varMid:

=SUBSTR(:

new.TeacherNo,5,1);

varRight:

=SUBSTR(:

new.TeacherNo,6,3);

ifvarMid!

='-'then

RAISEmyError;

endif;

foriin1..4

loop

if(SUBSTR(varLeft,i,1)<'0'orSUBSTR(varLeft,i,1)>'9')then

RAISEmyError;

exit;

endif;

endloop;

foriin1..3

loop

if(SUBSTR(varRight,i,1)<'0'orSUBSTR(varRight,i,1)>'9')then

RAISEmyError;

exit;

endif;

endloop;

EXCEPTION

WHENmyError

THEN

:

new.TeacherNo:

=NULL;

end;

4.1.2功能:

当修改教师编号时,编号必须满足为数字

CREATEorREPLACETRIGGERTeacherUpdate

beforeupdateofTeacherNo

ONTeacher

FOReachrow

declare

myErrorEXCEPTION;/*出错处理*/

varLeftchar(4);/*编号前4位*/

varMidchar(4);/*编号第5位*/

varRightchar(3);/*编号后3位*/

inumber;

begin

ifLENGTH(:

new.TeacherNo)!

=8then

RAISEmyError;

endif;

varLeft:

=SUBSTR(:

new.TeacherNo,1,4);

varMid:

=SUBSTR(:

new.TeacherNo,5,1);

varRight:

=SUBSTR(:

new.TeacherNo,6,3);

ifvarMid!

='-'then

RAISEmyError;

endif;

foriin1..4

loop

if(SUBSTR(varLeft,i,1)<'0'

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

当前位置:首页 > 初中教育 > 其它课程

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

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