您好,欢迎来到微智科技网。
搜索
您的当前位置:首页数据库原理实验和课程设计指导书

数据库原理实验和课程设计指导书

来源:微智科技网
数据库原理及应用实验和课程设计指导书

数据库原理 实验和课程设计指导书

数据库原理及应用实验和课程设计指导书

目 录

实验一 创建和修改数据库...........................................................................................1 实验二 创建和修改数据表...........................................................................................6 实验三 添加记录并建立查询.....................................................................................10 实验四 创建视图.........................................................................................................13 实验五 创建索引.........................................................................................................14 实验六 创建触发器.....................................................................................................15 实验七 创建存储过程.................................................................................................16 实验八 备份和恢复数据库.........................................................................................17 实验九 综合练习—数据库设计(一).....................................................................19 实验十 综合练习—数据库设计(二).....................................................................20 课程设计.........................................................................................................................21

数据库原理及应用实验和课程设计指导书

实验一 创建和修改数据库

[目的和意义]

学习创建和修改用户数据库的方法。

[实验内容]

分别使用SQLServer2000企业管理器和Transact-SQL语句,按下列要求创建和修改用户数据库。

1. 创建一个数据库,要求如下:

(1) 数据库名\"testDB\"。

(2) 数据库中包含一个数据文件,逻辑文件名为 testDB_data,磁盘文件名为

testDB_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB。

(3) 事务日志文件,逻辑文件名为TestDB_log, 磁盘文件名为TestDB_log.ldf,文件

初始容量为5MB, 最大容量为10MB,文件容量递增值为1MB。

2. 对该数据库做如下修改:

(1) 添加一个数据文件,逻辑文件名为TestDB2_data,实际文件为TestDB2_data.ndf,

文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB。 (2) 将日志文件的最大容量增加为15MB,递增值改为2MB。

[实现步骤]

方法一:使用企业管理器创建和修改数据库TestDB

1. 设置常规选项卡

(1) 在企业管理器的控制面板目录中选中结点\"数据库\",单击鼠标右键,在弹出菜

单中选择\"新建数据库\"命令。

(2) 设置新建数据库的常规选项卡,在\"名称\"文本框中键入数据库名称\"TestDB\"。

如图1-l所示。

2. 设置数据文件选项卡

在“文件名”字段中键入数据文件名“TestDB_data”。 设置该文件初始大小为5MB。

1

数据库原理及应用实验和课程设计指导书

图1-1

选中“文件属性”对话框中的复选框“文件自动增长”,并选中“按兆字节”设置文件容量递增值为1。

在“最大文件大小”对话框中选择“将文件增长为(MB)”为15。如图1-2所示。

图1-2

3. 设置事务日志选项卡

(1) 在\"文件名\"字段中键入事务日志文件的逻辑文件名\"TestDB_log\"。设置该文

件初始大小为5MBo

(2) 选中\"文件属性\"对话框中复选框\"文件自动增长\",并选中\"按兆字节\"设置文件

容量递增值为1。

(3) 在\"最大文件大小\"对话框中选择\"将文件增长为(MB)\"为10。如图1-3所

示。

2

数据库原理及应用实验和课程设计指导书

(4) 单击\"确定\"按钮,完成数据库的创建。

图1-3设置事务日志选项卡

4. 修改事务日志文件属性

(1) 从树状目录窗口中找到刚刚创建的数据库TestDB,单击鼠标右键,从弹出菜

单中选择命令\"属性\",打开数据库TestDB的属性窗口。

(2) 选择数据文件选项卡。在该选项卡中添加数据文件TestDB2_data,方法是:在\"

文件名\"字段中键入数据文件逻辑文件名\"TestDB2_data\",设置该文件初始大小为 1MB,然后选中\"文件属性\"对话框中复选框\"文件自动增长\",并选中\"按兆字节\"设置文件容量递增值为1,最后在\"最大文件大小\"对话框中选择\"将文件增长为(MB)6。如图1-4所示。

图1-4

3

数据库原理及应用实验和课程设计指导书

(3) 选择事务日志选项卡,在该选项卡中将事务日志文件的最大容量改为15,递

增量改为2。如图1-5所示。

图1-5

方法二:使用Transact-SQL语句创建和修改数据库TestDB

1. 创建数据库TestDB

CREATE DATABASE TestDB ON (

NAME = TestDB_data,

FILENAME=“D:\\Program files\\Microsoft sql server\\mssql\\data\\TestDB_data.mdf”, SIZE=5,

MAXSIZE=15, FILEGROWTH=1 )

LOG ON (

NAME = TestDB_log,

FILENAME=“D:\\Program files\\Microsoft sql server\\mssql\\data\\TestDB_log.ldf”, SIZE=5,

MAXSIZE=10, FILEGROWTH=1 )

2. 修改数据库TestDB

4

数据库原理及应用实验和课程设计指导书

ALTER DATABASE TestDB ADD FILE (

NAME = TestDB2_data,

FILENAME=“D:\\Program files\\Microsoft sql server\\mssql\\data\\TestDB2_data.ndf”, SIZE=1,

MAXSIZE=6, FILEGROWTH=1 ) GO

ALTER DATABASE TestDB MODIFY FILE (

NAME=TestDB_log, MAXSIZE=15 ) GO

ALTER DATABASE TestDB MODIFY FILE (

NAME=TestDB_log, FILEGROWTH=2 ) GO

[习题]

建立学生选课的数据库stuDB, 逻辑文件名为 stuDB_data,磁盘文件名为stuDB_data.mdf,文件初始容量为10MB,最大容量为15MB,文件容量递增值为2MB。

