欢迎投稿

今日深度:

数据库基础 关系数据模型,数据库数据模型

数据库基础 关系数据模型,数据库数据模型


概叙

关系数据库的基本特征是使用关系模型的组织数据,20世纪80年代以后,在商用DBMS中,关系模型逐步取代早期的网状模型和层次模型。

关系数据模型

作为数据模型,关系模型包含三个组成要素:关系数据结构、关系操作集合和关系完整性约束。

关系数据结构

结构只包含单一的数据结构(关系),现实世界的实体与实体间的各种联系均用关系来表示。关系模型是吧数据库比赛为关系的集合,并以二维表格的形式组织数据。

录入一张二维表格如:

学号 姓名 性别 籍贯 民族 ...
001 张三 陕西 ...
002 李四 湘西 ...
003 王五 河北 ...
004 赵六 东北 ...
...

基本术语

中文字段名 数据类型 宽度 ...
学号 字符类型 8 ...
姓名 字符类型 10 ...
身份证 字符类型 18 ...
... ... ... ...

上表是学生基本星系登记表关系的结构定义,关系则是元组的集合,是关系模式在某一时刻的状态或内容

实际工作中关系模式和关系统称为关系。

18.关系数据库(Relation Database):以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上。在给定的应用领域中,所以关系的集合构成一个关系数据库。
在实际的数据库应用系统中,一般使用英文作为表名、字段名等。因为在编写数据库应用程序时,表名、字段名会作为变量名,使用中文不方便标识,且有些DBMS不能很好的兼容中文。
因此上表应该变更为:

含义 字段名 数据类型 宽度 ...
学号 studentNo 字符类型 8 ...
姓名 sutdentName 字符类型 10 ...
身份证 studentId 字符类型 18 ...
... ... ... ... ...

关系数据库对关系的限定:

  • 每个属性都不可分解,是关系数据库对关系的最基本的限定,要求关系的每个分量必须是一个不可分的数据项,即不允许表中有表
  • 一个关系对应一种关系模式,模式中的属性的数据类型及属性的个数是相对固定的
  • 每个关系模式中的属性必须命名,在同一模式中,属性名必须是不同的
  • 同一关系中不允许出现候选码或键值完全相同的元组
  • 关系中的元组顺序是可任意交换
  • 关系中的属性顺序可以任意交换

关系操作集合

基本的关系操作

增(插入 Insert)、删(Delete)、改(Update)、查(Query)。关系的查询表达能力是关系操作最主要的部分。查又可分为选择、投影、连接、除、并、差、交、笛卡尔积。集合操作方式(操作的对象和结果都是集合)。又称为一次一集合(set-at-a-time)

关系数据语言的分类

通过关系语言实现关系操作。用户不必请求DBM为其建立特殊的存取路径,由 DBMS 的优化机制来完成。

关系代数

关系代数是关系操作语言中的传统表示方式,以集合代数为基础发展而来。任何一种操作都是将一定的操作符作用域一定的操作对象上,得到预期的操作结果。
而对象和结果均为关系。关系代数直接应用关系的运算来表达操作的目的,运算符包括集合运算符和专门的关系运算符。

关系代数的运算符
运算符 含义
集合运算符
× 笛卡尔积
专门的关系运算符 σ 选择
π 投影
连接
÷
比较操作符 > 大于
大于等于
< 小于
小于等于
等于
不等于
比较操作符 ¬

关系代数操作经过有限次复合的式子称为关系代数操作表达式(关系代数表达式),可使用表达式表示所需要执行的各种数据查询和修改处理,所有关系代数是一种抽象的查询语言,通过对关系的操作来表达查询。

按运算符分类,关系代数操作可分为:传统的集合运算和专门的关系运算

集合运算

传统集合运算是二目运算,将关系看成元组集合,运算从行的角度来进行,具有 并、差、交、迪卡尔积四种运算。
example:

表 T1

学号(SNO) 姓名(SNAME) 性别(SSEX) 宿舍(SROOM)
0001 张三 N101
0002 王二 N101
0003 李梅 C101

表 T2

学号(SNO) 姓名(SNAME) 性别(SSEX) 宿舍(SROOM)
0004 刘八 D101
0005 赵二 B201
0003 李梅 C101
并(UNION)

表T1 和 表T2 使用并运算产生一个新表T3,(T3 = T1 ∪ T2)它是由T1和T2所有不同元组所组成,且 T1和T2属性个数、值域相同。下表为 T1 ∪ T2的结果
表 T3

学号(SNO) 姓名(SNAME) 性别(SSEX) 宿舍(SROOM)
0001 张三 N101
0002 王二 N101
0003 李梅 C101
0004 刘八 D101
0005 赵二 B201
差(DIFFERENCE)

