oracle第八章课后题

合集下载

精品课件-oracle数据库实用技术-第8章

精品课件-oracle数据库实用技术-第8章

第8章 PL/SQL高级应用
所有信息设置完毕后,单击“显示SQL”按钮,即可显示自 动形成的创建存储过程的CREATE PROCEDURE语句,此语句即为命 令行方式创建存储过程的命令,单击“创建”按钮即可完成新存 储过程的创建。
注意:只有编译通过的存储过程才产生编译代码,并存储到 数据库数据字典中,才能被调用执行。
第8章 PL/SQL高级应用
2.命令行方式 命令行方式创建存储过程的方法是在SQL*Plus或iSQL*Plus 中使用CREATE PROCEDURE命令创建存储过程,创建存储过程的语 法如下: CREATE PROCEDURE [<方案名>.]<存储过程名>
[ (<参数1> IN | OUT | IN OUT <数据类型>, <参数2> IN | OUT | IN OUT <数据类型>,…)] {IS|AS}
通过员工的编号查看某员工的姓名及性别。(改写第7章例7.8为 存储过程)
第8章 PL/SQL高级应用
CREATE PROCEDURE staff1_pro ( c1 IN CHAR ) AS
TYPE staff_record_type IS RECORD ( v_sno staff.sno%TYPE,
第8章 PL/SQL高级应用
第8章 PL/SQL高级应用 8.1 管理存储过程 8.2 管理存储函数 8.3 管理触发器 8.4 小结 习题与思考题 实践8 PL/SQL高级编程
第8章 PL/SQL高级应用
8.1 管理存储过程 存储过程是PL/SQL语言的重要特征,是指为了完成某种特 定功能而编写的命名的PL/SQL程序块,它为创建和存储高度结 构化的、可重用的模块代码提供了一种手段。它存储在数据库 中,属于数据库的一部分。 利用存储过程不仅可以使程序代码简洁、规范,提高代码 重用性的同时还能极大地改善操作性能,提高程序的执行效率。 例如,在前台程序中想多次统计某医保卡的消费金额及等级, 只需要将第7章中例7.1的PL/SQL块命名,修改为存储过程并存 储在数据库中,这样在前台程序中可以随时通过调用这个存储 过程方便地完成相关信息的统计。

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第八章数据库并发控制

数据库系统概论习题集第⼋章数据库并发控制第⼋章数据库并发控制 ⼀、选择题 1.为了防⽌⼀个⽤户的⼯作不适当地影响另⼀个⽤户,应该采取()。

A. 完整性控制B. 访问控制C. 安全性控制D. 并发控制 2. 解决并发操作带来的数据不⼀致问题普遍采⽤()技术。

A. 封锁B. 存取控制C. 恢复D. 协商 3.下列不属于并发操作带来的问题是()。

A. 丢失修改B. 不可重复读C. 死锁D. 脏读 4. DBMS普遍采⽤()⽅法来保证调度的正确性。

A. 索引B. 授权C. 封锁D. ⽇志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。

A. ⼀级封锁协议B. ⼆级封锁协议C. 三级封锁协议D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。

A. 只能读不能写B. 只能写不能读C. 既可读⼜可写D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进⾏操作,可能有如下⼏种情况,请问哪⼀种不会发⽣冲突操作()。

A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同⼀数据进⾏操作,不会引起冲突的操作是()。

A. ⼀个是DELETE,⼀个是SELECT B. ⼀个是SELECT,⼀个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。

A. 系统故障B. 事务故障C. 介质故障D. 程序故障 选择题答案: (1) D (2) A (3) C (4) C (5) A (6) C (7) D (8) D (9) B ⼆、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运⾏。

当多个事务并发地存取数据库时就会产⽣同时读取和/或修改同⼀数据的情况。

若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的⼀致性。

数据库第8章习题参考答案

数据库第8章习题参考答案

第8章习题参考答案2.求程序的运行结果(1)Public Sub 习题8_2_1()Dim i As IntegerDebug.Print Tab(10); "*"For i = 1 To 5Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*"Next iFor i = 4 To 1 Step -1Debug.Print Tab(10 - i); "*"; Spc(i - 1); "*"; Spc(i - 1); "*"Next iDebug.Print Tab(10); "*"End Subrun:***** * ** * ** * ** * ** * ** * ** * *****(2)Public Sub 习题4_2_2()Dim x, y, i As Doublex = 0: y = 0For i = 1 To 8If i Mod 2 <> 0 Thenx = x - iElsey = y + iEnd IfNextDebug.Print "i="; iDebug.Print "x="; xDebug.Print "y="; yEnd Subrun:x=-16y= 20(3)Public Sub习题4_2_3()Dim m, s, k As Doublem = 28s = 0k = 1Do While k <= Int(m / 2)If Int(m / k) = m / k ThenDebug.Print ks = s + kEnd Ifk = k + 1LoopDebug.Print "s="; sEnd Subrun:124714s= 28(4)Public Sub 习题8_2_4()Dim n, a1, a2, a3, i As Doublen = Val(InputBox("请输入n,要求n>=3"))If n <= 2 ThenExit SubEnd Ifa1 = 1a2 = 1Debug.Print a1; a2For i = 2 To n - 1a3 = a1 + a2a1 = a2a2 = a3Debug.Print a3NextEnd Sub1 12353.改错题(1)Public Sub 改错8_3_1()Dim i, n, s As Doublen = Val(InputBox("请输入n"))i = 2: s = 1Do While i <= ns = s + ii = i + 1LoopDebug.Print "S="; sEnd Sub(2)Public Sub 改错8_3_2_求分式多项和()Dim nm, n, k ,p As integerDim y As Doublenm = Val(InputBox("请输入计算公式1后面的项目数目个数")) n = 1: p = 1: y = 1Do While n <= nmk = 2 * n + 1p = p * (k - 1) * ky = y + ((-1) ^ n) / pn = n + 1LoopDebug.Print "y="; yEnd Sub4.编程题(1)用if……else语句编程Public Sub分段函数1()Dim x, y, z As Doublex = Val(InputBox("请输入x的值:"))y = Val(InputBox("请输入y的值:"))If x > y And y <> 0 Thenz = x / yElseIf x = y Thenz = x * y * Sgn(y)Elsez = x + yEnd IfDebug.Print "x="; xDebug.Print "y="; yDebug.Print "z="; zEnd Sub(1)用select case语句结构编程Public Sub分段函数2()Dim x, y, z, a As Doublex = Val(InputBox("请输入x"))y = Val(InputBox("请输入y"))a = y - xSelect Case aCase Is > 0z = x + yDebug.Print zCase 0z = x * y * Sgn(y)Debug.Print zCase ElseIf y <> 0 Thenz = x / yDebug.Print zElseDebug.Print "z没有值"End IfEnd SelectEnd Sub(2)Public Sub 求解一元二次方程()Dim a, b, c As IntegerDim d, x1, x2, x3, x4 As Doublea = Val(InputBox("请输入a的整型数:"))b = Val(InputBox("请输入b的整型数:"))c = Val(InputBox("请输入c的整型数:"))d = b * b - 4 * a * cIf d > 0 Thenx1 = (-b + Sqr(d)) / (2 * a)x2 = (-b - Sqr(d)) / (2 * a)Debug.Print "x1="; x1, "x2="; x2Else if d=0 thenx3 = -b / (2 * a)x4 = -b/ (2 * a)Debug.Print "x3=";x3Debug.Print "x4=";x4ElseDebug.Print "方程没有实数解"End IfEnd Sub(3--1)用无条件转向语句GOTO编程Public Sub 数字与星期的转换1()Dim num As Integer10 num = Val(InputBox("请输入整数值:")) If num = 0 ThenDebug.Print "这是星期日"ElseIf num = 1 ThenDebug.Print "这是星期一"ElseIf num = 2 ThenDebug.Print "这是星期二"ElseIf num = 3 ThenDebug.Print "这是星期三"ElseIf num = 4 ThenDebug.Print "这是星期四"ElseIf num = 5 ThenDebug.Print "这是星期五"ElseIf num = 6 ThenDebug.Print "这是星期六"ElseIf num = -1 ThenDebug.Print "程序运行结束"EndElseDebug.Print "输入数据错误!"GoTo 10End IfEnd Sub(3--2)Public Sub数字与星期的转换2 ()Dim x As IntegerDo While Truex = Val(InputBox("请输入数字"))If x = 0 ThenDebug.Print "这是星期日"Exit DoElseIf x >= 1 And x <= 6 ThenDebug.Print "这是星期" + Str(x)Exit DoElseIf x = -1 ThenExit DoElseMsgBox ("输入数据错误!")End IfLoopEnd Sub(4)Public Sub 行李重量计费()Dim an, cn, weight, s_w, distance, fee As Doublean = Val(InputBox("请输入成年人数量"))cn = Val(InputBox("请输入未成年人数量"))weight = Val(InputBox("请输入行李重量"))distance = Val(InputBox("请输入距离"))s_w = weight - 20 * an - 10 * cnIf s_w <= 0 Thenfee = 0ElseIf distance / 100 = Int(distance / 100) Thenfee = 0.2 * s_w * (distance / 100)Elsefee = 0.2 * s_w * (Int(distance / 100) + 1) End IfEnd IfDebug.Print feeEnd Sub(5)Public Sub 求自然数的多项式和()Dim n, s As Integers = 0For n = 1 To 10s = s + (s + n)NextDebug.Print "S=1+(1+2)+(1+2+3)+...+1+2+3+...+10)="; s End SubRun:S=1+(1+2)+(1+2+3)+...+1+2+3+...+10)= 2036Public Sub 求多项自然数阶乘的和()Dim s, t As SingleDim n As Integert = 1s = 0For n = 1 To 20t = t * ns = s + tNextDebug.Print "1!+2!+3!+...+20!="; sEnd SubRun:1!+2!+3!+...+20!= 2.561327E+18(6)Public Sub 既能被3整除又能被5整除正整数个数() Dim i, x As Integerx = 0For i =100 To 200If i / 3 = Int(i / 3) And i / 5 = Int(i / 5) ThenDebug.Print ix = x + 1End IfNextDebug.Print "x="; xEnd SubRun:120135150165180195x= 7(7)Public Sub 输出直角三角形图案1()Dim i, j As IntegerFor i = 1 To 9Debug.PrintNextFor i = 1 To 4Debug.Print Tab(20); "*";For j = 1 To (2 * i - 2)Debug.Print "*";NextDebug.PrintNextEnd SubRun:****************Public Sub 输出直角三角形图案2() Dim i, j As IntegerFor i = 1 To 9Debug.PrintNextDebug.Print Tab(20); "*";For i = 1 To 4Debug.Print Tab(19 - i); "*";For j = 1 To (i + 1)Debug.Print "*";NextDebug.PrintNextEnd SubRun:*******************Public Sub 输出平行四边形图案() Dim i, j As IntegerFor i = 1 To 9Debug.PrintNextFor i = 1 To 5Debug.Print Tab(21 - i);For j = 1 To 6Debug.Print "*";NextDebug.PrintNextEnd SubRun:******************************(8)Public Sub 求选手获得的平均分()Dim score(1 To 11), minno, maxno, sum, aver As Single Dim i As Integerminno = 1maxno = 1sum = 0For i = 1 To 10score(i) = Val(InputBox("请输入选手的成绩值:")) Debug.Print score(i)NextFor i = 2 To 10If score(i) < score(minno) Thenminno = iEnd IfIf score(i) > score(maxno) Thenmaxno = iEnd IfNext iFor i = 1 To 10sum = sum + score(i)Next isum = sum - score(minno) - score(maxno)aver = sum / 8Debug.Print "该选手的平均分是:"; averEnd Sub(9)关于素数的求解(9-1)求100之内的所有素数Public Sub 求所有素数之和()Dim s, w, n As Integers = 0For w = 2 To 99 Step 2For n = 2 To Sqr(w)If w Mod n = 0 ThenExit ForEnd IfNextIf n > Sqr(w) Thens = s + wEnd IfDebug.Print "S="; sNextEnd Sub(9-2)Public Sub 求200以内的所有素数()Dim w, n As IntegerDebug.Print "200 以内的所有素数是:" For w = 2 To 199For n = 2 To Sqr(w)If w Mod n = 0 ThenExit ForEnd IfNext nIf n > Sqr(w) ThenDebug.Print w;End IfNextDebug.PrintEnd Sub(10)Public Sub 求水仙花数1()Dim i, j, k, n As IntegerDebug.Print "水仙花数是:"For i = 1 To 9For j = 0 To 9For k = 0 To 9n = i * 100 + j * 10 + kIf n = i * i * i + j * j * j + k * k * k ThenDebug.Print n;End IfNext kNext jNext iDebug.PrintEnd SubPublic Sub 求水仙花数2()Dim i, j, k, n As IntegerDebug.Print "水仙花数是:"For n = 150 To 999i = Int(n / 100)j = Int(n / 10 - i * 10)k = n Mod 10If n = i * i * i + j * j * j + k * k * k ThenDebug.Print n;End IfNextDebug.PrintEnd Subrun:水仙花数是:153 370 371 407(11)Public Sub 求分数数列和()Dim i, t, n As IntegerDim a, b, s As Singlen = 20a = 2:b = 1: s = 0For i = 1 To ns = s + a / bt = aa = a + bb = tNextDebug.Print "sum="; s;End Sub(12)Public Sub N年达到的利息()Dim y As IntegerDim interest1,interest As DoubleP=10000y = 0interest = 0Do Until interest >= 1000Interest1 =2*p* 0.0225 *(1-0.2) ‘一期2年整存整取扣税后的利息p=p+interest1 ‘扣税后的利息加上本金成为新一期的本金Interest=p-10000 ‘存款以来实际所的利息y = y + 2Debug.Print interest, yLoopEnd SubRun:360 2732.959999999999 4 1119.34656 6。

oracle课后填空选择解析

oracle课后填空选择解析

* *第二章数据库系统的物理储藏构造主要由 3 类文件组成,分别为数据文件、日志文件、控制文件。

2.用户对数据库的操作若是产寿辰记信息、那么该日志信息第一被储藏在日志缓冲区中,随后由 LGWR 进度保存到日志文件。

3.一个表空间物理上对应一个或多个数据文件。

4.在 Oracle的逻辑储藏构造中,依照储藏数据的种类,能够将段分为数据段、索引段、回退段、 LOB 段和临时段。

5.在 Oracle的逻辑储藏构造中,数据块是最小的I/O单元。

6.在多进度Oracle实例系统中,进度分为用户进度、后台进度和效劳器进度。

当一个用户运行应用程序,如PRO*C程序或一个Oracle工具〔如SQL*Plus〕,系统将为用户运行的应用程序建立一个用户进度。

1.以下选项中,哪一局部不是Oracle实例的组成局部?CA.系统全局区SGAB. PMON后台进度C.控制文件调换进度2.在全局储藏区SGA 中,哪局部内存地域是循环使用的?BA.数据缓冲区B.日志缓冲区C.共享池D.大池3.解析后的SQL 语句在 SGA 的哪个地域中进行缓存?CA.数据缓冲区B.日志缓冲区C.共享池D.大池4.若是一个效劳进度非正常停止,Oracle系统将使用以下哪一个进度来释放它所占用的资源?D5.若是效劳器进度无法在数据缓冲区中找到悠闲缓存块,以增加从数据文件中读取的数据块,那么将启动以下哪一个进度?D6.以下关于共享效劳器模式的表达哪一项不正确?AA.在共享效劳器操作模式下,每一个用户进度必定对应一个效劳器进度B.一个数据库实例能够启动多个调换进度C.在共享效劳器操作模式下,Oracle实例将启动调换进度Dnnn为用户进度分配效劳进度D.共享效劳器操作模式能够实现少量效劳器进度为大量用户进度供给效劳7.当数据库运行在归档模式下时,若是发寿辰记切换,为了保证不覆盖旧的日志信息,系统将启动以下哪一个进度?D8.以下哪一个进度和数据库部件能够保证用户对数据库所做的改正在没有保存的情况下,不会发生丧失改正数据?CA.DBWR 和数据文件和日志文件组 C.CKPT 和控制文件和归档日志文件9.以下哪一个进度用于将修改正的数据从内存保存到磁盘数据文件中?A10. 若是要盘问数据库中全部表的信息,应该使用以下哪一种数据字典视图?A视图视图视图D.动向性能视图11.以下哪一项为哪一项 Oracle 数据库中最小的储藏分配单元? DA.表空间B.段C.盘区D.数据块12.下面的各项中哪一个正确描述了Oracle 数据库的逻辑储藏构造?AA.表空间由段组成,段由盘区组成,盘区由数据块组成B.段由表空间组成,表空间由盘区组成,盘区由数据块组成C.盘区由数据块组成,数据块由段组成,段由表空间组成D.数据块由段组成,段由盘区组成,盘区由表空间组成第三章1.标准的SQL 语语言句种类能够分为:数据定义语句〔DDL 〕、数据控制语句〔DML 〕和数据控制语句〔 DCL 〕。

