关系模型的基本概念

层次、网状数据库是面向专业人员的,使用很不方便,程序员必须经过良好的培训,多所使用的系统有深入的了解才能用好系统。

       关系数据库就是要解决这一问题,使它成为面向用户的系统。

       关系数据库是应用数学方法来解决数据的,它具有结构简单、理论基础坚实、数据独立性高以及提供非过程性语言等优点。

1.关系的数学定义

1. 域(Domain):值的集合,它们具有相同的数据类型,语义上通常指某一对象的取值范围。

       例如:全体整数

                     0到100之间的整数

                     长度不超过10的字符串集合

2. 笛卡尔积(CartesianProduct):设D1、D2、… 、Dn是n个域,则它们的笛卡尔积为:

       D1x D2 x … x Dn = {(d1, d2, …, dn)| diDi, i = 1,2,…,n}

其中每一个元素称为一个n元组(n-tuple),简称元组;元组中的每个值di称为一个分量(component)。

笛卡尔积可以写成一个二维表

例如:

设D1 = {张三,李四}

D2 = {数学,语文}

D3 = {优,良}

则D1 x D2 x D3 可用二维表表示为:

张三

数学

张三

数学

张三

语文

张三

语文

李四

数学

李四

数学

李四

语文

李四

语文

 

3. 关系(Relation)

笛卡尔积D1 x D2 x … Dn的子集合,记作R(D1, D2, … , Dn)

R称为关系名,n为关系的目或度

 

4. 说明

a)       关系是一个二维表

b)       每行对应一个元组

c)       每列可起一个名字,称为属性。属性的取值范围为一个域,元组中的一个属性值是一个分量。

 

5. 关系的性质

a)       列是同质的,即每列中的数据必须来自同一个域

b)       每一列必须是不可再分的数据项(不允许表中套表,即满足第一范式)

c)       不能有相同的行

d)       行、列次序无关

 

2.关系模型

三部分:关系数据结构、关系操作集合、关系的完整性

2.1 数据结构

2.1.1单一的数据结构:关系(二维表)

不论是实体还是实体间的联系都用关系表示。

实体值 -> 关系的元组,在关系数据库中通常称为记录

属性值 -> 元组的分量,在关系数据库中通常称为字段

关键字(码):唯一标识一个元组的属性组

 

关键字可以有多个,统称为候选关键字,在使用时,通常选定一个作为主关键字。主关键字的诸属性称为主属性,其它为非主属性。

 

2.1.2关系模式:关系的描述

包括关系名、诸属性名、属性向域的映像、属性间的依赖。

注:一个元祖为关系的一个值。

表示:R(U, D, dom , F)

 

关系数据库模式(型):对关系数据库的描述,包括域的定义及在域上定义的所有关系模式。

关系数据库(值):所有实体及实体间联系的关系的集合。是某时刻所有关系模式对应的关系的集合。

2.1.3 关系的三种类型

基本关系:客观存在的基本表

查询表:由基本表按一定条件检索得到的结果

视图:从一个或多个基本关系上导出的关系。它不对应实际的存储数据,是一个虚关系,然而可永久存在。相当于关系模型的外模式。

 

注:由于二维表的存储策略非常简单,关于数据库的物理存储完全由DBMS自动完成。因此,在关系模型中不需要与内模式相应的概念。

 

2.2关系操作

2.2.1种类

选择、投影、连接、除、并、交、差                                  -----查询操作

增加、删除、修改                                                                  -----维护操作

2.2.2特点

集合操作,一次操作可存取多个元组

非过程化语言:用户只需告诉做什么,而不需要告诉怎么做

数据定义(DDL)、数据操纵(DML)、数据控制语言(DCL)集成在一起

2.3关系模型的三类完整性

2.3.1实体完整性

基本关系的所有主属性不能取空值

原因:基本关系(主关键字是唯一性标识,故不能为空)

         <->   实体集(实体必可区分:标识符)

2.3.2参照完整性

也叫引用完整性。若基本关系R含有与另一个基本关系S的主关键字相对应的属性组F(F称为R的外键或外部码),则R中的每个元组在F上的值或为空值,或等于S中某个元组的主关键字值

例:职工关系 EMP(ENO, ENAME, DNO)

       部门关系 DEPT(DNO,DNAME)

 

2.3.3用户定义的完整性

       用户定义的某一属性值必须满足的语义要求。一经定义,DBMS会自动检查,从而不必在应用程序中作检查。

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值