数据库系统设计报告及项目总结_软件工程项目总结报告
数据库系统设计报告及项目总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程项目总结报告”。
数据库系统设计报告及项目总结
我对数据库的制作是为了能够更方便更快捷的对学生基本信息、系部基本信息、课程信息、教职工信息以及学生成绩进行查询。
数据库的最终效果是能够按学号、姓名、系号查询学生基本信息;按职工号、姓名、系号查询教职工基本信息;按系号、系名称查询系的基本信息;按课程号、课程名称、上课教师姓名查询课程基本信息;按学号、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。若查询涉及多门课程,则按课程分组。每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩);能按课程号、课程名称、教师姓名输出对应课程的成绩报表;能够根据课程、授课教师统计成绩>=90分、>=80分、>=70分、>=60分及不及格学生的人数及比例。内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩。
我建立了学生基本信息表,系部基本信息表,课程信息表,教职工信息表,选课信息表以及没门课程的成绩表。课程包括音乐鉴赏、影视鉴赏、体育、数学、商业应用文写作、实用英语这几门课程。学生基本信息表的内容及数据类型如下:学号INT PRIMARY KEY,姓名VARCHAR(10)NOT NULL,性别 VARCHAR(50),出生日期 INT ,入学成绩 INT,所在系号 INT。系部基本信息表内容及数据类型如下:系号 INT PRIMARY KEY,系名称VARCHAR(50)NOT NULL,系的简介 VARCHAR(50)。课程信息表内容及数据类型如下:课程号INT PRIMARY KEY,课程名称 VARCHAR(50)NOT NULL,任课教师号INT,学时INT ,学分INT,上课时间
VARCHAR(50),上课地点 VARCHAR(50),考试时间VARCHAR(50)。教职工信息表内容以及数据类型如下:职工号 INT PRIMARY KEY,教师姓名VARCHAR(10)NOT NULL,性别 VARCHAR(50),出身年月 INT ,所在系号INT,职称VARCHAR(50),技术专长 VARCHAR(50)。将课程信息中的任课教师号与教职工信息表的职工号。选课信息表内容以及数据类型如下:学号INT PRIMARY KEY,教师姓名VARCHAR(10)NOT NULL,课程号 INT,课程名称 VARCHAR(10),平时成绩 INT,考试成绩 INT,总评成绩 INT。
我创建数据库是在图形界面下进行的,数据库的名称为market,一些查询语句是通过SQL语句进行的。我创建了视图方便对学生成绩进行查询,在创建视图过程中用到了COUNT函数和AVG函数和存储过程。因为在创建成绩报表关于不同分值的人数和比例时,需要这些函数和存储过程,可以先利用COUNT函数求出不同分值之间的人数在创建存储过程,接着在利用AVG函数和存储过程求出不同分值间的人数所占比例,最后在创建视图,一个有关成绩报表的视图就建立成功了。
在数据库的设计过程中,我也遇到了一些问题,例如,创建表时没有注意各表之间的联系,所以在设计数据库时应先对各表之间的联系进行全面的了解。其次要注意创建和查询时的SQL语句的正确运用,输入字母和数字时要在英文输入法的状态下,有时要注意各字段之间的空格间距,创建多表之间的链接时要注意写出各表之间的相同项目之间的链接。
所做任务如下:
建立外键
Alter table 课程信息 add
constraint Fk_课程信息_教职工信息foreign key(任课教师号)REFERENCES 教职工信息(职工号)go
修改语句 USE market GO UPDATE 学生基本信息
SET 姓名='王晓明', 出生日期='19930721' WHERE 学号=12432201
GO
删除语句 USE market GO DELETE 学生基本信息 WHERE 学号=12432210 GO
a、成绩报表:内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩
USE market GO CREATE VIEW 成绩报表 AS SELECT 课程信息.课程号,课程信息.课程名称, 课程信息.任课教师号,课程信息.学时,课程信息.学分,教职工信息.教师姓名, 选课信息.学号, 选课信息.平时成绩, 选课信息.考试成绩, 选课信息.总评成绩, 学生基本信息.性别 FROM 课程信息 INNER JOIN 教职工信息 ON 课程信息.课程号=教职工信息.职工号 INNER JOIN 选课信息
On 选课信息.课程号=课程信息.课程号 INNER JOIN 学生基本信息
On 学生基本信息.学号=选课信息.学号
group by 课程信息.课程号,课程信息.课程名称, 课程信息.任课教师号,课程信息.学时,课程信息.学分,教职工信息.教师姓名, 选课信息.学号, 选课信息.平时成绩, 选课信息.考试成绩, 选课信息.总评成绩,学生基本信息.性别 go
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershu1 AS SELECT * FROM 数学成绩信息
WHERE 总评成绩 >= 90
--比较运算符
USE market GO--建立信息的存储过程
CREATE PROCEDURE order1renshu1
SELECT D90人数=COUNT(ALL 学号)
FROM ordershu1
USE market GO--建立信息的存储过程
CREATE PROCEDURE order1bili AS SELECT
D90所在比例 =AVG(distinct 10)
FROM order1renshu1
USE market GO CREATE VIEW 成绩报表1 AS SELECT D90人数,D90所在比例
FROM ordershu1 INNER JOIN order1bili INNER JOIN order1renshu1
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershu2 AS SELECT * FROM 数学成绩信息
WHERE 总评成绩 >= 80--比较运算符
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershu3 AS SELECT * FROM 数学成绩信息
WHERE 总评成绩 >= 70--比较运算符
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershu4 AS SELECT * FROM 数学成绩信息
WHERE 总评成绩 >= 60--比较运算符
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershu5 AS SELECT * FROM 数学成绩信息
WHERE 总评成绩 =
USE market GO--建立信息的存储过程
CREATE PROCEDURE orderti AS SELECT * FROM 体育成绩信息
WHERE 总评成绩 >= 90--比较运算符 USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershang AS SELECT * FROM 商业应用文成绩信息
WHERE 总评成绩 >= 90--比较运算符
USE market GO--建立信息的存储过程
CREATE PROCEDURE ordershi AS SELECT * FROM 实用英语信息
WHERE 总评成绩 >= 90--比较运算符