资源描述
在线考试系统数据库期中设计
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
在线考试系统
数据库设计报告
目录
1。 Introduction………………………………………………………………2
2. Data types for every attributes…………………………………………….3
3。 SQL statement…………………………………………………………………….。4
4。 Questions……………………………………………………………。……………17
1. Introduction
数据库使用SQL Server 2005。
数据库名称为:在线考试系统数据库。
在线考试系统中,要完成的功能就是在现有题库的基础上实现考生在线考试(包括在局域网内和Internet上),然后完成对考生成绩的处理。为此设计在线考试系统数据库.本数据库包含管理员信息表、教师信息表、考生信息表、试卷表和成绩表。完全符合在线考试系统在应用过程中所需要的表信息。具体的数据类型和表具体信息在下面做详细介绍.
2. Data types for every attributes
管理员信息表
字段名称 数据类型 长度 说明 其他
Ano varchar 20 管理员账号 不允许空
Apass varchar 20 管理员密码 不允许空
Aname varchar 20 管理员姓名 不允许空
status varchar 10 用户身份 不允许空
教师信息表
字段名称 数据类型 长度 说明 其他
Tno varchar 20 教师账号 不允许空
Tpass varchar 20 教师密码 不允许空
Tname varchar 20 教师姓名 不允许空
status varchar 10 用户身份 不允许空
考生信息表
字段名称 数据类型 长度 说明 其他
Sno varchar 20 学生学号 不允许空
Sname varchar 20 学生姓名 不允许空
Sid varchar 20 学生身份证号 不允许空
试卷表
字段名称 数据类型 长度 说明 其他
Pname varchar 20 科目名称 不允许空
Tname varchar 20 出卷教师姓名 不允许空
成绩表
字段名称 数据类型 长度 说明 其他
Sno varchar 20 学生学号 不允许空
Sname varchar 20 学生姓名 不允许空
Sid varchar 20 学生身份证号 不允许空
Pname varchar 20 科目名称 不允许空
grade float 10 卷面成绩 不允许空
3. SQL statement(需要包含代码和运行后结果截图)
a) CREATE every table
create table 管理员信息表
(
Ano varchar(20) not null,
Apass varchar(20) not null,
Aname varchar(20) not null,
status varchar(10) not null
)
create table 教师信息表
(
Tno varchar(20) not null,
Tpass varchar(20) not null,
Tname varchar(20) not null,
status varchar(10) not null
)
create table 考生信息表
(
Sno varchar(20) not null,
Sname varchar(20) not null,
Sid varchar(20) not null
)
create table 试卷表
(
Pname varchar(20) not null,
Tname varchar(20) not null
)
create table 成绩表
(
Sno varchar(20) not null,
Sname varchar(20) not null,
Sid varchar(20) not null,
Pname varchar(20) not null,
grade float(10) not null
)
insert
into 管理员信息表
values('a000001’,’362726’,'张惜缘','管理员')
insert
into 管理员信息表
values('a000002’,'934838','韩俊恩',’管理员’)
insert
into 管理员信息表
values('a000003',’057392','吕飞侠',’管理员')
insert
into 管理员信息表
values('a000004','585966','蓝一一','管理员’)
insert
into 管理员信息表
values(’a000005’,’684054’,'李泓',’管理员’)
insert
into 教师信息表
values('t000001’,'473884',’张树森’,'教师’)
insert
into 教师信息表
values(’t000002','449397','张永义','教师')
insert
into 教师信息表
values('t000003’,'384749’,’沈晓霞’,’教师’)
insert
into 教师信息表
values('t000004’,'747433',’张剑锋','教师’)
insert
into 教师信息表
values(’t000005’,'293748',’刘世军',’教师')
insert
into 考生信息表
values('P091812000’,'金小贝',’22052419901221')
insert
into 考生信息表
values('P091812001','王莉英','22052419900501’)
insert
into 考生信息表zhang
values('P091812002','韩旭’,'22052419901125’)
insert
into 考生信息表
values(’P091812003’,’李斯语',’22052419900121')
insert
into 考生信息表
values('P091812004’,’姜黎黎’,’22052419900618')
insert
into 考生信息表
values('P091812005',’马伊','22052419900422')
insert
into 考生信息表
values('P091812006','冯天齐','22052419900519’)
insert
into 考生信息表
values('P091812007','杨钰’,'22052419901202’)
insert
into 考生信息表
values(’P091812008’,’赵文煊’,’22052419901109')
insert
into 考生信息表
values('P091812009',’周刚','22052419900621’)
insert
into 试卷表
values('语文','张树森’)
insert
into 试卷表
values('数学','沈晓霞')
insert
into 试卷表
values(’英语’,’张剑锋')
insert
into 试卷表
values('自然',’刘世军')
insert
into 试卷表
values('思想品德',’沈晓霞’)
insert
into 成绩表
values(’P091812000’,'金小贝','22052419901221’,'语文','98')
insert
into 成绩表
values(’P091812001’,'王莉英’,’22052419900501','语文’,’95’)
insert
into 成绩表
values('P091812002','韩旭','22052419901125’,'数学’,’89')
insert
into 成绩表
values('P091812003’,'李斯语’,'22052419900121’,'数学','90')
insert
into 成绩表
values('P091812004',’姜黎黎','22052419900618’,'英语’,'77’)
insert
into 成绩表
values(’P091812005’,'马伊','22052419900422',’英语’,'90’)
insert
into 成绩表
values(’P091812006’,’冯天齐’,’22052419900519’,’自然',’92')
insert
into 成绩表
values(’P091812007',’杨钰',’22052419901202’,'自然','87’)
insert
into 成绩表
values('P091812008’,'赵文煊',’22052419901109',’思想品德',’85')
insert
into 成绩表
values(’P091812009',’周刚','22052419900621’,’思想品德’,'95’)
insert
into 成绩表
values('P091812000',’金小贝',’22052419901221’,'社会’,’77’)
insert
into 成绩表
values('P091812001’,'王莉英’,'22052419900501’,’社会’,’89’)
b) ALTER table, add TWO(2) new column
alter table 考生信息表
add sex varchar(10) null
alter table 考生信息表
add nation varchar(10) null
c) CREATE TWO(2) view (should combine TWO or MORE table)
create view stu_grade
as
select 考生信息表.Sno,考生信息表。Sname,Pname,grade
from 考生信息表,成绩表
where 考生信息表.Sno=成绩表。sno
create view tea_paper
as
select 教师信息表.Tno,教师信息表.Tname,Pname
from 教师信息表,试卷表
where 教师信息表。Tname=试卷表。Tname
d) DROP view
drop view tea_paper
e) GRANT privileges
create user caoxue
grant select on 成绩表to caoxue
f) REVOKE privileges
deny select on 成绩表tO caoxue
g) INSERT new data for
insert
into 考生信息表
values('P091812010',’李美’,'22052419900327',’女’,’满族')
h) UPDATE data
update 考生信息表
set sex=’女',nation='朝鲜族'
where Sno='P091812000’
update 考生信息表
set sex='女',nation=’汉族’
where Sno=’P091812001’
update 考生信息表
set sex=’男',nation=’朝鲜族'
where Sno='P091812002'
update 考生信息表
set sex=’女’,nation='汉族’
where Sno='P091812003'
update 考生信息表
set sex='女',nation=’侗族'
where Sno='P091812004’
update 考生信息表
set sex='男’,nation='朝鲜族’
where Sno='P091812005'
update 考生信息表
set sex='男',nation=’回族’
where Sno=’P091812006'
update 考生信息表
set sex=’女’,nation=’土家族’
where Sno='P091812007’
update 考生信息表
set sex='男’,nation=’满族’
where Sno=’P091812008'
update 考生信息表
set sex='男’,nation=’汉族'
where Sno=’P091812009'
i) DELETE data
delete
from 考生信息表
where Sno=’P091812008'
delete
from 考生信息表
where Sno=’P091812010'
j) SELECT statement that consists of(此处需为每种查询自己设计两个问题)
i. Simple queries
(1)查询所有汉族考生的信息.
select Sno,Sname,Sid,sex,nation
from 考生信息表
where nation='汉族'
(2)查询所有考语文的考生姓名及成绩。
select Sname,Pname,grade
from 成绩表
where Pname=’语文'
ii. Aggregate function
(1)查询所有考了语文和社会的考生学号和姓名。
select Sno,Sname
from 成绩表
where Pname=’语文' union
select Sno,Sname
from 成绩表
where Pname='社会’
(2)查询考试成绩不低于90分的考生的学号、姓名、考试科目及成绩。
select Sno,Sname,Pname,grade
from 成绩表
where grade>=90
iii. Nested Sub—queries
(1)查询所有考思想品德的考生的学号、姓名、性别以及民族.
select Sno,Sname,sex,nation
from 考生信息表
where Sno in
(
select Sno
from 成绩表
where Pname='思想品德’
)
(2)查询所有考语文且分数高于95分的考生学号、姓名、性别以及民族。
select Sno,Sname,sex,nation
from 考生信息表
where Sno in
(
select Sno
from 成绩表
where Pname=’语文’ and grade in
(
select grade
from 成绩表
where grade>95
)
)
iv. Multi-table queries
(1)查询所有考英语的考生的姓名、性别、民族和英语成绩.
select 考生信息表。Sname,sex,nation,Pname,grade
from 考生信息表,成绩表
where 考生信息表。Sno=成绩表。Sno and Pname=’英语’
(2)查询所有考试科目成绩大于90分的考生姓名、成绩及出卷教师的姓名.
select 试卷表.Pname,考生信息表。Sname,grade,Tname
from 考生信息表,成绩表,试卷表
where 考生信息表.Sno=成绩表。Sno and grade>90
and 成绩表。Pname=试卷表。Pname
4. Questions
1. Explain the security measure that should be include in your database
常用的安全措施有用户标识和鉴别、用户存取权限控制、定义视图、数据加密、安全审计以及事务管理和故障恢复等几类。
针对网络数据库数据丢失的问题,应该着重以下几个方面的工作:
服务器存储系统,数据备份机制.
针对网络数据库非法入侵的问题,应该着重以下几个方面的工作:
1、数据库用户的管理,按照数据库系统的大小和数据库用户所需的工作量,具体分配数据库用户的数据操作权限,控制系统管理员用户账号的使用。
2、建立行之有效的数据库用户身份确认策略,数据库用户可以通过操作系统、网络服务以及数据库系统进行身份确认,通过主机操作系统进行用户身份认证。
3、加强操作系统安全性管理,数据服务器操作系统必须使用正版软件,同时要有防火墙的保护。另外,根据实际需要只开放涉及业务工作的具体网络端口,屏蔽其它端口,这样可以在较大程度上防止操作系统受入侵。
2. Explain when indexes may improve the efficiency of the system
在这些列上建立索引可以提高系统效率:
1、在经常需要搜索的列上,可以加快搜索的速度;
2、在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
3、在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
4、在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
5、在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
3. Explain the difference between conceptual, logical and physical database design。 Why might these tasks be carried out by different people?
数据库概念结构设计阶段是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。从实际到理论。
数据库逻辑结构设计阶段将概念结构转换为某个DBMS所支持的数据模型。优化理论。
数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。选择理论落脚点。
由于每个阶段的任务不同,若所有阶段都有一个人来完成的话,难免思路会比较单一,且容易出现纰漏。所以每个阶段选用在这方面具有专长的人来完成,这样可以大大提高工作效率,保证高质量的完成设计.
20
展开阅读全文