事务日志文件,逻辑文件名为stuDB_log, 磁盘文件名为stuDB_log.ldf,文件初始容量为5MB, 最大容量为10MB,文件容量递增值为1MB。

[体会]

5

数据库原理及应用实验和课程设计指导书

实验二 创建和修改数据表

[目的和意义]

熟悉有关数据表的创建和修改等工作,并了解主键、外键以及约束的创建和应用,熟练掌握使用企业管理器和CREATE TABLE、ALTER TABLE等Transact-SQL语句对数据表的操作方法。

[实验内容]

分别使用企业管理器和Transact-SQL语旬按下列要求创建两个数据表: 表B1项目数据表,表B2员工数据表,并按照步骤完成对表的相关修改和约束设置。

项目表(Project)

字段名

数据类型

字段长度

主键

注释

项目编号 int

名称 varchar 长度为50 负责人 int

客户 int 开始日期 datetime 结束日期 datetime

员工数据表(Employee)

字段名

数据类型

字段长度

注释

编号 int 主键 姓名 varchar 长度为50 性别 varchar 长度为50 所属部门 varchar

长度为50

工资 money 长度为8

[实现步骤]

方法一:使用企业管理器创建数据表并添加约束

1. 打开企业管理器,在树状目录窗口中找到数据库节点TestDB,并选中下一级节点\"

表\"。

2. 单击鼠标右键,从弹出菜单中选择命令\"新建表\",打开表设计窗口,在窗口中按照

\"上机任务\"中所列的\"项目数据表\"的字段及要求键入列名、数据类型、长度等属性,并将\"项目编号\"设置为主键。如图2-l所示。

6

数据库原理及应用实验和课程设计指导书

图2-l创建\"项目数据表\"

3. 单击\"保存\"按钮,在弹出的对话框中输入表名称\"项目数据表\",关闭表设计窗口,

完成表\"项目数据表\"的刨建。

4. 重复1-3步,创建另一个数据表\"员工数据表\",表设计窗口如图2-2所示。

图2-2创建\"员工数据表\"

5. 添加外键约束:在\"项目数据表\"的\"负责人\"字段上添加外键约束,参照字 段为\"员工数据表\"中的字段\"编号\",约束名为FK_pm。实现方法为:

首先在企业管理器中选中\"项目数据表\"并单击鼠标右键,在弹出菜单中选择命令\"设计表\"打开设计表窗口。然后在该窗口中单击按钮\"表和索引属性\"按钮,打开表的\"属性\"对话框。最后选择\"关系\"选项卡,在改选项卡中做如下的操作。

单击\"新建\"按钮;

从\"主键表\"中选择\"员工数据表\",并选择字段\"编号\";

7

数据库原理及应用实验和课程设计指导书

从\"外键表\"中选择\"项目数据表\",并选择字段\"负责人\"; 在\"关系名\"中输入FK_pm。

单击\"关闭\"按钮,完成外键约束的设置。

6. 添加检查约束:将\"员工数据表\"中的字段\"工资\"的值限定在1000-10000,约束名

CK_Salary。操作方法为:

首先在企业管理器中选中\"员工数据表\"并单击鼠标右键,在弹出菜单中选择命令\"设计表\"打开设计表窗口。然后在该窗口中单击按钮\"表和索引属性\"按钮,打开表的\"属性\"对话框。最后选择\"CHECK约束\"选项卡,在改选项卡中做如下的操作:

单击标签中\"新建\"按钮;

在\"约束表达式\"文本框中输入一个条件表达式; (工资>=1000 AND 工资<=10000)

在\"约束名\"对话框中输入所建核查约束名\"CK_Salary\"。如图2-3所示。

图2-3

方法二:使用Transact-SQL语句创建数据表并添加约束

1. 创建项目数据表 USE TestDB GO

CREATE TABLE 项目数据表 (项目编号 int PRIMARY KEY, 名称 varchar(50),

8

数据库原理及应用实验和课程设计指导书

负责人 int, 客户 int,

开始日期 datatime, 结束日期 datatime )

2. 创建员工数据表 USE TestDB GO (

编号 int PRIMARY KEY, 姓名 varchar(50), 性别 varchar(50), 所属部门 varchar(50) 工资 money(8) 3. 添加外键约束 ALTER TABLE 项目数据表 ADD CONSTRAINT PK_pm FOREIGN KEY(负责人)

REFERENCES 员工数据表(编号) 添加检查约束

ALTER TABLE 员工数据表 ADD CONSTRAINT CK_pm

CHECK(工资>=1000 AND 工资<=10000)

[习题]

建立学生的基本信息表student、课程表course和选修课成绩表sc.

[体会]

9

数据库原理及应用实验和课程设计指导书

实验三 添加记录并建立查询

[目的和意义]

熟练掌握查询语句。

[实验内容]

向数据库TestDB中的两个数据表\"项目数据表\"和\"员工数据表\"中添加记录,如表Cl,C2所示。然后在查询分析器中书写Transact-SQL语句完成\"实现步骤\"中所列的任务。

表c1项目数据表

项目编号

名称

负责人

客户

开始日期

结束日期

1 SiS 2 1 03/12/2000 06/12/2000 2 SiS项目2 1 1 04/06/2000 05/01/2000 3 Pet 2 2 06/17/2000 08/17/2000 4 Pet项目2 2 2 09/01/2000 09/18/2000 5 CCH 3 3 03/12/2000 06/12/2000 6 CCH_LXF 4 3 04/06/2000 05/01/2000 7 CCH_ZHS 7 3 06/17/2000 08/17/2000 8 CCH_LY 9 3 09/01/2000 09/18/2000 9 CCH_LYAN 19 3 03/12/2000 06/12/2000 10 PETER 6 4 04/06/2000 05/01/2000 11 REALIDEA 8 5 06/17/2000 08/17/2000 12 REALIDEA1 7 5 09/01/2000 09/18/2000 13 REALIDEA2 19 5 03/12/2000 06/12/2000 14 REALIDEA3 9 5 04/06/2000 05/01/2000 15 PPA 4 6 06/17/2000 08/17/2000 16 NBA 4 7 09/01/2000 09/18/2000 表C2员工数据表

编号 1 2 3 4 5 6

姓名 陈有朋 孙晓晴 张晓峰 慕容雪 陈秋萍 王理斌

性别 男 女 男 男 女 男

所属部门

工资

项目部 2000 项目部 3000 录入部 1000 检验部 1500 检验部 1000 检验部 2000 10

数据库原理及应用实验和课程设计指导书

7 8 9 19

周晴晴 杨亭亭 马明宇 刘燕

女 女 男 女

办公室 3000 项目部 2500 项目部 4000 项目部 3000 [实验要求]

1·书写语句查询项目数据表中客户字段的唯一值,并查看查询结果。 参:

SELECT UNIQUE客户 FROM 项目数表;

2·书写语句查询工资高于2000的项目部的人员的姓名。 参: SELECT姓名

FROM员工数据表

WHERE所属部门=“项目部\"AND工资>2000;

3·书写查询语句查询来自CCH公司的项目名称(以CCH开始)和负责人姓名。 参: SELECT a.名称,b.姓名

FROM 项目数据表 AS a , 员工数据表 AS b WHERE a.负责人=b.编号 AND a.名称 LIKE “CCH%”;

4.书写语句查询每个部门的平均工资,结果按照平均工资的多少排序 SELECT 所属部门,AVG(工资) FROM 员工数据表 GROUP BY 所属部门 ORDER BY AVG(工资);

5.使用外向联接输出所有的员工姓名和负责人的项目名称 SELECT员工数据表.姓名,项目数据表.名称 FROM 员工数据表 LEFT JOIN项目数据表 ON员工数据表.编号=项目数据表.负责人;

6.使用子查询输出所有负责 CCH公司项目(以CCH开始)的员工姓名,以及没有 负责REALIDEA公司(以REALIDEA开始)项目的员工姓名 。

SELECT 姓名 FROM 员工数据表 WHERE 编号 IN

(SELECTDISTINCT 负责人 FROM 项目数据表

WHERE 名称 LIKE'CCH%') SELECT 姓名

FROM 员工数据表

WHERE 编号 NOT IN

(SELECT DISTINCT 负责人 FROM 项目数据表

11

数据库原理及应用实验和课程设计指导书

WHERE 名称 LIKE'REALIDEA%');

7·将所有REALIDEA公司的项目的结束日期更改为2002年1月8日 。

UPDATE 项目数据表

SET 结束日期= 'January 8, 2002'

WHERE 名称 LIKE 'REALIDEA%’;

8·录入部的张晓峰决定辞职,请将员工数据库中有关他的记录删除,并将他负责的项目移交给杨亭亭。书写语句对数据表做相应的更改。

DELETE员工数据表

WHERE 姓名=“张晓峰” UPDATE 项目数据表 SET负责人=8

WHERE负责人=3;

[习题]在student , course , sc中 添加元组

1)从student , course , sc表中选择出当年年龄在20岁以上的学生的学号和姓名。 2)统计平均年龄价格。

3)“张三”同学要退学,请删除他的所有信息。

[体会]

12

数据库原理及应用实验和课程设计指导书

实验四 创建视图

[目的和意义]

掌握使用T -SQL语句创建视图的方法,包括视图的建立、删除、修改;了解如何应用视图有选择地查看所需数据,并熟悉通过视图更改数据表中数据的方法。

[实验内容]

在数据库Company_Data中,基于表\"项目数据表\"和\"员工数据表\"创建视图,要求为:

(1) 视图名为\"员工项目\"。

(2) 包含字段\"编号\"、\"姓名\"、\"名称\"和\"开始日期\"。

(3) 字段别名分别是\"员工编号\"、”员工姓名\"、\"项目名称\"、\"项目开始日期\"。

[实现步骤]

(1)打开查询分析器。

在查询窗口书写CREATE VIEW语句创建视图,并指定字段别名: USE TestDB GO

CREATE VIEW 员工项目(员工编号,员工姓名,项目名称,项目开始日期) AS

SELECT a.编号,a.姓名,b.名称,b.开始日期, FROM 员工数据表 AS a INNER JOIN 项目表 AS b ON a.编号=b.负责人

WHERE a.编号=b.负责人 GO

(2)使用INSERT语句通过视图向员工数据表中添加一条记录,要求\"姓名\"字段值 为\"马中兴\"。 USETestDB GO

INSERTINTO 员工项目(员工姓名) VALUES('马中兴') GO

(3)使用UPPDATE语句通过视图将第二步中插入记录的员工姓名改为\"马中新\"。 USETestDB GO

UPDATE员工项目

SET 项目负责人= '马中新’, WHERE 项目负责人=’马中兴’ GO

(4)执行系统存储过程 sp_rename将视图更名为\"employee_project_VIEW \"。 USETestDB GO

