学生成绩管理系统实验报告 - 图文

发布时间 : 星期二 文章学生成绩管理系统实验报告 - 图文更新完毕开始阅读

(9)3.3 关系模式的优化

对关系模式进行规范化处理,对关系模式进行评价与修正

4、物理结构设计

4.1 聚簇设计

该高校成绩管理系统数据库可建立一下聚簇: Teachers_Hx(教师编号Tno_hx) Courses_Hx(课程编号Cno_hx)

Students_Hx(学生学号Sno_hx,班级编号CLno_hx) Class_Hx(班级编号CLno_hx)

这几个聚簇设计是因为这几张表都是实体表,,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。

4.2 索引设计

索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。

对于一个确定的关系,通常在下列情况下可以考虑建立索引。

(1) 在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一 性检查和完整性检查,而且可以加快连接查询的速度。 (2) 以查询为主的关系可建立尽可能多的索引。

(3) 对等值连接,但满足条件的元组较少的查询可以考虑建立索引。 (4) 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建 立索引。

该高校成绩管理系统数据库可建立以下索引: Teachers_Hx(教师编号) Courses_Hx(课程编号)

Students_Hx(学生学号,班级编号) Classes_Hx(班级编号) Study_Hx(学号,课程编号)

4.3 分区设计

涉及到数据库文件和日志文件的分区问题。 磁盘分区设计的一

般原则:

(1) 减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生 磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。

(2) 分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的, 那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。

(3) 保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典 等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。

该成绩管理系统由于程序较小,所以不进行分区设计。

5、数据库实施

(全部操作都要在SQL Server 2000的查询分析器或SQL Server 2008的SSMS环境中用命令实现,并要求截图)比如: D01hexia数据库的建立: 代码如下:

use master

go

create database D01hexia on

(name=D01hexia_Data,

filename='F:\\SQL\\SQL数据库文件存储地点\\D01hexia_data.mdf', size=10, maxsize=50, filegrowth=5) LOG ON

(name='D01hexia_Log',

filename='F:\\SQL\\SQL数据库日志文件存储地点\\D01hexia_Log.ldf', size=5MB, maxsize=25MB, filegrowth=5MB) go

5.1 基本表建立

1)Dept_Hx 数据项名 学院编号(Dno_hx) 学院名称(Dname_hx) SQL语句是: create table Dept_Hx

( Dno_hx char(20) primary key, Dname_hx char(20) )

数据类型 char char 长度 20 20 完整性约束 主键,唯一,非空 SQL执行结果是:

2)Teacheres_Hx 数据项名 教师编号(Tno_hx) 教师姓名(Tname_hx) 教师性别(Tsex_hx) 教师年龄(Tage_hx) 职称(Tposi_hx) 联系电话(Ttele_hx) 学院编号(Dno_hx)

数据类型 char char char int char char char 长度 10 20 2 20 20 20 完整性约束 主键,唯一,非空 SQL语句是:

create table Teachers_Hx

(Tno_hx char(10) primary key not null, Tname_hx char(20), Tsex_hx char(2), Tage_hx int, Tposi_hx char(20), Ttele_hx char(20), Dno_hx char(20),

constraint Dept_Teachers foreign key(Dno_hx) references Dept_Hx, )

SQL执行结果是:

联系合同范文客服:xxxxx#qq.com(#替换为@)