文档介绍:第三章关系模型及oracle对象关系数据库
关系模型和基本概念
关系代数
oracle对象关系数据库系统
关系数据库系统是支持关系模型的数据库系统。
1970年初,,奠定了关系数据库的理论基础。 proposed the relational model for database systems in 1970s.
Vendors: ORACLE(9i ),IBM(DB2) , Microsoft (ACESS and SQLServer), Foxbase(Foxpro), Sybase
关系的定义
关系(relation):一个关系对应一张二维表
元组(tuple):表中的一行即为一个元组
属性(attribute):表中的一列为一个属性,给每个属性起一个名字即属性名(ID,NAME,PHONE,SALES-REP-ID)
主码(primary key):表中的某个属性组,它可以唯一确定元组。each row of data in a table is uniquely identified by a primary key. It must contain a value
外码(foreign key):you can logically relate information from multiple tables using foreign keys.
关系模型
关系模型由关系数据结构,关系操作和关系完整性约束三部分组成。
数据结构——关系(二维表),它由行和列组成。
关系操作——常见的关系操作包括:选择select,投影project,连接join,除divide,并union,交intersection,差difference等查询query操作和增加insert,删除delete,修改update操作两大部分。
完整性——关系的三类完整性约束
实体完整性、参照完整性、用户定义的完整性
返回
关系代数
The relational algebra(关系代数) is the basis of SQL.
Basic Structure ——Cartesian product(笛卡儿积)
Formally, given sets D1, D2, …. Dn a relation r is a subset of D1 x D2 x … x Dn , Thus a relation is a set of n-tuples (a1, a2, …, an) where each ai Di
例如, D1=导师集合= {张清玫,刘逸},
D2 =专业集合= {计算机,信息},
D3 =研究生集合={ 李勇,刘晨,王名}
则 D1 X D2 X D3 ={ (张清玫,计算机,李勇) ,
(张清玫,计算机,刘晨) ,
(张清玫,计算机,王名) ,
(张清玫,信息,李勇) ,
(张清玫,信息,刘晨) ,
(张清玫,信息,王名) ,
(刘逸,计算机,李勇) ,
(刘逸,计算机,刘晨) ,
(刘逸,计算机,王名) ,
(刘逸,信息,李勇) ,
(刘逸,信息,刘晨) ,
(刘逸,信息,王名) },
共12个元组。笛卡儿积可对应一张二维表。
Example of Cartesian product
basic operators
Set intersection 交
Union 并
set difference 差(集合差)
Cartesian product 笛卡儿积
Select 选择
Project 投影
Natural join 自然连接
Division 除
The operators take two or more relations as inputs and give a new relation as a result.
(1) Select Operation – Example
Relation r
A
B
C
D
1
5
12
23
7
7
3
10
A=B ^ D > 5 (r)
A
B
C
D
1
23
7
10
注:选择条件必须是针对同一元组中的相应属性值进行比较
Notation: p(r)
p is called the selection predicate
Defined as:
p(r) = {t | t r and p(t)}
Where p is a formula in propositional c