数据库学习(二):关系模型

数据库学习(一):数据库系统概述

关系模型

基本概念

  • 关系:关系模型的数据结构,二维表,笛卡儿积的有限子集。是元组的集合。
  • 元组:关系中的每个元素(一行)。
  • 属性:关系中的列
  • 候选码:属性组,可以唯一地标识一个元组,而其子集不能。注意他是一个集合。
  • 主属性:在候选码中的属性
  • 非主属性:不在候选码中的属性
  • 主键/码:候选码中一个。
  • 域:一组具有相同数据类型的值的集合。

关系有三种类型:基本表(数据存储的逻辑表示),查询表(查询结果),视图表(虚的,外模式)

关系操作

有两种:查询(query)操作 与 插入(insert)、删除(delete)、修改(update)操作
其中查询:包括选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)
sql:结构化查询语言(structured wuery language)

关系的完整性

关系的完整性为对关系的某种约束条件,三种:

  • 实体完整性:主属性不能为空。保证了每个元组是唯一的
  • 外码:关系p中有一个不是主码的属性t,而t与另一个关系c中的主码对呀,则t为p码。p为参照关系,c为被参照关系。p与c可以是同一个。t在c中可改名,且与c主码在一个域。

如(1)学生(学号,密码,专业名)
专业(专业名,代号)
专用名是外码,关系学生是参照关系,关系专业是被参照关系。
(2)学生(学号,姓名,班级,班长)
班长是外码,关系学生即是参照又是被参照关系。

  • 参照完整性规则:由上述,外码在p中的值只能为空,或c中主码的值。
  • 用户自定义完整性:由用户自己设定约束条件,如某个属性不能为空等。上两个是所有数据库系统都支持的,而用户定义完整性为自定义

关系运算

  • 关系笛卡尔儿积
  • 象集:关系R(是外码,关系学生即是参照又是被参照X,Z),则对t[X]=x,x在R中象集为Zx={t[Z] | t[Z]=x} (即所有为x行的z值)
  • 选择select:选满足条件的行
  • 投影project:从关系中选出若干属性列组成新的关系(可能会去掉某些行,行为出现重复行了)
  • 连接join:从两个关系呢笛卡儿积中挑选满足比较关系的元组。其中自然连接是一种等值连接,要求进行比较的列同名,并去掉重复列。

猜你喜欢

转载自blog.csdn.net/wangqianqianya/article/details/88969308