Oracle数据库系统应用开发实用教程习题库带答案章节练习题复习题思考题章末测试题1-10章全

Oracle数据库系统应用开发实用教程习题库带答案章节练习题复习题思考题章末测试题1-10章全

习题1一、选择题1.命令行方式的管理工具是()。

A.SQL*PlusB.iSQL*PlusC.Oracle企业管理器控制台D.SQL*Plus工作表2.对Oracle数据库进行管理,可以采用的工具是()。

A.Oracle Universal InstallerB.Oracle Database Configuration AssistantC.Oracle Enterprise Management ConsoleD.Net Manager3.为了使用iSQL*Plus工具,首先要启动()服务。

A.Oracle ServiceSIDB.OracleHOME_NAMETNSListenerC.OracleDBConsoleSIDD.OracleHome_NameiSQL*PLUS4.( )服务监听并接受来自客户端应用程序的连接请求。

A.OracleHOME_NAMETNSListenerB.OracleServiceSIDC.OracleDBConsoleSIDD.OracleHome_NameiSQL*PLUS5.为了使客户应用程序可以访问Oracle Server,在客户端需要配置以下哪个文件?()A.tnsnames.oraB.sqlnet.oraC.listener.ora6.为了使客户应用程序可以访问Oracle Server,在服务器端需要配置以下哪个文件?()A.tnsnames.oraB.sqlnet.oraC.listener.ora二、简答题1.简述Oracle 10g数据库服务器的企业版、标准版、个人版之间的区别和适用环境。

2.安装Oracle 10g 时,对硬件、软件有何要求?3.监听程序有什么作用?它是数据库服务器上的程序还是管理客户机上的程序?4.Oracle有哪些查询工具?5. 如何利用isql*plus连接到Oracle?6. 创建一用户,使之连接到Oracle,并更改其密码。

Oracle_PLSQL教程-第八章

Oracle_PLSQL教程-第八章

翻译:陈拓 chentuo@2006 年 6 月16 日操纵大对象Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题80 分钟 讲演40 分钟 练习120 分钟 总共目标完成本课程后, 您应当能够:• 比较和对比 LONG 和大对象 (LOB) 数据类型• 创建并维护 LOB 数据类型• 区分内部和外部大对象的区别• 使用 DBMS_LOB PL/SQL 包• 说明临时大对象的用途8­2 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标数据库有用于存储大对象的 LONG。

可是,这种内建于数据库的机制不像在 Oracle8 中新 提供的大对象 (LOB) 数据类型那样好用。

本课叙述这种新的数据类型的特性,并与早期的数据 类型进行比较。

用例子介绍 LOB 类型的语法和使用。

注:LOB 是一种数据类型,不要与对象类型混淆。

什么是 LOB ?LOBs用于存储大的非结构化的数据,例如:文本、图象、电影和声音波形。

8­3 Copyright © Oracle Corporation, 2001. All rights reserved.概览一个LOB是一个用于存储象文本、图形图像、视频剪辑等等这样的大的、非结构化数据的 数据类型。

结构化的数据象客户的记录可能只有几百个字节,但即使很是少量的多媒体数据可能 就会是几千倍之大。

还有,多媒体数据可能驻留在操作系统文件上,这些文件需要从数据库中访 问。

有四种大对象数据类型:· BLOB 表示二进制大对象,例如一个视频剪辑。

· CLOB 表示一个字符大对象。

· NCLOB 表示一个多字节字符大对象。

· BFILE 表示一个存储在数据库外部的一个操作系统二进制文件。

第8章课后习题答案知识讲解

第8章课后习题答案知识讲解

学习资料第9 课为学生信息管理系统创建存储过程1. 什么是存储过程?使用存储过程有哪些特点?答:存储过程是一种数据库对象,通常是把实现某个特定任务的一组预编译的SQL 语句创建一个存储过程,以一个存储单元的形式存储在服务器上,供用户反复调用,提高程序的使用效率。

使用存储过程的优点:允许模块化程序设计;允许更快执行;减少网络流量;可作为安全机制使用。

2. 试说明存储过程分类的特点。

答:1)系统存储过程。

