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

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

关系数据结构

关系数据库简介

系统而严格地提出关系模型的是美国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.关系模式与关系

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


关系数据库

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

 

希望对你有帮助!加油!

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

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
目录
相关文章
|
1月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
107 1
|
2月前
|
SQL 人工智能 数据可视化
16.1k star! 只需要DDL就能一键生成数据库关系图!开源神器ChartDB让你的数据结构"看得见"
ChartDB是一款开源的数据库可视化神器,通过一句智能查询就能自动生成专业的数据库关系图。无需安装客户端、不用暴露数据库密码,打开网页就能完成从数据建模到迁移的全流程操作,堪称开发者的"数据库透视镜"。
370 67
|
3月前
|
存储 JSON 数据格式
ElasticSearch基础概念解析
以上就是ElasticSearch的基础概念。理解了这些概念,你就可以更好地使用ElasticSearch,像使用超级放大镜一样,在数据海洋中找到你需要的珍珠。
149 71
|
1月前
|
SQL 存储 关系型数据库
第一篇:数据库基础与概念
这篇文档面向数据库初学者,系统介绍了数据库的基础概念、类型、管理工具及实践方法。内容涵盖数据库定义、应用场景(如电商、银行系统)、数据库管理系统(DBMS)的功能与常见系统(MySQL、PostgreSQL等),以及关系型与非关系型数据库的区别。同时,文章详细解析了基本术语(表、记录、字段、主键、外键)和ER图设计,并提供了实践建议,包括创建简单数据库、学习SQL语言、使用管理工具等。最后推荐了学习资源和书籍,鼓励读者通过实际项目巩固知识,逐步掌握数据库的核心技能。
132 11
|
7月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
4月前
|
存储 机器学习/深度学习 算法
C 408—《数据结构》图、查找、排序专题考点(含解析)
408考研——《数据结构》图,查找和排序专题考点选择题汇总(含解析)。
173 29
|
4月前
|
存储 机器学习/深度学习 人工智能
C 408—《数据结构》易错考点200题(含解析)
408考研——《数据结构》精选易错考点200题(含解析)。
258 27
|
5月前
|
XML Java 开发者
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
179 18
|
6月前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
1068 5
|
6月前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
201 4

热门文章

最新文章

推荐镜像

更多
  • DNS