数据库设计实例Word格式文档下载.docx
《数据库设计实例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库设计实例Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
![数据库设计实例Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/25/7c5f636d-0c83-4339-8653-a79a22ab9250/7c5f636d-0c83-4339-8653-a79a22ab92501.gif)
总体任务是要实现学生成绩信息关系的系统化、规范化和自动化。
根据总体任务的要求进行需求分析得出,学生成绩管理信息系统需要完成的功能主要如下:
Ø
学生基本信息的输入,其中包括学生学号、姓名、性别、所属学院,所属系别,所属班级、出生年月、籍贯、宿舍、联系方式等。
学校基本课程信息的输入,包括课程编号、课程名称、课程属性、课程描述以及完成该课程所得的学分。
教师基本信息的输入,其中包括教师编号,教师姓名,教师职称,所教课程,所教班级等情况
学生信息,教师信息,课程信息,学生考试成绩的插入,删除,修改、查询和统计。
识别每个用户的身份和密码,从而保证信息的安全性,防止信息的外泄和盗用。
还有,涉及到信息的增,删,改的,主要都是面向教务管理员,教师只能录入成绩,查询成绩,修改成绩,和查询个人信息,而学生只能登录查看自己的信息,查询成绩等。
二:
学生登录
个人
信息
查询课程
查询成绩
及格课程
班里排名
系里排名
院里排名
不及格课程
总分
单科
基本信息
登录信息
修改密码
E-R图(概念结构建立)
1)学生查询系统的分E-R图
学生
登录
学号
查询
个人信息
学号
性别
班号
籍贯
入学年份
学院号
系号
宿舍
出生年月
课程信息
课程名
课程属性
学分
课程号
课程描述
成绩信息
成绩
绩点
2)教师查询更新系统的分E-R图
教师
教师号
学生信息
修改
插入
3)管理员分E-R图
管理员
教师信息
删除
查看
4)总E-R图
授权
学生管理系统
教师管理系统
学生管理系统E-R图
教师查询更新系统的分E-R图
本系统将使用Access2000作为数据库管理系统。
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
这是所有表的建立
学生信息表
列名
数据类型
长度
可否为空
是否主键
是否外键
缺省值
备注
SNO
char
12
N
Y
学生学号
SSEX
2
学生性别
SNAME
8
学生姓名
COMY
4
CLNO
MNO
系号
CLANO
6
班号
TEL
11
联系电话
DEPT
10
BIRTH
HT
16
学院信息表
CLNAME
24
学院名称
CLPP
int
学院人数
专业信息表
MNAME
系名
MPP
00
系里人数
班级信息表
Char
CLANAME
班级名称
班级人数
课程信息表
CNO
CNAME
课程名称
CTERM
开课学期
CREDIT
1
课程学分
CTYPE
LESNO
周学时
成绩信息表
SGRD
float
学生成绩
教师信息表
TNO
教师编号
TNAME
教师名称
TSEX
教师性别
TPOST
教师职称
TDARP
所属部门
教师与课程对应表
用户登录信息表
USER
用户编号
PASSWORD
welcome
登录密码
USER_KIND
用户类型
这个阶段的主要任务是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法等。
代码设计:
院号:
两位整数(00~99),其中00用于另外的用途
系号:
院号+两位整数(00~99),其中00用于另外的用途
班号:
系号+两位整数(00~99)
学号:
班号+班里序号(两位整数00~99)
课程编码:
系号+三位整数(000~999),其中院号为00时,表示为校内的公共课,系号为00时,表示为院内的公共课
教师编码:
院号+六位整数(后六位编号按先来后到的顺序随机给出未被占用的编号)
建立所有表的代码
1.建立学生表
createtablestudent_infor
(SNOchar(12)NOTNULLUNIQUECHECK(SNOLIKE'
[1-2][0,9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
),
SNAMEchar(8)NOTNULLCHECK(SNAMENOTLIKE'
%[0-9]%'
SSEXchar
(2)NOTNULLCHECK(SSEXLIKE'
男'
ORSSEXLIKE'
女'
COMYchar(4)NOTNULLCHECK(COMYLIKE'
[1-2][0,9][0-9][0-9]'
CLNOchar
(2)NOTNULLUNIQUECHECK(CLNOLIKE'
[0-9][0-9]'
MNOchar(4)NOTNULLUNIQUECHECK(MNOLIKE'
[0-9][0-9][0-9][0-9]'
CLANOchar(6)NOTNULLUNIQUECHECK(CLANOLIKE'
[0-9][0-9][0-9][0-9][0-9][0-9]'
TELchar(11)CHECK(TELLIKE'
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
DEPTchar(10)NOTNULLCHECK(DEPTLIKE'
[0-9]栋[2-7][1-3][0-9]'
BIRTHchar(10)NOTNULLCHECK(BIRTHLIKE'
19[8,9][0-9]-%[0-9]-[0-3][0-9]'
),
HTchar(16)NOTNULLCHECK(HTNOTLIKE'
PrimaryKey(SNO));
2.建立学院信息表
createtablecollege_infor
(CLNOchar
(2)NOTNULLUNIQUECHECK(CLNOLIKE'
CLNAMEchar(24)NOTNULLCHECK(CLNAMENOTLIKE'
ANDCLNAMENOTLIKE'
%[A-Z]%'
%[a-z]%'
ANDCLNAMELIKE'
%学院'
CLPPintNOTNULLCHECK(CLPP<
10000ANDCLPP>
0),
PrimaryKey(CLNO));
3.建立专业信息表
createtablemajoy_infor
(MNOchar(4)NOTNULLUNIQUECHECK(MNOLIKE'
MNAMEchar(16)NOTNULLUNIQUECHECK(MNAMENOTLIKE'
ANDMNAMENOTLIKE'
MPPintNOTN