1、数据库逻辑结构设计(确定每个关系模式及其主外键,并根据规范化理论进行优化)其中有下划线的属性为主键。学生(姓名,性别,学号,班级号,专业,出生日期,入学日期,家庭住址,备注)班级(班级号,年级,辅导员,自习室 )用户(用户名,密码,权限)课程(课程名,课程编号,课程类型,课程描述)成绩(学生姓名,学号,班级名称,课程名,分数)奖惩(姓名,学号,年级,辅导员)数据库物理设计(1)学生信息表(student),共有10个字段,分别为:学号、姓名、性别、身份证号、出生日期、专业、班级、联系电话、家庭住址、备注,见表1表1 学生信息表的结构字段名字段类型小数位数是否主键是否为空是否外键备注snoCha
2、r(15)是否snameChar(8)SsexChar(2)scardChar(20)saddreeDate(8)sspecialityclassnameChar(10)Char(30)stelphonesmemoChar(50)(2)课程信息表(course),本表有2个字段:课程名称、所属专业,见表2表2 课程信息表的结构coursenamecidtermnameperiodInt(4)tidclassroomnamecoursememo(3)班级信息表(class),共有5个字段分别为:班级名称、所属院系辅导员、教室、人数,见表3表3 班级信息表结构tdepartmenttnamecla
3、ssroomnumberChar(3)(4)成绩信息表(score),有5个字段分别为:学号、姓名、专业、课程名称、成绩,见表4表4 成绩信息表结构数据类型gradescore(5)用户表(user),有2个字段为:用户名称、密码,见表5表5用户表结构mima(6)奖惩信息表(jc),有2个字段为:学生姓名,年级,奖惩日期,奖惩名称,奖惩备注。见表5 表5奖惩信息表结构 是 否jdatejnamejmemoChar(20)程序运行环境和开发环境SQL软件WINDOWS XP主要模块程序流程图1. 系统管理2. 学生信息3. 课程管理4. 班级管理5. 成绩及奖惩管理主要功能实现的程序段1.建立
4、数据库 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 char(30);(2)班级信息表的建立 create table class (clas
5、sname 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 score(sno char(20) primary keygrade char(20)cour
6、sename 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,sspeciality,classname,smemo)asselect *from student4.触发器设计(
7、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 intset sno=(select sno from deleted)If(select * from student where
8、 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 insertbeginset sno=(select sno from inserted)Update class set class.number=class.number+1 where classname in(select classname from class where student.sno=sno)创建存储过程,统计各院系、专业学生的男女人数create procedure numberclassname charBeginReturn(select count(sno) 男生人数 from student where classname=classname and ssex=男)Return(select count(sno) 女生人数 from student where classname=classname and ssex=女)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1