首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
五、关系数据库
1.表格
表格(或简称表)表示了用户的特定类型(Type)的一些实体。表头由一些属性名(Attribute Name)组成,每个属性名对应于一列。在表上属性名必须唯一,不允许重名。表体是由一些行或元组(tuple)、或记录(record)组成。一个元组对应于传统的文件结构中的一个记录,一个记录含有若干个域(field)用以存储属性值(Attribute value)。一个元组对应于一个“用户”实体的出现(occurrence)。表体中每一行和某一列的交叉点(相当于记录中的域)上保存一个属性值。这个属性值叫做这一行(或这个实体出现)的相应属性值。表体中每一列可以保存的值对应于某种属性类型(Type of Attribute),也就是说,这一列的属性值只能取这个属性类型的值。某个属性所能取的所有值的集合叫做这个属性的值域(Domain of Attribute)。类型和值域的对应关系是一对多的。一个类型有一个值域,但一个值域可以作为多个类型,基名称不同,但实质上值域一样。实际上,类型是对值域的命名。能唯一标识一个元组的属性称之为关键属性(Primary Key Attribute)或简称为主关键字(Primary Key)。主关键字有时是由多个属性组成的,此时的主关键字叫做组合关键字(Conˉcatenated primary Key)。有的时候,表中必须由一些组合的主关键字才能唯一地标识一个元组,也就是说,不存在能作关键字的一个属性。这时为了方便,往往引入一个附加的属性并称之为外来关键字(Foreigh Key)来作主关键字。外来关键字为以后检索和查询带来了方便,但也增加了信息冗余。
2.表名、表头和表体
表名、表头和表体在关系模型中具有不同的作用或功能,因而也具有完全不同的性质。表头是一个属性的集合,它规定了表的结构。表体是一个特殊的集体,称作为关系(relation)。“关系模型”中的“关系”一词就是指表体中的这个数学关系。在关系数据库中,表名对应于数据库名(或关系名),表头对应于数据描述(或结构描述),表体对应于数据库。表体是数据库的内容及数据库操作的对象。另外,有两个概念必须加以强调:型(type)和值或出现(occurence)。表头定义了实体(或元组)的型,也就是说规定了实体(或元组)的值域。而表体则给出了实体(或元组)的出现。出现是型中的一个值。
3.关系的数学定义
关系模型是建立在集合论(Set Theory)的基础之上的。现在,开始用集合论的术语来严格地定义数学上的关系,即给出关系的数学定义。定义1 域(Domain)是值(value)的集合。
4.关系模型
关系模型由三部分组成:数据结构(即关系)、关系操作、关系的完整性。下面将对这三个部分进行分别的讨论。(1)单一的数据结构———关系 在关系模型中,无论是实体还是实体之间的联系均由单一的类型结构—关系来表示。在前面,已给出了关系和域的数学定义,介绍了n元关系、元组和属性等概念。下面介绍关键字、关系模式和关系数据库等一些基本概念。关键字 关系中的某一组属性,若其值可以唯一地标识一个元组,则称该属性组为一个候选关键字(Candidate Key)。若一个关系有多个候选关键字,则可以任选其中一个作为主关键字(Primary Key)。主关键字中的诸属性被称为主属性。关系模式 关系的描述称为关系模式。它包括:关系名、组成关系的诸属性名、属性到域的映象、属性间的数据依赖关系等等。所以,关系模式由关系名、诸属性名和属性到域的映象三个部分组成,关系模式通常简记为R(A 1 ,A 2 ,…,A n ),其中R是关系名,A 1 ,A 2 ,…,A n 为诸属性名。属性到域的映象一般通过指定属性的类型和长度来说明。某个关系模式在某一时刻所具有的状态是指关系的外延,即元组的集合。关系的外延内容有时简称为关系。但关系模式和关系的内容有时也统称为关系。读者可以从上下文中区别其确切的含义。形象地说,关系模式是关于表名和表头的描述,而关系的内容是表体。关系数据库 在关系数据库中,要分清型和值两个基本概念。关系数据库的型是指数据库的结构描述,它包括关系数据库名、若干属性的定义,以及这些属性上的若干关系关系模式。亦称为数据库的内涵(Intension),数据库的值亦称为数据库的外延。在关系数据库中,内涵是比较稳定的,它规定了外延的取值范围。而外延却是随时间变化的。这和在一般的形式逻辑中外延和内涵一一对应有所区别。此处外延是指任意一个满足内涵的集合,而不一定恒指满足内涵的最大的一个集合。关系模式(即内涵)是稳定的;而关系的内容,即外延,却是随时间动态的变化而变化的。数据库的结构(即模式)是稳定的;而数据库中的数据内容却在不断地更新。
(2)关系操作 关系模型规定了关系操作的功能和特点,但不对DBMS语言的语法做出具体的规定。关系数据库语言的主要特点(或优点)是其高度的非过程化(Non-procedureae)或者说明性(declarative)。关系数据库语言的语句是透明的。用户只须知道语句做什么,而不须知道怎么做的。Codd在其早期的文章中,引入了8种基本的操作:并(Union)交(Intersection)差(Difference)笛卡尔乘积(Cartesian Product)限制(Restrictions)投影(Projection)连接(Join)除(Division)这些操作都是对关系的内容或表体实施操作的,得到的结果仍为关系。注意,这些操作只是基本的操作,而不是不再可分的原始(Primitive)操作,例如,Join,Intersection和Division可以由其它五种操作合成。但是,把它们三个也作为基本操作使用起来很方便。另外,Codd并没说上述8种操作就是关系数据库只能有的8种操作。实际上,上述8种操作仅仅是作为最小的DML操作的基础部分,并且也还未考虑到DDL的需求。SQL支持的操作多于上述8种DML操作,而且SQL还支持DDL操作。关系操作的特点是集合操作,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-a-time)方式。而非关系模型的数据库的操作方式则为一次一记录(record-at-a-time)方式。关系操作可以用两种方式来表示:
①代数方式,即关系代数
②逻辑方式,即关系演算而关系演算又进一步分为元组关系演算和域关系演算。已经证明,这些表示方式在功能上是相互等价的。一般选其一即可。
(3)关系模型的三类完整性 关系模型的三类完整性是:
①实体完整性(Entity Integrity)
②参照完整性(Referential Integrity)
③用户定义的完整性(User Defined Integrity)其中,实体完整性和参照完整性是任何关系模型都必须满足的完整性约束条件,应该由关系数据库DBMS自动支持。而用户定义的完整性的支持是由DBMS提供完整性定义设施(或机制),可以随DBMS商品软件不同而有所变化。实体完整性是指:若属性A是基本关系R的主关键字的属性(即主属性),则属性A不能取空值(NULL)。在关系数据库中有各种关系,如基本关系(常称为基本表)、查询表、视图表等等。基本表是指实际存在的表,它是实际存储数据的逻辑表示。查询表是指和查询结果相对应的表。而视图表是由基本表或视图表导出的表,是虚表,不对应实际存储的数据。实体完整性是针对基本关系的。空值是指“不知道”或者“无意义的”或“不属于定义域”值。空值以“NULL”表示。对于实体完整性作如下说明:
(1)一个基本关系通常对应于现实世界中的一个实体集。例如学生关系对应于学生实体集。基本关系不是由其它关系生成的关系。基本关系是本原(Primitive),是定义复杂关系的出发点。
(2)现实世界中的实体是可区分的,即实体具有某种唯一性的标识。
(3)在关系模型中由主关键字作为满足唯一性的标识。
(4)主关键字中属性不能取空值。因为若主关键字中某属性取空值,则意味着某个实体不可标识;而这和(2)相矛盾。参照完整性是指:若基本关系R中含有另一个基本关系S的主关键字K S 所对应的属性组F(F称为R的外部关键字(external keys)),则在关系R中的每个元组中的F上的值必须满足:
①或者取空值(即F中的每个属性的值均为空值);
②或等于S中某个元组的主关键字的值。基本关系R和S不一定是不同的关系。外部关键字也称为外来关键字。例如,某数据库中有职工关系EMP(职工号,姓名,部门号)和部门关系DEPT(部门号,部门名称)为两个基本关系。关系EMP的主关键字为“职工号”,DEPT的主关键字为“部门号”在EMP中,“部门号”是EMP的外部关键字。故此,在EMP中的每个元组中“部门号”的值只有两种可能性:
①取空值。这说明这个职工尚未分到某个部门;
②或取非空值。这时“部门号”的值必须是DEPT中某个元组中的“部门号”的值。这说明一个职工不可能被分配到一个不存在的部门。也就是说,被参照的关系DEPT中一定存在一个元组,该元组的关键字的值等于EMP中某元组的外部关键字的值。实体完整性和参照完整性是针对任何关系数据库系统的所有数据库的一般性原则。用户定义的完整性针对某一具体的数据库的约束条件。条件是由现实世界中的应用环境决定的。它涉及到某一具体的应用中的数据所必须满足的语义要求。关型模型的DBMS应提供定义和检验这类完整性条件的机制,以使用统一的方法来自动地处理它们而不要求应用程序员来承担这一功能。
5.关系数据库语言概述
关系数据库语言分三类:数据描述语言DDL,数据操纵语言DML和数据控制语言DCL。其中,DDL负责数据库的描述,提供一种数据描述机制,用来描述数据库的特征或数据的逻辑结构。DML负责数据库的操作,提供一种处理数据库操作的机制。DCL负责控制数据库的完整性和安全性,提供一种检验完整性和保证安全的机制。DML是用户经常使用的语言,包括了DBMS的主要功能。DML包括数据查询和数据的增、删、改等功能。其中查询的表达方式是DML的主要部分。关系数据库的DML按照查询方式可以分为两大类:
(1)用对关系的集合代数运算来表示查询的方式,称为关系代数(Relational Algebra)。
(2)用谓词演算来表达查询的方式,称为关系演算(Relational Calculus)。关系演算又可按谓词变元的基本对象是元组变量(tuple variable)还是域变量(domain variable)分为元组关系演算和域关系演算两种。关系代数和两种关系演算均是抽象的查询语言,这些抽象的查询语言和实际的DBMS软件产品中实现的具体的查询语言并不完全一样。但它们是DBMS中查询语言的理论基础。关系代数、元组关系演算和域关系演算这三种语言在表达能力上是彼此相互等价的,它们均可以作为评价实际DBMS软件产品中查询语言能力的标准。实际DBMS软件产品的查询语言,除了提供关系代数(或一种关系演算)之外,还提供了许多附加的功能,如库函数、算术运算等功能。SQL是介于关系代数,和关系演算之间的一种语言。SQL不仅具有丰富的查询功能,而且还具有数据库定义和数据库控制功能。SQL是集DDL、DML、DCL为一体的标准的关系数据库语言。SQL充分体现了关系数据库语言的优点。
6.关系代数
关系代数中的运算可以分为两类:
(1)传统的集合运算,如并、交、差、笛卡尔乘积等。这类运算是从关系的“水平方向(即按行)”来进行的。
(2)专门的关系运算,如选择、投影、连接、除。这类运算不仅涉及到行而且也涉及到列。
7.关系演算
关系演算是以数理逻辑中的谓词演算为基础的。用谓词演算作为关系数据库的语言并提出关系演算的是E.F.Codd。Codd首先定义了关系演算语言ALPHA。但ALPHA并没有在计算机上实现。但关系数据库管理系统INGRES所用的QUEL语言是参考ALPHA研制的,与ALPHA十分类似。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |