数据库应用1.docx
- 文档编号:28984384
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:9
- 大小:354.54KB
数据库应用1.docx
《数据库应用1.docx》由会员分享,可在线阅读,更多相关《数据库应用1.docx(9页珍藏版)》请在冰豆网上搜索。
数据库应用1
《数据库应用》上机实验报告1
班级:
学号:
姓名:
实验目的:
通过本次上机了解oracle数据库下用户的各项权限,通过测试并发了解oracle数据库系统提供的锁机制以及事务隔离级别,理解索引机制的作用以及原理。
实验内容:
用户安全
通过iSqlplus建立自己的用户,并给予相应的授权,体会用户、角色和权限的关系
并发
•体会锁机制,通过同时启动两个会话,同时更新同一个数据,造成两个会话对一个数据的争用,来体会锁机制(一个会话在等待)。
•创造死锁,通过同时启动两个会话,分别对两个资源进行交叉加锁,来实现死锁(Oracle会检测出该死锁)
•隔离级别,赋予事务不同的隔离级别,通过启动两个会话来体会并发。
设计实验用例,体现多事务的读写竞争。
•要求:
记录实验结果,撰写实验报告,要求在报告中明确实验目的、实验内容、实验结果和分析。
索引通过Sqlplus的setautotrace语句跟踪
•B*树索引,升序与降序的混合
•位图索引,多个位图索引数据的组合查询
•位图联接索引,使用HR用户下表的例子
•基于函数的索引,使用课件中的例子,伪造数据
•数据:
HR用户表数据,或课件的例子程序伪造数据
•针对上述四种索引机制,设计实验,要求体会Oracle使用索引路径查询和不使用索引路径查询的情况。
考虑索引涉及属性的NULL情况
•涉及外键约束中外键不加索引的查询路径
•要求:
撰写实验报告,写明实验目的、实验内容、实验结果和实验分析。
实验结果与分析:
建立自己的用户,并对其做设置权限等操作。
写锁:
在事务1对表A进行更新,不提交,在另一个事务2下再次对A表更新时不执行操作,事务2被锁。
当事务1提交后,事务2才可以再次对同一个表进行操作。
死锁:
所谓死锁:
是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:
死锁。
”
在事务1中对A进行update操作,但不提交。
在事务2中尝试对同一个表进行操作,这时会发生锁死。
隔离级别:
事务指定一个隔离级别,该隔离级别定义一个事务必须与由其他事务进行的资源或数据更改相隔离的程度。
隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述。
使用settransactionisolationlevelreadcommitted来设置隔离级别。
在事务1查看表A信息,在事务2中对表A进行更新,再回到事务1中查看表A信息发现事务2的更新并没有执行,事务2提交后表1才被修改成功。
索引:
B*树索引:
传统索引,所有数据库最常用的索引。
类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需很少的读操作就能找到正确的行。
位图索引:
在一颗B*树中,通常索引条目和行之间存在一种一对一的关系,而对于位图索引,一个索引条目则使用一个位图同时指向多行,位图索引适用于高度重复而且通常只读的数据。
位图联结索引:
提供了一种逆规范化的方法。
例如emp和dept表,查找”多少人在位于波士顿的部门工作“。
通过使用位图联接索引,则可以在emp表上对loc列建立索引。
基于函数的索引:
就是B*树索引或位图索引,将一个函数计算得到的结果存储在行的列中,而不是存储列数据本身。
可以把基于函数的索引看作一个虚拟列上的索引
建立一个表M,并插入100组信息。
使用createindexM_score1onM(score);建立索引。
使用selectindex进行查询。
使用下面的语句查看查看建立的表和索引:
实验小结:
通过本次上机对数据库应用这门课程所学的知识有了真正的实践,学习了使用oracle的方法,对用户安全,锁,索引都有了一定的了解,对数据库有了更深的认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用