《数据库原理及应用》实验指导书
- 格式:doc
- 大小:123.50 KB
- 文档页数:14
《数据库原理与应用》实验指导书修改版(1)实验指导书医药信息工程学院·数据决策目录实验一利用ACCESS创建数据库及熟悉SQLServer开发环境.............................................1实验三数据库、表的创建............................................................. ..............................................8实验五连接查询和嵌套查询............................................................. ........................................15实验七数据的插入、修改、删除............................................................. ................................20实验九SQLServer数据库的安全性控制............................................................. ....................25实验十一熟悉PowerDeigner数据库设计............................................................. ................39实验十二PowerDeigner中概念模型与和物理模型的设计..................................................56实验十三Tranact-SQL编程............................................................. ........................................66实验十五存储过程的使用............................................................. .. (77)实验一利用ACCESS创建数据库及熟悉SQLServer开发环境一.实验目的1、熟知机房用机安全规则和实验报告的书写。
数据库原理及应用实验指导数据库原理及应用实验指导一、实验目的:1. 了解数据库的基本概念和原理;2. 掌握SQL语言的基本使用和操作方法;3. 学会使用数据库管理系统进行数据库的创建、插入、查询、修改和删除等操作。
二、实验内容:本次实验将围绕数据库的原理及应用展开,包括数据库的基本概念、数据库的设计原则、数据库的范式理论、SQL语言基础、数据库管理系统的使用等内容。
通过实际操作,学生能够更深入地理解数据库的工作原理,并且掌握数据库的基本操作方法。
三、实验步骤:1. 数据库基本概念1.1 什么是数据库?数据库是指一个按照数据模型组织、描述和存储数据的计算机软件,具有较好的数据管理性能。
数据库是实现数据共享和数据集成、并进行数据分析和决策的重要工具。
1.2 数据库的分类根据数据模型的不同,数据库可以分为层次数据库、网状数据库和关系数据库等不同类型。
1.3 数据库的特点数据库具有数据的共享性、冗余性小、数据独立性、数据一致性、数据安全性和故障恢复等特点。
2. 数据库设计原则2.1 单一职责原则每个数据表应该有一个明确的用途,只负责存储某一类数据。
2.2 数据冗余原则尽量避免数据冗余,减少存储空间和数据更新时的复杂度。
2.3 数据库范式理论范式理论是数据库设计的基础,包括第一范式、第二范式、第三范式等。
通过标准化设计,可以减少数据冗余,提高数据库的性能和可维护性。
3. SQL语言基础3.1 SQL语言的基本介绍SQL是结构化查询语言的缩写,是一种用于数据库管理系统的查询和程序设计语言。
3.2 SQL语句的分类SQL语句可以分为数据定义语句(DDL)、数据操作语句(DML)和数据查询语句(DQL)等不同类型。
3.3 SQL语句的基本操作方法包括数据库的创建、数据表的创建、数据插入与删除、数据查询和更新等操作。
四、数据库管理系统的使用4.1 数据库管理系统的概念数据库管理系统是一种用于管理数据库的软件系统,包括数据库的创建、数据的插入、查询、更新和删除等操作。
《数据库原理及应用》实验指导书实验一数据库的建立实验目的:掌握数据库的创建、基本表的创建和数据插入的方法实验要求:使用Oracle 11g进行数据库的创建、基本表的创建和数据插入实验条件:计算机,Oracle 11g实验内容:1、假设你是DBA,需要定义系统中的所有表。
试根据下面给出的关系模式,用SQL完成数据表的建立。
假设“阿里巴巴”酒店数据库中有如下的几个关系模式:(1)客户个人信息(身份证号,姓名,性别,年龄,工作单位)(2)客户入住信息(身份证号,客房号,入住时间,退房时间)(3)客房(客房号,客房类型号)(4)定价(客房类型号,客房类型名,单价)(5)订票(身份证号,机票号,订票时间)(6)机票(机票号,起始地,目的地,起飞时间,到达时间,机票价格,机票状态,航空公司号)注:机票状态只有三种 0:未出票1:已出票,但未被客户取走2:已出票且已被客户取走(7)航空公司(航空公司号,航空公司名,电话)(8)雇员(雇员号,姓名,雇员年龄,雇佣日期,被投诉次数)(9)打扫(雇员号,客房号)说明:数据库表中各个字段的数据类型及宽度,请根据实际情况自定。
数据库名、表名、字段名中英文均可,但需要有一定的实际含义。
2、试根据下面的完整性约束要求,用SQL对上面已经建立好的“阿里巴巴”酒店数据库表进行完整性约束定义。
(1)雇员的年龄必须大于20岁小于55岁,被投诉次数不能超过10次。
(2)客户的性别只能是“男”或“女”。
(3)客户每次入住的客房号和入住时间不能为空。
(4)各种类型客房的定价不得低于100元,也不得高于2000元。
(5)机票的状态只能有三种:0:未出票1:已出票,但未被客户取走2:已出票且已被客户取走实验二数据库的查询、更新实验目的:掌握数据库的查询、更新的方法实验要求:使用Oracle 11g实现数据库的查询、更新操作实验条件:计算机,Oracle 11g实验内容:1、试用SQL完成下面10个查询操作。
4.新建表(1)使用企业管理器建立student、course和SC三个表,其结构为:在SQL Server 2000 的数据库中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开己定义好的学生选课数据库后。
会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
要建立“student”表,先选中学生选课数据库中的表文件夹,单击鼠标右键,在弹出的菜单中选择“新建表”,随后的输入表结构对话框。
输入表结构对话框是一张表,它的列属性有列名、数据类型、长度和是否允许空4 项。
用户把新建表的结构填入对话框的表中,表中的每一行定义新建表(Course)的一列,每一列定义新建表的一个列属性。
当光标移到表中的某一行时,下面的列描述就会对应当前行显示输入项,用户可在其中对关系的属性进行进一步说明。
列描述包括数据的精度、小数位数、默认值、是否标识等项。
(2)使用T-SQL语句建立student,course,SC三个表Create Table student(sno varchar(20) primary key ,Sname varchar(50) not null,Age int,Sex char(2),Dept varchar(50));Create table course(cno varchar(20) primary key,Cname varchar(50) not null,Credit float not null,Pcno varchar(20) not null,Describe varchar(100) not null);Create table SC(sno varchar(20),Cno varchar(20),Grade float,primary key (sno,cno),foreign key (sno) REFERENCES student(sno),foreign key (cno) REFERENCES course(cno));5.定义表的完整性约束和索引表的约束包括码(主键)约束、外键约束(关联或关系约束)、惟一性约束、Check (检查)约束4 种。
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
《数据库原理与应用》实验指导书实验一数据库创建一、实验目的1、掌握在SQL-SERVER 2005平台下创建数据库的过程与方法。
2、理解数据完整性的基本概念,并掌握其实现方法。
二、实验预备知识1、SQL-SERVER数据库文件特点。
2、数据库完整性、主码、外码、默认值、空值、CHECK约束基本概念与相关基础知识。
三、实验内容(一)“仓库库存”数据库创建1、在E盘下新建一个名为“data”的文件夹。
(要求将后面创建的数据库文件均存储在该文件夹下)2、启动SQL Server Management Studio,连接数据库服务器,观察其界面环境。
3、创建名为“仓库库存”的数据库,并设置数据库主文件名为仓库库存_data,大小为10MB,日志文件名为仓库库存_log,大小为2MB。
4、删除上一步创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸5MB,增长速度为1MB。
5、在数据库“仓库库存”中完成下列操作。
(1)创建“商品”表,表结构如表1所示。
(2)创建“仓库”表,表结构如表2所示。
(3)创建“库存情况”表,表结构如表3所示。
7、分别给3个表添加数据如表4至表6所示:表5仓库表(二)“教学库”的创建1、创建名为“教学库”的数据库。
2、在“教学库”中创建“学生”表。
使用下列语句:CREATE TABLE student(sno char(7) PRIMARY KEY,sname char(8) NOT NULL,sex char(2),age smallintmajor char(8))3、在“教学库”中创建“课程”表。
使用下列语句:CREATE TABLE course(cno char(4) PRIMARY KEY,cname char(10) NOT NULL,credit int)4、在“教学库”中创建“选课”表。
《数据库原理与应用》实践指导书教育科学学院教育技术系编目录1课程性质 (1)2实践目标 (1)3实践方法指导 (1)4实践指导内容 (3)实践1 数据库的创建与管理 (3)实践2 表的创建与管理 (5)实践3 SQL数据查询 (9)实践4 SQL数据操纵 (12)实践5 数据库安全性和完整性 (18)实践6 数据库备份、还原 (26)实践7 SQL Server服务器数据操纵 (29)实践8 ASP、JSP数据库访问技术 (34)实践9 PB数据库应用开发⑴ (37)实践10 PB数据库应用开发⑵ (39)5实践报告 (41)一、报告题目 (41)二、报告内容 (42)三、提交方式 (42)附录:实践报告封面格式 (43)1课程性质《数据库原理与应用》课程是计算机专业的专业限选课程之一。
数据库技术是当今信息处理的基本手段之一,通过本课程的学习,使学生掌握数据库系统的基本概念、基本原理,并能用现有数据库管理系统进行数据库设计及应用系统开发。
2实践目标(1)深入理数据库原理,并设计和构造数据库模型。
(2)熟练运用关系数据库语言来处理数据库中的数据。
(3)熟练运用powerbuilder的数据库工具设计一个简单的数据库管理系统。
(4)培养严谨的科学态度,良好的习惯和综合运用所学知识解决实际问题的能力。
3实践方法指导一、根据《数据库原理与应用》课程教学大纲,本课程总学时数为68学时,其中实践教学占了34学时,是一门实践性很强的课程。
二、根据《数据库原理与应用》课程实践大纲要求,本课程的实践项目类型包含验证型、综合型、设计拓展型三种类型,分为五个大的项目组,它们分别是:(1)验证型项目三个,分别是:数据库及表的创建与管理;SQL数据查询及操纵;数据库安全性和完整性及数据库备份、还原。
(2)综合型项目一个,即:SQL Server服务器数据操纵及访问技术(3)设计型项目,也即拓展型项目一个,即:PowerBuilder数据库应用开发三、根据本课程实践项目总学时和项目组成及项目特点,将五个大的项目,再细分为10个分项目,分别为实践1,实践2….实践10,每个分项目,根据其内容多少和实践要求,分配不同的实践时间,然后,根据其所在的章节及教学顺序,分别穿插到教学日志中。
理学院信科08—2班陈先国实验1 创建数据库与数据表下面写出实现如下操作的SQL语句:(1)创建供应系统“GYXT”数据库。
CREATE DATABASE GYXTON(NAME=GYXT_data,FILENAME=’D:\GYXT.mdf’,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=GYXT_Log,FILENAME=’D:\GXTYData.ldf’,SIZE=5,MAXSIZE=25,FILEGROWTH=5);(2) 建立供应商表S。
CREATE TABLE S( SNO char(5)not null unique,SNAME char(20)not null unique,CITY char(20));INSERT INTO S VALUES('S1','精益','天津');INSERT INTO S VALUES('S2','万胜','北京');INSERT INTO S VALUES('S3','东方','北京');INSERT INTO S VALUES('S4','丰泰隆','上海');INSERT INTO S VALUES('S5','康健','南京');(3) 建立零件表P。
CREATE TABLE P(PNO char(2)not null PRIMARY KEY(PNO),PNAME char(20),COLOR char(20),WEIGHT smallint);INSERT INTO P V ALUES('P1','螺母','红',12);INSERT INTO P V ALUES('P2','螺栓','绿',17);INSERT INTO P V ALUES('P3','螺丝刀','蓝',14); INSERT INTO P V ALUES('P4','螺丝刀','红',14); INSERT INTO P V ALUES('P5','凸轮','蓝',40); INSERT INTO P V ALUES('P6','齿轮','红',30);(4) 建立工程项目表J。
数据库原理与应⽤实验指导书完整(快速切换页码⽅法:按住ctrl键再单击相关项⽬)实验⼀创建数据库与表1. 新建数据库(1) 利⽤向导创建数据库(新建⽂件/本机上的模板)(2) 创建空数据库2. 表的基本操作(1) 使⽤向导创建表(2) 复制表(3) 利⽤设计视图建⽴表(参考教材P25-P29)①设置查阅向导②设置标题属性(P42)③设置默认值(P44)④设置字段的“有效性规则”与“有效性⽂本”(P42)⑤设置掩码(P43)⑥设置⽇期格式:(P40)⑦设置主键(P49)⑧增加字段,在“姓名”字段后增加⼀个“年龄”字段(P48)⑨删除字段,将刚增加的字段删除。
(P49)(4) 表操作①在数据表视图和设计视图之间进⾏切换,熟悉切换的⽅法。
②在数据表视图中输⼊记录。
③隐藏/取消隐藏列(P53)——格式菜单④冻结(P64)——格式菜单⑤排序(P58)——记录菜单⑥筛选(P60)——记录菜单⑦调整表外观——格式菜单3. 表间关系(P64)4. 导⼊、链接、导出(P34)实验⼆查询⑴使⽤设计视图建⽴查询⑵使⽤设计视图建⽴查询⑶设置查询排序及准则⑷汇总查询⑸交叉表查询⑹参数查询⑺动作查询①删除查询②更新查询③追加查询④⽣成表查询:⑻利⽤SQL语句建⽴查询实验三窗体1. 掌握⾃动创建窗体、使⽤向导创建窗体的⽅法(1) 建⽴基于单表的窗体①纵栏式窗体②“表格式”窗体(2) 建⽴基于多表的“学⽣信息和成绩”窗体2. 在设计视图创建窗体⑴建⽴“学⽣信息简表”窗体⑵使⽤设计视图1⑶使⽤设计视图2实验四报表1. 建⽴“学⽣成绩单”报表2. 建⽴“学⽣档案”报表3. 建⽴“分数段统计”报表4. 建⽴“排名次”统计报表实验五宏实验六数据库设计理论实践《数据库原理与应⽤》实验指导书⼀、实验的性质与学习⽬的《数据库原理与应⽤》为⾮计算机专业的公共课程。
通过实验教学,使学⽣验证并掌握数据库管理系统的基本原理,具备数据库的基本设计能⼒、掌握利⽤数据库进⾏信息管理的基本技能,初步掌握数据库应⽤系统的开发⽅法,为以后更好地使⽤数据库应⽤系统打下坚实的基础。
《数据库原理及应用》项目实训指导书项目实训指导书(一)1. 项目实训的目的与基本要求在数据库应用技术项目教学的基础上,通过项目实训,将数据库应用技术和面向对象程序设计结合起来,经历项目开发的完整过程。
要求需求分析到位,数据库结构设计规范、合理,程序运行流畅、稳定,整体上能实现项目所需的功能。
2. 项目实训的方法和步骤⑴题目的选择从本课程的项目库(包含丰富的最近与本课程相关的开发项目)中选取一个项目,或在指导老师同意的情况下,自拟项目,项目内容要符合实际应用,与企业业务吻合。
项目完成后,经课题组验收、评价,符合要求的可加入项目库。
下面各步骤结合“网上书店”为例进行说明。
⑵项目背景介绍简要说明选择该项目的原因,如项目的意义、用途和发展前景等。
如:“网上书店”的项目背景可作如下描述。
电子商务,是指在Internet上进行商务活动,她正在以难以置信的速度渗透到人们的日常生活中,具有高效率、低成本的特点。
电子商务的一个重要技术特征是利用Web技术来传输和处理商业信息,使人们足不出户即可完成商品的交易,具有广泛的发展前景和商机。
⑶需求分析项目需求分析,就是了解项目需要做什么,需要完成什么功能。
此步聚是整个项目的基础。
此步骤以流程图的形式呈现,并加上适当的注释、说明。
如在“网上书店”项目中,站在购书者的角度,其购书流图如图1所示,购书者选择图书时,可选择各种查询方式,如按类别、关键字、出版社、作者等,总之,就是尽量方便购书者的操作。
图1 购书流程⑷概念结构设计将需求分析得到的用户需求,抽象为信息结构,找出实体及实体间的关系,并用E-R 图进行描述,列出实体表的名称和用途。
如“网上书店”项目,从购书流程中可找出如下实体:购书者、图书、图书类别和购物篮等,如表1所示。
;实体间的关系用E-R图表示,如图2所示。
表1 实体表图2 E-R图⑸逻辑结构设计把概念结构设计阶段产生的系统基本E-R图转换为具体的DBMS所支持的数据模型,即关系模式,列出各数据对象的名称,数据表各字段的类型、含义等,并用关系图的形式描述各表之间的关系。
《数据库原理及应用》实验指导书实验一数据库的建立实验目的:掌握数据库的创建、基本表的创建和数据插入的方法实验要求:使用Oracle 11g进行数据库的创建、基本表的创建和数据插入实验条件:计算机,Oracle 11g实验内容:1、假设你是DBA,需要定义系统中的所有表。
试根据下面给出的关系模式,用SQL完成数据表的建立。
假设“阿里巴巴”酒店数据库中有如下的几个关系模式:(1)客户个人信息(身份证号,姓名,性别,年龄,工作单位)(2)客户入住信息(身份证号,客房号,入住时间,退房时间)(3)客房(客房号,客房类型号)(4)定价(客房类型号,客房类型名,单价)(5)订票(身份证号,机票号,订票时间)(6)机票(机票号,起始地,目的地,起飞时间,到达时间,机票价格,机票状态,航空公司号)注:机票状态只有三种0:未出票1:已出票,但未被客户取走2:已出票且已被客户取走(7)航空公司(航空公司号,航空公司名,电话)(8)雇员(雇员号,姓名,雇员年龄,雇佣日期,被投诉次数)(9)打扫(雇员号,客房号)说明:数据库表中各个字段的数据类型及宽度,请根据实际情况自定。
数据库名、表名、字段名中英文均可,但需要有一定的实际含义。
2、试根据下面的完整性约束要求,用SQL对上面已经建立好的“阿里巴巴”酒店数据库表进行完整性约束定义。
(1)雇员的年龄必须大于20岁小于55岁,被投诉次数不能超过10次。
(2)客户的性别只能是“男”或“女”。
(3)客户每次入住的客房号和入住时间不能为空。
(4)各种类型客房的定价不得低于100元,也不得高于2000元。
(5)机票的状态只能有三种:0:未出票1:已出票,但未被客户取走2:已出票且已被客户取走实验二数据库的查询、更新实验目的:掌握数据库的查询、更新的方法实验要求:使用Oracle 11g实现数据库的查询、更新操作实验条件:计算机,Oracle 11g实验内容:1、试用SQL完成下面10个查询操作。
(1)查询各客户的姓名和工作单位。
(2)查询“张桦”客户的身份证号和年龄。
(3)查询标准房的价格。
(4)查询“李明”先生所住的客房号码及入住的时间。
(5)查询“张桦”先生所订客房的价格。
(6)查询还有哪些机票已经出票但未被取走。
(7)查询被投诉的雇员的姓名及次数。
(8)查询各雇员姓名及所负责打扫的客房号。
(9)查询“张庭”雇员负责打扫的客房的号码。
(10)查询各航空公司的名称和电话。
2、试用SQL完成下面6个查询操作。
(1)查询空标准房的房间号。
(2)查询身份证号为“310222************”客户最近入住酒店的日期是什么,住了几天。
(3)查询空双人房的数目。
(4)哪些机票已出票,但还未被取走,查询订购这些机票的房客姓名和客房号,以便及时通知他们来取票。
(5)查询从未订过机票的客户的数目。
(6)查询总共从东方航空公司(EASTERN AIRLINES)订购了多少张机票。
3、试用SQL完成如下的更新操作(1)酒店新进了一名打扫客房的雇员,其雇员号为“E110”,姓名是“张新”,雇佣日期为“7/20/2007”,试将该雇员的信息插入相应的表。
(2)身份证号为“310222************”,姓名是“张明”,年龄为35岁的男客户到酒店订了一间客房号为“1100”的客房,请对相应的表进行相应的操作。
(3)身份证号为“310222************”的客户退房了,请对相应的表进行相应的操作。
(4)将“E101”雇员的投诉次数加1。
(5)酒店欲解雇被投诉次数大于5次的雇员,试对相应的表进行相应的操作。
实验三视图、存储过程的使用实验目的:掌握数据库视图、存储过程的创建、修改和删除的方法实验要求:使用Oracle 11g实现数据库视图、存储过程的创建和使用实验条件:计算机,Oracle 11g实验内容:该实验用学生借书数据库XSBOOK,学生借书数据库相关信息如下:数据库名:XSBOOK数据文件名:XSBOOK日志文件名:XSBOOK _Log图书借阅系统的数据库为XSBOOK,该数据库主要由学生(XS)、图书(BOOK)、借阅(JY)3个表构成,依托3个基本表创建视图和存储过程。
表1 学生信息表(XS)表结构表2 学生信息表(XS)样本数据表3 图书信息表(BOOK)结构表4 图书信息表(BOOK)样本数据表5 借阅表(JY)结构表6 借阅表(JY)样本数据1、视图的创建和使用(1)把3个基本表联系起来,方便需要3表关联的功能使用。
SQL命令如下:CREATE VIEW RBLASSELECT XS.借书证号, JY.索书号, JY.ISBN, BOOK.书名,BOOK.出版社,BOOK.价格, JY.借书时间FROM XSINNER JOIN JY ON XS.借书证号=JY.借书证号INNER JOIN BOOK ON BOOK.ISBN=JY.ISBN (2)功能测试SELECT * FROM RBL观察3表关联的字段数据正确性。
2、存储过程的创建和使用➢参数借书证号(in_ReaderID)、ISBN(in_ISBN)、图书ID(in_BookID)、执行信息(out_str)。
➢实现功能根据存储过程的前3个参数,实现读者图书“借阅”。
第4个参数为输出参数,将存储过程的执行情况以字符串形式赋予此参数。
➢编写思路(1)根据“借书证号”查询XS表是否存在该读者,如果不存在,则将输出参数out_str 赋值为“该读者不存在”并返回0,存储过程结束,表示不能借书。
(2)根据“ISBN”查询BOOK中是否存在该图书,如果不存在,则将输出参数赋值为“该图书不存在”并返回0,存储过程结束,表示不能借书。
(3)根据“借书证号”查询XS表中该读者的借书量。
如果借书量=5,则将输出参数赋值为“读者借书量不能大于5”并返回0,存储过程结束,表示不能借书。
(4)根据“ISBN”查询BOOK表中该图书的库存量。
如果库存量=0,则将输出参数赋值为“图书库存量为0”并返回0,存储过程结束,表示不能借书。
(5)查询JY表中该读者是否已经借阅该图书,如果已经借过,则将输出参数赋值为“读者已经借过该书”并返回0,存储过程结束,表示不能借书。
(6)查询JY表中该索书号是否已经存在,如果存在则将输出参数赋值为“该索书号已存在”并返回0,存储过程结束,表示不能添加借书记录。
(7)使JY表增加一条该读者借书记录;XS表中该读者的借书量加1;BOOK表中该图书(对应ISBN)记录的库存量减1。
存储过程结束,将输出参数赋值为“借书成功”并返回1,表示借书成功。
(8)如果存储过程执行过程中遇到错误,则回滚之前进行的操作,并将输出参数赋值为“执行过程中遇到错误”并返回0,表示存储过程执行过程中遇到错误,回滚到执行存储过程前的状态。
➢实现方法PL/SQL如下:CREATE OR REPLACE PROCEDURE Book_Borrow(in_ReaderID in char,in_ISBN in char,in_BookID in char,out_str out char)ISCt_Reader Number(10);Ct_ISBN Number(10);Ct_MaxReader Number(10);Ct_Store Number(10);Ct_HaveRead Number(10);Ct_BookID Number(10);Error_Numer Number(10);no_result Exception;BEGINError_Numer:= 0;out_str:='';SELECT count(*) into Ct_Reader FROM XS WHERE 借书证号=in_ReaderID; IF Ct_Reader < 1 THENBEGINout_str:= '该读者不存在';Error_Numer:= 1;END;END IF;SELECT count(*) into Ct_ISBN FROM BOOK WHERE ISBN=in_ISBN;IF Ct_ISBN < 1 THENBEGINout_str:= '该图书不存在';Error_Numer:= 1;END;END IF;SELECT 借书量into Ct_MaxReader FROM XS WHERE 借书证号=in_ReaderID;IF Ct_MaxReader>5 THENBEGINout_str:= '读者借书量不能大于5';Error_Numer:= 1;END;END IF;SELECT 库存量into Ct_Store FROM BOOK WHERE ISBN=in_ISBN;IF Ct_Store =0 THENBEGINout_str:= '图书库存量为0';Error_Numer:= 1;END;END IF;SELECT count(*) into Ct_HaveRead FROM JY WHERE 借书证号=in_ReaderID and ISBN = in_ISBN;IF Ct_HaveRead > 0 THenBEGINout_str:= '读者已经借过该书';Error_Numer:= 1;END;END IF;SELECT count(*) into Ct_BookID FROM JY WHERE 索书号=in_BookID;IF Ct_BookID > 0 THENBEGINout_str:= '索书号已存在';Error_Numer:= 1;END;END IF;IF Error_Numer = 0 THENINSERT INTO JY V ALUES(in_ReaderID, in_ISBN, in_BookID, sysdate);UPDATE XS SET 借书量=借书量+1 WHERE 借书证号=in_ReaderID ;UPDATE BOOK SET 库存量=库存量-1 WHERE ISBN=in_ISBN;out_str:= '借书成功';IF SQL%NOTFOUND THENRAISE no_result;END IF;COMMIT;dbms_output.put_line(out_str);ELSEdbms_output.put_line(out_str);END IF;EXCEPTIONWHEN no_result THENDBMS_OUTPUT.PUT_LINE('执行过程中遇到错误!');DBMS_OUTPUT.PUT_LINE(out_str);ROLLBACK;WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);END;➢功能测试创建完存储过程Book_Borrow后可以使用PL/SQL语句验证图书借阅是否能够实现:SELECT 借书证号, 借书量FROM XS WHERE 借书证号= '10000001';/*查询10000001读者的原借书量*/SELECT ISBN, 库存量FROM BOOK WHERE ISBN='7-115-10162-0' ;/*查询图书的原库存量*/DECLARE out_str char(30);beginBook_Borrow('10000001', '7-115-10162-0', '5100000007',out_str); end;/*执行存储过程,实现图书借阅*/SELECT 借书证号, 借书量FROM XS WHERE 借书证号= '10000001';/*查询10000001号读者的现有借书量*/SELECT ISBN, 库存量FROM BOOK WHERE ISBN='7-115-10162-0' ;/*查询图书的现有库存量*/实验四数据库系统的安全性管理实验目的:掌握账户的建立,数据库用户权限的分配与回收实验要求:使用Oracle 11g实现账户的建立,数据库用户权限的分配与回收实验条件:计算机,Oracle 11g实验内容:1、为阿里巴巴酒店数据库创建以下用户:用户名:张敏,王林,李新,王立,王铭,张天密码:自行设定2、作为DBA的你,现在要负责给不同的数据库用户授予不同的权限,各用户可以执行的操作如下:(1)张敏和王林有权查询酒店客户的个人信息。