存储在master数据库中,并以sp_为前缀,许多管理和信息活动可以通过系统存储过程执行。

2)本地存储过程。

是用户自行创建的并存储在用户数据库中的存储过程。

这类存储过程能根据用户的实际需要完成某以特定的功能。

3)临时存储过程。

临时存储过程分为本地临时存储过程和全局临时存储过程。

在创建存储过程时。

如果过程名的第一个字符取“#”,那么创建的就是本地临时存储过程;如果过程名的第一•第二字符都取,那么创建的就是全局临时存储过程。

临时存储过程存储在tempbd 内,它们在连接到SQL Server 以前的版本时很有用。

4)远程存储过程。

指非本地服务器上的存储过程,只有在分布式查询中使用此存储过程。

5)扩展存储过程。

扩展存储过程是用户使用外部程序语言编写的存储过程。

使用时需要先加载到SQLServer 系统中,且只能存储在master 数据库中,其执行与一般的存储过程完全相同。

引入扩展存储过程主要是弥补SQLServer 的不足之处,可以按需要大幅扩展其功能。

3. 请分别写出用企业管理器和T_SQL语句命令创建存储过程的主要步骤。

答:使用企业管理器1. 运行企业管理器,展开数据库STUM,S 在“存储过程”图标上右击,在弹出的快捷菜单中选择“新建存储过程”命令。

2. 在该窗口中首先输入所有者和存储过程名。

3. 输入实现存储过程功能的语句,单击“检查语法”按钮,进行语法检查。

4. 如果没有任何错误,单击“确定”按钮,将存储过程保存到STUMS数据库中。

2020年智慧树知道网课《ORACLE快速入门》课后章节测试满分答案

2020年智慧树知道网课《ORACLE快速入门》课后章节测试满分答案

第一章测试1【多选题】(10分)ORACLE的DBA日常工作有哪些任务A.ORACLE数据库应用架构设计B.ORACLE升级C.性能调优D.ORACLE安装2【多选题】(10分)数据库市场上主要分为哪几种类型的数据库A.关系型数据库B.NOSQL数据库C.ORACLE数据库D.NEWSQL数据库3【判断题】(10分)啤酒和尿片放在一起是数据挖掘的应用。

A.对B.错4【判断题】(10分)分布式数据库经常和并行数据库结合一起使用。

A.错B.对5【判断题】(10分)云数据库是云技术和数据库技术的结合。

A.对B.错第二章测试1【多选题】(10分)哪些操作系统可以安装ORACLE软件A.windows操作系统B.UNIX操作系统C.LINUX操作系统D.mac操作系统2【单选题】(10分)ORACLE11g中的g是什么意思A.互联网B.网格C.网络D.网址3【多选题】(10分)以下哪些是ORACLE的服务A.ORACLEDBCONSOLEORCLB.ORACLEORADB11G_HOME1TNSLISTENERC.ORACLEJOBSHEDULEORCLD.ORACLESERVICEORCL4【判断题】(10分)ORACLE的安装软件有32位安装包和64位安装包的区别。

A.对B.错5【判断题】(10分)我们可以通过数据库配置助手DBCA创建、删除、修改数据库。

A.错B.对第三章测试1【单选题】(10分)以下哪个选项是的A.sqlplus是客户端管理工具B.sqlplus就是sqlC.OEM是客户端管理工具D.sqlplus中除了可以输入sql语句外,还可以输入sqlplus的格式化语言2【单选题】(10分)在sqlplus中,用以下哪个命令可以查询表的结构A.describeB.showC.viewD.select3【单选题】(10分)以下哪个命令可以在sqlplus中执行某个文件中的sql命令A.editB.saveC.startD.sool4【判断题】(10分)使用edit命令修改缓冲区中最近一条命令。

(完整版)数据库系统基础教程第八章答案

(完整版)数据库系统基础教程第八章答案