EXEC sp_rename '员工项目', 'emp1oyee_project_VIEW';

13

数据库原理及应用实验和课程设计指导书

实验五 创建索引

[目的和意义]

掌握创建索引的方法。

[实验内容]

分别使用企业管理器和Transact-SQL语句在实验四的数据表\"员工数据表\"中基于\"姓名\"创建索引,要求索引名为\"IDX_Name\",索引类型为非聚集索引。

实现步骤

方法一,使用企业管理器

(1)打开企业管理器,在树状目录中展开数据表\"员工数据表\"所在的数据库节点

TestDB,并选择其下一级节点\"表\"。

(2)选择表\"员工数据表\",并单击鼠标右键。在弹出菜单中选择命令\"所有任务〉管理

索引\",打开\"管理索引\"对话框。

(3)在\"管理索引\"对话框中的\"数据库\"下拉菜单中选择数据库表。 (4)选择\"新建\"按钮,弹出\"新建索引\"对话框。

(5)在\"新建索引\"对话框的\"索引名\"文本框中输入索引名称\"IDX_Name\",然后选择字段\"姓名\"并设置索引属性。如图5-l所示。

图5-l创建索引

(6)设置索引选项以后,单击\"确定\"按钮,返回到\"管理索引\"对话框。 (7)单击\"关闭\"按钮,退出\"管理索引\"对话框,完成索引的创建。 方法二:使用T-SQL语旬 USE TestDB GO

CREATE INDEX IDX_Name ON 员工数据表(姓名) GO

14

数据库原理及应用实验和课程设计指导书

实验六 创建触发器

[目的和意义]

理解触发器的触发过程和类型,掌握创建触发器的方法。

[实验内容]

在数据库 Company_Data的表\"项目数据表\"和\"员工数据表\"中分别创建触发器。

[实现步骤]

(1)打开查询分析器。

(2)在查询窗口书写 CREATE TRIGGER语句,基于表\"员工数据表\"创建AFTER

INSERT 触发器 Tigger_NewEmployeeSalary,将插入员工的工资额在 5000以内。 USETestDB. GO

CREATE TRIGGERTrigger_NewEmployeeSalary ON 员工数据表 AFTER INSERT AS

IF (SELECT 工资 FROM inserted) > 5000 BEGIN

PRINT '新员工工资不能超过5000' ROLLBACK END GO

(3)在查询窗口书写CREATE TRIGGER语句,基于表\"员工数据表\"创建AFTER UPDATE触发器Trigger_SalaryChange,将员工工资变动额在2000以内。

CREATE TRIGGER Trigger_SalaryChange ON员工数据表 AFTER UPDATE AS

IFUPDATE(工资) BEGIN

IF (SELECT MAX(ABS(inserted.工资一de1eted.工资)) FROMinsertedJOINdeleted ONinserted.编号 = deleted.编号) > 2000 BEGIN

PRINT ‘工资变动不能超过 2000' ROLLBACKTRANSACTION END F.ND

15

数据库原理及应用实验和课程设计指导书

实验七 创建存储过程

[目的和意义]

了解存储过程的概念和作用,掌握创建存储过程的方法。

[实验内容]

在数据库Company_Data中创建存储过程Procedure_SalaryByDept,要求返回某一特定部门所有员工的工资总和,其中特定部门的名称以存储过程的输入参数进行传递。

[实现步骤]

(1)打开查询分析器。

(2)在查询窗口书写 CREATE PROCEDURE Transact-SQL语句创建存储过程

Procedure_SalaryByDept,并带有一个输入参数@Department用于传递部门名称,一个输出参数@TotalSalary用于传递输出结果。

CREATE PROCEDURE Procedure_SalaryByDept @Department varchar(40), @TotalSalary money OUTPUT AS

(3)选择所属部门为该参数传递的部门名称的所有记录,并对其工资字段求和。 SELECT @Tota1Sa1ary=sum(工资) FROM员工数据表

WHERE所属部门=@Department GO

(4)报告该部门的工资总额。

PRINT'该部门的工资总额’+CONVERT(varchar,@TotalSalary) GO

(5)执行这个创建存储过程的语句。

(6)执行系统存储过程sp_help查看该存储过程的一般信息。

(7)执行该存储过程,分别计算项目部、录入部、和检验部的工资总额。 (8)用ALTTER PROCEDURE语句将存储过程加密。

16

数据库原理及应用实验和课程设计指导书

实验八 备份和恢复数据库

[目的和意义]

理解数据库备份的过程和属性设置,掌握使用企业管理器备份数据库的方法。

[实验内容]

使用SQLServer2000企业管理器备份和恢复数据库TestDB.

[实现步骤]

(1)打开企业管理器,在控制面板目录中选择数据库TestDB。 (2)单击鼠标右键,从弹出菜单中选择命令\"所有任务〉备份数据库\"。 (3)在出现的\"SQLServer备份\"对话框中选择\"常规\"选项卡。 (4)在该选项卡中的\"名称\"文本框中键入\"TestDB数据库备份\"。 (5)在\"描述\"文本框中键入\"备份集1\"。

(6)在\"备份\"对话框中选中\"数据库-完全\"选项,如图8-1所示。

(7)单击\"添加\"按钮,在弹出的对话框中选择\"备份设备\",然后从下拉列表中选择备份

使用的备份设备(注意:如果没有现成的备份设备,应在备份以前创建一个 具体方法参见相关章节)。

(8)单击\"重写现有媒体\"选项按钮。

(9)单击\"\"选项\"选项卡,在该选项卡中选中\"完成后验证备份\"复选框。

(10)单击\"确定\"按钮,出现\"备份进度\"对话框,备份完成后,将弹出消息框\"备份操作

及其验证已成功完成”。

(11)单击\"确定\"完成数据库的备份。 (12)完成数据库的还原,方法如下:

从企业管理器的树状目录窗口中选择需要还原的数据库TestDB,单击鼠标右键,

从弹出菜单中选取命令\"所有任务/还原数据库\",打开\"还原数据库”对话框。如图8-2所示。

然后在该对话框中选择\"还原--从设备,单击\"选择设备\"按钮,并从弹出的对话框中选

择备份设备TestDB_backup。

最后选择\"还原备份集\"下的\"数据库---完全\",单击\"确定\"按钮执行数据库的还原。

17

数据库原理及应用实验和课程设计指导书

图8-1

图8-2

18

数据库原理及应用实验和课程设计指导书

实验九 综合练习—数据库设计(一)

1.目的:使学生对使用 SQL Server 来设计一个数据库应用系统有一个初步的了解。 2.要求:

在高校物资管理中,入库时要签发入库单、固定资产卡、登记物资明细帐;出库时要签发领用申请单、登记物资发放卡和转移单。此外,还有物资报损、调出情况.请分析设计一个高校物资管理信息系统的数据库.并在SQL Server2000 上实现。该数据库要能实现以下几点要求:

(1)能在这个数据库上实现高校物资管理的整个业务流程。

(2)能使用SQL Server 提供的默认和规则来-维护数据的正确性。 (3)能使用SQL Server 提供的约束、触发器来维护数据的完整性。

3.体会。

19

数据库原理及应用实验和课程设计指导书

实验十 综合练习—数据库设计(二)

1.目的:使学生对使用 SQL Server 来设计一个数据库应用系统有一个初步的了解。 2.要求:同上。

在高校物资管理中,入库时要签发入库单、固定资产卡、登记物资明细帐;出库时要签 发领用申请单、登记物资发放卡和转移单。此外,还有物资报损、调出情况.

请分析设计一个高校物资管理信息系统的数据库,并在SQL Server2000 上实现。 该数据库要能实现以下几点要求:

(1)使用存储过程来实现一部分复杂的应用逻辑。 (2)为不同的用户设计不同的用户视图。

3.体会。

20

数据库原理及应用实验和课程设计指导书

课程设计

一. 开发平台:

不限(如VB、VC、VFP、JAVA、ASP、JSP等),建议采用VB开发平台。

二. 名 称:

图书管理系统(实验室物资管理系统,学生选课管理系统,学生学籍管理系统,学生成绩管理系统,学生公寓管理系统,机房管理系统等),同学们也可以提出自己的课题名,但必须得到任课老师的同意。

三. 要 求:

(一)设计分析报告要求:

1需求分析内容:

用户需求说明;

顶层上下文数据流图,选择画出一个一层的数据流图; 选择说明一个完整的数据字典。 2概念设计内容:

画出完整的E-R模型图;

包括实体、联系以及实体、联系的属性。 3逻辑设计:把E-R图转换为关系表。

实体类型的转换 联系的转换 4系统模块设计:

系统的功能划分及描述; 主要用户界面;

系统使用说明和安装说明等。

(二)系统功能要求

1基本实体类型:

图书借阅者实体 图书实体 图书管理员实体 违规类型实体 2管理功能:

用户(管理员和借阅者)登录帐户管理

21

数据库原理及应用实验和课程设计指导书

图书借阅/归还管理

违规处罚管理(要记录每次处罚情况) 各种必要的查询和报表功能 3查询界面和条件

要有两个以上的多表连接查询;

要有两个以上的多个条件组合(与、或)查询; 每类基本的实体都有增、删、改和查询界面;

(三)其它要求

1界面要求 要求界面美观,操作方便。 2安全性需求(可简化)

用户对数据的访问范围

用户操作级别(普通用户、设备管理员、系统管理员) 对数据表修改权限

四. 作业提交要求:

1课程设计说明书,内容见上述要求。 2提交可以执行的源程序。

五. 成绩评定

1成绩分为优、良、中、差四个等级。

2成绩评定分三个部分,一是考勤成绩,二是课程设计报告成绩,三是答辩成绩。

考勤占20% 课程设计报告30% 答辩占50%

22

数据库原理及应用实验和课程设计指导书

六. 课程设计示例

综合教务系统分析和设计

本节综合教务系统为例,说明数据库应用系统的设计过程。本系统的分析和设计过程主要包括:需求分析;概念结构设计;逻辑结构设计;应用系统的模块设计;应用系统的用户界面设计。由于本应用系统比较简单,而我们的重点在于数据库应用系统的分析和设计,所以,本例中没有给出物理结构设计,读者可自行考虑物理结构设计,建立合适的索引,提高查询速度;对数据库系统的实施和维护也没有给出。

5.4.1 需求分析

1.系统目标:实现一个计算机综合教务管理系统,完成班级信息管理,学生信息管理,课

程信息管理和学生选课管理等功能。

2.系统功能需求:本系统的用户分为超级用户和普通用户两类,超级用户负责系统维护,

包括对班级信息,学生个人信息,课程信息的录入,修改,查询,删除等。普通用户即选课学生则只具有为自己选课的权限。 (1) 功能划分: 用户通过身份验证后进入主界面。主界面为超级用户提供6项选择:学生信息管理,课程信息管理,班级信息管理,选课,口令修改和退出系统。普通用户有4项功能选择:选课,课程查询,口令修改和退出系统。 (2) 功能描述:  班级信息管理:

给出所有班级的列表,超级用户可以实现增加,修改,查找,删除班级信息,维护指定班级所有学生信息,为指定班级设定必修课和选课学分等功能。在维护指定班级学生信息功能中,超级用户可以实现增加,修改,删除学生信息,察看某一学生选课情况,为学生更改口令等功能。在指定班级必修课功能中,以课表形式列出班级所有必修课的课程信息,实现为一个班级增加或删除必修课的功能。  学生信息管理:

给出所有学生的列表,超级用户可以增加,修改,删除,查找学生信息,察看某个学生选课情况,为学生修改口令等功能。本项功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同的是本项功能中将列出所有班级的所有学生信息。  课程信息管理:

加入,修改,删除课程纪录,察看某门课的选课情况,查询指定的课程信息。  选课:

以课表的形式列出学生选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。每个班级都有选课的学分,不允许学生选择课程的总学分超过所在班级的选课最大学分,而当退出选课功能时,如果选取课程总学分未达到所在班级选课最小学分则给出警告信息(因为学生可以多次进入选课界面选课)。  修改口令:

用户需要输入原口令,并且两次输入新口令一致后,系统即用新口令代替旧口令。  退出系统:

当用户退出系统时,如果选取的课程总学分未达到所在班级选课最小学分,则给

23

数据库原理及应用实验和课程设计指导书

出警告信息。 3.开发工具:

该综合教务系统的数据库采用了Microsoft的SQL Server2000企业版,前台应用程序采用了ASP编写,提供了Web界面方便学生从网上使用。由于采用了ADO数据库接口,因此很容易修改为支持ORACLE,SYBASE,DB2等数据库,该系统的结构为B/S结构,即浏览器/服务器结构。 4. 系统的数据流图:

了解用户的应用要求,使用信息流程图分析应用系统中的信息流。综合教务系统的简单信息流如下。

(1)系统的上下文数据流图如图5-38

系统管理员 权限 学生 选课/退选 综合教务系统系统管理员 监控选课表 成绩表学生 教务管理员 录入或更新学生、班级、选课学 教学情况报表 生、课程、班图5-38 综合教务系统的上下文数据流图 教务管理员

(2) 学生选课的数据流图如图5-39

学生描述信息学生信息选课申请班级描述信息班级信息学生 验证不通过 身份验证 课程描述信息审核通过的选课申请课程信息班级必修课程选课班级和课程信息选课成功课程上课时间上课时间信息已选课程 24选课信息记录

数据库原理及应用实验和课程设计指导书

图5-39 学生选课的数据流图

5. 数据字典

数据项名:学生编号

说明: 标识每个学生身份 类型: CHAR 长度: 7 别名: 学号

取值范围:970000-979999

数据流名:选课申请

说明: 由学生的个人信息,欲选课程信息组成选课申请 来自过程:无

流至过程:身份验证 数据结构:学生个人信息 欲选课信息

数据结构:学生个人信息

说明: 说明了学生的个人情况。 组成: 帐号 密码

数据存储:上课时间信息 说明: 说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以

有多门课程在上课。

输出数据流:课程上课时间 数据描述:课程编号 上课时间

数量: 每学期20-30个 存取方式:随机存取

处理过程:身份验证

说明: 对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。 输入: 学生帐号 密码

选课的课程编号 输出: 学生编号

选课的课程编号

25

数据库原理及应用实验和课程设计指导书

5.4.2 数据库的概念设计

1.系统的概念模型:

学分限

班级名 学号 姓名 班级 1 m 属于学生 性别 m m生日 必修 选修n 课号 课程 课名 nmn上课上课时学分 授课教接纳人时间 选课系统DEMO概念模型的E/R图

上图是选课系统DEMO的概念模型的E/R图,该系统涉及的实体集有: 班级实体集:具有属性班级名称和选课学分。 学生实体集:具有属性学号、姓名、性别和生日。

课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。 上课时间实体集:具有属性时间。

一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:M的联系。

一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是M:N的联系。

一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是M:N的联系。

一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是M:N的联系。

26

数据库原理及应用实验和课程设计指导书

5.4.3 将概念模型转换成关系模型 1. 将E-R模型转换为关系模式

(1) 班级实体集可以转换为关系:

CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)

CLASSNAME表示班级名称,MAXCREDIT表示最大学分,MINCREDIT表示最小学分。

(2) 学生实体集可以转换为关系

STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)

STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日

(3) 课程实体可以转换为关系

COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)

COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。

(4) 班级和学生之间的联系是1:M的联系,所以没有必要为其建立一个关系,可以通过扩展学生关系来表示: STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME) CLASSNAME表示学生所在班级名。

(5) 班级和课程之间的必修联系可以转换为关系: CLASSCOURSE(CLASSNAME , COURSEID)

CLASSNAME表示班级名称,COURSEID表示课程号。

(6) 学生和课程之间的选修联系可以转化为关系: STUDENTCOUSE(STUDENTID, COURSEID) STUDENTID表示学号,COURSEID表示课程号。

(7) 课程和上课之间的联系可以转化为关系: COURSETIME(COURSEID , TIME)

COURSEID表示课程号,TIME表示上课时间。

2. 数据库表结构设计: 把关系模型转化为表结构:

班级信息表(class):包含所有的班级信息,定义如下: 域名

CLASSNAME MAXCREDIT MINCREDIT

含义 班级名称 最大学分 最小学分

