Chapter1

news/2025/2/24 21:03:00/文章来源:https://www.cnblogs.com/mumujun12345/p/18734857

Chapter 1 Introduction 引言

  • 数据库管理系统(DataBase Management System, DBMS)
  • 互相关联的数据集合和一组用以访问这些数据的程序组成。
  • 提供方便,高效的存取数据信息。

1.1 应用

  • 联机事务处理。(online transaction processing)
    • 大量用户使用数据库,每个用户检索相对少量的数据进行小的更新。
  • 数据分析。(data analytics)
    • 审阅数据,得出结论,推导规则和决策程序驱动业务决策。
  • 数据挖掘。(data mining)

1.2 目标

  • 原先处理大量数据的方式是采用文件处理系统(file processing system)。将数据记录存储在多个不同的文件中,需要有不同的应用程序来记录或取出数据。
  • 造成了以下的弊端
    • 数据冗余和不一致性(data redundancy and inconsistency)
    • 数据访问困难(accessing difficulty)
    • 数据孤立。(data isolation)
    • 完整性问题(integrity problem)
    • 一致性约束(consistency constraint)
    • 原子性问题(atomicity problem)
    • 并发访问异常(concurrent anomaly)
    • 安全性问题(security problem)

1.3 数据视图

  • 数据库是一些互相关联的数据和一组用户可以访问和修改这些数据的程序的集合。
  • 主要目的:提供给用户数据的抽象视图

1.3.1 数据模型

  • 关系模型(relational model)。表的集合来表示数据和数据之间的关系。列名唯一,表称为关系
    • 基于记录的模型。
    • 数据库由若干固定格式的记录构成,每个表包含某种特定类型的记录。
    • 记录类型确定了固定数目的字段或者属性。
    • 表的列对应于记录类型的属性
  • 实体-联系模型(entity-relationship model)
    • 实体的基本对象集合,以及对象之间的联系。
  • 半结构化数据模型(semi-structured data model)
    • 允许定义相同类型数据项的不同属性集合。
    • Json和XML都是半结构化。
  • 基于对象的数据模型(object-based data model)
    • 对象数据集。

1.3.2 关系数据模型

  • 表的形式表示数据。
  • 每个表具有多个列,每个列具有唯一的名字。
  • 表的每一行表示一条信息。

1.3.3 数据抽象

  • 层次划分如下,用于屏蔽复杂性,简化交互。
    • 物理层(physical level), 描述数据如何存储。详细描述复杂底层数据结构。
    • 逻辑层(logical level)。描述了存储什么数据,以及存储数据的相互关系。逻辑层不需要了解物理层的具体实现,称为物理数据独立性(physical data independence)
    • 视图层(view level)。最高层次的抽象,只描述数据库的某个部分。

img

1.3.4 实例和模式

  • 特定时刻存储在数据库中的信息的集合称为实例(instance), 数据库的整体设计称为数据库模式(schema)
  • 时刻 -> 实例,模式 -> 类型
  • 物理模式:在物理层描述数据库的设计。逻辑模式:在逻辑层描述数据库的格式。子模式:描述不同视图。

1.4 数据库语言

  • DDL:Data Definition Language,数据定义语言。
  • DML:Data Manipulation Language,数据操纵语言。

1.4.1 DDL

  • 实现对数据的存储结构和访问方式的说明,定义数据库的细节。

    • 域约束(domain constraint):每个属性必须对应于一个所有的可能的取值对应的域。声明一个属性相当于约束它可以取的值。完整性约束的最基本方式。
    • 引用完整性(refrential integrity):在某些给定属性集上的取值在另一个关系的某一属性集的取值中出现。对于破坏引用完整性的操作,一般拒绝执行。
    • 授权(authorization):对用户进行区别,允许不同操作。
      • 读入权限(Read authorization),仅允许读取数据。
      • 插入权限(Insert authorization),允许插入+读取,不允许修改。
      • 更新权限(Update authorization),允许修改+读取,不允许删除。
      • 删除权限(Delete authorization),允许删除数据。
  • DDL语句处理具有输出,存档在数据字典(data dictionary)中。数据字典包含元数据(metadata)。字典是一个特殊的表。

1.4.2 SQL DDL

create table dept(dept_name   char(20),building    char(15).budget      numeric(12,2));

上述DDL语句创建了department表格,具有三列,每列具有与之相关联的数据类型。

1.4.3 DML

  • DDL具有以下几种访问类型

    • 对信息进行检索。
    • 插入新的信息。
    • 删除信息。
    • 修改数据库中存储的信息。
  • 存在两种类型的数据操纵语言:

    • 过程化(procedual DML),指定需要什么数据,如何获得这些数据。
    • 声明式(declarative DML),非过程话DML,不必之名如何获得。

1.4.4 SQL DML

select instructor.name
from instructor
where instructor.dept_name = 'history';

进行查询,执行结果返回一个表,包含单个列name。有若干行,每一行均为符合要求的结果。

1.5 数据库设计

  • 概念框架 -> 模式选择 -> 概念设计 -> 规范化 -> 功能需求说明 -> 逻辑设计 -> 物理设计(自顶向下)

1.6 数据库引擎

  • 存储管理器
  • 查询处理器
  • 事务管理部件

1.6.1 存储管理器

  • 负责在数据库中存储的底层数据与应用程序以及向系统提交的查询之间提供接口的部件。

  • 部件包括:

    • 权限及完整性管理器:完整性约束与用户权限检查。
    • 事务管理器:一致性保证和并发管理。
    • 文件管理器:磁盘存储空间分配。
    • 缓冲区管理器:决定数据是否缓冲存储。
  • 实现了数据结构:

    • 数据文件
    • 数据字典:数据库结构的元数据,特别是数据库模式。
    • 索引:对数据项的快速访问。

1.6.2 查询处理器

  • DDL interpreter: 解释DDL并存储定义。
  • DML compiler: 翻译DML成一系列能执行的低级指令执行方案。也会进行查询优化。
  • 查询执行引擎:执行经过DML翻译后的语句。

1.6.3 事务管理

  • 事务(transaction):数据库中完成单一逻辑功能的操作集合。
    • 要求事务的原子性,即不能同时发生。
    • 要求事务的一致性,即要维护逻辑约束完整性。
    • 要求事务的持久性,能够从故障/错误中恢复。

1.7 数据库和应用体系结构

img

  • 进行并行/分布式部署。
  • 二层和三层体系结构,现在一般为三级体系结构。

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889191.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0224

关于中州养老入住办理的业务分析 1.原型如下如上可以将入住办理的业务总体看为5个表格,总体分为两部分: ​ 1:所有老人入住详情表:>1. 搜索:老人姓名为模糊搜索,老人身份证号为精准搜索;>2. 列表数据:列表中所展示的数据是入住成功且未退住的老人信息>3. 发起入住…

生成式AI之旅

还记得ChatGPT刚出来时,体验后的感觉是:知识渊博,无所不通;智慧在线,逻辑清晰,简直可以用“高端,大气,上档次”形容,但也不失“低调,奢华,有内涵”。使用GPT经历过几个阶段:最开始是娱乐阶段:以聊天,写诗之类为主;之后经历了漫长的搜索引擎阶段:搜索知识点,技…

2025省选模拟15

2025省选模拟15\(T1\) P1045. 数 \(100pts\)原题: SP6408 KKKCT2 - Counting Triangles 2 | SP5464 CT - Counting triangles考虑枚举直角顶点 \((i,j),0 \le i \le x,0 \le j \le y\),然后分为了 \(8\) 种贡献情况。设 \(\begin{cases} a=\min(i,y-j) \\ b=\min(x-i,j) \\ c…

独立开发之五个月干到4万$+

写文章的起因 本来在群里跟大伙聊天的时候,然后就聊产品终于赚钱,我说要不我写个小册或者出个课把,就写我们这种穷逼独立开发怎么做产品变现,然后我认真想了一下可能我花1个月写小册的时间的性价比不是很高。 然后本来这个话题都完结了,有小伙伴就私聊我,直接发了我个红包…

Prompt入门

Prompt,,提示词,是使用生成式AI的必备前提,好的提示词能让生成式AI给出更精准的结果,不仅能节省时间,还能节省tokens(这可是美金呀),所以在生成式AI出来后,就有Prompt Engineer提示工程师之说。于是,就有很多分享提示的文章,还有很多网站,专门收集各种场合的提示词…

SEO完全指南 从原理到实战的搜索引擎优化手册 第三章SEO与内容优化

第三章:SEO与内容 1. 基于算法的内容优化策略 搜索引擎算法的主要目标是为用户提供最相关、最有价值的内容。这些算法使用复杂的机器学习模型来理解和评估网页内容。它们考虑多个因素,包括关键词的使用、内容的深度和质量、用户交互数据以及网站的整体结构和权威性。要在搜索…

【攻防世界】CatchCat

上网一查发现是GPS数据文件 到这个GPS绘图网址上传.txt文件即可 还有一种方法,先转为KML文件txt2kml网址kml绘图

智能化客户行为轨迹分析:AI视频监控在大型商场的技术方案介绍(part7)

项目背景:为了提升顾客体验并支持精准营销,卖场或商场需要通过智能化手段分析客户在商场内的行为路线。一、具体需求 1、行为路径分析:跟踪顾客在商场内的移动轨迹,了解顾客的购物习惯和偏好。 2、高频活动区域识别:通过分析顾客停留和活动频率,识别出顾客聚集的区域。 3…

在Android源码中为APK编译系统权限

在Android源码中为APK编译系统权限,授权使用 android:sharedUserId="android.uid.system" 系统权限,可以在Android开发中授予更多功能,以瑞芯微3568平台为例系统权限获取 打包为APK进行系统签名对于 部分功能的访问需要使用到系统权限,需要 添加 android:shared…

PNG图片宽高隐写

https://www.cnblogs.com/senior-engineer/p/9548347.html

[tldr] vscode的remote插件的config文件内容解析

参考VS Code Remote SSH配置 解决了什么问题 vscode的remote插件可以直接通过可视化的UI新建一个连接通过ssh指令添加服务器的连接方式但是这种方式添加的服务器名字等于服务器IP地址,难以理解 如果出现同一个IP地址,使用不同端口的SSH,那么会被视作同一个服务器,因为连接名字和…

使用Go复刻skiplist核心功能

0、引言 正好做LC每日一题要求实现一个跳表,于是学习了redis的扩展skiplist,并使用Go进行复刻学习。学习参考了文章:Redis内部数据结构详解(6)——skiplist - 铁蕾的个人博客 因为作者能力有限,本文只是对跳表的核心功能:创建节点与跳表、插入节点、删除节点、获取节点ran…