数据库原理及应用(二)

简介: 数据库原理及应用(二)

1.3 数据库系统结构

从数据库最终用户角度看(数据库系统外部的体系结构) ,数据库系统的结构分为:


单用户结构


主从式结构


客户/服务器


浏览器/应用服务器/数据库服务器多层结构等


从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构


1.3.1 数据库系统模式的概念


1 型和值的概念


型(Type):对某一类数据的结构和属性的说明


值(Value):是型的一个具体赋值


举例:


学生记录型:(学号,姓名,性别,系别,年龄,籍贯)


一个记录值:(900201,李明,男,计算机,22,江苏


2 模式(Schema)


数据库逻辑结构和特征的描述


是型的描述


反映的是数据的结构及其联系


模式是相对稳定的


3 实例(Instance)


模式的一个具体值


反映数据库某一时刻的状态


同一个模式可以有很多实例


实例随数据库中的数据的更新而变动


1.3.2 数据库系统的三级模式结构

6d7d1fa7c6470bc6c7841bedd3b78850.png

① 模式(Schema)


模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求


注:一个数据库只有一个模式,模式的地位是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关


② 外模式(External Schema)


外模式(也称子模式或用户模式):是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示


注:外模式的地位:介于模式与应用之间


模式与外模式的关系:一对多


外模式通常是模式的子集


一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求


对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同


外模式与应用的关系:一对多


同一外模式也可以为某一用户的多个应用系统所使用


但一个应用程序只能使用一个外模式


外模式是保证数据库安全的一个有力措施。每个用户只能看见和访问对应的外模式中的数据,数据库的其余数据是不可见的。


③ 内模式(Internal Schema)


内模式(也称存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。


注:一个数据库只有一个内模式


!> 数据在数据库内部的表示方式:


记录的存储方式(顺序存储,按照B树结构存储, 按hash方法存储)


索引的组织方式


数据是否压缩存储


数据是否加密


数据存储记录结构的规定


最后再来回顾一下数据库系统的三级模式结构:

8726fe689cd1c5b6f46fe96cc89a3b9f.png

1.3.3 数据库的二级映像功能与数据独立性


三级模式是对数据的三个抽象级别


二级映象在 DBMS 内部实现这三个抽象层次的联系和转换


外模式/模式映像


模式/内模式映像


第二章 关系数据库

2.1 关系模型的基本术语及形式化定义

数据结构 —— 静态特性


数据操作 —— 动态特性


数据的约束条件


数据结构


1 数据结构:描述数据库的组成对象,以及对象之间的联系


2 两类对象:


与数据类型、内容、性质有关的对象


与数据之间联系有关的对象


3 数据结构是对系统静态特性的描述


数据操作


1 数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则


2 数据操作的类型


检索


更新(包括插入、删除、修改)


3 数据模型对操作的定义


操作的确切含义


操作符号


操作规则(如优先级)


实现操作的语言


4 数据操作是对系统动态特性的描述。


数据的完整性约束条件


1 数据的完整性约束条件


一组完整性规则的集合。


完整性规则:是给定的数据模型中数据及其联系所具有的制约和储存规则


用以限定符合数据模型的数据库状态以及状态的变化,来保证数据的正确、有效、相容。


2 数据模型对约束条件的定义


反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。


提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。


2.1.1 基本术语


1 域 Domain


一组具有相同数据类型的值的集合。


比如整数、字符串等。


2 笛卡尔积 Cartesian Product


笛卡尔积是域上的一种集合运算

a6ec3508b6c0301f2cd3fd495406f477.png

定义有点晦涩,看下面一个例子就懂了

04b90771523b9fd61aa0add74ce40ac7.png

3 关系 Relation


笛卡尔积 D1×D2×…×Dn 的一个子集叫作域 D1, D2, …, Dn 上的一个关系。


学生(学号,姓名,年级)就是一个关系


如果只有 1 个属性,则称为单元关系/一元关系


如果有 2 个属性,则称为二元关系


4 主码 Primary Key


有一个或一组这样的属性,它的值能确定该关系中其他所有属性的值。


5 候选码 Candidate Key


能唯一标识元组的属性(组),其中选择其一作为主码。


6 主属性 Prime Attribute


候选码中的诸属性。


7 非主属性 Non-Key Attribute


不出现在任何候选码中的属性。


8 关系的型与值


关系(表)的型:关系的结构(字段名、字段个数、域等)


关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。


2.1.2 关系的概念及性质


关系 Relation:笛卡尔积 D1×D2×…×Dn 的一个子集叫作域 D1, D2, …, Dn 上的一个关系。


学生(学号,姓名,年级)就是一个关系


如果只有 1 个属性,则称为单元关系/一元关系


如果有 2 个属性,则称为二元关系


2.1.3 关系模式


!> 关系数据库中,关系模式是型,关系是值 。


1 什么是关系模式


关系模式(Relation Schema)是型


关系是值


关系模式是对关系的描述


元组集合的结构


属性构成


属性来自的域


属性与域之间的映象关系


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


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


2 定义关系模式


关系的描述称为关系模式。


关系模式可以形式化地表示为:R(U,D,dom,F)


说明:

R 关系名

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

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

dom 属性向域的映象集合

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

关系模式通常可以简记为:R (U) 或 R (A1,A2,…,An)


R ——关系名


A1,A2,…,An ——属性名


!> 注:域名及属性向域的映象常常直接说明为属性的类型、长度


3 关系模式与关系


关系模式


对关系的描述


静态的、稳定的


关系


关系模式在某一时刻的状态或内容


动态的、随时间不断变化的


关系模式和关系往往统称为关系,通过上下文加以区别


2.1.4 关系数据库


关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。


(1)单一的数据结构—关系


关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。


(2)关系操作


关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等和查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。


(3)关系的三类完整牲约束


关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。


2.2 关系的完整性

关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义完整性。


其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。


关系模型的完整性规则是对关系的某种约束条件。任何关系在任何时刻都要满足这些语义约束


实体完整性


参照完整性


用户定义完整性


2.2.1 实体完整性


Entity Integrity


关系数据库中的每个元组应该是可区分的、唯一的。这样的约束条件用实体完整性来保证


实体完整性规则:每个关系都应有至少一个主属性,且主属性不能为空值


例如:选修(学号,课程号,成绩)关系中,学号和课程号不能为空值


!> 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。


2.2.2 参照完整性


Referential Integrity


参照完整性规则:若属性 F 是基本关系R的外码,它与基本关系 S 的主码 Ks 相对应,则对于 R 中每个元组在 F 上的值必须为:


或者取空值


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

b012c9752c5067a462f86069a2fd9b72.png

6876bc55f56e15cfa91b659e1c692466.png

2.2.3 用户定义完整性


User-defined Integrity


任何关系数据库系统都应支持实体完整性和参照完整性。除此之外,用户还可以自定义完整性约束。


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


例:选修(学号,课程号,成绩)成绩的取值范围在 0~100 之间


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


相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
目录
相关文章
|
3月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
6月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
7月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
433 14
|
4月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
242 8
|
4月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
6月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
5月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
1482 0
|
7月前
|
SQL 数据库
软考软件评测师——数据库系统应用
本文介绍了关系数据库的基础知识与应用,涵盖候选码定义、自然连接特点、实体间关系(如1:n和m:n)、属性分类(复合、多值与派生属性)以及数据库设计规范。同时详细解析了E-R图转换原则、范式应用(如4NF)及Armstrong公理体系。通过历年真题分析,结合具体场景(如银行信用卡额度、教学管理等),深入探讨了候选键求解、视图操作规范及SQL语句编写技巧。内容旨在帮助读者全面掌握关系数据库理论与实践技能。
|
11月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
344 19

热门文章

最新文章