数据库设计课程
实验报告
学院:
班级:
完成人:姓名:学号:
指导教师:
数据库设计实验任务书
一、课程实验题目:图书管理
二、课程实验应解决的主要问题:
(1)分析图书管理设计中包含的实体,实体属性,实体之间的关系
(1)对实体中相应的数据项给出详细的数据字典描述
(1)以powerDesigher为建模工具,对数据库进行逻辑设计
(1)设计的关系模式需进行规范化处理,每个关系模式应能达到3NF
(1)设计事务,涉及到检索和更新等
(2)绘制事务图,使用路径指示ER模型支持的用户事务
(3)根据逻辑设计原则(多样性),转化为相应数据表,并标明主键、外键
(4)相应事务要求用SQL语言实现,并用到触发器、存储过程,视图等数据操作
(5)应用自己熟悉的高级程序设计语言,实现系统主要功能
三、任务发出日期:课程实验完成日期:
指导教师对课程实验的评价
成绩:
指导教师签字:
年月日
目录
1业务分析 (1)
1.1原管理系统分析 (1)
1.2所建系统分析 (1)
1.3可行性分析 (1)
1.3.1经济可行性分析 (1)
1.3.2技术可行性分析 (2)
1.3.3社会可行性分析 (2)
2实体描述(属性,关系,参与类型) (2)
2.1管理员管理E R图 (2)
2.2读者借阅归还E R图 (3)
3数据字典说明 (3)
4事务设计 (4)
4.1管理员模块 (4)
4.2读者管理模块 (4)
4.3图书信息管理模块 (5)
4.4图书类别管理模块 (5)
4.5图书借阅归还管理模块 (5)
4.6读者留言管理模块 (5)
5PowerDesigner建模 (5)
6事务路径图或事务描述 (6)
7映射为对应数据表 (7)
7.1管理员数据表 (7)
7.2读者数据表 (7)
7.3图书数据表 (8)
7.4图书类别数据表 (8)
7.5借还书记录数据表 (9)
7.6用户留言数据表 (9)
8规范化检查和说明 (10)
8.1规范化方法检查表结构 (10)
8.2检查表是否支持用户事务 (10)
8.3检查业务规则 (10)
9S Q L操作 (10)
9.1创建索引 (10)
9.2创建视图 (12)
9.3设计触发器 (13)
9.4设计存储过程(例:读者注册信息) (14)
10实现界面 (15)
10.1登录页面 (16)
10.2管理员界面 (16)
10.2.1 管理员主页面 (16)
10.2.2图书类别 (16)
10.2.3图书管理 (17)
10.2.3.1 添加图书 (17)
10.2.3.2 修改、删除图书 (18)
10.2.3.3查看图书 (18)
10.2.4借阅管理(借阅、归还、续借) (19)
10.2.5在线留言管理 (19)
10.2.6管理员管理 (20)
10.3读者界面 (20)
10.3.1读者注册 (20)
10.3.2读者主页面 (21)
10.3.3读者分类查询 (38)
10.3.4读者借阅图书 (21)
10.3.5读者归还图书 (22)
10.3.6读者续借图书 (23)
11任务分工
1.业务分析
1.1原图书管理系统分析
图书馆是获取信息重要途径之一,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。传统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。
1.2所建系统分析
根据图书馆日常图书管理工作的需求和图书借阅的管理流程,该系统实施后,应该达到以下目标:
界面设计友好、美观,数据存储安全、可靠。
基本信息设置保证图书信息和读者信息分类管理。
强大的查询功能,保证数据查询的灵活性。
实现对图书借阅、续借、归还流程的全程数据信息跟踪。
提供管理员修改信息、密码等功能,保证管理的安全性。
提供灵活、方便的权限设置,使整个系统的管理分工明确。
1.3可行性分析
1.3.1经济可行性分析
作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的
资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。
1.3.2技术可行性分析
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
1.3.3社会可行性分析
社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。对图书馆与读者之间业务方式的转变和扩充。
2.实体描述
2.1管理员管理ER图
2.2读者借阅归还ER图
3.数据字典
4.事务设计
4.1管理员模块
实现对管理员信息的修改,包括定义、查询、更新、删除等操作。
4.2读者管理模块
实现对借阅者信息的修改,包括定义、查询、更新、删除等操作。
4.3 图书信息管理模块
实现管理员对图书信息的修改,包括定义、查询、更新、删除等操作
实现读者查看图书信息,是否可以借阅等操作
4.4图书类别管理模块
实现对图书的分类管理,根据图书类别设定课借读天数。
4.4图书借阅归还管理模块
读者可管理的借还书信息,包括图书名称,出版社,条形码,借阅时间,归还时间,是否归还等。
管理员可管理借还书信息,包括图书名称,出版社,条形码,借阅时间,归还时间,是否归还,管理续借和归还等。
4.5读者留言管理模块
实现读者发布留言主题和留言内容。
实现管理员查看,删除留言信息
5.PowerDesigner建模
6.事务路径图或事务描述
7. 映射为对应数据表
7.1管理员数据表
7.2读者数据表
7.3图书数据表
7.4图书类别数据表
7.5借还书记录数据表
7.6用户留言数据表
8. 规范化检查和说明
8.1规范化方法检查表结构
用规范化方法检查了每个表,避免了不必要的数据重复。
通过检查或重新构建,所建的每个表都是是第三范式(3NF)。
总结:如果所标识的表不是第三范式,可能ER模型的某部分是错误的,或者由模型创建表时产生了错误。
如果必要的话,可能需要重新构造数据模型或者表。
8.2检查表是否支持用户事务
通过检查,所建的表正如如用户需求说明中所要求的那样,支持用户所需的事务。
在建表的时候,没有错误发生。
总结:检查表是否支持事务的一种方法是检查是否支持事务的数据需求,以确保数据在一个或多个表中存在。
如果事务所需求的数据在多个表中,则应该检查这些表是否能够通过主键/外键机制连接起来。
8.3检查业务规则
业务规则是用于防止数据库不完整、不准确或不一致的约束。
考虑下面五种类型的完整性约束:需要的数据、列的值域约束、实体完整性、多样性、参照完整性、其他业务规则
9. SQL操作
9.1创建索引
图书表:
1.为id创建索引,升序排序
create index index_book_id on book(id asc)
插入索引操作和结果如下所示:
2.为图书表的name列创建索引,并且降序排序
alter table book add index index_book_name(price, desc) 插入索引操作和结果如下所示:
读者借阅表(borrow):
1.为book_id和reader_id创建多列索引:
create index index_borrow_brid on borrow(book_id asc,reader_id asc) 插入索引的操作和结果如下所示:
9.2创建视图
1.在book表上创建长江出版社的视图book_publish:
create view book_publish as
select *
from book
where press= ‘长江出版社’;
操作和结果:
9.3设计触发器
给出在各表上建立的触发器以及使用的语句。
1.设计触发器borrow, 当某学生借书成功后,图书表相应的图书数量减一
create trigger trigger_borrow
after insert on borrow
for each row
begin
update book set page = page – 1
where id = new.id;
end
9.4设计读者注册信息存储过程:读者注册信息reader_register
create procedure reader_register(in id int, in username varchar(20), in password varchar(20), in name varchar(20), in num varchar(20), in phone varchar(20), in email varchar(20))
begin
insert into student( id,username, password, name , num, phone, email)
values( id,username, password, name , num, phone, email);
end
10. 实现界面
10.1登录页面
10.2管理员界面
10.2.1管理员主页面
10.2.2图书类别
10.2.3图书管理
10.2.3.1添加图书
10.2.3.2修改,删除图书信息
10.2.3.3查询图书
10.2.4借阅管理(借阅,归还,续借)
10.2.5在线留言管理
10.2.6管理员管理
10.3读者操作界面
10.3.1读者注册
10.3.2读者主页面
10.3.3读者分类查询
10.3.4读者借阅图书
10.3.5读者续借图书
10.3.6读者归还图书
网络数据库应用实训报告 日期:2016年3月18日班级:物联1411 一、实训目的和要求 1、掌握采用界面方式创建、修改、删除数据库; 2、掌握采用T-SQL 语句创建、修改、删除数据库; 二、实训所需仪器、设备 硬件:计算机软件:操作系统Windows7、SQLServer2008 三、实训内容 1)在管理平台中管理数据库。 (1)创建数据库“studentsdb”。 (2)查看studentsdb数据库的属性。 (3)修改数据文件大小为2MB,指定“最大文件大小”为5MB。日志文件的大小在每次填满时自动递增5%。 (4)将studentsdb数据库的名称更改为student_db。 2)使用T-SQL 语句管理数据库 (1)使用CREATE DATABASE 创建studb数据库,然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (2)使用ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。(3)
为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (4)将studb数据库的名称更改为my_studb。 (5)使用DROP DATABASE 删除my_studb数据库。 四、实训步骤 (内容说明:1.大致的操作步骤;2.参数设置) 1)在管理平台中管理数据库。 (1)数据库右击→新建数据库→数据库名称“studentsdb”; (2)数据文件→初始大小→2MB (3)数据文件→点击自动增长下的→最大文件大小→限制文件大小→5MB; (4)日志文件→点击自动增长下的→文件增长→按百分比→5% (5) studentsdb右击→属性; (6) studentsdb右击→重命名→student_db; 2)使用T-SQL 语句管理数据库 命令如下: CREATEDATABASE studb on PRIMARY ( NAME='student_db', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA', size=4MB, MAXSIZE=20MB, FILEGROWTH=1 ) log on ( NAME='stusb_log2', FILENAME='C:\Program Files\Microsoft SQL
. . 《数据库原理与技术》实验报告 实验一、数据定义及更新语句练习 一、实验容 建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(《数据库系统概论》第二章习题5中的四个表),要现关系的三类完整性。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 二、完成情况
附上按照实验容编写的程序代码。(小四号字,宋体) 三、实验结果 1、插入一条记录 2、①将p表中的所有红色零件的重量增加5。 ②将spj表中所有供应商的QTY属性值减少10。用子查询。
3.利用Delete语句删除p表中的所有红色零件的记录。 附上各个步骤所用的实验用例与结果显示(小四号字,宋体) 四、问题与解决 (小四号字,宋体) 1 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
实验二简单查询和连接查询 一、实验容 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积。 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 二、完成情况 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。
大学物理设计性实验报告 实验项目名称:万用表设计与组装实验仪 姓名:李双阳学号:131409138 专业:数学与应用数学班级:1314091 指导教师:_王朝勇王新练 上课时间:2010 年12 月 6 日
一、实验设计方案 实验名称:万能表的设计与组装试验仪 实验时间:2010年12月6日 小组合作: 是 小组成员:孙超群 1. 实验目的:掌握数字万用表的工作原理、组成和特性。 2. 掌握数字万用表的校准和使用。 3. 掌握多量程数字万用表分压、分流电路计算和连接;学会设计制作、使用多量程数字万用表 2、实验地点及仪器、设备和材料: 万用表设计与组装实验仪、标准数字万用表。 3、实验思路(实验原理、数据处理方法及实验步骤等): 1. 直流电压测量电路 在数字电压表头前面加一级分压电路(分压电阻),可以扩展直流电压测量的量程。 数字万用表的直流电压档分压电路如图一所示,它能在不降低输入阻抗的情况下,达到准确的分压效果。 例如:其中200 V 档的分压比为: 001.010*********==+++++M K R R R R R R R 其余各档的分压比分别为: 档位 200mV 2V 20V 200V 2000V 分压比 1 0.1 0.01 0.001 0.0001 图一 实用分压器电路 实际设计时是根据各档的分压比和总电阻来确定各分压电阻的,如先确定 M R R R R R R 1054321=++++=总 再计算200V 档的电阻:K R R R 10001.021==+总,依次可计算出3R 、4R 、5R 等各档的分压电阻值。换量程时,多刀量程转换开关可以根据档位调整小数点的位置,使用者可方便地直读出测量结果。 尽管上述最高量程档的理论量程是2000V ,但通常的数字万用表出于耐压和安全考虑,规定最高电压量限为1000V 或750V 。
1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) ●数据库和表的要求(第五版教材第二章习题 6 要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 ●完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方 式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 S表: P表: J表: SPJ表:
(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示: 最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 原位置: 新的位置: (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据 库对应的mdf,ldf文件是否存在) 删除过后文件不存在 (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库)
(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类 型。 2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分) ●数据库和表的要求 数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。 ●完成以下具体操作: (1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB, 最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初
计算机与信息工程学院设计性实验报告 一、 实验目的 1.掌握线性时不变系统的两种描述形式—传递函数描述法、零极点增益描述法。 2.掌握两种描述形式之间的转换。 3.掌握连续和离散系统频率响应的求解 二、 实验仪器或设备 装MATLAB 软件的计算机一台。 三、 实验内容 1. 生成20个点的单位脉冲信号、单位阶跃信号,并记录下函数命令和波形。 2. 生成占空比为30%的矩形波。 3. 将连续系统 4)(s )21)(s (s 3) 1)(s -(s 0.5H(s)++++=转化为传递函数模型的描述形式。 4. 将离散系统 4-3-2-1--2 -10.5z 0.9z -1.3z 1.6z -12z 5z 3H(z)++++=转化为传递函数和零极点增益模型的的描述形式。
四、实验步骤(包括主要步骤、代码分析等) 1. 生成20个点的单位脉冲信号、单位阶跃信号,并记录下函数命令和波 形。 程序: clear,clc,close %清除变量空间变量,清除命令窗口命令,关闭图形窗口 t=-10:9; %取20个点 ft1=(t==0); %单位脉冲信号函数 ft2=(t>=0); %单位阶跃信号函数 subplot(1,2,1),stem(t,ft1,'m-o') %图像窗口1行2列的第1个子图绘制单位脉冲信号图形 title('20个点的单位脉冲信号'); %设置标题为“20个点的单位脉冲信号” subplot(1,2,2),stem(t,ft2) %图像窗口1行2列的第2个子图绘制单位阶跃信号图形 title('20个点的单位阶跃信号'); %设置标题为“20个点的单位阶跃信号” 2. 生成占空比为30%的矩形波。 程序: clear,clc,close %清除变量空间变量,清除命令窗口命令 x=0:0.001:0.6; %设置变量x的值范围 y=square(2*pi*10*x,30); %用square函数得到占空比为30%的矩形波 plot(x,y,'m'); %绘制矩形波的图像
《数据库系统原理》实验报告 专业:___信息安全____ 班号:_______ 学号:______ 姓名:________ 实验日期:_________ 上机地点:_________ 实验环境: 报告日期:2012年 4月26日
一、实验内容、过程及完成情况(必须有所用的SQL 语句、语句执行效果) 1、第三章习题3(P127):用SQL语句建立第二章习题5 (P74)中四个表,创建的基本表应考虑数据完整性 (1)打开cmd,进入mysql.exe文件所在的文件夹。 然后以用户名root密码123456登录。 如下图所示 图1 (2)执行创建数据库语句:create database mytest1; 然后执行语句:show databases查看库,发现mytest1库建立成功。 如下图所示 图2
(3)选择数据库mytest1,然后执行创建表S的语句:CREATE TABLE S ( SNO CHAR(2), SNAME VARCHAR(8), STATUS SMALLINT, CITY VARCHAR(8), PRIMARY KEY (SNO) ); 如下图所示 图3 (4)执行语句describe S; 显示表S的结构。如下图所示 图4 (5)在mytest1中,执行创建表P的语句: CREATE TABLE P( PNO CHAR(2), PNAME VARCHAR(8), COLOR CHAR(2), WEIGHT SMALLINT, PRIMARY KEY (PNO) ); 如下图所示
图5 (6)显示表P的结构,如下图所示 图6 (7)在mytest1中,执行创建表J的语句:CREATE TABLE J( JNO CHAR(2), JNAME VARCHAR(8), CITY VARCHAR(8), PRIMARY KEY (JNO) ); 如下图所示 图7 (8)显示表J的结构,如下图所示
1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'
(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;
实验项目名称: CSS页面布局及样式设计 (所属课程:web系统与技术) 学院:计算机学院专业班级:11级计科信息姓名:学号: 实验日期:实验地点:A06-404 合作者:指导教师:李 本实验项目成绩:教师签字:日期: 一、实验目的 (1)掌握CSS中的定位属性使用方法。 (2)掌握DIV+CSS的页面布局方式。 (3)掌握CSS中的常用属性的使用方法。 (4)理解CSS的样式构造。 二、实验条件 安装Web开发环境的微机。 三、实验内容 (1)重新对聊天室的注册页面、登陆页面和聊天页面进行页面布局。 (1)对聊天室的注册页面、登陆页面和聊天页面进行样式设计。 四、实验步骤 (1)注册页面使用CSS将注册表单居中显示,表单内嵌入表格将文本与输入域格式化显示,表单内使用label标签。 (2)登录页面中添加div层用于显示在线用户数。 (3)登录页面使用div将登录表单,在线用户数,logo图片,超链接等页面元素重新定位布局。 (4)聊天页面改用div标签并使用CSS的position定位属性进行布局,框架内的独立页面使用float属性进行布局。 (5)使用CSS设置三个页面的背景颜色或背景图片。 (6)注册页面使用CSS设计所有输入框和提交按钮的样式。 (7)登录页面使用CSS设置的超链接的字体和下划线、登录表单使用圆顶角、在线用户数使用图片数字,使用CSS设计登录按钮的显示样式。
(8)聊天页面中使用CSS设计信息发送表单和发送按钮的样式,设计用户信息列表和聊天信息段落的的显示样式。 五、实验结果 注册界面效果图及代码: