关系数据库:关系数据结构基础与概念解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 关系数据库:关系数据结构基础与概念解析

关系数据结构

关系数据库简介

系统而严格地提出关系模型的是美国IBM 公司的 E.F.Codd

   

  • 1970 年提出关系数据模型

E.F.Codd, "A Relational Model of Data for Large Shared Data Banks"《Communication ofthe AcM》,1970

  • 之后,提出了关系代数和关系演算的概念
  • 1972 年提出了关系的第一、第二、第三范式
  • 1974 年提出了关系的 BC 范式

关系数据库系统

  • 是支持关系模型的数据库系统

 关系模型的组成

  • 关系数据结构
  • 关系操作集合
  • 关系完整性约束

关系的定义

1.域(Domain)

域是一组具有相同数据类型的值的集合例如:整数、实数、介于某个取值范围的日期;介于某个取值范围的日明

2.笛卡儿积(Cartesian Product)

给定一组域D1,D2,...,Dn,这些域中可以有相同的。

D1,D2,...Dn的笛卡儿积为:

D1xD2x...xDn={ (d1,d2..,dn) | di ϵDi, i=1,2,...n }


(1)元组(Tuple)

笛卡尔积中每一个元素(d1,d2,...,dn)叫作一个n元组(n - tuple)或简称元组,或者一条记录也是一个元组。

(2)分量(Component)

笛卡尔积元素(d1,d2,...,dn)中的每一个值di叫作一个分量。

(3)基数(Cardinal Number)

若Di(i=1,2,... ,n)为有限集,其基数为mi(i=1,2 ,...,  1n),

则D1xD2x..xDn的基数M为为元组的个数。

(4)笛卡尔积的表示方法

笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。


例如,给出3个域

D1 :院系集合 DEPARTMENT三{计算机系,日语系}

D2 :班级集合CLASS={1班,2班}

D3 :学生集合STUDENT={张三,李四,王五}

其中(计算机系,1班,张三) 、(计算机系,2班,李四) 等都是元组,计算机系、1班、2班、张三、李四等都是分量。

该笛卡尔积的基数为2x2x3=12。即D1xD2xD3共有12个元组。这12个元组可列成一张二维表。

如下表所示:

3.关系(Relation)

D1xD2x...xDn 的子集叫作在域 D1,D2,...,Dn上的关系

表示为:R(D1,D2,...,Dn);

R为关系名,n为关系的目或度(Degree)

(1)元组

关系中的每个元素是关系中的元组,通常用 t 表示,

(2)单元关系与二元关系

当n=1时,称该关系为单元关系(Unary relation)

当n=2时,称该关系为二元关系(Binary relation)

(3)关系的表示

关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。

如下表所示。其中该表是在上表的笛卡尔积中取出有意义的元组,形成的一个子集。

(4)属性

关系中不同列可以对应相同的域,为了加以区分,必须对每一个列起一个名字,称为属性(Attribute)。

(5 )码

① 候选码(Candidate key)

若关系中的某一属性组的值能唯一地标识一个元组,而其任何真子集都不能再标识一个元组,则称该属性组为候选码,在最简单的情况下,候选码只包含一个属性。

例如,存在一个学生关系,包括学号、姓名、年龄、身份证号四个属性,其中学号可以唯一地标识一个学生元组,身份证号也可以唯一地标识一个学生元组,所以学号和身份证号可以作为学生关系的候选码。

② 全码 ( Al-key)

在最极端的情况下,关系的所有属性组是这个关系的候选码称为全码( All-key)。

例如,存在一个音乐会关系,包括演奏者、音乐作品、观众三个属性,其中三个属性组合在一起才可以唯一地标识一个音乐会元组,所以关系的所有属性组是这个关系的候选码,即为全码。

③ 主码(Primary key )

若一个关系有多个候选码,则选定其中一个为主码或主键(Primary key)。

例如,在学生关系中,根据具体情况,学号可以更好地标识一个学生元组,所以学号作为学生关系的主码。当然身份证号也可以作为学生关系的主码。

④ 主属性(Prime attribute)与非主属性(Non-key attribute)候选码的诸属性称为主属性(Prime attribute)。

不包含在任何候选码中的属性称为非主属性(Non-key attribute

例如,在学生关系中,学号和身份证号为主属性,姓名和年龄为非主属性。


关系的性质

(1)列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。

(2)不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名

(3)列的顺序无所谓,即列的次序可以任意交换。在许多实际关系数据库产品中,增加新属性时,永远是插至最后一列。

(4)任意两个元组的候选码不能相同。

(5)行的顺序无所谓,行的次序可以任意交换。在许多实际关系数据库产品中,插入一个元组时永远插至最后一行。

(6)分量必须取原子值,即每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条。

关系性质1——同质的列

   关系性质2——不同的属性名

关系性质3——属性无序

关系性质4——元组的候选码不重复

关系性质5——元组无序

关系性质6——分量是原子


关系模式

关系模式是对关系的描述。关系模式在形式上可以表示为

R(U,D,DOM,F)

其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM 为属性向域的映像集合,F为属性间的数据依赖关系集合。

1.关系模式的表示

关系模式通常可以简记为

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

其中R为关系名,A1,A2,...,An为属性名。而域名及属性向域的映像常常直接说明为属性的类型、长度。

2.关系模式与关系

关系模式是对关系的描述,关系模式是静态的、稳定的;关系是关系模式在某一时刻的状态或内容,关系是动态的、随时间不断变化的;关系模式和关系往往统称为关系,通过上下文加以区别。


关系数据库

在关系模型中,实体以及实体间的联系都是用关系来表示的在一个给定的应用领域中,所有实体及实体之间联系的关系的集合(也可以简单地理解为表的集合)构成一个关系数据库。

 

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

相关实践学习
使用DAS实现数据库SQL优化
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。
目录
相关文章
|
3月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
24天前
|
存储 机器学习/深度学习 算法
C 408—《数据结构》图、查找、排序专题考点(含解析)
408考研——《数据结构》图,查找和排序专题考点选择题汇总(含解析)。
69 29
|
24天前
|
存储 机器学习/深度学习 人工智能
C 408—《数据结构》易错考点200题(含解析)
408考研——《数据结构》精选易错考点200题(含解析)。
118 27
|
29天前
|
XML Java 开发者
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
81 18
|
2月前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
407 5
|
2月前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
94 4
|
3月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
3月前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
97 1
|
3月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
3月前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树

推荐镜像

更多