数据库 - 关系数据库

关系数据库

提出关系模型的是美国IBM公司的E.F.Codd (Edgar Frank Codd,1923-2003) , “关系数据库之父”
1970年提出关系数据模型
E.F.Codd, “A Relational Model of Data for Large
Shared Data Banks”, 《Communication of the
ACM》,1970
E.F.Codd 1923年出生在英格兰多塞特郡波特兰市的一个大家庭中。他曾经就读于牛津大学,主修数学,获得学士与硕士学位。第二次世界大战期间曾在皇家空军服役。第二次世界大战后,动身前往美国成为IBM的一名程序员。
在40岁的时候,重返校园,在密歇根大学主修计算机与通信专业,于1965年获得博士学位。
因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。
 1984年从IBM退休, 于2003年谢世。

关系

单一的数据结构—-关系

现实世界的实体以及实体间的各种联系均用关系来表示

逻辑结构—-二维表

从用户角度,关系模型中数据的逻辑结构是一张二维表

关系模型建立在集合代数的基础上,这里从集合论的角度给出关系数据结构的形式化定义

⒈ 域(Domain)

域是一组具有相同数据类型的值的集合。例:
整数
实数
介于某个取值范围的整数
长度小于25字节的字符串集合
{‘男’,‘女’}
……………..
  1. 笛卡尔积(Cartesian Product)
笛卡尔积
   给定一组域D1,D2,…,Dn,这些域中可以有相同的。
    D1,D2,…,Dn的笛卡尔积为:
    D1×D2×…×Dn =
             {(d1,d2,…,dn)|di?Di,i=1,2,…,n}
所有域的所有取值的一个组合
 元组(Tuple)
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)
(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组 

分量(Component)
笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量
张清玫、计算机专业、李勇、刘晨等都是分量
基数(Cardinal number)

笛卡尔积的表示方法
笛卡尔积可表示为一个二维表
表中的每行对应一个元组,表中的每列对应一个域
  1. 关系(Relation)
1) 关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的
关系,表示为

         R(D1,D2,…,Dn)

R:关系名
n:关系的元,或目或度(Degree)
2) 元组
关系中的每个元素是关系中的元组,通常用t表示。
3) 单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)
                               或一元关系
当n=2时,称该关系为二元关系(Binary relation)
4) 关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每
列对应一个域

5)属性
关系中不同列可以对应相同的域
为了加以区分,必须对每列起一个名字,称为属性(Attribute)
n目(元)关系必有n个属性
6) 码
候选码(Candidate key)
    若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 (教材上给出的此定义是否严谨?)
    简单的情况:候选码只包含一个属性
全码(All-key)
    最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
6) 码
候选码(Candidate key)
    若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 (教材上给出的此定义是否严谨?)
    简单的情况:候选码只包含一个属性
全码(All-key)
    最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
D1,D2,…,Dn的笛卡尔积的某个子集才有实际含义
例:表2.1 的笛卡尔积没有实际意义
      取出有实际意义的元组来构造关系
关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
假设:导师与专业:1:1,   导师与研究生:1:n
主码:POSTGRADUATE(假设研究生不会重名)
      SAP关系可以包含三个元组
     { (张清玫,计算机专业,李勇),
    (张清玫,计算机专业,刘晨),
    (刘逸,信息专业,王敏)  }
7) 三类关系
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不对
应实际存储的数据
8)基本关系的性质
① 列是同质的(Homogeneous)
② 不同的列可出自同一个域
其中的每一列称为一个属性
不同的属性要给予不同的属性名
③ 列的顺序无所谓,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换

关系模式

关系模式(Relation Schema)是型

关系是值

关系模式是对关系的描述

元组集合的结构

属性构成

属性来自的域

属性与域之间的映象关系

元组语义以及完整性约束条件

属性间的数据依赖关系集合

关系模式可以形式化地表示为:

R(U,D,DOM,F)

R 关系名

U 组成该关系的属性名集合

D 属性组U中属性所来自的域

DOM 属性向域的映象集合

F 属性间的数据依赖关系集合

例:

导师和研究生出自同一个域——人,

取不同的属性名,并在模式中定义属性向域

的映象,即说明它们分别出自哪个域:

   DOM(SUPERVISOR-PERSON)
= DOM(POSTGRADUATE-PERSON)
=PERSON

关系模式通常可以简记为

R (U) 或 R (A1,A2,…,An)

R: 关系名

A1,A2,…,An : 属性名

注:域名及属性向域的映象常常直接说明为

属性的类型、长度

关系数据结构

关系数据库的型: 关系数据库模式

对关系数据库的描述。

关系数据库模式包括

若干域的定义

在这些域上定义的若干关系模式

关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库

常用的关系操作

查询:选择、投影、连接、除、并、交、差、笛卡尔积

数据更新:插入、删除、修改

查询的表达能力是其中最主要的部分

选择、投影、并、差、笛卡尔积是5种基本操作,其他操作可以由基本操作导出

关系操作的特点

集合操作方式:操作的对象和结果都是集合,一次一集合的方式

关系代数语言

用对关系的运算来表达查询要求

代表:ISBL

关系演算语言:用谓词来表达查询要求

元组关系演算语言

谓词变元的基本对象是元组变量

代表:APLHA, QUEL

域关系演算语言

谓词变元的基本对象是域变量

代表:QBE

具有关系代数和关系演算双重特点的语言

代表:SQL(Structured Query Language)

关系的三类完整性约束

实体完整性和参照完整性:

关系模型必须满足的完整性约束条件

称为关系的两个不变性,应该由关系系统自动支持

用户定义的完整性:

应用领域需要遵循的约束条件,体现了具体领域中的语义约束

实体完整性

规则2.1 实体完整性规则(Entity Integrity)

若属性A是基本关系R的主属性,则属性A不能取空值

例:

SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)

POSTGRADUATE:

主码(假设研究生不会重名)

不能取空值

实体完整性规则的说明

(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实 世界的一个实体集。

(2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。

(3) 关系模型中以主码作为唯一性标识。

(4) 主码中的属性即主属性不能取空值。

参照完整性

例2 学生、课程、学生与课程之间的多对多联系

学生(学号,姓名,性别,专业号,年龄)

课程(课程号,课程名,学分)

选修(学号,课程号,成绩)

设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码

基本关系R称为参照关系(Referencing Relation)

基本关系S称为被参照关系(Referenced Relation)

或目标关系(Target Relation)

参照完整性规则

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

或者取空值(F的每个属性值均为空值)

或者等于S中某个元组的主码值


[例1]:
学生关系中每个元组的“专业号”属性只取两类值:
(1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业
〔例2〕 :
选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值 :
 (1)选修关系中的主属性,不能取空值
 (2)只能取相应被参照关系中已经存在的主码值
〔例3〕:
学生(学号,姓名,性别,专业号,年龄,班长)
“班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长
(2)非空值,该值必须是本关系中某个元组的学号值

用户定义的完整性

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求

关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能

例:
     课程(课程号,课程名,学分)
“课程号”属性必须取唯一值
非主属性“课程名”也不能取空值
“学分”属性只能取值{1,2,3,4}
时间: 2024-11-09 03:01:05

数据库 - 关系数据库的相关文章

数据库 - 关系数据库标准语言SQL

SQL(Structured Query Language) 结构化查询语言,是关系数据库的标准语言 SQL是一个通用的.功能极强的关系数据库语言 SQL特点 1.综合统一 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体. 可以独立完成数据库生命周期中的全部活动: 定义关系模式,插入数据,建立数据库: 对数据库中的数据进行查询和更新: 数据库重构和维护 数据库安全性.完整性控制等 用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行. 数据操作符

SQL Server数据库学习总结

经过一段时间的学习,也对数据库有了一些认识,数据库基本是由表,关系,操作组成:对于初学者首先要学的 一图胜"十"言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识.  数据库基本是由表,关系,操作组成:对于初学者首先要学的:  1.数据库是如何存储数据的  表,约束,触发器  2.数据库是如何操作数据的  insert,update,delete T-sql 函数 存储过程 触发器  3.数据库是如何显示数据的  select SQLSer

java面试④数据库部分

2.3.1 数据库的分类及常用的数据库 数据库分为:关系型数据库和非关系型数据库 关系数据库:mysql,oracle,sqlServer 非关系型:redis,mongoDB 2.3.2 简单介绍一下关系数据库三范式 范式就是规范,就是关系型数据库在设置表时,要遵循的三个规范. 要满足第二范式必须先满足第一范式,要满足第三范式必须先满足第二范式. 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体列中的某个属性不能有多个值或者不能有重复的属性,列数

Mysql学习之数据库的了解

--数据库 数据库是存储数据的仓库. 数 据 库 : database 数据库系统DBS(Database System):是一种虚拟系统 ,将多种内容关联起来 数据库管理系统DBMS(Database Management System): 专 门 管 理 数 据 库 DBA: Database Administrator: 数 据 库 管 理员 DBS = DBMS + DB --数据库的分类 按数据库基于存储介质的不同进行了分类 关系型数据库SQL:存储在硬盘上 如:Oracle.DB2.

MYSQL数据库学习笔记1

MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 修改表 表的增删查改 查询 数据库概念 数据库是一种对大量信息进行管理的一种方法. 数据库系统从结构上看,也是可以分为三层的: 物理层:数据实际如何存储 逻辑层:存储的是什么数据,以及数据间是什么关系 试图层:提供给用户的部分数据 关系数据库 目前关于数据库模型最主流的有两种, 一种叫做关系型数据库,这

关系型和非关系型数据库的区别--转载

关系型数据库和非关系型数据库 关系数据库和非关系数据库的区别是,关系数据库只有“表”这一种数据结构:而非关系数据库系统还有其他数据结构,对这些数据结构还有其他操作. 随着网络的不断发展,单纯关系数据库面临挑战. 关系与非关系型数据库的特点 1.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织. 关系模型中常用的概念: 关系:可以理解为一张二维表,每个关系都具有一个关系名,就

SQL Server 数据库简介

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速,方便地管理数据.数据库具有以下特点: 1.可以结构化存储大量的数据信息,方便用户进行有效的检索和访问. 2.可以有效地保持数据信息的一致性.完整性,降低数据冗余. 3.可以满足应用的共享和安全方面的要求. 数据库的基本概念: 1.数据:描述事物的符号记录成为数据(Data)包括数字.文字.图形.图像.声音.档案记录等都是数据.数据以"记录"形式按统一的格式进行存储的. 2.数据库和数据库表:表是用来存储具体数据的,数据库就是表

MySQL数据库知识点

1.什么是数据库 就是一个文件系统,通过标准SQL语言操作文件系统中数据 ---- 用来存放管理软件系统的数据 2.什么是关系型数据库 关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示. 3.where 和 having 条件语句的区别 ? where 是在分组前进行条件过滤,having 是在分组后进行条件过滤 使用where地方都可以用 having替换 , 但是having可以使用分

数据库系列之数据库基本概念

数据库相关概念 1 数据:描述事物的符号. 2 数据库:存储数据的仓库. 3 数据库管理系统:管理数据库的程序. 4 数据库管理员:管理数据库的人. 5 数据库系统:与数据库相关的硬件(CPU,内存.硬盘等).软件(操作系统.数据库管理系统等)和人(DBA). 6 数据模型:数据库中数据的存储结构. 我理解的数据库 假如有一间图书馆,图书馆有十个书架,这十个书架分别存放科学.运行.生物.物理.化学的书籍,而每个书架的每一行只存储一位作家的书籍,每一列则是书籍出版的日期.因此,我理解的数据库是图书