数据库原理及应用(二)

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

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 之间


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


目录
相关文章
|
4天前
|
缓存 关系型数据库 Java
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
16 0
|
4天前
|
存储 人工智能 NoSQL
现代数据库技术演进与应用前景分析
本文探讨了现代数据库技术的演进历程及其在各领域的应用前景。首先介绍了传统数据库的局限性,随后分析了NoSQL、NewSQL以及分布式数据库等新兴技术的特点和优势。接着探讨了人工智能、物联网、大数据等领域对数据库技术提出的新要求,并展望了未来数据库技术的发展趋势与应用前景。
|
4天前
|
存储 NoSQL 搜索推荐
探索新一代数据库技术:基于图数据库的应用与优势
传统关系型数据库在处理复杂的关系数据时存在着诸多限制,而基于图数据库的新一代数据库技术则提供了更为灵活和高效的解决方案。本文将深入探讨图数据库的核心概念、应用场景以及与传统数据库相比的优势,带领读者一窥未来数据库技术的发展趋势。
|
4天前
|
存储 运维 Kubernetes
多态关联在数据库设计中的应用和解决方案
多态关联在数据库设计中的应用和解决方案
18 0
|
4天前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
4天前
|
机器学习/深度学习 搜索推荐 数据库
矢量数据库的未来发展趋势:新技术与应用展望
【4月更文挑战第30天】随着AI和机器学习的发展,矢量数据库在处理非结构化数据方面的重要性日益增强。预测到2028年,全球矢量数据库市场将从2023年的15亿美元增长至43亿美元。未来趋势包括:并行计算与分布式架构提升处理能力,硬件加速技术(如TPU和昇腾芯片)提高性能,自适应索引机制优化查询效率。应用领域将拓展至NLP、图像视频分析和推荐系统,为各行业带来更多创新和价值。
|
4天前
|
机器学习/深度学习 存储 人工智能
矢量数据库在机器学习领域的应用与前景
【4月更文挑战第30天】本文探讨了矢量数据库在机器学习领域的应用,包括特征存储、相似性搜索、模型训练与调优及实时分析。随着AI技术发展,矢量数据库将深度融合,提升扩展性和可伸缩性,增强智能化功能,并加强安全性与隐私保护。未来,矢量数据库将在机器学习领域扮演关键角色。
|
4天前
|
存储 数据可视化 关系型数据库
矢量数据库在地理空间数据处理中的应用
【4月更文挑战第30天】矢量数据库在地理空间数据处理中展现优势,高效存储管理高维向量数据,支持快速查询、空间分析与可视化。分布式处理能力适应大数据量需求,提供高效、灵活、可扩展及可视化支持,是处理地理空间数据的理想选择。随着技术进步,其应用将更加广泛。
|
4天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。
|
4天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1063 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决