Section 1Exercise 8.1.1a)CREATE VIEW RichExec ASSELECT * FROM MovieExec WHERE netWorth >= 10000000;b)CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExec, Studio WHERE MovieExec.cert# = Studio.presC#;c)CREATE VIEW ExecutiveStar (name, address, gender, birthdate, cert#, netWorth) AS SELECT , star.address, star.gender, star.birthdate, exec.cert#, WorthFROM MovieStar star, MovieExec exec WHERE = ANDstar.address = exec.address;Exercise 8.1.2a)SELECT name from ExecutiveStar WHERE gender = ‘f’;b)SELECT from RichExec, StudioPres where = ;c)SELECT from ExecutiveStar, StudioPresWHERE Worth >= 50000000 ANDStudioPres.cert# = RichExec.cert#;Section 2Exercise 8.2.1The views RichExec and StudioPres are updatable; however, the StudioPres view needs to be created with a subquery.CREATE VIEW StudioPres (name, address, cert#) ASSELECT , MovieExec.address, MovieExec.cert# FROM MovieExecWHERE MovieExec.cert# IN (SELECT presCt# from Studio);Exercise 8.2.2a) Yes, the view is updatable.b)CREATE TRIGGER DisneyComedyInsertINSTEAD OF INSERT ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWINSERT INTO Movies(title, year, length, studioName, genre)VALUES(NewRow.title, NewRow.year, NewYear.length, ‘Disney’, ‘comedy’);c)CREATE TRIGGER DisneyComedyUpdateINSTEAD OF UPDATE ON DisneyComediesREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE Movies SET length NewRow.lengthWHERE title = NewRow.title AND year = NEWROW.year ANDstudionName = ‘Disney’ AND genre = ‘comedy’;Exercise 8.2.3a) No, the view is not updatable since it is constructed from two different relations.b)CREATE TRIGGER NewPCInsertINSTEAD OF INSERT ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROW(INSERT INTO Product VALUES(NewRow.maker, NewRow.model, ‘pc’))(INSERT INTO PC VALUES(NewRow.model, NewRow.speed, NewRow.ram, NewRow.hd, NewRow.price));c)CREATE TRIGGER NewPCUpdateINSTEAD OF UPDATE ON NewPCREFERENCING NEW ROW AS NewRowFOR EACH ROWUPDATE PC SET price = NewPC.price where model = NewPC.model;d)CREATE TRIGGER NewPCDeleteINSTEAD OF DELETE ON NeePCREFERENCING OLD ROW AS OldRowFOR EACH ROW(DELETE FROM Product WHERE model = OldRow.model)(DELETE FROM PC where model = OldRow.model);Section 3Exercise 8.3.1a)CREATE INDEX NameIndex on Studio(name);b)CREATE INDEX AddressIndex on MovieExec(address);c)CREATE INDEX GenreIndex on Movies(genre, length);Section 4Exercise 8.4.1Exercise 8.4.2Q1 = SELECT * FROM Ships WHERE name = n;Q2 = SELECT * FROM Ships WHERE class = c;Q3 = SELECT * FROM Ships WHERE launched = y;I = InsertsIndexesNone Name Class Launched Name & Name & Class & ThreeSection 5Exercise 8.5.1Updates to movies that involves title or yearUPDATE MovieProd SET title = ‘newTitle’ where title=’oldTitle’ AND year = oldYear; UPDATE MovieProd SET year = newYear where title=’oldYitle’ AND year = oldYear;Update to MovieExec involving cert#DELETE FROM MovieProdWHERE (title, year) IN (SELECT title, yearFROM Movies, MovieExecWHERE cert# = oldCert# AND cert# = producerC#);INSERT INTO MovieProdSELECT title, year, nameFROM Movies, MovieExecWHERE cert# = newCert# AND cert# = producerC#;Exercise 8.5.2Insertions, deletions, and updates to the base tables Product and PC would require a modification of the materialized view.Insertions into Product with type equal to ‘pc’:INSERT INTO NewPCSELECT maker, model, speed, ram, hd, price FROM Product, PC WHEREProduct.model = newModel and Product.model = PC.model;Insertions into PC:INSERT INTO NewPCSELECT maker, ‘newModel’, ‘newSpeed’, ‘newRam’, ‘newHd’, ‘newPrice’FROM Product WHERE model = ‘newModel’;Deletions from Product with type equal to ‘pc’:DELETE FROM NewPC WHERE maker = ‘deletedMaker’ AND model=’deletedModel’; Deletions from PC:DELETE FROM NewPC WHERE model = ‘deletedModel’;Updates to PC:Update NewPC SET speed=PC.speed, ram=PC.ram, hd=PC.hd, price=PC.price FROM PC where model=pc.model;Update to the attribute ‘model’ needs to be treated as a delete and an insert. Updates to Product:Any changes to a Product tuple whose type is ‘pc’ need to be treated as a delete or an insert, or both.Exercise 8.5.3Modifications to the base tables that would require a modification to the materialized view: inserts and deletes from Ships, deletes from class, updates to a Class’ displacement. Deletions from Ship:UPDATE ShipStats SETdisplacement=((displacement * count) –(SELECT displacementFROM ClasssesWHERE class = ‘DeletedShipClass’)) / (count – 1),count = count – 1WHEREcountry = (SELECT country FROM C lasses WHERE class=’DeletedShipClass’); Insertions into Ship:Update ShipStat SETdisplacement=((displacement*count) +(SELECT displacement FROM ClassesWHERE class=’InsertedShipClass’)) / (count + 1),count = count + 1WHEREcountry = (SELECT country FROM Classes WHERE classes=’InsertedShipClass); Deletes from Classes:NumRowsDeleted = SELECT count(*) FROM ships WHERE class = ‘DeletedClass’; UPDATE ShipStats SETdisplacement = (displacement * count) - (DeletedClassDisplacement *NumRowsDeleted)) / (count – NumRowsDeleted),count = count – NumRowsDeletedWHERE country = ‘DeletedClassCountry’;Update to a Class’ displacement:N = SELECT count(*) FROM Ships where class = ‘UpdatedClass’;UPDATE ShipsStat SETdisplacement = ((displacement * count) + ((oldDisplacement – newDisplacement) * N))/countWHEREc ountry = ‘UpdatedClassCountry’;Exercise 8.5.4Queries that can be rewritten with the materialized view:Names of stars of movies produced by a certain producerSELECT starNameFROM StarsIn, Movies, MovieExecWHERE movieTitle = title AND movieYear = year AND producerC# = cert# AND name = ‘Max Bialystock’;Movies produced by a certain producerSELECT title, yearFROM Movies, MovieExecWhere produce rC# = cert# AND name = ‘George Lucas’;Names of producers that a certain star has worked withSELECT nameFROM Movies, MovieExec, StarsInWhere producerC#=cert# AND title=movieTitle AND year=movieYear AND starName=’Carrie Fisher’;The number of movies produced by given producerSELECT count(*)FROM Movies, MovieExecWHER E producerC#=cert# AND name = ‘George Lucas‘;Names of producers who also starred in their own moviesSELECT nameFROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND = starName;The number of stars that have starred in movies produced by a certain producer SELECT count(DISTINCT starName)FROM Movies, StarsIn, MovieExecWHERE producerC#=cert# AND movieTitle = title AND movieYear = year AND n ame ‘George Lucas’;The number of movies produced by each producerSELECT name, count(*)FROM Movies, MovieExecWHERE producerC#=cert# GROUP BY name。

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案第⼀章选择题1、Oracle数据库服务器包含的两个主要组件是(AB)A、Oracle实例B、oracle数据库C、内存结构D、后台进程2、create database 创建Oracle数据库时创建的⽂件包括(AC)A、数据⽂件B、控制⽂件C、⽇志⽂件D、初始化参数⽂件3、创建Oracle数据库时,createdatabase语句中指出了需要创建的数据⽂件、⽇志⽂件存储路径和名称,但没有指出需要创建的控制⽂件,因此创建数据库之前需要创建(D)个控制⽂件。

A、0B、1C、2D、任意数量4、调⽤shutdown命令关闭Oracle数据库后,以下(D)命令关闭的数据库处于不⼀致状态。

A、shutdown normalB、shutdown transactionalC、shutdown immediateD、shutdown abort5、作为普通⽤户,只有当数据库处于以下(C)状态下才可连接访问。

A、NUMOUNTB、MOUNTC、OPEND、CLOSE填空题1、SGA可分为以下⼏种主要区域:(SGA固定)、(数据库缓冲区缓存)、(重做⽇志缓冲区)、(共享池)等。

2、Oracle实例有多种后台进程,其中每个数据库实例上必须启动的后台进程包括(数据库写⼊进程)、(⽇志写⼊进程)、(检查点进程)、(进程监视进程)、(系统监视进程)等。

3、Oracle数据库的逻辑存储结构是(表空间)、(段)、(区)、(数据块)等。

4、Oracle数据库逻辑上的表空间结构与磁盘上的物理(数据)⽂件相关联。

5、下⾯连接字符串采⽤的是(简易连接)命名⽅式。

CONNECT Scott/tiger@dbs:1525@/doc/727db4ff03768e9951e79b89680203d8ce2f6aac.html编程题1.写出以下操作的SQL*PLUS命令语句:先启动Oracle实例到“已启动实例状态”,再修改Oracle实例到“数据库已装载状态”,最后修改Oracle实例到打开状态。

《Oracle数据库应用与实践》课后习题参考答案

《Oracle数据库应用与实践》课后习题参考答案

《Oracle数据库应用与实践》课后习题参考答案第1章Oracle数据库概述一.选择题1.A2.C3.B4.C5.B第2章Oracle数据库体系结构一、填空题1.数据文件日志文件控制文件2.日志缓冲区LGWR日志文件3.数据4.数据段、索引段、回退段、LOB段和临时段5.数据块6.用户进程后台进程服务器进程用户进程二、选择题C B CD D A D B A A CA三、简答题略。

第3章Oracle数据库常用工具一、填空题1.SQL语句SQL*Plus命令2.EDIT SPOOL3.DESCRIBE4.GET5.CLEAR OFF6.SAVE START7.NUMFORMAT COLUMN二、选择题ACBDA BABCD三、简答题略。

第4章表空间和数据文件管理一、填空题1.表空间数据文件2.数据字典管理本地化管理3.联机(ONLINE)读写(READ WRITE)只读(READ ONLY)和脱机(OFFLINE)4.SYSTEM表空间、SYSAUX表空间、TEMP表空间、UNDOTBS1表空间、USERS表空间、EXAMPLE表空间。

5.ONLINE OFFLINE OFFLINE DROP6.TEMPORARY UNDO BIGFILE二、选择题ACDBC DBC三、简答题略。

第5章Oracle模式对象一、填空题1.字段级约束表约束2.NOT NULL约束UNIQUE约束PRIMARY KEY约束FOREIGN KEY约束3.CREATE TABLE CREATE ANY TABLE4.UNIQUE PRIMARY KEY CHECK5.合并索引重建索引er_updatable_columns7.同义词8.nextval currval二、选择题CCCBA DADBD三、简答题略。

第6章SQL语言基础一.填空题1.*2.WHERE,ORDER BY3.GROUP BY,ORDER BY4.UPDATE,DELETE,TRUNCATE5.CHR,ASCII6.TO_CHAR,字符串转,日期数据,DD-MON-YY二.选择题1BD 2.B3B 4.D 5.C 6.B7.B8.C9.C10.D三.简答题略第7章SELECT高级查询一.填空题1.数据定义语言、数据操纵语言2.单行操作符、多行操作符3.子查询返回的结果4.WHERE,GROUP BY,ORDER BY5.ANY,ALL6.EXISTS,NOT EXISTS7.INNER JOIN,OUTER JOIN,CROSS JOIN8.UNION,MINUS二.选择题1.A2.A3.BD4.D5.D6.C7.A8.B三、简答题略第8章PL/SQL编程基础一.填空题1.EXCEPTION2.:=3.CONSTANT4.打开游标,检索游标5.EXCEPTION6.RAISE7.系统异常和用户自定义异常8.显式游标和隐式游标二.选择题1.ACD2.C3.C4.D5.ABD6.B7.D8.B9.D10.D11.ABC三.简答题略四.编程题1、查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:DEPT (4)EMP (14)BONUS 0SALGRADE (5)其实现的代码是:declaretype tab_names is table of varchar2(20)index by binary_integer;tab_name tab_names;coun number;str varchar2(100);beginselect table_name bulk collect into tab_name from user_tables;for i in tab_name.first..tab_st loopstr:='select count(*)from'||tab_name(i);execute immediate str into coun;dbms_output.put_line(tab_name(i)||'..........'||coun);end loop;end;2、某cc表数据如下:c1c2--------------1西1安1的2天2气3好……转换为1西安的2天气3好要求:不能改变表结构及数据内容,仅在最后通过SELECT显示出这个查询结果代码为:create or replace function x returnvarchar2istype t_array is table of number index by binary_integer;type tarray is table of varchar2(10)index by binary_integer;ta t_array;tar tarray;re varchar2(10);n number;na varchar2(10);beginselect id bulk collect into ta from(select id,name from xx order by id)group by id;for i in st loopdbms_output.put(ta(i)||'');select name bulk collect into tar from xx where id=ta(i);for i in st loopdbms_output.put(tar(i));end loop;dbms_output.put_line('');end loop;return re;end;2、请用一条sql语句查询出scott.emp表中每个部门工资前三位的数据,显示结果如下:DEPTNO SAL1SAL2SAL3---------------------------------------------------------------105000245013002030002975110030285016001500则,该语句为:select deptno,max(sal)sal1,max(decode(t,2,sal))sal2,min(sal)sal3from(select sal,deptno,t from(select empno,ename,sal,row_number()over(partition by deptno order by sal desc)t,deptno from emp)e where e.t<=3)group by deptno3、表nba记录了nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份:TEAM Y--------------------------------------------------活塞1990公牛1991公牛1992公牛1993火箭1994火箭1995公牛1996公牛1997公牛1998马刺1999湖人2000湖人2001湖人2002马刺2003活塞2004马刺2005热火2006马刺2007凯尔特人2008湖人2009湖人2010请写出一条SQL语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下:TEAM B E--------------------------------------------------------------公牛19911993火箭19941995公牛19961998湖人20002002湖人20092010select max(nn.team)team,min(nn.y)B,max(nn.y)+1E from(select n2.team,n2.y from(select*from nba)n1join(select*from nba)n2on n1.team=n2.teamwhere n1.y=n2.y+1)nngroup by(nn.y-rownum)order by B第9章存储过程、函数、触发器和包一、填空题1.过程的名称过程的使用的参数过程执行的操作2.CALL命令调用3.REPLACE4.OUT IN OUT5.DROP ANY PROCEDURE6.DML触发器INSTEAD OF(替代)触发器DDL触发器7.FOR EACH ROW8.CREATE PACKAGE BODY二、选择题1.A 2.C 3.B 4.A 5.BC 6.AC7.D8.D第10章Oracle安全性管理一填空题1.CREATE USER2.WITH ADMIN OPTION,WITH GRANT OPTION3.系统权限,对象权限4.角色5.CREATE ANY TABLE6.SET ROLE二选择题1AB2D3D4B5B6A三简答题略第11章数据库备份和恢复一、填空题1.RECOVERY_CATALOG_OWNER2.MOUNT3.FULL4.ARCHIVELOG5.不可以6.MOUNT二、选择题1.ACD2.A3.ABCD4.BCD5.AD6.CD三简答题略第12章系统性能及语句优化一、填空题1.*2.WHERE子句3.EXISTS子句4.复合索引5.MONITORING USAGE6.别名7.大写8.>=二、选择题1.B2.C3.A4.D5.ABCD第13章Oracle数据挖掘技术一、填空题1.数据挖掘隐含的未知的2.API-ODM Java API ODM DBMS_DM PL/SQL API3.Clustering Association Feature Extraction。

oracle-10g-数据库基础教程课后习题答案择题(中文)

oracle-10g-数据库基础教程课后习题答案择题(中文)

