数据库第五次实验

数据库第五次实验
数据库第五次实验

南昌航空大学实验报告

2018年6月1 日

课程名称:数据库原理实验名称:数据库应用系统设计与开发

学号: 16206127 姓名:周良

指导教师评定:签名:

一、实验目的:

1.通过实验进一步学习和掌握数据库原理的基础知识和理论。

2. 学习SQL Server数据库管理系统的基本功能和建立数据库各种对象的方法。

3. 熟练掌握和使用SQL语言操纵数据库。

4. 理解和掌握利用数据库所学的理论知识来设计数据库的基本方法和步骤。

5. 通过上机操作和调试程序,提高学生理论联系实际和动手操作能力。

6.通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握教材中的相关内容。

二、实验内容及步骤:

一个简单的图书管理系统包括图书馆内书籍信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中面向学生部分可以进行查询和续借书籍等操作,面向管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、归还的确认。

1、需求分析:

学生操作流程如图:

登录

预定书籍

注销续借书籍

查询书籍

管理员

管理员可以完成书籍和学生的增加、删除和修改以及对学生借阅、续借、

归还的确认,其操作流程如图:

登录

书籍信息维护学生信息维护借阅图书确认归还图书确认

注销

2、概念模型设计:

数据库需要表达的信息有以下几种:

图书信息其数据项有图书编号、图书名称、作者、出版社等

学生信息其数据项有学生学号、学生姓名、电话等

管理员信息

图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人编号等。

为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应

增加出版社信息与图书分类信息:

出版社信息,其数据项有出版社编号、出版社名称、地址、电话、传

真等。

图书分类信息,其数据项有分类编号、分类名称、同一类型图书数目。

同时针对于本系统的多用户使用特点,增加用户信息表:

用户信息表,其数据项有用户名、密码、用户权限

为了实现图书借阅超期罚款制度,还应增设罚金规则表:

罚金规则表,其数据项包括免费使用天数、罚金费率、规则启用开关。

学生借阅归还图书信息

模型的E--R图如图示

3、逻辑设计:

通过ER 模型到关系模型的转化,可以得到如下关系模式:

姓名

学号

性别

学生

预订

续借

借阅 归还

图书

作者

语种

出版社

出版年

管理员

编号 姓名

书号

书名

Book(BookID,Title,Author,Publisher,Pyear,Language)

Student(ID,Name,Dept)

Assistent(ID,Name)

Bbook(BookID,StdID,BDate)

Rbook(BookID,StdID,RDate)

Lend(StdID,AstID,BookID,LDate)

Return(SdID,AstID,BookID,RDate)

说明

(1)书号是图书的键码,每本书有唯一的书号,一个学生可同时借阅多本书,一个管理员可处理多个同学的借阅等事宜。

(2)一般情况下,学生、管理员和图书之间的联系为1:1:n,借书关系Lend作为连接关系,其键码为n端实体集的键码,即书号作为借书关系的键码。这反映了如果还书时也把当出的借书记录删除,则书号就能唯一识别一个元组。

如果还书时不同时删除借书记录,则意味着同一本书前后可借给不同的学生于是学生、管理员和图书之间的联系变为m:1:n,这时借书关系的键码为书号和学生的组合。

如果在不删除借书记录的情况下,同一学生再次借同一本书,这时,学生、管理员和图书之间的联系变为m:p:n,于是,借书关系键码为书号、学号和管理员号的组合。但其中包含隐含信息,即同一学生前后两次借同一本书所遇到的管理员不同,而这种不同可能仅仅是“日期”不同。因此,借书日期成了必不可少的成分,也就是说,在这种情况下,属性全集才是借书关系的键码。

(3)要知道图书当前的状态,是在图书馆存放还是被借阅等,需要在Book的模式中增加对应项用以表示图书当前状态。比如我们增加state,并约定取值和状态的对应关系如下:

?在图书馆中并且没有被预订

?在图书馆中并且已被预订

?被借出并且没有被预订

?被借出并且已被预订

4、物理设计

为了提高在表中搜索远元祖的速度,在实际实现的时候应该基于键码建立索引。下面是各表中建立索引的表项:

Book(bookID)

Student(ID)

三、数据库表的建立及操作

1、表的建立

1)建立book表

CREATE TABLE Book(

BookID varchar(20)

PRIMARY KEY,

Tille varchar(50)

NOT NULL,

Author varchar(50), Publisher varchar(50), Pyear char(4),

Language char(1),

DEFAULT’c’,

State char(1)

DEFAULT’0’

);

2)建立student表

CREATE TABLE Student(

ID char(6)

PRIMARY KEY,

Name varchar(20)

NOT NULL,

Dept varchar(20)

NOT NULL

);

3)、建立assistent表

CREATE TABLE assistent(

ID char(6)

PRIMARY KEY,

Name varchar(20)

NOT NULL,

);

4)、建立BBook表

CREATE TABLE BBook(

BID varchar(20)

NOT NULL,

StdID char(6)

NOT NULL,

Bdate datetime

NOT NULL, CONSTRAINT FK_BBOOK_BID

FOREIGN KEY(BID) REFERENCES Book(BookID), CONSTRAINT FK_BBOOK_StdBID

FOREIGN KEY(StdBID) REFERENCES Student(ID),

);

5)、建立RBook表

CREATE TABLE RBook(

BookID varchar(20)

NOT NULL,

StdID char(6)

NOT NULL,

RDate datetime

NOT NULL,

CONSTRAINT FK_RBOOK_BookID

FOREIGN KEY(BookID)

REFERENCES Book(BookID),

CONSTRAINT FK_RBOOK_StdBID

FOREIGN KEY(StdID)

REFERENCES Student(ID) );

6)、建立lend表

CREATE TABLE Lend(

StdID char(6)

NOT NULL,

AstID char(6)

NOT NULL,

BookID varchar(20)

NOT NULL,

LDate datetime

NOT NULL,

CONSTRAINT FK_LEND_StdID

FOREIGN KEY(StdID)

REFERENCES Student(ID),

CONSTRAINT FK_LEND_AstID

FOREIGN KEY(AstID)

REFERENCES Assistent(ID)

CONSTRAINT FK_LEND_BookID

FOREIGN KEY(BookID)

REFERENCES Book(BookID) );

7)、建立Return表

CREATE TABLE return(

StdID char(6)

NOT NULL,

AstID char(6)

NOT NULL,

BookID varchar(20)

NOT NULL,

LDate datetime

NOT NULL,

CONSTRAINT FK_RETURN_StdID

FOREIGN KEY(StdID)

REFERENCES Student(ID),

CONSTRAINT FK_RETURN_AstID

FOREIGN KEY(AstID)

REFERENCES Assistent(ID)

CONSTRAINT FK_RETURN_BookID

FOREIGN KEY(BookID)

REFERENCES Book(BookID) );

2、管理员操作

①增加学生:

INSERT INTO Student(ID,Name,Dept)

