《数据库技术原理与应用教程第2版》——3.5信息世界与逻辑模型

简介: 关系模型(relational model)的基本数据结构是二维表,简称表(table)。大家知道,表格方式在日常生活中应用很广,特别是在商业系统中,如金融、财务处理经常使用表格形式表示数据框架,这给了我们一个启发,用表格作为一种数据结构有着广泛的应用基础,关系模型即是以此思想为基础建立起来的

本节书摘来自华章出版社《数据库技术原理与应用教程第2版》一书中的第3章,第3.5节,作者 徐洁磐 操凤萍  ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.5信息世界与逻辑模型

3.5.1概述

信息世界是数据库的世界,该世界着重于数据库系统的构造与操作。信息世界由逻辑模型描述。
由于数据库系统不同的实现手段与方法,因此逻辑模型的种类很多,目前常用的有层次模型、网状模型、关系模型、面向对象模型、谓词模型及对象关系模型等。其中,层次模型发展最早并盛行于20世纪的60~70年代。网状模型出现稍晚,且具有比层次模型更为优越的性能,它盛行于20世纪70~80年代。关系模型的概念出现于1970年,但由于在实现上的困难,直到20世纪70年代后期才出现实用性系统,并在80年代开始实用化。面向对象模型出现于20世纪的80年代,在90年代开始实用化。谓词逻辑模型出现于20世纪70年代末期,它表示力强,表示形式简单,已成为演绎数据库及知识库的主要模型。面向对象模型与谓词逻辑模型既是概念模型又可作为逻辑模型。对象关系模型是一种关系模型的面向对象扩充,它的概念模型是扩充的ER模型,它也可以被视为面向对象模型的特例。上面的5种逻辑模型分别与前面的四种概念模型相对应,它们的对应关系见表3-3。


5b7e3effac46ff423f43b6c38fce3ec3cac39703

表3-3逻辑模型与概念模型的对应关系

本章将重点介绍关系模型。

3.5.2 关系模型简介

关系模型(relational model)的基本数据结构是二维表,简称表(table)。大家知道,表格方式在日常生活中应用很广,特别是在商业系统中,如金融、财务处理经常使用表格形式表示数据框架,这给了我们一个启发,用表格作为一种数据结构有着广泛的应用基础,关系模型即是以此思想为基础建立起来的。
关系模型中的操纵与约束也是建立在二维表上的,它包括对一张表及多张表的查询、删除、插入及修改操作,以及相应于表的约束。
关系模型的思想是IBM公司的EFCodd于1970年在一篇论文中提出的,他在该年6月的ACM上所发表的论文《大型共享数据库的关系模型》(A Relational Model for Large Shared Data Banks)中提出了关系模型与关系模型数据库的概念与理论,并用数学理论作为该模型的基础支撑。由于关系模型有很多诱人的优点,因此,从那时起就有很多人转向此方面的研究,并在算法与实现技术上取得了突破。1976年以后出现了商用的关系模型数据库管理系统,如IBM公司在IBM370机上实现的SystemR系统,美国加州大学在DEC的PDP11机上实现的基于UNIX的Ingres系统,Codd也因他所提出的关系模型与关系理论这项开创性工作而荣获了1981年计算机领域的最高奖——图灵(Turing)奖。
关系模型数据库由于其结构简单、使用方便、理论成熟而吸引了众多的用户,在20世纪80年代以后成为数据库系统中的主流模型,很多著名的系统纷纷出现并占领了数据库应用的主要市场。目前,主要产品有Oracle、SQL Server、DB2等。关系模型数据库管理系统的数据库语言也由多种形式而逐渐统一成一种标准化形式,即SQL语言。
3.5.3关系模型的数据结构、操纵和约束
关系是一种数学理论,运用这种理论所得到的逻辑模型称关系模型,关系模型由关系数据结构、关系操纵及关系约束三部分组成。

1.关系数据结构

(1)表结构
关系模型统一采用二维表结构。二维表由表框架(frame)及表元组(tuple)组成。表框架由n个命名的属性组成,n称为属性元数(arity),每个属性有一个取值范围(即值域)。
在表框架中可以按行存放数据,每行数据称为一个元组,或称表的实例(instance)。实际上,一个元组由n个元组分量组成,每个元组分量是表框架中每个属性的投影值。一个表框架可以存放m个元组,m称为表的基数(cardinality)。
一个n元表框架及框架内m个元组构成了一个完整的二维表。表34给出了二维表的一个例子,这是一个有关学生(S)的二维表。
表3-4二维表的一个实例


46b813b91e3ee5885b998e48c3bab6168d4efbae

二维表一般满足下面七个性质:
二维表中元组个数是有限的——元组个数有限性。
二维表中元组均不相同——元组的唯一性。
二维表中元组的次序可以任意交换——元组的次序无关性。
二维表中元组的分量是不可分割的基本数据项——元组分量的原子性。
二维表中属性名各不相同——属性名唯一性。
二维表中属性与次序无关——属性的次序无关性(但属性次序一经确定就不能更改)。
二维表中属性列中分量具有与该属性相同值域——分量值域的同一性。
(2)关系
关系(relation) 是二维表的一种抽象,它是关系模型的基本数据单位。具有n个属性的关系称n元关系,n=0时称空关系。每个关系有一个名称(即关系名),关系名及关系中的属性构成了关系框架。设关系名为R,其属性为a1, a2, …, an,则该关系的框架是:
R(a1, a2, …,an)
表34所示的关系框架可以表示成:
S(sno,sn,sd,sa)
每个关系有m个元组,设关系的框架为R(a1, a2,…, an),则其元组必具有下面的形式:
(a11, a12, … , a1n)
(a21, a22, … , a2n)