第3章创建数据库(1)后台进程跟踪文件的位置是( C )A.LOGFILE_DEST B.ORACLE_HOME C.BACKGROUND_DUMP_DEST D.CORE_DUMP_DEST(2)手动创建数据库的第一步是( C )A.启动实例B.启动SQL*Plus 以SYSDBA身份连接OracleC.查看系统的实例名[D.创建参数文件(3)关于控制文件以下正确的是( A )A.Oracle建议至少二个控制文件存放在二个磁盘分区B.Oracle建议至少二个控制文件存放在一个磁盘分区C.Oracle建议存放一个控制文件D.一个控制文件不足以运行数据库(4)执行CREATE DATABASE命令之前,应该发出的命令是( B )A.STARTUP INSTANCE B.STARTUP NOMOUNT:C.STARTUP MOUNT D.以上都不是(5)创建数据库时,Oracle如何得知需要创建的控制文件信息( A )A.从初始化参数文件B.从 CREATE DATABASE 命令C.从环境变量D.从$ORACLE_HOME目录名为 <db_name>.ctl的文件(6)哪个脚本文件创建数据字典视图( A )A. B. C. D.(7);(8)创建数据库时,DATAFILE子句能定义几个数据文件( C )A.一个B.二个C.多个;仅一个属于系统表空间D.多个;都属于系统表空间(9)谁拥有数据字典( A )A.SYS B.SYSTEM C.DBA D.ORACLE(10)在CREATE DATABASE命令中,非法子句是( B )&A.MAXLOGMEMBERS B.MAXLOGGROUPSC.MAXDATAFILES D.MAXLOGHISTORY(11)创建一个数据库至少需要几个控制文件( A )A.一个 B.二个 C.三个 D.无第5章物理存储结构(1)关于联机重做日志,以下哪两个说法是正确的( BC )A.所有日志组的所有文件都是同样大小B.一组中的所有成员文件都是同样大小!C.成员文件应置于不同的磁盘D.回滚段大小决定成员文件大小(2)DBA使用哪个命令显示当前归档状态( A )A.ARCHIVE LOG LIST B.FROM ARCHIVE LOGSC.SELECT * FROM V$THREAD D.SELECT * FROM ARCHIVE_LOG_LIST(3)创建一个数据库需要多少个控制文件( A )A.1 B.2 C.3 D.0(4)将下句补充完整:控制文件的建议配置是( C )…A.每数据库一个控制文件 B.每磁盘一个控制文件C.二个控制文件置于二个磁盘 D.二个控制文件置于一个磁盘(5)当创建控制文件时,数据库必须处于什么状态( B )A.加载 B.未加载 C.打开 D.受限(6)哪个数据字典视图显示数据库处于归档状态( C )A. V$INSTANCE B.V$LOG C.V$DATABASE D.V$THREAD(7)把多路镜像控制文件存于不同磁盘最大的好处是( B )A.数据库性能提高/B.防止失败C.提高归档速度D.能并发访问提高控制文件的写入速度(8)哪个文件用于记录数据库的改变,并且用于实例的恢复( B )A.Archive log file B.Redo log file C.Control file D.Alert log file (9)一个实例可以建立几个归档进程( C )A.5 B.4 C.10 D.取决于操作系统(10)定义归档目标地址时,哪两个参数不能一起使用( BC )!A.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DUPLEX_DEST B.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DEST_1C.LOG_ARCHIVE_DEST and LOG_ARCHIVE_DEST_2D.以上都不是;可以指定所有的归档参数第6章逻辑存储结构(1)段的集合称为( C )A.区 B.段 C.表空间 D.数据库(2)](3)当数据库崩溃,何时使用回滚信息( C )A.在崩溃之前B.恢复完成之后C.数据库重新打开之后、恢复之前D.数据库崩溃后回滚信息不被使用(4)数据字典表和视图存储在( B )A.USERS表空间 B.SYSTEM表空间C.TEMPORARY表空间 D.以上三个中任意(5)【(6)PCTFREE与PCTUSED之和不应超过( A )A.100 B.50 C.25 D.10(7)数据块的哪三个部分合称为块头部( C )A.表目录、行目录和行数据B.标题、表目录、空闲区C.表目录、行目录、标题D.块头部、行数据、行头部(8)数据库打开时,以下哪个表空间必须联机( A ).A.SYSTEM B.TEMPORARY C.ROLLBACK D.USERS (9)指定哪个表空间参与排序操作,可以提高排序效率B A.SYSEM B.TEMPORARY C.ROLLBACK D.USERS (10)临时表空间中用于排序的段是何时创建的( A )A.排序操作开始的时候B.临时表空间创建的时候C.当排序操作需要内存操过1KB的时候。

oracle课后题答案.doc

oracle课后题答案.doc

第一章一、选择题1.若关系的某一屈性组的值能唯一地标识一个元组,我们称之为(B )。

A、主码B、候选码C、外码D、联系2.以下不属于数据库模式的三要素的是(C )。

A、数据结构B、数据操作C、数据控制D、完整性约束3.以下对关系性质的描述屮,哪个是错误的?( B )A、关系中每个属性值都是不可分解的B、关系中允许出现相同的元组C、定义关系模式时可随意指定属性的排列次序D、关系中元组的排列次序可以任意交换二、填空题1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。

2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。

三、思考题1.数据库管理系统的主要功能有哪些?1)数据定义功能。

DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。

2)数据存取功能。

DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。

3)数据库运行管理功能。

DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据止确有效。

4)数据库的建立和维护功能。

包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。

5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS Z间的通信,通常与操作系统协调完成。

2.思考关系规范化的过程。

答:对于存在数据兀余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。

3.思考数据库设计的步骤。

答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。

第二章一、选择题1、Oracle llg不具备的版本是(C)A.个人版B.标准版C.扩展板D.企业版2、oracle数据库的数据字典不能做的工作有(B)A.查找oracle数据库用户信息B.查找oracle数据库表中的信息C.查找oracl e数据库模式对象的信息D.查找oracle数据库存储结构的信息二、填空题1、Oracle体系结构由内存结构、进程结构和存储结构组成。

Oracle习题答案(课后题)

Oracle习题答案(课后题)

/articles/330494.html 第一章略第二章5、已知一个关系数据库的模式如下:S (SNO,SNAME,SCITY)P (PNO,PNAME,COLOR,WEIGHT)J (JNO,JNAME,JCITY)SPJ (SNO,PNO,JNO,QTY)供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR 、重量WEIGHT 组成;工程项目J 由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY 组成。

用关系代数表达式表示下面的查询要求:(1)求供应工程J1 零件的供应商代码SNO(2)求供应工程J1 零件P1 的供应上代码SNO(3)求供应工程J1 零件为红色的供应商代码SNO(4)求没有使用天津供应商生产的红色零件的工程项目代码JNO(5)求至少用了供应商S1 所供应的全部零件的工程项目代码JNO(4)JNO (J )— JNO (「CITY-天津'(S) SPJ 「COLOR-红色'(P))(5) PNO,JNO (SPJ) 71PNO e SN0='S1' (SPJ))第三章 22 .建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:学号、姓名、出生年月、系名、班号、宿舍区。

班级:班号、专业名、系名、人数、入校年份。

系:系名、系号、系办公地点、人数。

学会:学会名、成立年份、办公地点、人数。

语义如下:一个系有若干专业,每个专业每年只招一个班, 每个班有若干学生。

一个系的学生住在同一宿舍区。

每个学生可 参加若干学会,每个学会有若干学生。

学生参加某学会有一个入 会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集, 指 出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨答: (1)SNOI JI⑵SNO (3) n (\ SNO\JNO'JI' (SPJ))JNO'JI' PNO'PI' (SPJ)) JNO (JT COLORS 红色’(P SPJ)) 71 CJ论函数依赖是完全函数依赖,还是部分函数依赖。

数据库第八章课后答案

数据库第八章课后答案

1、掌握事务的概念和特性。

事务是DBMS的基本工作单位,它是用户定义的一组逻辑一致的程序序列。

它是一个不可分割的工作单位,其中包含的所有操作,要么都执行,要么都不执行。

事务的特性即ACID特性:原子性、一致性、隔离性和持续性。

2、并发操作会产生几种不一致情况?用什么方法避免各种不一致的情况?操作可能会产生丢失修改、不能重复读和读“脏”数据这三种不一致情况。