VALUES(#StdNo,#Name,#Dept);

②删除学生;

DELETE FROM Student

Where(ID=#ID);

③修改学生信息;

UPDATE Student

SET Name=#Name,Dept=#Dept

WHERE(ID=#ID);

④增加书籍:

INSERT INTO Book(bookID,title,author,publisher,pyear,language) VALUES(#bookID,#title,#author,#publisher,#pyear,#language)

⑤删除书籍:

DELETE PROM Book

WHERE(Book=#IDbook)

⑥修改书籍信息

UPDATE BOOK

WHERE(Book=#BookID);

⑦学生借阅图书;

BEGIN TRANSACTION

INSRET INTO Lend(StdID,AstID,BookID,LDate)

VALUES(#StdID,#AstID,#BookID,#LDate);

UPDARE BOOK

SET STATE=’2’

WHERE BOOKID=#BOOKID

COMMIT;

⑧学生归还图书;

BEGIN TRANSACTION

INSRET INTO Return (StdID,AstID,BookID,LDate)

VALUES(#StdID,#AstID,#BookID,#LDate);

UPDARE BOOK

SET STATE=’0’

WHERE BOOKID=#BOOKID

COMMIT;

3、学生操作

预定图书:

Create proc book_book

@bookID varchar(20),

@stdID char(6),

@BDate datetime

AS

DECLARE @transname varchar(20)

Select @transname='book__book'

Begin transaction@transname

DECLARE@book int,@book_state_beforechar (1),@book,@book_state_after char(1)

Select @booked =count(*)from bbook where BID=@bookID

IF @booked>0

ROOLBACK TRANSACTION @TRANSNAMO

ELSE BEGIN

Select @book_state_before =state from book where bookID=@bookID

If @book_state_before='0'

Select @book_state_after ='1'

ELSE IF @book_state_betore ='2'

Select @book_state_after ='3'

Update book set state =@book_state_after where bookID Insert into BBook (bid,stdid ,bdate)

Values(@bookID,@stdid,@bdate)

Commit transaction @transname

END

GO

学生预定图书,假设图书已经憋预定了,则不允许继续预定。否则的话应根据图书是在馆内还是被借出去两种情况,修改图书当前的状态。最后在预定表中插入一条记录。修改记录和插入新纪录应该都发生或都不发生,所以将这个动作封装成一个事务,保证这个操作的原子性。

②续借图书:

Create proc renew_book

@bookID varchar(20),

@stdID char(6),

@BDate datetime

AS

DECLARE @transname varchar(20)

Select @transname='renew__book'

Begin transaction@transname

DECLARE@book int

Select @booked =count(*)from bbook where BID=@bookID

IF @booked=0

Insert into RBook (bookid,stdid ,bdate)

Commit transaction @transname

Values(@bookID,@stdid,@bdate)

Commit transaction @transname

GO

学生续借图书时,假定图书已经被预定了,则不允许继续续借。否则,在续借记录中插入一条记录就可以了。把这个动作封装成一个存储过程是为了使用方便明了。

四、实验总结

通过本次实了从用户需求分析,数据库设计到上机编程等过

程进一步理解和掌握了数据库的各方面的知识,通过上机操作和

调试程序,提高理论联系实际和动手实践操作能力。掌握了sQL

Server数据库管理系统的基本功能和建立数据库各种对象的方

法,通过此次上机知道了自己的不足并加以学习和改正,让知识

更加融汇与实践相结合。

数据库实验四-查询

华中科技大学 《数据库技术与应用》实验报告专业班级:学生姓名:学号: 实验地点:指导教师: 实验日期时间: 一、实验项目名称:数据查询 二、实验学时: 三、实验目的: 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 四、实验工具或环境 一台装有SQL sever2008的计算机五、实验内容、步骤、代码和结果: 0. 创建studentsdb数据库及其相应表,并录入数据。 在SQL Server管理平台上,点击“新建查询”打开查询编辑器窗口,复制粘贴附件“创建数据库代码”中的代码到查询编辑器窗口,运行即可生成相关数据库和表,并有相应的数据。 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly') (4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85

(6)SELECT 2,3,POWER(2,3) 选做 (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 (2)查询学号为0002的学生的姓名和家庭住址。 select姓名,家庭住址from student_info where学号 ='0002' (3)找出所有男同学的学号和姓名。 select姓名,家庭住址from student_info where性别='男' 3.使用SELECT语句进行条件查询 (1)在grade表中查找分数在80~90分为内的学生的学号和分数。 select学号,分数from grade where分数>='80'and分数<='90' (2)在grade表中查询课程编号为0003的学生的平均分。 select AVG(分数)as平均分from grade where课程编号='0003'

实验五 数据库系统设计

实验五数据库系统设计(上机时间6课时) 班级:通信1411 学号:141003410114姓名:李楠 合作成员刘蕾 1.实验目的:理要求学生掌握数据库设计的基本技术。熟悉数据库设计的每个步骤中的任务和实施方法, 并加深对数据库系统概念和特点的理解。 2.实验内容: 学生可根据自己熟悉的信息自选一个小型的数据库应用项目,进行系统分析和数据库设计。例如选择选修课管理系统、学生住宿管理系统、图书管理系统、材料管理系统或仓库管理系统等。 3.实验要求: ●要求起草数据库设计的关键步骤内容,至少包括: ?需求分析:分析用户种类及各自的功能要求;涉及主要数据实体及内容。系统设计的任务及主 要目标等。 ?完成实体建模并画出E-R图 ?起草数据字典 ?描述将关系表规范化至第三范式3NF的过程 ?构建并描述实体与实体关系 ●查阅有关书籍,熟悉MS SQL Server 2005,运用Microsoft SQL Server Management Studio Express在 MS SQL Server 2005上创建数据库。 ●运用Microsoft SQL Server Management Studio Express在MS SQL Server 2005上创建数据库基本表, 得到SQL脚本源码。(可以编写SQL DDL语句脚本源码,然后执行脚本创建基本表;也可以在Studio 中可视化创建基本表然后导出SQL脚本)。SQL脚本源码以文件名EXP5-1.sql存储上传。 ●运用Microsoft SQL Server Management Studio Express在编写SQL脚本,实现需求分析中各种用户需 要的数据库记录添加、记录修改、记录查询功能并将SQL脚本源码以文件名EXP5-2.sql存储上传。 将相应操作结果以文件名EXP5-3.txt存储上传。 ●允许有2人以内的小组合作,组与组之间数据字典、表名、属性名完全雷同视同抄袭;同学之间实 验运行结果完全雷同视同抄袭。 4.实验报告内容: 1.需求分析过程 流程:学生到学生选课系统进行选修课程,查看选修课程的课程信息,选课的老师信息,以及所选的课程号。如果学生要选某个课程,则要查询这门课程的教学老师以及它是否已经被选满;如果学生要查询所选课程的选课成绩,则要查询这门的教学老师;如果学生需要重新选课,则要求先退选所选的课程。 功能:实现学生的选课,重新退订选课,查询课程成绩。 2.E-R图

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

数据库上机实验

附录C 上机实验 C.1 第4章上机实验 下列实验均使用SQL Server 的SSMS工具实现。 1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): ●数据库名为:学生数据库 ●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D: 盘中无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB, 增长方式为自动增长,每次增加1MB。 ●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大 小为:2MB,增长方式为自动增长,每次增加10%。 2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)

(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。 (2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。(3)将Course表中Credit列的类型改为:tinyint。 (4)删除Student表中的Sid和Sdate列。 (5)为Teacher表添加主键约束,其主键为:Tno。 C.2 第5章上机实验 本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。 1.查询SC表中的全部数据。 2.查询计算机系学生的姓名和年龄。 3.查询成绩在70~80分的学生的学号、课程号和成绩。 4.查询计算机系年龄在18~20岁的男生姓名和年龄。 5.查询C001课程的最高分。 6.查询计算机系学生的最大年龄和最小年龄。 7.统计每个系的学生人数。 8.统计每门课程的选课人数和最高成绩。 9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 10.列出总成绩超过200的学生的学号和总成绩。 11.查询选了C002课程的学生姓名和所在系。 12.查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。 13.查询与VB在同一学期开设的课程的课程名和开课学期。 14.查询与李勇年龄相同的学生的姓名、所在系和年龄。 15.查询哪些课程没有学生选修,列出课程号和课程名。 16.查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。 17.查询计算机系哪些学生没有选课,列出学生姓名。 18.查询计算机系年龄最大的三个学生的姓名和年龄。 19.列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。 20.查询选课门数最多的前2位学生,列出学号和选课门数。 21.查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显 示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。 22.统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人 数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”; 如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。 23.查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表 VB_Grade中。

分布式数据库系统及其一致性方法研究

2007年第24卷第10期微电子学与计算机 1引言 分布式数据库系统在系统结构上的真正含义是指物理上分布、逻辑上集中的分布式数据库结构。数据在物理上分布后,由系统统一管理,用户看到的似乎不是一个分布式数据库,而是一个数据模式为全局数据模式的集中式数据库[1 ̄5]。 分布式数据库系统包括两个重要组成部分:分布式数据库和分布式数据库管理系统。分布式数据库系统具有位置透明性和复制透明性,使用户看到的系统如同一个集中式系统。分布式数据库系统分为三类:同构同质型DDBS、同构异质型DDBS和异构DDBS。同构同质型DDBS是指各个场地都采用同一类型的数据模型,并且是同一型号数据库管理系统;同构异质型DDBS是指各个场地都采用同一类型的数据模型,但是数据库管理系统是不同型号的;异构型DDBS是指各个场地的数据模型是不同的类型。 分布式结构是相对于集中式结构而言的。从数据处理的角度来说,典型的集中式结构是数据集中存放和处理,用户通过远程终端或通过网络连接来共享集中存放的数据。分布式结构则是将数据及其处理分散在不同场地,各场地各自管理一部分数据,同时又通过网络系统相互连接。各场地的用户除可以访问和处理本地数据外,也可以访问和处理别的场地的数据。分布式数据库是典型的分布式结构。它包括对数据的分布存储和对事务的分布处理。设计一个分布式数据库系统会遇到许多集中式数据库设计中所没有的问题,一致性是其中必须认真对待和解决的主要问题。 2DDBS的体系结构 2.1综合型体系结构 综合型体系结构是指在综合权衡用户需求之后,设计出分布的数据库,然后再设计出一个完整的DBMS,把DBMS的功能按照一定的决策分散配置在一个分布的环境中。每个结点的DBMS均熟知整个网络的情况,也了解其它结点的情况。从整体上,各结点组成一个完整的系统,它们之间是靠进程通讯的手段来维持互访连接,如图1所示。2.2联合型体系结构 联合型体系结构是指每个结点上先有DBMS,以此为基础,再建立分布式环境以实现互访连接。若各个结点的局部DBMS支持同一种数据模式和 分布式数据库系统及其一致性方法研究 刘萍芬,马瑞芳,王军 (西安交通大学电信学院,陕西西安710049) 摘要:分布式数据库系统是数据库领域中的一个主要研究方向,数据一致性维护是分布式数据库系统中的一个非常关键的技术问题。在分析分布式数据库系统体系结构的基础上,讨论了两种一致性方法:两阶段提交和复制服务器,并提出一种具有复制服务器的分布式数据库系统的结构框架,它具有有效性和实用性。 关键词:分布式数据库系统;一致性;两阶段提交;复制服务器 中图分类号:TP31文献标识码:A文章编号:1000-7180(2007)10-0137-03 ResearchofDistributedDatabaseSystemandDataConsistency LIUPing-fen,MARui-fang,WANGJun (CollegeofElectronicsandInformationEngineeting,Xi′anJiaotongUniversity,Xi′an710049,China) Abstract:Distributeddatabasesystemisamainresearchdirectioninthedatabasefield.Maintainingthedataconsis-tencyisacriticaltechnicalprobleminthedistributeddatabasesystem.Thispaperdiscussestwomethodsofmaintainingdataconsistencybasedonanalyzingthestructureofthedistributeddatabasesystem,whichare2PCandreplicationserv-er.Thenthepaperputsforwardadistributeddatabaseframeworkwhichhavereplicationserverstructure.Anditiseffec-tiveandapplied. Keywords:distributeddatabasesystem;dataconsistency;2PC;replicationserver 收稿日期:2006-10-27 137

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

数据库实验五说课讲解

数据库实验五

武汉纺织大学《数据库系统概论》实验报告 班级:级专业班姓名:学号: 实验时间: 2013 年 5 月 28 日指导教师:张星 实验五:窗体的设计 一、实验目的 1、掌握窗体的结构。 2、掌握用“自动向导”方式创建窗体。 3、掌握窗体的控件属性的定义。 4、掌握用“设计视图”方式创建窗体。 5、掌握表单控件的合理组合。 二、实验准备: 本实验需要用到实验一所创建的“学生成绩管理”的数据库和student、course以及sc表 三、实验内容 1、实验5-1 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“student”设计窗体“学生信息一览表”。 实验要求:用“自动创建窗体”的方式建立窗体,要求为表格式窗体。

2、实验5-2 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“student”设计窗体“学生详细信息录入”。 实验要求:用“设计视图”建立窗体,要求为纵栏式窗体。 详细要求: ①窗体要添加一个标题“学生详细信息录入”。 ②student表中的每个字段都要在窗体中有对应的输入文本框,并设置文本 框的标签。 ③给student表添加一个photo字段,并在窗体中设置对应的输入控件。给 学生添加照片。 ④设置一组按钮,实现“第一条”、“上一条”、“下一条”和“最后一条”的功 能,实现数据的保存、删除、新增的功能。设置一组导航按钮,实现“第一条”、“上一条”、“下一条”和“最后一条”的功能。 3、实验5-3 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“course”设计窗体“课程详细信息录入”。 实验要求:用“设计视图”建立窗体,要求为纵栏式窗体。 详细要求: ①窗体要添加一个标题“课程详细信息录入”。

数据库实验报告1

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;

福建农林大学分布式数据库实验三

福建农林大学 实验指导书 (2014 —2015学年第2学期) 软件工程系软件工程专业2012 年级 2 班 课程名称分布式数据库实验 教材名称分布式数据库实验指导书 主要参考书分布式数据库系统原理与应用 教材大纲类型2012大纲 任课教师颜吉强

实验三分布式分片技术实现 实验目的 1.了解俄掌握oracle上不同站点间的数据链接 2.了解和掌握依据站点的特性对数据库进行分片 实验学时 4学时 实验内容 创建两个数据库lin1和lin2 在lin1中创建myorcl1表,在myorcl2中创建myorcl2表

1 创建到另一个数据库的链接 数据库链接用于建立与远程数据的联系,它为远程数据库指定了数据库、用户帐户和口令。数据库链接可以是公共的,也可以是私有的。数据库链接存放在“本地”计算机的数据字典内,当使用时,它作为远程数据库的用户帐户连接到指定的数据库。当操作完成后,数据库链接退出远程的据库。如远程数据库正在运行分布式选件,数据库链接可用于远程数据修改,如果远程数据库没有运行分布式选件,则只能用于远程数据查询。 数据库键接的建立语句为: CREATE [PUBLIC] DATABASE LINK Linkname [CONNECT TO username IDENTIFIED By password] [USING…connectstring'] 其中:Linkname 数据库链接的名称 Username 用户帐户 password 口令 connectstring 远程数据库的连接串 连接串在SQL*NET 2.X版中,为远程数据库的别名。在SQL*NET 1.X版中包括用冒号隔开的三个部分,分别为网络接口驱动程序、服务器名称和数据库实例。 在myorcl中连接myorcl2, Create public database link myorcl1_2

数据库原理实验报告(5)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验五嵌套子查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)掌握多表查询和子查询的方法。 (2)熟练使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 (3)理解不相关子查询和相关子查询的实现方法和过程。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询选修了数据结构与算法的学生学号和姓名。 b)查询07294002课程的成绩低于孙云禄的学生学号和成绩。 c)查询和孙云禄同年出生的学生的姓名和出生年份。 d)查询其他系中年龄小于数学与信息技术学院年龄最大者的学生。 e)查询其他系中比数学与信息技术学院学生年龄都小的学生。 f)查询同孙云禄数据库原理与应用课程分数相同的学生的学号和姓名。 g)查询选修了07294002课程的学生姓名。 h)查询没有选07294002课程的学生姓名。 i)查询同时选修了07295006和07295007课程的学生的学号。 j)查询所有未授课的教师的工号、姓名和院系,结果按院系升序排列。 扩展实验: a)查询和10060101选修的全部课程相同的学生的学号、课程号、期末考试 成绩。 b)查询至少选了10060101选修的全部课程的学生的学号。 c)查询年龄比所在院系平均年龄小的学生的学号、姓名、年龄、院系,按 院系和年龄升序排列。 d)查询每门课都在80分以上的学生的学号和姓名。 (2)在SQL Server Management Studio中新建查询,尽可能用多种形式表示实验中的查询语 句,并进行比较。 (3)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。

数据库实验5报告

北京联合大学信息学院实验报告 题目:实验五用户自定义函数 系别:软件系 专业:软件工程 班级:软件1203B 学号:20120803600 姓名: 同组人:无 指导教师:果晓来 2014年5月21日

5.用户自定义函数(2学时) 实验目的: 学习、掌握用户自定义函数的建立和使用 实验内容: 1、创建自定义函数 创建一个用户自定义函数,并测试、查看函数返回值。1)输入并执行下面语句 USE Northwind GO CREATE FUNCTION fn_TaxRate (@ProdID INT) RETURNS numeric(5,4) AS BEGIN RETURN (SELECT CASE CategoryID WHEN 1 THEN 1.10 WHEN 2 THEN 1 WHEN 3 THEN 1.10 WHEN 4 THEN 1.05 WHEN 5 THEN 1 WHEN 6 THEN 1.05 WHEN 7 THEN 1 WHEN 8 THEN 1.05 END FROM Products WHERE ProductID = @ProdID) END GO

2)此函数中输入变量是什么?返回值类型?如何定义的返回值? 输入变量:@ProdID 返回类型:numeric 定义的返回值:RETURNS numeric(5,4) 3)输入并执行语句测试函数 SELECT ProductName, UnitPrice,Northwind.dbo.fn_TaxRate(ProductID) AS TaxRate, UnitPrice * Northwind.dbo.fn_TaxRate(ProductID) AS PriceWithTax FROM Products

分布式数据库原理及应用实验10-redis与hbase安装

《分布式数据库原理及应用》 实验报告 实验10:redis与hbase安装

一、实验目的 1.掌握redis与hbase的特点。 2.掌握redis与hbase的安装。 二、实验环境 操作系统自定 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 实验内容: 1.梳理mongodb,neo4j,memcache,redis,hbase的异同 2.完成redis的安装与测试 3.完成hbase的安装与测试 实验步骤: 1.梳理mongodb,neo4j,memcache,redis,hbase的异同 Redis 所用语言:C/C++ 特点:运行异常快使用许可: BSD 协议:类 Telnet 有硬盘存储支持的内存数据库 Master-slave复制 虽然采用简单数据或以键值索引的哈希表,但也支持复杂操作。 Redis支持事务,支持哈希表,支持排序sets,支持队列(阻塞/非阻塞),支持将数据设置成过期数据(类似快速缓冲区设计) Pub/Sub允许用户实现消息机制。最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。 例如:股票价格、数据分析、实时数据搜集、实时通讯。 Master-slave复制:如果同一时刻只有一台服务器处理所有的复制请求,这被称为Master-slave复制,通常应用在需要提供高可用性的服务器集群。 MongoDB 所用语言:C++ 特点:保留了SQL一些友好的特性(查询,索引) 使用许可: AGPL(发起者: Apache)协议: Custom binary( BSON) Master/slave复制(支持自动错误恢复,使用 sets 复制)内建分片机制 支持javascript表达式查询可在服务器端执行任意的 javascript函数 update-in-place支持比CouchDB更好。在数据存储时采用内存到文件映射对性能的关注超过对功能的要求建议最好打开日志功能(参数–journal) 最佳应用场景:适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对

北邮大三下数据库实验报告5

北京邮电大学 实验报告 课程名称数据库系统原理 实验内容实验5 数据库完整性与安全性实验 班级2013211***姓名 *** 指导老师成绩_________ 2016年05月20日

实验5 数据库完整性与安全性实验 实验目的: 1.通过对完整性规则的定义实现,熟悉了解SQL SERVER中完整性保证的规则和实现方 法,加深对数据完整性的理解。 2.通过对安全性相关内容的定义,熟悉了解SQL SERVER中安全性的内容和实现方法, 加深对数据库安全性的理解 实验内容 完整性实验与要求: 1.分别定义数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; 定义主键: 方法一:使用Enterprise Manager设置主键(以book表为例) ①光标移到book表的位置,右键->设计 ②在你要选的属性列右键->设置主键,完成。

方法二:使用SQL语句。 ①右键数据库,新建查询 设置外键: 方法一:使用Enterprise Manager设置外键(以student表为例) ①单击student表,鼠标移到“键”文件夹,单击右键,选择“新建外键”。 ②选择“表和列规范”进行设置

③我们想在student表设置class_id属性为外键,按照下图选择,点击确定,保存即可。 方法二:SQL语句 新建查询,输入如图语句。

2.向学生表插入具有相同学号的数据,验证其实体完整性约束; Student表的主键是学号,所以不能插入有相同学号的学生。 3.向学生表中插入一条数据,班级号是学生表的外键,验证参照完整性约束; Class表中没有“2013211302”这个班级,所以无法插入。改变班级号为class表中存在的,则能够进行插入,结果如下: 4.删除教师表中的所有数据,验证参照完整性约束;

《数据库原理》课程实验报告.

2013-2014学年第一学期《数据库原理》 课程实验报告 学号: 20112723 学生姓名:林苾湲 班级:软件工程2011-2 教师:陶宏才 辅导老师:张建华刘宝菊 2013年12月

实验一:表及约束的创建1.1 实验目的与内容 目的:创建数据表、添加和删除列、实现所创建表的完整性约束。 内容:11-2、11-26~33。 报告:以11-31作为实验一的报告。 1.2 实验代码及结果 1.2.1 实验代码 (1)CREATE TABLE orderdetail20112723 ( Order_no char(6) PRIMARY KEY CONSTRAINT Order_no_constraint20112723 CHECK(Order_no LIKE'[A-Z][A-Z][0-9][0-9]'), Cust_no char(6) NOT NULL, P_no char(6) NOT NULL, Order_total int NOT NULL, Order_date datetime NOT NULL, CONSTRAINT person_contr20112723 FOREIGN KEY (P_no) REFERENCES person20112723(P_no) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT customer_contr20112723 FOREIGN KEY (Cust_no) REFERENCES customer20112723(Cust_no) ON DELETE CASCADE ON UPDATE CASCADE, ) (2)ALTER TABLE salary20112723 ADD CONSTRAINT Pno_FK20112723 FOREIGN KEY(P_no) REFERENCES person20112723(P_no) 1.2.2 实验结果 (1)

数据库实验五报告

《数据库原理与应用》实验报告 实验名称:存储过程与触发器班级: 学号:姓名: 一、实验目的 (1)掌握Oracle数据库编程语言PL/SQL的基础知识。 (2)掌握游标、存储过程和触发器的创建,使用方法。 (3)了解使用高级语言连接数据库的技术、基本方法,了解ODBC、ADO和JDBC 的技术。 二、实验过程 在实验一、实验二创建的表中用PL/SQL语言完成以下内容: 1.创建存储过程,根据调用时提供的学生姓名查询该学生所修课程的课程信息,在过程体中将课程号、课程名和成绩输出到输出窗口,在SQL窗口中给出过程调用语句块。 语句:create or replace procedure p1(v_sname in s.sname%type) is a https://www.360docs.net/doc/a318922351.html,o%type; b https://www.360docs.net/doc/a318922351.html,ame%type; cursor c1 is select https://www.360docs.net/doc/a318922351.html,o,https://www.360docs.net/doc/a318922351.html,ame from course,sc where https://www.360docs.net/doc/a318922351.html,o=https://www.360docs.net/doc/a318922351.html,o and sno= (select sno from student where sname=v_sname); begin open c1; loop fetch c1 into a,b; exit when c1%notfound; dbms_output.put_line(a||' '||b); end loop; close c1;

end; begin p1('张北辰'); end; 执行结果: 2.(1)删除SPJ关系中所有数据。 语句:delete from spj; 执行结果: (2)在插入和修改SPJ表中QTY属性列的值时用触发器实现约束:如果是北京的供应商,供应任何零件的数量不能少于300,如果少于则自动改为300。 语句: create or replace trigger tr1 before insert or update on spj for each row declare v_citys.city%type; begin select city into v_city from s where sno=:new.sno;

数据库课程实验第一部分

徐州工程学院 管理学院实验报告 实验课程名称:数据库原理及应用 实验地点:经济管理实验教学中心 2013—2014学年(一)学期 2013 年9月至2013 年12 月 专业信息管理与信息系统 班级11信管2班 学生姓名 学号 指导老师蒋秀莲

数据库课程实验第一部分 实验一熟悉SQL Server 2008工作环境 实验目的: 1. 熟悉SQL Server 2008工作环境。 2. 熟悉SQL Server 2008中的主要管理工具。 3. 熟悉SQL Server 2008系统数据库的结构。 实验内容: 1.独立安装SQL Server 2008 。 2.练习使用SQL Server 2008中的主要管理工具 3. 查看系统数据库

4. 查看样例数据库

实验二创建数据库和数据表 实验目的: 1.了解SQL Server 2008数据库的逻辑结构和物理结构。 2. 了解表的结构特点。 3. 熟悉SQL Server的基本数据类型。 4. 了解数据库、数据表、约束等相关概念。 5. 创建数据库和表。 6. 掌握使用Transact-SQL语句创建数据库和表的方法。 实验内容: 练习创建数据库和数据表。 (1)打开“我的电脑”或“资源管理器”,在磁盘中以自己的姓名或学号建立文件夹。 (2)创建名为“学生-选课”(即名称为JWGL)数据库,并存储在第(1)步建立的文件夹下。 (3)在建立的JWGL数据库中按照表9-1至9-3所示创建Student、Course和SC三张关系表。 (4)在数据表中输入数据。为表1和表3建立主键约束,并为各表输入数据,具体记录如表1-3至1-8所示,为后续实验做准备。(表1-3至1-8、9-1至9-3参见教材) (1) (2) (3)

分布式数据库大作业

分布式数据库大作业 Hadoop MapReduce云计算模型研究 学院: 软件学院 专业: 软件工程 2014年01月02日 大连理工大学 Hadoop MapReduce云计算模型研究 1.引言 Hadoop[1]就是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算与存储。简单地说来,Hadoop就是一个可以更容易开发与运行处理大规模数据的软件平台。其包括两个部分:HDFS[2]与MapReduce[3]。 DFS即HadoopDistributed(Hadoop分布式文件系统),HDFS具有高容错性,并且可以被部署在低价的硬件设备之上。HDFS很适合那些有大数据集的应用,并且提供了对数据读写的高吞吐率。HDFS就是一个master/slave的结构,就通常的部署