数据类型 字符类型

例子 计71

备注 主码

数值类型 30 数值类型 20

学生信息表(student):包含所有学生的个人信息,定义如下: 域名 STUDENTID

含义 学号

数据类型

例子

备注

字符类型 971329 主码

27

数据库原理及应用实验和课程设计指导书

NAME SEX BIRTHDAY CLASSNAME

姓名 性别 生日 班级名称

字符类型 字符类型 字符类型

王强 男 计71

外码

日期类型 79/07/15

课程信息表(course):包含所有课程信息,定义如下: 域名 COURSEID CREDIT TEACHER ACCEPTION

含义 课程号 学分 任课教师 接纳人数

数据类型 字符类型 字符类型

例子 数值分析 刘强

备注

字符类型 000001 主码 数值类型 4 数值类型 28 COURSENAME 课程名称

班级必修课表(classcourse):包含所有班级的必修课信息,定义如下: 域名

CLASSNAME COURSEID

含义 班级名称 课程号

数据类型 字符类型

例子 计71

备注 外码

字符类型 000001 外码

学生选课表(studentcourse):包含所有学生的选课信息,定义如下: 域名 STUDENTID COURSEID

含义 学号 课程号

数据类型

例子

备注

字符类型 971329 外码 字符类型 000001 外码

上课时间表(coursetime):包含所有课程的上课时间,定义如下: 域名 COURSEID COURSETIME

含义 课程号 上课时间

数据类型

例子

备注

表示星期2第1节

字符类型 000001 外码 数值类型 21 COURSETIME是一个整数,整除10的商表示星期几上课,余数表示当天的第几节课。

用户账号表(user):包含所有用户的账号和口令信息,定义如下: 域名 USERID USERPASSWD USERAUTH STUDENTID

含义 用户账号 用户密码 用户权限 用户学号

数据类型

例子

备注

字符类型 ADMIN 字符类型 ADMIN 数值类型 0

字符类型 971329

USERAUTH用0,1表示用户权限,0表示管理员,1表示普通用户。其中普通用户的STUDENTID为学生的学号。

3.实现数据完整性:

通过各种约束,缺省,规则和触发器实现数据的完整性。由于教务系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。

28

数据库原理及应用实验和课程设计指导书

(1)CHECK约束保证最大限选学分要大于最小限选学分。 (2)各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时

已经提到。

(3)主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。 (4)创建规则保证学生的年龄在18岁到35岁之间(出生日期在1965-1-1到1982-12-31

日之间),不会输入错误数据。 (5)创建触发器,保证在添加学生信息的时候,自动将该班级的必修课添加到选课表中。 以上只是该教务系统中实现数据完整的部分方法。实际上要考虑的还有很多方面,实现手法也是多种多样。在此留给学生自己思考。

5. 数据库的安装

安装SQL SERVER2000,作为数据库服务器,并用ODBC设置SQL SERVER的数据源。

5.4.4 应用程序设计

1. 选课系统DEMO的处理流程图:

开始 用户登录

N 合法? Y 用户选择服务

Y Y 选择退出?

N

2. 总体结构和外部模块设计:

班级信息管理模块 学生信息管理模块 执行服务操作 退出 口令验证模块 主模块 选课模块 29课程信息管理模块 口令更改模块 退出数据库原理及应用实验和课程设计指导书

5.4.5 编程实现:

下面给出系统的主要用户界面。其他的操作界面用户可以自行设计实现。

1.Login.Asp

这是系统的登录界面,用户可以选择以学生或管理员身份登录,并要输入相应的用户名称,密码。

2.AdminIndex.asp

30

数据库原理及应用实验和课程设计指导书

这是系统管理员登录成功的界面,左侧有管理员管理的各项职权。 (1)按下班级信息管理,进入Class.asp,进行班级信息维护管理。 (2)按下学生信息管理,进入Student.asp,进行学生信息维护管理。 (3)按下课程信息管理,进入Course.asp,进行课程信息维护管理。 (4)按下选课管理,进入CourseSelect.asp,进行选课。

(5)按下口令修改,进入ChangePasswd.asp,更改用户口令。 (6)按下退出,退出本系统。

上述界面是在用管理员登录时才能看到,其中班级信息维护管理和相应的增加新班级功能为登陆后的默认选项。

3.Class.asp

在右上方的班级信息管理界面中,可以增加新的班级,修改原有班级信息,删除原有班级。

(1)增加新班级:在右下角的相应文本框中输入增加的班级名称,最大、最小学分,

点击确定后,如果没有重复的班级名称,而且最大学分大于最小学分,则成功加入新的班级。

(2)修改原有班级:在右下角的相应文本框中输入修改的班级名称,点击确定后,下方文

本框中会出现原有的最大最小学分。输入新的学分后,如果该班级的所有学生已经选课的总学分符合新的学分标准,则修改成功。

(3)删除原有班级:在右下角相应文本框中输入欲删除的班级名称,点击确定后,如果该

班级所有学生都已经被删除,并且该班级所有必修课都已经被删除,则可以将该班级删除。

4.Student.asp

31

数据库原理及应用实验和课程设计指导书

在右上方的学生信息管理界面中,可以增加,修改,删除学生的个人信息。

(1)增加新学生,在右下角的文本框中输入相应的学生学号,姓名,生日,班级,性别信

息,点击确定按钮,如果存在相应的学生班级,并且学生学号不重复,则可以成功的添加新学生到该班级。

(2)修改学生信息:在右下角的文本框中输入相应的学生学号,点击确定按钮,则可以在