表T1 和 表T2 使用差运算产生一个新表T4,(T4 = T1 - T2)它有T1的所有元组但不包含T2的元组,且 T1和T2属性个数、值域必须相同。下表为 T1 - T2的结果

表 T4

学号(SNO) 姓名(SNAME) 性别(SSEX) 宿舍(SROOM)
0001 张三 N101
0002 王二 N101
交(INTERSECTION)

表T1 和 表T2 使用交运算产生一个新表T5,(T5 = T1 ∩ T2)它同时包含T1和T2相同的所有元组,且 T1和T2属性个数、值域必须相同,交运算可由差运算表示(T1∩T2 = T1-(T1-T2))。下表为 T1 ∩ T2的结果

表 T5

学号(SNO) 姓名(SNAME) 性别(SSEX) 宿舍(SROOM)
0003 李梅 C101
笛卡尔积(CARTESIAN PRODUCT)

表T6 和 表T7 使用笛卡尔积运算产生一个新表T8,(T8 = T6 × T7)它是T6和T7的所有元组连接而成,即将两张表的元关系合并,且T6的每一元组都对应T7所有的元组
下表为 T6 × T7的结果

表 T6

学号(SNO) 姓名(SNAME)
0001 张三
0002 王二

表 T7

课程号(CNO) 课程名(CNAME) 教室(SSEX)
1 数据库 C-101
2 操作系统 C-102

表 T8

学号(SNO) 姓名(SNAME) 课程号(CNO) 课程名(CNAME) 教室(SSEX)
0001 张三 1 数据库 C-101
0001 张三 2 操作系统 C-102
0002 王二 1 数据库 C-101
0002 王二 2 操作系统 C-102
专门的关系运算

此运算即涉及行,又涉及列,分为一元专门关系操作和二元专门关系操作

  • 一元关系操作:对单个关系进行垂直分解的投影运算和进行水平分解选择运算
  • 二元关系操作:对两个关系进行操作,包括连运算和除运算
选择(SELECT)

选择运算( $σ_F(R)$ ),F为条件表达式,R为指定的被运算关系名。 从指定关系中选取满足条件的若干元组组成一个新关系

SELECT 关系名 WHERE 条件语句(表达式)

条件语句:由常数、属性名或列名、比较操作符及逻辑操作符组成

example:

SELECT T8 WHERE 姓名 = "张三"

表 T9

学号(SNO) 姓名(SNAME) 课程号(CNO) 课程名(CNAME) 教室(SSEX)
0001 张三 1 数据库 C-101
0001 张三 2 操作系统 C-102
投影(PROJECTION)

投影运算( $π_A(R)$ ), R为被运算关系,A为属性序列,从指定关系中选取指定的若干属性值组成新关系

PROJECTION 关系名 ( 属性名1, 属性名2 ,... )

组成的新关系自动去重

example:

PROJECTION T8 (课程号,课程名)

表 T10

课程号(CNO) 课程名(CNAME)
1 数据库
2 操作系统
θ连接(JOIN)

连接运算($R\cfrac{⋈}{xθy}S$),其中,R和S 代表两个不同的关系;x 和 y 分别表示R中的第x列和S中的第y列属性;θ表示比较运算符,从笛卡尔积R×S中选取R的第x列属性值与S的第y列属性值满足θ的那些元组组成一个新关系。

JOIN 关系1 AND 关系2 WHERE 条件语句

条件语句:由比较操作符和属性名或列名组成的表达式

  • 等值连接:θ值为 "=",从R和S的笛卡尔积中选取 x、y 属性值相等的元组
    example:

表 T11

A B C
a b c
d e f

表 T12

D E A
g h a
b c d
JOIN  T11 AND T12 WHERE A = A

T11 × T12

A B C D E A
a b c g h a
a b c b c d
d e f g h a
d e f b c d

等值结果为:

表 T13

A B C D E A
a b c g h a
d e f b c d
  • 自然连接:是一种特殊的等值连接,要求两个关系中比较的分量必须是

表 T14

A B C D E
a b c g h
d e f b c

自然连接是构造新关系的有效方法,投影和选择是分解关系的有效方法,自然连接中如果两个关系没有公共属性则变成笛卡尔积

除(DIVISION)

待续。。。

Owen 的个人博客
博客园

www.htsjk.Com true http://www.htsjk.com/Mysql/35662.html NewsArticle 数据库基础 关系数据模型,数据库数据模型 概叙 关系数据库的基本特征是使用关系模型的组织数据,20世纪80年代以后,在商用DBMS中,关系模型逐步取代早期的网状模型和层次模型。...
相关文章
    暂无相关文章
评论暂时关闭