(am1, am2, … , amn)

其中aij(i∈{1,2,…,n},j∈{1,2,…,m})为元组分量。
按关系框架所组成的关系元组集合可构成一个关系。如表34所示的关系R可表示为:R={(98001,张曼英,CS,18),(98002,丁一明,CS,20),(98003,王爱国,CS,18),(98004,李强,CS,21)}。
一个语义相关的关系集合构成一个关系数据库(relational database)。而语义相关的关系框架集合则构成关系数据库模式(relational database schema),简称关系模式(relational schema)。
关系模式支持子模式,关系子模式是关系数据库模式中用户所见到的那部分数据描述。关系子模式也是二维表结构,它对应着用户数据库,即视图(view)。
关系与二维表是一个概念的两种不同表示形式,一般在理论研究中用关系讨论而在实际应用中则用二维表表示,在本书中基本上按此方法但并不严格区分。
(3)键
键是关系模型中的一个重要概念,它具有标识元组、建立元组间联系等重要作用。
键(key):二维表中凡能唯一最小标识元组的属性集称为该表的键。
候选键(candidate key):二维表中可能有若干个键,它们称为该表的候选键。
主键(primary key):从二维表的所有候选键中选取一个作为用户使用的键称为主键。主键一般也简称键。
外键(foreign key):若表A中的某属性集是表B的键,则称该属性集为A的外键。
表一定有键,因为如果表中所有属性子集均不是键则至少表中属性全集必为键,因此也一定有主键。
(4)关系与ER模型
虽然关系的结构简单,但它的表示范围广,ER模型中的属性、实体(集)及联系均可用它表示,表35给出了ER模型与关系间的比较。


dc713d3e60183cb8abc0f1720cecea7ffb65709d

在关系模型中,关系既能表示实体集又能表示联系。表36给出了某公司职工间上下级联系的关系表示。


2411be5d82141b7f4420f6a13f1c5d8e500b35d6

2.关系操纵

关系模型的数据操纵就是建立在关系上的一些操作,一般有查询、删除、插入及修改四种操作。
(1)数据查询
用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。
1)一个关系内查询的基本单位是元组分量,其基本过程是先定位后操作。所谓定位,包括纵向定位与横向定位,纵向定位就是指定关系中的一些属性(称列指定),横向定位就是选择满足某些逻辑条件的元组(称行选择)。通过纵向与横向定位后就可确定一个关系中的元组分量了。在定位后即可进行查询操作,即将定位的数据从关系数据库中取出并放入至指定内存。
2)多个关系间的数据查询可分为3步进行。第1步将多个关系合并成一个关系,第2步对合并后的一个关系进行定位,最后进行查询操作。其中,第2步与第3步可看作一个关系内的查询,故我们只介绍第1步。多个关系的合并可分解成两个关系的逐步合并,如果有3个关系R1、R2与R3,那么合并过程是先将R1与R2合并成R4,然后再将R4与R3合并成最终结果R5。
因此,对关系数据库的查询可以分解成三个基本定位操作与一个查询操作:
一个关系内的属性指定。
一个关系内的元组选择。
两个关系的合并。
查询操作。
(2)数据删除
数据删除的基本单位是元组,用于将指定关系内的指定元组删除。它也分为定位与操作两部分,其中定位部分只需要横向定位而无需纵向定位,定位后即是执行删除操作。因此,数据删除可以分解为两个基本操作:
一个关系内的元组选择。
关系中元组的删除操作。
(3)数据插入
数据插入仅用于一个关系,即在指定关系中插入一个或多个元组。插入数据时不需定位,只需将元组插入关系。因此,数据插入只有一个基本操作:
关系中的元组插入操作。
(4)数据修改
数据修改是在一个关系中修改指定的元组与属性值。数据修改不是一个基本操作,它可以分解为两个更基本的操作:先删除需修改的元组,然后插入修改后的元组。
(5)关系操作小结
以上四种操作的对象都是关系,而操作结果也是关系,因此它们都是建立在关系上的操作。这四种操作可以分解成6种基本操作。这样,关系模型的数据操纵可以总结如下:
1)关系模型数据操纵的对象是关系,而操纵结果也是关系。
2)关系模型基本操作有如下六种(其中三种为定位操作,三种为查询、插入及删除操作):
关系属性的指定。
关系元组的选择。
两个关系合并。
关系的查询操作。
关系中元组的插入操作。
关系中元组的删除操作。
(6)空值处理
在关系元组的分量中允许出现空值(null value)以表示信息的空缺,空值的含义如下:
未知的值。
不可能出现的值。
在出现空值的元组分量中一般可用NULL表示。目前的关系数据库系统都支持空值,但是它们都具有如下两个限制:
1)关系的主键中不允许出现空值。因为主键是关系元组的标识,如主键为空值则失去了其标识的作用。
2)需要定义有关空值的运算。在算术运算中如果出现空值则其结果为空值,在比较运算中如果出现空值则其结果为F(假)。此外,在统计时,如果SUM、AVG、MAX、MIN中有空值输入,其结果也为空值,而在作COUNT时如有空值输入则其值为0。

3.关系中的数据约束

关系模型允许定义三类数据约束,分别是实体完整性约束、参照完整性约束以及用户定义的完整性约束。此外,关系的安全性约束、故障恢复与多用户的并发控制实际上也是数据约束,其具体说明可见第5章。

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
6月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
9月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
10月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
517 14
|
12月前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
579 5
|
7月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1192 5
|
7月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
315 8
|
7月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
11月前
|
人工智能 数据挖掘 API
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
1008 21
基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充
|
10月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
675 3
Jasypt加密数据库配置信息

热门文章

最新文章