相应文本框中看到该学生原有的个人信息。可以进行修改。注意修改的班级必须为已经存在的班级,学号不能与已经存在的学号重复。

(3)删除学生信息:在右下角的文本框中输入相应的学生学号,点击删除按钮,则可以删

除相应的学生个人信息,注意在选课表中,该学生的所有选课信息必须全部删除。

5.Course.asp

在右上方的课程信息管理界面中,可以完成增加,删除,修改选修课程的功能。 (1)增加新课程:在右下角的相应文本框中输入课程号,课程名称等信息,然后点击确定

按钮,如果在数据库中没有重复的课程编号,则可以完成添加一门新课程到数据库中。注意在输入增加的上课时间时,用分号分隔开不同的上课时间。

32

数据库原理及应用实验和课程设计指导书

(2)修改原来课程信息:在右下角的课程号文本框中输入欲修改的课程编号,点击确定按

钮后,在相应文本框中出现原有的相应课程信息。修改后点击确定按钮,则完成对课程信息的修改。注意:在修改学分时,如果造成某些已经选了该课的学生的学分超过学分,则不能完成对该门课程信息的修改。或者在修改上课时间时,造成某些已经选修了该课的学生上课时间的冲突,则不能完成相应的修改。

(3)删除原有课程:在右下角的文本框中输入相应课程号,点击确定按钮,则完成对该课

程的删除操作。注意如果有学生选择课该门课程,则不能完成该门课程的删除操作。

6.CourseSelect.asp

在选课管理界面中,可以增加、删除班级的必修课,还可以增加、删除学生的选课信息。

(1)增加班级必修课:在右下角输入欲增加的课程号和增加课程的班级编号,点击确定按

钮,就可以完成增加该班级的一门必修课。如果在数据库中存在重复的信息,或者相应的课程号,班级编号不存在,则不能完成向该班级增加必修课。

(2)删除班级必修课,在右下角输入欲删除的课程号和删除课程的班级编号,点击确定按

钮,就可以完成删除该班级的一门必修课。如果在数据库中不存在相应的信息,或者输入的课程号,班级编号不存在,则不能完成从该班级删除必修课。 (3)增加学生选课信息:在右下角输入欲增加课程的学生编号和课程编号,点击确定按钮,

则完成为该学生增加一门课程。如果在数据库中存在重复的信息,或者学生、课程号不存在,或者该学生的总学分了增加课程,或者与该学生已经选择的课程上课时间有冲突,都不能完成为该学生增加课程的信息。

(4)删除学生选课信息:在右下角输入学生学号和欲删除的课程编号,点击确定按钮,则

完成为该学生删除一门课程。如果数据库中不存在相应信息,或者相应的学号,课程号不存在,则不能完成为该学生删除课程。

7.User.asp

33

数据库原理及应用实验和课程设计指导书

口令修改包括对本人账号和口令的修改,和增加、修改、删除学生和管理员账号的功能。 (1)增加账号:输入该账号对应的学号,并输入新的账号、密码。选择增加用户的角色,

包括有管理员,学生。如果是增加管理员,则无须输入学号。注意在输入的时候,如果数据库中有重复的信息,或者学生的学号在数据库中不存在,就会无法输入相应的信息。

(2)修改账号:输入相应的账号,并点击确定按钮,在相应的文本框中会出现该账号对应

的学号,账号,密码。修改后点击确定按钮,则完成对账号信息的修改。注意如果修改后的信息在数据库中有重复,或者学生的学号在数据库中不存在,就会无法修改相应的信息。

(3)删除账号:输入相应的账号,并点击确定按钮,则完成对该账号信息的删除。

(4)修改本人账号:直接在文本框中输入修改的密码,点击确定后,完成对本人密码的修

改。

8.StudentIndex.asp

上图是以学生身份登录时的界面。左边有四项功能,分别是课称信息查询,选课管理,

其中默认界面是课程信息查询界面,此时将数据库中所有的课程信息口令修改和退出系统,

列出。

9.CourseQuery.asp

上图右上边可以输入相关的课程信息进行查询,包括有课程编号,课程名称,授课教师,可以进行模糊查询,在其中输入任意几项,点击确定按钮,可以在右下方查询到相应的课程信息。

34

数据库原理及应用实验和课程设计指导书

模糊查询指在相关的文本框中输入相应信息的一部分,也可以查到类似的信息。例如对于上面的课程,在课程名称一栏中输入“语言”,则会列出c++语言和java语言的相关课程信息。

10.CourseSelect.asp

该界面可以为学生本人添加,删除选择的课程,并自动显示已经选择的总学分数。

(1)选择新课程:在右上方输入要添加的课程编号,点击确定按钮,则在下方自动添加上

新选择的课程。注意:如果选择的新课程与已经选择的课程有重复,或者时间上有冲突,或者选择的总学分超出了该班级的学分,则不能添加新的课程。

(2)删除旧课程:只要点击右下方该课程相应的删除按钮,就可以删除该课程。注意:为

该班级自动添加的必修课不能由学生删除。

11.StudentPasswd.asp

在修改密码界面,学生只能修改自己的密码,在右上方显示学生的个人信息。在右下方修改密码,需要输入旧密码,并重复输入新密码。这时学生的密码才修改成功。如果两次输入不一致,则不会修改密码。

如果其选课总学分小于该班级的最小学分,系统会提出在学生用户选择退出之后,

警告,不过因为学生可以多次登录该系统,因此学生可以多次登录,重复选课,直到满意。

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务