摘 要:本文基于笔者多年从事计算机应用的相关工作经验,以基于Oracle的数据库设计与查询检索为研究对象,结合图书馆数据库设计案例探讨了基于Oracle的数据库设计和查询检索方法,并在最后结合笔者工作实践给出了4点结论,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行能有所裨益。
关键词:数据库设计 Oracle 案例
中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2012)05(a)-0009-02
1 Oracle数据库与SQL概述
Oracle数据库是Oracle公司所研制和开发的一个关系数据库系统。经过几十年的发展,其功能和性能不断完善,己成为功能最齐全最受欢迎的数据库系统。Oracle系统由Oracle的核心,SQLPLUS接口、主语言接口以及各种系统实用程序组成。Oracle是目前应用最广泛的数据库系统。一个完整的数据库系统包括系统硬件、 *** 作系统、网络层、DBMS(数据库管理系统)、应用程序与数据,各部分之间是互相依赖的,对每个部分都必须进行合理的配置、设计和优化才能实现高性能的数据库系统。
SQL语言早在1973年就被提出来了,当时它仅作为关系数据库的交互式存取的查询语言。这种语言也较多的采用了数学符号,后经修改在1974年发展成SEQUEL。SEQUEL语言在结构上更类似于英语,这样更便于人们的掌握与使用。SQL语言从它一问世就受到人们广泛重视与欢迎。近年来,SQL语言己成为标准的数据库语言,现已有一百多个数据库管理产品支持SQL语言。SQL语言有如下特点。
(1)非结构程度高。用户在使用计算机完成系统工作时,是使用系统所提供的语言来表达或描述自己处理要求的。例如常用的FORTRAN、COBOL等都是系统所提供的用户语言。用户使用这些语言来编写程序,然后通过程序的执行来完成自己所要做的工作。如果系统提供的用户语言功能强,用户使用起来就方便得多,描述处理要求也容易。而非过程化语言的特点就是用户只需在程序中指出要干什么,至于如何干,用户不用在程序中指出。这由系统决定与完成。SQL是一种非过程化程度相当高的语言,用户只需在程序中指出要做什么就可以了。
(2)用户性能好。衡量一个语言好坏的一个标准是用户性能的好坏。所谓用户性能好是值一种语言在被一个新用户学习掌握时,用户不必花费太多的时间就能学会,并且很快就能熟练的掌握和使用。经过实验,SQL语言是一种用户性能非常好的语言,它非常便于用户学习与掌握。
(3)语言功能强。SQL语言是一种关系数据库语言。关系数据库分为两大类,一类是关系代数语言,另一种是关系演算语言。这两类语言在结构上具有不同的特点,各自具有自己的长处。而SQL语言具有两类语言的特点。因而SQL语言是一种功能很强的语言。
(4)提供有视图数据结构。SQL语言可以对两种基本数据结构进行 *** 作。一种称之为表,另一种是视图。通常将表定义为基本关系,视图定义为虚关系。虚关系在数据中不实际存放。在SQL语言中,用户可以对基本关系进行 *** 作,也可以对视图进行 *** 作,也可以对视图进行 *** 作。当对视图进行 *** 作时,由系统转换成基本关系的 *** 作。
(5)两种使用方式。SQL语言可以通过两种方式使用,一种是命令方式,另一种是程序方式。采用命令方式使用SQL时,用户通过交互式的方式,每输入一条命令,系统就会执行该命令,并且显示执行的结果。SQL语言还可以镶入在象COBOL、FORTRAN、C等高级语言中,组成一个完整的程序。用户根据自己不同的需要,灵活的选择相应的使用方式,以满足不同的要求。
在信息产业领域随着技术的不断进步,特别是计算机和通信网络技术的发展,大大开拓了数据库应用的领域并巨大推动了数据库管理技术的发展。
2 数据库设计案例分析
下面以图书馆数据库设计为例使用Oracle *** 作系统进行功能分析。
关系数据库的特点之一就是用表的方式组织数据。通常这种表称之为关系。表是语言存放数据,查找数据以及更新数据的基本数据。这种表与我们日常生活中所见的表非常相似,但不完全相同。在语言中,表有其严格的定义,它是一种二维表格。对于这种表有如下几点规定。
(1)每个表都有一个名字,通常称为表名或关系名。
(2)表中的一行称之为一个元组,它相当于一个记录。
(3)一个表可以由若干列组成,表的每一列必须命名唯一,即表中每一列都有一个名字,同一表中不允许有相同的名字。
(4)同一列的数据必须具有相同的数据类型。
(5)表中的列值必须似不可分割的基本数据项。
建表:依次建立图书、读者、借阅3个表。
建立图书表,该表记录了图书的总编号、书名、作者、出版单位、单价的信息,在表结构中输入信息,得到如下的表结构如表1。
建立读者表,该表记录了读者的借书证号、单位、姓名、职称、地址的信息,表结构如表2。
建立借阅表,该表记录了借书证号、总编号、借书日期的信息,表结构如表3。
3 单表查询
使用查询功能SQL语言中最主要,最核心的部分是它的查询功能。所谓查询就是从数据库中提取满足用户指定条件的数据。查询是由SELECT命令实现的。在SQL中,许多其他 *** 作也涉及到SELECT命令。例如插入一组数据时,可以将SELECT命令查询到的数据增加到一个表中,视图定义也使用SELECT命令将满足一组条件的数据构成一个视图等等。查询虽然只使用SELECT命令,但由于它能反映不同的查询要求,因此它是SQL语言中最复杂的命令。在查询过程中仅涉及到一个表的查询称为基本查询或一元查询。
(1)查询所有书籍的书名、作者、出版单位、单价。
SQL语言为:select书名,作者,出版单位,单价。
from图书。
(2)查询出版单位是清华大学出版社的图书的分类号、书名、作者、单价。
第四章 关系数据库的模式设计
45 什么是关系数据库:
关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。
46 一个关系模型有哪两个方面内容:
一个关系模型包括外延和内涵两个方面的内容。
外延就是通常所说的关系,或实例,或当前值。它与时间有关,随着时间的推移在不断变化。(由于元组的插入、删除、修改引起的)
内涵是与时间独立的,包括关系、属性、及域的一些定义和说明,还有各种数据完整性约束。
47 数据完整性约束分为哪两类:
数据完整性约束分为静态约束和动态约束。
静态约束:包括各种数据之间的联系(数据依赖),主键的设计和关系值的各种限制等等。这一类约束是如何定义关系的有效数据问题。
动态约束:主要定义如插入、删除、和修改等各种 *** 作的影响。
48 关系数据库设计理论主要包括哪些内容:
关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起着核心的作用。
49 数据库使用过程中存在的问题是什么:
数据冗余、更新异常、插入异常、删除异常。
50 函数依赖(FD)的定义:
设有关系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y,X→Y为模式R的一个函数依赖。
或者说,对于X的每一个具体值,都有Y惟一的具体值与之对应,即Y值由X值决定,因而
这种数据依赖称为函数依赖。
51 函数依赖的逻辑蕴涵、FD的闭包F+:
设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X—>Y,则称F逻辑蕴涵X—>Y,记为F X→Y。
被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。F+={X→Y|F X→Y}
52 候选键、主属性、非主属性:
设有关系模式R(A1,A2,……,An),F是R的一个函数依赖集,X是{A1,A2,……,An}的一个子集。如果
① X→A1A2……An∈F+,且
② 不存在X真子集Y,使得Y→A1A2……An成立,则称X是R的候选键。
包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。
53 函数依赖的推理规则:
设有关系模式R(A1,A2,……,An)和属性集U= A1,A2,……,An,X,Y,Z,W是U的一个子集,F是R的一个函数依赖集,推理规则如下:
(1) 自反律:如果Y X U,则X→Y在R上成立。
(2) 增广律:如果X→Y为F所蕴涵,Z U,则XZ→YZ在R上成立。
(3) 传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。
FD的其他三个推理规则:
(4) 合并律:如果X→Y成立,那么X→YZ成立。
(5) 伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。
(6) 分解律:如果X→Y和Z Y成立,那么X→Z成立。
54 什么是平凡的FD?平凡的FD可根据哪一条推理规则推出?
如果X→Y,并且Y X,则称X→Y是平凡的FD。根据推理规则的自反律可推出。
55 关系模式的分解有几个不同的衡量标准:
分解具有无损联接;
分解要保持函数依赖;
分解既要保持依赖,又要具有无损联接。
56 什么是无损连接:
设有关系模式R,分解成关系模式ρ={R1,R2,……Rk},F是R的一个函数依赖集。如果对R中满足F的每一个关系r都有:r=πR1(r)|×|πR2(r)|×|……πRK(r),则称这个分解ρ是无损联结分解。
57 试叙保持函数依赖的定义:
设F是属性集U上的一个函数依赖集,Z是U上的一个子集,F在Z上的一个投影定义为:πZ(F)={X→Y|X→Y∈F+且XY Z}
设关系模式R的一个分解为ρ={R1,R2,……Rk},F是R的一个函数依赖集,如果
则称为分解ρ保持函数依赖。
58 第一范式(1NF):
如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。
59 第二范式(2NF):
如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的候选键,则称R是第二范式模式。
60 第三范式(3NF):
如果关系模式R是第一范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。
61 BCNF:
如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。从BCNF的定义可明显地得出如下结论:
(1) 所有非主属性对键是完全函数依赖。
(2) 所有主属性对不包含它的键是完全函数依赖。
(3) 没有属性完全函数依赖于非键的任何属性组。
如果模式R是BCNF,则它必定是第三范式,反之,则不一定。
62 模式设计方法的原则:
关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,……Rk},一般应具有下面三个特性:
(1) ρ中每个关系模式Ri是3NF或BCNF
(2) 保持无损联结
(3) 保持函数依赖集
(4) ρ中模式个数最少和属性总数最少。
63 一个好的模式设计方法应符合哪三条原则:
表达性,分离性,最小冗余性。
表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖性来衡量。
分离性是指属性间的“独立联系”应该用不同的关系模式表达。
最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。
关系模式设计方法基本上可以分为分解与合成两大类。
64 多值依赖MVD:
设R(U)是属性集U上的一个关系模式,X,Y是U的子集,若对R(U)的任一关系r,对于X的一个给定的值存在着Y的一组值与其对应,同时Y的这组值又不以任何方式与U-X-Y中的属性相关,那么称Y多值依赖于X,记为X→→Y。
65 平凡多值依赖:
对于属性集U上的一个多值依赖X→→Y,如果Y X或者XY=U,那么称X→→Y是一个平凡多值依赖。
66 第四范式(4NF):
设关系模式R,D是一个多值依赖集,如果D中存在一个非平凡多值依赖X→→Y,并且X必是R的超键,那么称R是4NF模式。
以上就是关于结合具体案例的关系数据库设计与查询技术研究:对象关系数据库案例全部的内容,包括:结合具体案例的关系数据库设计与查询技术研究:对象关系数据库案例、数据库原理第四章关系数据库的模式设计、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)