1、数据库原理张磊数 据 库 原 理课 程 设 计 报 告 班级: 计软112班 学号: 1106120222 姓名: 张磊 成绩: 电子与信息工程学院计算机科学系题目名称 某高校的学籍管理系统系统概述 部门、专业、班级等基本信息的管理; 实现学生信息的管理; 实现学生成绩的管理; 实现学生的奖惩管理; 创建视图,查询学生的学号、姓名、性别、院系、专业、班级信息; 创建存储过程,统计各院系、专业学生的男女人数; 创建触发
2、器,当新增、修改或删除学生时自动修改相应班级的学生人数; 创建check 约束,限制学生的性别只能输入“男”或“女”; 建立数据库相关表之间的参照完整性约束。系统功能模块设计 数据库概念结构设计数据库逻辑结构设计(确定每个关系模式及其主外键,并根据规范化理论进行优化)其中有下划线的属性为主键。学生(姓名,性别,学号,班级号,专业,出生日期,入学日期,家庭住址,备注)班级(班级号,年级,辅导员,自习室 )用户(用户名,密码,权限)课程(课程名,课程编号,课程类型,课程描述)成绩(学生姓名,学号,班级名称,课程名,分数
3、)奖惩(姓名,学号,年级,辅导员)数据库物理设计(1)学生信息表(student),共有10个字段,分别为:学号、姓名、性别、身份证号、出生日期、专业、班级、联系电话、家庭住址、备注,见表1表1 学生信息表的结构字段名字段类型小数位数是否主键是否为空是否外键备注snoChar(15)是否否否snameChar(8)否否否否SsexChar(2)否否否否scardChar(20)否否否否saddreeDate(8)否否否否sspecialityChar(20)否否否否classnameChar(10)否否否否saddreeChar(30)否否否否stelphoneChar(15)否否否否smem
4、oChar(50)否否否否(2)课程信息表(course),本表有2个字段:课程名称、所属专业,见表2表2 课程信息表的结构字段名字段类型小数位数是否主键是否为空是否外键备注coursenameChar(20)是否否否cidChar(10)否否否否classnameChar(20)否否否否termnameChar(20)否否否否periodInt(4)否否否否tidChar(20)否否否否classroomnameChar(20)否否否否coursememoChar(30)否否否否(3)班级信息表(class),共有5个字段分别为:班级名称、所属院系辅导员、教室、人数,见表3表3 班级信息表结
5、构字段名字段类型小数位数是否主键是否为空是否外键备注classnameChar(10)是否否否tdepartmentChar(20)否否否否tnameChar(8)否否否否classroomChar(15)否否否否numberChar(3)否否否否(4)成绩信息表(score),有5个字段分别为:学号、姓名、专业、课程名称、成绩,见表4表4 成绩信息表结构字段名数据类型小数位数是否主键是否为空是否外键备注snoChar(15)是否否否snameChar(8)否否否否gradeChar(20)否否否否coursenameChar(10)是否否否scoreInt(4)否否否否(5)用户表(user
6、),有2个字段为:用户名称、密码,见表5表5用户表结构字段名字段类型小数位数是否主键是否为空是否外键备注snoChar(8)是否否否mimaChar(8)否否否否(6)奖惩信息表(jc),有2个字段为:学生姓名,年级,奖惩日期,奖惩名称,奖惩备注。见表5 表5奖惩信息表结构字段名字段类型小数位数是否主键是否为空是否外键备注snameChar(20) 是 否 否 否gradeChar(20) 否 否 否 否jdateDate(8)否否否否jnameChar(20)否否否否jmemoChar(20)否否否否程序运行环境和开发环境SQL软件WINDOWS XP主要模块程序流程图1. 系统管理 2.
7、学生信息3. 课程管理4. 班级管理5. 成绩及奖惩管理主要功能实现的程序段1.建立数据库 Create datebase student;2.建立数据表(1)学生信息表的建立。Creat table student( sno char(20) primary keysname char(20)ssex char(20)scard char(20)saddree char(50)stelphon char(15)smobtelphon char(15)classname char(20)sdepartment char(50)coursename char(30)sspeciality cha
8、r(30);(2)班级信息表的建立 create table class (classname char(20)cdepartment char(30)cteacher char(10)cmemo char(50);(3)课程信息表 create table course(cid char(10)classname char(20)termname char(20)coursename char(20)period char(4)tid char(20)classroomname char(20)coursememo char(50);(4)成绩信息数据表。 create table scor
9、e(sno char(20) primary keysname char(20)grade char(20)coursename char(10) primary keyscore int(4);(5)奖惩信息数据表。 create table jc (sname char(20) primary key grate char(20) jdate date(8) jname char(20) jmemo char(20) );2.建立视图(1)查询学生基本信息表视图定义Create view student_view(sno,sname,ssex,scard,saddress,stelphon
10、,sspeciality,classname,smemo)asselect *from student4.触发器设计(1) 创建规则用于限制性别项只能输入“男”或“女” create table student(Ssex char(2) CONSTRAINT C4 CHECK(Ssex IN(男,女),CONSTRAINT studentKey PBIMARY(Sno);(2) 建立触发器创建触发器,当新增、修改或删除学生时自动修改相应班级的学生人数CREATE trigger dele_number on studentfor deleteas begin declare sno intse
11、t sno=(select sno from deleted)If(select * from student where student.sno=sno)Update class set class.number=class.number-1 where classname in(select classname from class where student.sno=sno)endcreate trigger insert_number on studentfor insertasbegindeclare sno intset sno=(select sno from inserted)
12、Update class set class.number=class.number+1 where classname in(select classname from class where student.sno=sno)end创建存储过程,统计各院系、专业学生的男女人数create procedure numberclassname charas BeginReturn(select count(sno) 男生人数 from student where classname=classname and ssex=男)Return(select count(sno) 女生人数 from student where classname=classname and ssex=女)end
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1