《数据库技术基础与应用(第2版)》学习笔记——第3章

简介:

第3章 关系模型的基本概念

3.1 关系的定义与性质

3.1.1 关系的定义
域(Domain):是值的集合
笛卡尔积(Cartesian Product):集合中各元素之间一切可能的匹配组合构成的集合。
笛卡尔积中包含元组(Tuple)。元组个数称为笛卡尔积的基数(Cardinality)。元组由元组分量组成,元组分量是元组的值。参与笛卡尔积的域的个数,称为元数(Arity)或度。
关系:也称为关系模式的一个实例。
域中的任一个元素称为关系中的一个元组。
3.1.2 键(Key):即关键字
超键(Super Key):在一个关系中能够唯一标识元组的属性组合
候选键(Candidate Key):不含多余属性的超键
主键(Primary Key):用户选做元组标识的那个候选键
外键(Foreign Key):关系R中某个属性组合A不是关系R的候选键,而是关系S的候选键,则称A为R的外键
3.1.3 关系的性质
关系中的每个元组分量必须是原子的
关系中不允许出现相同的元组
定义一个关系模式时可随意指定属性的排列次序
在一个关系中元组的排列次序可任意交换
关系模式相对稳定,关系实例则随时间的推移而不断地变化

3.2 关系模型

3.2.1 从ER图导出关系模型数据结构
两实体集间1:N联系
将“1”方关系的“主键”纳入“N”方关系中作为“外键”,同时把联系的属性也一起纳入“N”方关系中。
两实体集间M:N联系
将“联系”单独建立一个关系,需要把联系关联的双方实体的“主键”纳入到“联系”的关系中作为“主键”和“外键”。
两实体集间1:1联系
“联系”不单独建立关系,将其中一个实体集的主键纳入另一个实体集作为外键。
“联系”单独建立关系,将两个实体集的主键都纳入关系中作为主键和外键。
同一实体集内各实体间1:N联系
在实体集内增加一个属性,用来表示与当前实体相联系的另一个实体的“主键”
同一实体集内各实体间M:N联系
“联系”单独建立关系,将相互联系的双方实体的“主键”都纳入到关系中。
多个实体集间M:N多元联系
“联系”单独建立关系,将相互联系的所有实体的“主键”都纳入到关系中。
3.2.2 关系模型的体系结构
关系概念模式
由若干个关系模式组成的集合,它描述关系数据库中全部数据的整体逻辑结构。
关系外模式
关系外模式是关系概念模式的一个逻辑子集。描述关系数据库中数据的局部逻辑结构。
关系概念模式与关系外模式之间的映射在外模式中描述。
在关系数据库中,一个用户可以使用的全部的“表”和“虚表”构成这个用户的数据视图,视图中所有“表”和“虚表”的框架组成数据库的外模式。
系统把“虚表”的定义存储在数据字典中。
关系内模式
关系存储时的基本组织方式是文件,关系中的元组对应文件中的记录。
关系概念模式和关系内模式之间的映射在内模式中描述。
3.2.3 关系模型的三类完整性约束规则
实体完整性约束规则
关系中不允许出现相同的元组,在组成主键的属性上也不允许取空值
参照完整性约束规则
不能引用不存在的实体,又称为引用完整性
用户定义的完整性约束规则
针对某些具体数据的约束规则,主要是保证数据的语义要求。
3.2.4 关系模型的形式定义
关系模型是一种结构数据模型,是能够在计算机中真正实现的模型,有着严格的形式化定义。
关系模型的组成
数据结构:数据的表达方式和数据联系的实现方式。
数据操作:检索和更新(即插入、删除和修改)两大类操作。
数据完整性约束:给出数据及联系的制约与依赖规则,保证数据的正确性。

3.3 关系数据语言

3.3.1 关系数据描述语言(DDL)
问答式DDL
通过人机对话建立关系模式,简单易学,但是人工干预多,速度慢。
语言描述式DDL
使用源语句描述定义关系模式的内容,再编译成目标模式。
3.3.2 关系数据操纵语言(DML)
DML的特点
操作对象与操作结果都是关系
语言完备性及非过程性
语言所提供的运算(或操作)可以存取数据库中的任何数据及数据间的联系信息。
关系代数和关系演算都是衡量关系数据库语言完备性的标准
用户在编写应用程序时,只需要提出“做什么”,不需要说明“怎么做”,就称这种语言的非过程性级别高。
语言建立在严密的数学理论基础上
用关系代数运算表达查询,查询以集合理论为基础
用关系演算公式表达查询,查询以数理逻辑谓词演算为基础
3.3.3 标准数据库语言SQL
SQL介绍
SQL是一种介于关系代数与关系演算之间的语言
SQL是已经被认可的标准数据库语言

本文转自BlogJava朱远翔的博客,原文链接:《数据库技术基础与应用(第2版)》学习笔记——第3章,如需转载请自行联系原博主。

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
相关文章
|
3天前
|
存储 运维 OLAP
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
YashanDB是一款基于统一内核,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景的新型数据库系统;YashanDB同时提供开发平台、运维平台和迁移平台3大工具平台以满足数据全生命周期管理。
17 2
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
|
10天前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!
|
19天前
|
人工智能 物联网 大数据
解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库的需求愈发强烈,开源的兴起更是为这一技术的创新与普及提供了强有力的支持。
27 3
|
30天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
70 15
|
28天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
2月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
129 61
|
2月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
2月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
69 3
|
2月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
77 2

热门文章

最新文章