教务管理系统 第3页
2.4.4.7创建“选课”数据表
CREATE TABLE 选课
(学号 VARCHAR(14) NOT NULL,
课程编号 VARCHAR(8) NOT NULL,
课序号 VARCHAR(14) NOT NULL,)
2.4.4.8创建其他关键数据表
CREATE TABLE 政治面貌代码表
(政治面貌编号 CHAR(2) NOT NULL,
政治面貌 VARCHAR(14))
GO
CREATE TABLE 民族代码表
(民族编号 CHAR(2) NOT NULL,
民族 VARCHAR(18))
GO
CREATE TABLE 学籍代码表
(学籍编号 CHAR(2) NOT NULL,
学籍名称 VARCHAR(8))
GO
CREATE TABLE 籍贯代码表
(籍贯编号 CHAR(2) NOT NULL,
籍贯 VARCHAR(18))
GO
2.4.5数据库完整性
在SQL查询分析器中通过如下代码创建数据表的主键及外键等表约束。
2.4.5.1实体完整性
--主键关联字段
ALTER TABLE 学生 WITH NOCHECK ADD
CONSTRAINT PK_学生 PRIMARY KEY CLUSTERED (学号)
GO
ALTER TABLE 学籍代码表 WITH NOCHECK ADD
CONSTRAINT PK_学籍代码表 PRIMARY KEY CLUSTERED (学籍编号)
GO
ALTER TABLE 成绩表 WITH NOCHECK ADD
CONSTRAINT PK_成绩表 PRIMARY KEY CLUSTERED (学号,课程编号)
GO
ALTER TABLE 政治面貌代码表 WITH NOCHECK ADD
CONSTRAINT PK_政治面貌代码表 PRIMARY KEY CLUSTERED(政治面貌编号)
GO
ALTER TABLE 民族代码表 WITH NOCHECK ADD
CONSTRAINT PK_民族代码表 PRIMARY KEY CLUSTERED(民族编号)
GO
ALTER TABLE 班级 WITH NOCHECK ADD
CONSTRAINT PK_班级 PRIMARY KEY CLUSTERED (班级编号)
GO
ALTER TABLE 籍贯代码表 WITH NOCHECK ADD
CONSTRAINT PK_籍贯代码表 PRIMARY KEY CLUSTERED (籍贯编号)
GO
ALTER TABLE 课程信息 WITH NOCHECK ADD
CONSTRAINT PK_课程信息 PRIMARY KEY CLUSTERED (课程编号)
GO
ALTER TABLE 选课 WITH NOCHECK ADD
CONSTRAINT PK_选课 PRIMARY KEY CLUSTERED (学号,课程编号)
GO
ALTER TABLE 课程表 WITH NOCHECK ADD
CONSTRAINT PK_课程表 PRIMARY KEY CLUSTERED (课程编号,课序号)
GO
ALTER TABLE 费用 WITH NOCHECK ADD
CONSTRAINT PK_费用 PRIMARY KEY CLUSTERED (费用单号)
GO
2.4.5.2参照完整性
ALTER TABLE 学生 ADD
CONSTRAINT PK_学生_班级 FOREIGN KEY(班级编号) REFERENCES 班级 (班级编号),
CONSTRAINT PK_学生_籍贯代码表 FOREIGN KEY(籍贯编号) REFERENCES 籍贯代码表(籍贯编号),
CONSTRAINT PK_学生_民族代码表 FOREIGN KEY(民族编号) REFERENCES 民族代码表(民族编号),
CONSTRAINT PK_学生_政治面貌代码表 FOREIGN KEY(政治面貌编号) REFERENCES 政治面貌代码表(政治面貌编号),
CONSTRAINT PK_学生_学籍代码表 FOREIGN KEY(学籍编号) REFERENCES 学籍代码表 (学籍编号)
GO
ALTER TABLE 成绩表 ADD
CONSTRAINT PK_成绩表_学生 FOREIGN KEY(学号) REFERENCES 学生 (学号)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT PK_成绩表_课程信息 FOREIGN KEY(课程编号) REFERENCES 课程信息 (课程编号)
ON DELETE NO ACTION
ON UPDATE CASCADE
GO
ALTER TABLE 费用 ADD
CONSTRAINT PK_费用_学生 FOREIGN KEY(学号) REFERENCES 学生 (学号)
GO
ALTER TABLE 课程表 ADD
CONSTRAINT PK_课程表_课程信息 FOREIGN KEY(课程编号) REFERENCES 课程信息 (课程编号)
2.4.5.3完整性约束命名子句
ALTER TABLE 学生
ADD
(COSTRAINT C1 CHECK(学号 BETWEEN 20070001 AND 20079999),
COSTRAINT C2 CHECK(性别 IN(‘男‘,‘女‘)
COSTRAINT C3 CHECK(年龄<30))
ALTER TABLE 成绩表
ADD COSTRAINT C4 CHECK(成绩>=0 AND 成绩<=100)
2.5物理结构设计(索引创建等)
索引创建
学生表按学号升序建唯一索引
CREATE UNIQUE INDEX 学生学号 ON 学生(学号)
课程信息表按课程编号升序建唯一索引
CREATE UNIQUE INDEX 课程编号引 ON 课程信息(课程编号)
选课表按学号升序和课程编号按降序建唯一索引
CREATE UNIQUE INDEX 选课引 ON 选课(学号 ASC,课程编号 DESC)
成绩表按成绩降序排列建立索引
CREATE CLUSTER INDEX 成绩降序 ON 成绩表(成绩 DESC)
2.6系统特色设计
系统使用了“SF_终止选课”和“SF_成绩提交”两个存储过程,分别实现结算选课、生成空白成绩单和老师提交最终的成绩单的功能。
CREATE PROC SF_成绩提交 @COURSEID INT
AS
BEGIN TRAN
--提交成绩,提交后不可以再修改
UPDATE 成绩表 SET 是否已确定成绩=’Y’WHERE 课程编号
=@COURSEID INT
AND 成绩>0
COMMIT
GO
CREATE PROC SF_终止选课上一页 [1] [2] [3] [4] [5] 下一页
教务管理系统 第3页下载如图片无法显示或论文不完整,请联系qq752018766