采用封锁机制来进行并发控制,可避免各种不一致情况。

3、叙述数据库中数据的一致性问题。

在数据库的并发控制中,数据一致性问题有三个:丢失修改,不能重复读和读“脏”数据。

丢失修改是指T1和T2先后读取了同一个数据,T1把数据修改了并写回库中,T2也将读取的数据修改了并写回库中。

这样,T2提交的结果导致T1对数据库的修改丢失了。

不能重复读是指T1读取A,B两个数据并进行了运算之后,T2读了其中的数据B,把它修改后写回数据库,最后当T1为了对读取值进行校对而再重读B时,读的是T2修改后的值而不是T1开始读的值。

读“脏”数据是指T1修改了某一数据,并将其写回库中,T2读了这修改后的数据,而事务T1由于某种原因撤消了,被它修改的数据恢复了原来的值,这时,T2读的数据就与库中的数据不一致了,即T2读了不正确的数据,也称为T2读了“脏”数据。

4、叙述数据库中死锁产生的原因和解决死锁的方法。

锁产生的原因:封锁可以引起死锁。

比如事务T1封锁了数据A,事务T2封锁了数据B。

T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。

T2又申请封锁数据A,但A已被T1封锁,所以也处于等待状态。

这样,T1和T2处于相互等待状态而均不能结束,这就形成了死锁。

解决死锁的常用方法有如下三种:(1)要求每个事务一次就要将它所需要的数据全部加锁。

(2)预先规定一个封锁顺序,所有的事务都要按这个顺序实行封锁。

(3)允许死锁发生,当死锁发生时,系统就选择一个处理死锁代价小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务能继续运行下去。

课后习题答案第8章

课后习题答案第8章

课后习题答案第8章1. 概述第8章是XXX课程的课后习题答案,本文档将为大家提供第8章的课后习题答案,以帮助同学们复习和加深对知识点的理解。

2. 习题答案2.1 问题1问题描述:请列举出几种数据库管理系统(DBMS)的类型,并且给出它们的特点。

答案:•关系型数据库管理系统(RDBMS):以关系模型为基础的数据库管理系统,使用表格的形式来组织数据,支持SQL语言进行数据操作。

具有数据一致性、可靠性高等特点。

•非关系型数据库管理系统(NoSQL):相对于关系型数据库,NoSQL数据库采用非关系型的数据组织方式,更加适用于大规模分布式存储和处理。

具有高可扩展性、灵活性等特点。

•面向对象数据库管理系统(OODBMS):将对象概念引入数据库系统,将对象作为数据库的主要组织单位,支持面向对象的数据库操作和查询。

具有数据隐蔽性、可重用性等特点。

•XML数据库管理系统(XML-DBMS):以XML标准为基础的数据库管理系统,可以存储和管理XML格式的数据。

具有对XML数据的高效操作和查询能力。

2.2 问题2问题描述:请解释什么是数据库索引,它的作用是什么?答案:数据库索引是对数据库表中一列或多列的值进行排序的一种数据结构,它可以快速地定位到具有特定值的数据记录。

索引可以加快数据库的查询速度,减少数据扫描的时间。

具体而言,索引的作用包括:•提高数据库查询的效率:索引可以根据索引键值快速定位到数据记录,加快查询速度。

•减少磁盘I/O的需求:通过使用索引,数据库可以减少需要扫描的数据块数量,从而减少磁盘I/O的次数。

•保证数据的唯一性:索引可以设置为唯一索引,确保某一列的值在表中是唯一的。

•支持表之间的关联:通过使用外键和关联索引,数据库可以实现表之间的关联和连接操作。

2.3 问题3问题描述:请解释什么是数据库事务,它的特点是什么?答案:数据库事务是一组数据库操作的逻辑单元,它被视为一个不可分割的工作单位,要么全部执行成功,要么全部回滚。

oracle课后习题答案

oracle课后习题答案

oracle课后习题答案Oracle课后习题答案在学习Oracle数据库时,完成课后习题是巩固知识的重要方式。

本文将为大家提供一些常见Oracle课后习题的答案,帮助读者更好地理解和应用数据库知识。

一、基本概念题1. 什么是数据库?答:数据库是一个组织和存储数据的系统。

它是一个结构化的集合,用于存储、管理和操纵数据,并提供对数据的安全性和完整性的保证。

2. 什么是表?答:表是数据库中的一个基本组成部分,用于存储数据。

它由行和列组成,行表示记录,列表示记录中的字段。

3. 什么是SQL?答:SQL(Structured Query Language)是一种用于访问和管理关系型数据库的语言。

它可以用于查询、插入、更新和删除数据,以及创建和管理数据库对象。

二、SQL查询题1. 查询员工表中所有员工的姓名和工资。

答:SELECT 姓名, 工资 FROM 员工表;2. 查询订单表中订单金额大于1000的订单号和金额。

答:SELECT 订单号, 订单金额 FROM 订单表 WHERE 订单金额 > 1000;3. 查询客户表中所有客户的姓名和地址,按照地址降序排列。

答:SELECT 姓名, 地址 FROM 客户表 ORDER BY 地址 DESC;三、SQL插入题1. 向员工表中插入一条记录,姓名为"张三",工资为5000。

答:INSERT INTO 员工表 (姓名, 工资) VALUES ('张三', 5000);2. 向订单表中插入一条记录,订单号为"2021001",金额为2000。

答:INSERT INTO 订单表 (订单号, 订单金额) VALUES ('2021001', 2000);四、SQL更新题1. 将员工表中工资低于3000的员工工资增加1000。

答:UPDATE 员工表 SET 工资 = 工资 + 1000 WHERE 工资 < 3000;2. 将客户表中地址为"北京市"的客户地址改为"上海市"。

Oracle数据库基础教程-参考答案

Oracle数据库基础教程-参考答案

Oracle数据库基础教程参考答案第1章Oracle数据库概述1.简答题(1)数据是描述事物的符号,是数据库中存储的基本对象。

在计算机中,用记录的形式来描述数据。

数据与数据的解释即数据的语义是紧密结合的。

数据库是指按一定的数据模型组织、描述和存储的数据的集合。

数据库管理系统是位于操作系统与用户之间的一层数据管理软件。

数据库系统是指数据库、数据库管理系统与计算机系统的结合。

通常,在不引起混淆的情况下将数据库系统简称为数据库。

(2)数据库管理系统的主要功能包括:数据定义、数据操纵、数据库运行与控制、数据库建立与维护、数据字典定义以及数据通信等。

数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译处理层、数据存取层、数据存储层、操作系统以及数据库组成。

(3)数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。

(4)概念模型是用简单、清晰、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。

它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。

组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。

(5)E-R图由3个要素组成:实体、联系与属性。

实体之间的联系有1:1、1:n、n:n三种类型。

(6)Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。

(7)目前市场上常见的关系数据库管理系统包括Oracle、DB2、Sybase和SQL Server等。

Oracle是当今最大的数据库厂商Oracle公司的数据库产品。

它是世界上第一个商品化的关系型数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品。

DB2是IBM公司于1983年推出的一个商业化关系数据库管理系统,它是基于System R 基础上实现的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档