来说,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。HDFS支持传统的层次文件组织结构,同现有的一些文件系统在操作上很类似,比如您可以创建与删除一个文件,把一个文件从一个目录移到另一个目录,重命名等等操作。Namenode管理着整个分布式文件系统,对文件系统的操作(如建立、删除文件与文件夹)都就是通过Namenode来控制[4]。 MapReduce就是由Google提出的一种并行分布式编程模型[5-7]。用以进行大数据量的计算。对于大数据量的计算,通常采用的处理手法就就是并行计算。至少现阶段而言,对许多开发人员来说,并行计算还就是一个比较遥远的东西。MapReduce就就是一种简化并行计算的编程模型,它让那些没有多少并行计算经验的开发人员也可以开发并行应用。MapReduce的名字源于这个模型中的两项核心操作:Map与Reduce。也许熟悉FunctionalProgramming(函数式编程)的人见到这两个词会倍感亲切。简单的说来,Map就是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定,比如对[1,2,3,4]进行乘2的映射就变成了[2,4,6,8]。Reduce就是对一组数据进行归约,这个归约的规则由一个函数指定,比如对[1,2,3,4]进行求与的归约得到结果就是10,而对它进行求积的归约结果就是24。 2.MapReduce的基本原理 MapReduce就是云计算的核心技术之一,它为并行系统的数据处理提供了一个简单、优雅的解决方案。其主要目的就是为了大型集群的系统能在大数据集上进行并行工作,并用于大规模数据的并行运算。 Divide and Conquer”就是Mapreduce的核心思想[8]。面对一个规模庞大的问题,要处理就是以TB计的数据,Mapreduce采用“输入”------“分解”------“解决”------“聚合”------“输出结果”的基本过程。 在MapRedcue 模型中用户只须指定一个map函数来处理一个输入的key/value对,产生中间结果key/value对集,再通过一个由用户指定的reduce函数来处理中间结果中具有相同key值的value。适合用MapReduce 来处理的数据集(或任务)有一个基本要求: 待处理的数据集可以分解成许多小的数据集,而且每一

华南农业大学大数据库系统概念实验报告材料五

实用文档 《数据库系统》实验报告五

实用文档 salary表中表具有查询权限,A.course对A.instructor对设置同学同学2. AB 使用命令检查授权是否成功。B字段具有更新权限;同学grant select on course to cs113; 实用文档

表具有插入数据、删除数据的权限,同对B. instructorB3. 同学授权同学A 用命令试验能否完成相应操作。学Aselect * from cs113.instructor; insert into cs113.instructor values(21313,'JDY','Comp. Sci.',745363); select * from cs113.instructor; cs113.instructor where salary = 92000; delete from select * from cs113.instructor; 实用文档

表具有增、删、改、查的权限,并允许他对B. studentB5. 同学授权同学A并试验能否将权限授予A将权限授权给其它同学。同学验证授权是否成功,。C其它同学(例如同学) 实用文档select * from cs113.student; insert into cs113.student values(13221,'KJDFH','Comp. Sci.',123); update cs113.student set tot_cred = 456 where ID = 13221; select * from cs113.student; delete from cs113.student where ID = 13221; select * from cs113.student;

数据库第二、三次实验

实验七简单SELECT语句 一.实验目的 1.观察查询结果, 体会SELECT语句实际应用; 2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。 3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。二.实验准备 1.完成实验四,成功建立了基本表。 2.了解简单SELECT语句的用法。 3.比较熟悉查询分析器中的SQL脚本运行环境。 三.实验要求 1.完成简单查询和连接查询操作,并验收实验结果提交实验报告 四.实验内容 所有的查询全部用Transact-SQL语句实现 1.简单查询操作 对EDUC数据库实现以下查询: ①求计算机系的学生学号和姓名; select sno,sname from student where dno='信息院' ②求选修了课程的学生学号; select distinct sno from student_course

③求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果 成绩相同则按学号的升序排列; select sno,score from student_course where cno='c1'order by score desc,sno asc ④求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; and cno=’c1’

⑤求计算机系和数学系的姓张的学生的信息; ⑥求缺少了成绩的学生的学号和课程号。 2.连接查询操作 对EDUC数据库实现以下查询: ①查询每个学生的情况以及他(她)所选修的课程; ②求学生的学号、姓名、选修的课程名及成绩; select student.sno,student.sname,cname,score from student,course,student_course where student.sno=student_course.sno and https://www.360docs.net/doc/a318922351.html,o=student_https://www.360docs.net/doc/a318922351.html,o ③求选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩; select student.sno,student.sname,score from student,student_course

相关文档
最新文档