数据库系统概论(个人笔记)(第一部分)

数据库系统概论(个人笔记)

文章目录

  • 数据库系统概论(个人笔记)
  • 1、介绍
    • 1.1 数据库系统应用
    • 1.2 数据库系统的历史
    • 1.3 数据库系统的目标
    • **大学数据库例子**
    • 1.4 数据视图
    • 1.5 数据库语言
    • 1.6 数据库设计
    • 1.7 数据库引擎
    • 1.8 数据库体系结构
    • 1.9 数据库用户和管理员

1、介绍


1.1 数据库系统应用

Database Applications

下面是一些有代表性的应用:

  • 企业信息

    • 销售
    • 会计
    • 人力资源
  • 制造业

  • 银行与金融

    • 银行业务
    • 信用卡交易
    • 金融
  • 大学

  • 航空公司

  • 电信

  • 基于网络的服务

    • 社交媒体
    • 在线零售商
    • 在线广告
  • 文献数据库

  • 导航系统


Database System

DBMS(Database Management System)包含了特定企业的信息:

  • 收集相关数据
  • 访问数据的程序集
  • 使用起来既方便又高效的环境

DBS(Database System)用于管理以下数据集:

  • 极有价值的
  • 相对大
  • 由多个用户和应用程序访问,通常是同时访问。

现代资料库系统是一个复杂的软件系统,其任务是管理庞大而复杂的资料收集。


1.2 数据库系统的历史

History of Database

1950s 和 1960s 早期

  • 磁带存储的数据处理
    • 磁带只提供顺序存取
  • 用于输入的穿孔卡片

1960s 末 和 1970s 初

  • 允许直接访问数据的硬盘

  • 广泛使用的网络和层次数据模型

  • Ted Codd定义了关系数据模型

    • 这项工作将赢得 ACM 图灵奖

    • IBM研究院开始系统 R 原型

    • 加州大学伯克利分校(Michael Stonebraker)开始 Ingres 原型

    • 甲骨文发布第一个商业关系数据库

  • 高性能(时代)事务处理

1970s 末 和 1980s 初

  • 研究关系原型演变成商业系统
    • SQL成为工业标准
  • 并行和分布式数据库系统
    • Wisconsin,IBM,Teradata
  • 面向对象数据库系统

1990s

  • 大型决策支持和数据挖掘应用
  • 大型多兆字节数据仓库
  • 网络商务的出现

2000s

  • 大数据存储系统
    • Google BigTable,Yahoo PNuts,Amazon
    • ”NoSQL“系统
  • 大数据分析:超越SQL
    • Map reduce and friends

2010s

  • SQL重新加载
    • SQL前端到Map Reduce系统
    • 大规模并行数据库系统
    • 多核主存数据库

1.3 数据库系统的目标

Purpose of Database

早期,应用程序是直接构建在文件系统之上的

使用文件系统来存储和操作数据有几个缺点

使用文件系统的缺点:

  • 不同文件中的数据冗余和不一致信息重复

在这里插入图片描述

  • 访问数据困难
    • 需要编写一个新的程序来执行每一项新的任务

在这里插入图片描述

  • 数据隔离——多个文件和格式

在这里插入图片描述

  • 完整性问题

    • 完整性约束(如账户余额>0)会“隐藏”在程序代码中,而不是明确声明
    • 很难添加新的约束或更改现有的约束
  • 更新的原子性

    • 故障可能会使数据处于不一致的状态,并执行部分更新
    • 从一个账户到另一个账户的资金转移要么完成,要么根本不发生

在这里插入图片描述

  • 多个用户并发访问
    • 性能需要并发访问
    • 不受控制的并发访问可能导致不一致
    • 两个人同时阅读平衡并更新它

在这里插入图片描述

  • 安全问题
    • 很难为用户提供对部分数据的访问,但不是全部数据

数据库系统提供方案来解决以上的问题。


大学数据库例子

University Database Example

在本文中,我们将使用一个大学数据库来说明所有的概念。

数据包括以下信息

  • 学生
  • 教员
  • 班级

应用程序示例 :

  • 添加新的学生、教员和课程
  • 为学生注册课程,并生成班级名册
  • 为学生分配成绩、计算平均绩点(GPA)并生成成绩单

Data Models

用于描述的工具集合:

  • 数据
  • 数据关系
  • 数据语义
  • 数据约束

提供了一种方法来描述数据库在物理、逻辑和视图级别的设计。

关系模型

实体-关系数据模型

  • 主要用于数据库设计

基于对象的数据模型

  • 面向对象
  • 对象关系

半结构化数据模型

  • XML

其他老型号:

  • 网络模型
  • 分层数据模型

Relational Model

使用表集合来表示数据和这些数据之间的关系。

在这里插入图片描述

A Sample Relational Database

在这里插入图片描述


The Entity-Relationship Model

将企业建模为实体和关系的集合。

实体 Entity:一个现实世界中可区别于其他物体的“事物”或“物体”。

  • 由一组**属性 attribute **描述

    Each department, instructor

    department: dept_name, building, budget

    instructor: name, dept_name, ID, salary

关系 Relationship:一个在几个实体之间的关联

一个成员关系将一个指导员与她的部门联系在一起

实体集 Entity Set:同一类型的所有实体的集合

关系集 Relationship Set:同一类型的所有关系的集合

在这里插入图片描述


1.4 数据视图

View of Data

数据库系统提供数据的抽象视图 abstraction view

  • 隐藏数据存储和维护方式的某些复杂细节
  • 通过几个抽象级别实现
    • 物理级别
    • 逻辑级别
    • 视图级别

Level of Abstraction

物理级别 Physical level

  • 描述记录(例如,教员)的存储方式

逻辑级别 Logical level

  • 描述存储在数据库中的数据,以及数据之间的关系。

    type instructor = record
    	ID : string;
    	name : string;
    	dept_name : string;
    	salary: integer;
    		end;
    

视图级别 View level

  • 应用程序隐藏数据类型的详细信息。视图还可以出于安全目的隐藏信息(如员工的工资)。

在这里插入图片描述


Instances and Schemas

类似于编程语言中的类型和变量。

模式 Schema——数据库的总体设计

  • 类似于程序中变量的类型信息

实例 Instance——在某个特定时间点存储在数据库中的信息的集合

  • 类似于一个变量的值

DBS 的几种模式

  • 物理模式 Physical schema:物理级别的数据库设计
  • 逻辑架构 Logical schema:逻辑级的数据库设计
  • 子模式 Sub schema:在视图级别描述不同的视图

Physical Data Independence

物理数据独立性 Physical Data Independence——在不改变逻辑模式的情况下修改物理模式的能力

  • 应用程序依赖于逻辑架构
  • 一般来说,各个层次和组成部分之间的接口应该被很好地定义,以便某些部分的变化不会严重影响其他部分。

1.5 数据库语言

Database Language

数据库系统提供了:

  • 数据定义语言 Data Definition Language(DDL)来指定数据库架构
  • 数据操作语言 Data Mainpulation Language(DML)来表示数据库查询和更新

实际上,DDL和DML构成单一数据库语言的组成部分

  • SQL(结构化查询语言 Structured Query Language)

Data Definition Language(DDL)

定义数据库模式的规范符号。

在这里插入图片描述

DDL 编译器根据 DDL 语句生成表,并将这些表的模式定义存储在数据字典 data dictionary中。

数据字典包含元数据(即关于数据的数据)

  • 数据库模式
  • 完整性约束
    • 主要关键字(唯一标识教师的ID)
  • 授权
    • 谁可以访问什么

Data Mainpulation Language(DML)

访问和操作由适当的数据模型组织的数据的语言

  • 信息检索
  • 插入新信息
  • 删除信息
  • 修改信息

DML 也称为查询语言 query language


两类语言(DDL & DML):

  • 过程 Procedural——用户指定需要哪些数据以及如何获取这些数据
  • 声明性(非过程性) Declarative (nonprocedural)——用户指定所需的数据,而不指定如何获取这些数据

SQL 是使用最广泛的非过程查询语言。


SQL Query Language

SQL查询语言是非过程性的。一个查询接受几个表(可能只有一个)作为输入,并且总是返回一个表。

在 Comp. Sci. 部门中查找所有教员的示例:

select name
from instructor
where dept_name = 'Comp. Sci.'

SQL 不是图灵机的等价语言。

为了能够计算复杂的函数,SQL通常嵌入到一些高级语言中。

应用程序访问数据库一般是通过其中一个:

  • 允许嵌入式 SQL 的语言扩展
  • 允许将 SQL 查询发送到数据库应用程序接口(例如ODBC/JDBC)

Database Access from Application Program

非过程查询语言(如SQL)不如通用图灵机功能强大。

SQL 不支持用户输入、显示输出或网络通信等操作。

这种计算和操作必须用宿主语言 host language 编写,如C/C++、Java或Python,并嵌入访问数据库中数据的SQL查询。

应用程序 Application programs——是用来以这种方式与数据库交互的程序。


1.6 数据库设计

Data Design

设计数据库的一般结构的过程:

  • 逻辑设计 Logical Design一一决定数据库模式。数据库设计要求我们找到一个“好的”关系模式集合。
    • 业务决策——我们应该在数据库中记录哪些属性?
    • 计算机科学决策——我们应该有什么样的关系模式,以及属性应该如何分布在不同的关系模式之间?
  • 物理设计 Physical——决定数据库的物理布局

在这里插入图片描述


1.7 数据库引擎

Database Engine

数据库系统被划分为处理整个系统的每一个职责的模块。

数据库系统的功能组件可以分为:

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

Storage Management

数据库数据通常存储在辅助内存(硬盘)上,使用文件系统

存储管理器 Storage Manager是一个程序模块,负责

  • 与文件系统交互
  • 数据的高效存储、检索和更新

存储管理器包括以下组件

  • 授权和完整性管理器
  • 事务管理器
  • 文件管理器
  • 缓冲区管理器

授权和完整性管理器 Authorization and integrity manager

  • 测试完整性约束的满足程度,并检查用户访问数据的权限

事务管理器 Transaction manager

  • 确保数据库在系统故障时仍保持一致的状态
  • 确保并发事务执行在没有冲突的情况下进行

文件管理器 File manager

  • 分配磁盘存储空间
  • 管理用于表示存储在磁盘上的信息的数据结构

缓冲区管理器 Buffer manager

  • 将数据从磁盘存储器提取到主存储器
  • 决定在主存中缓存哪些数据

存储管理器实现以下数据结构

  • 数据文件 Data File:存储数据库本身
  • 数据字典 Data Dictionary:存储有关数据库结构的元数据,特别是数据库的模式
  • 索引 Indices:提供对具有特定值的数据项的快速访问

Query Processing

DBS 的主要目的之一是简化和方便访问数据。

DBS 实现这一目标,通过:

  • 数据抽象
  • 非程序语言

查询处理器 Query Processor 在逻辑层将用非过程语言编写的更新和查询翻译成物理层的有效操作序列。

查询处理器组件 components 包括:

  • DDL 解释器 DDL interprets——解释 DDL 语句并在数据字典中记录定义。
  • DML 编译器 DML compiler——将查询语言中的 DML 语句转换为由查询计算引警可理解的低级指令组成的计算计划。
    • DML编译器执行查询优化。也就是说,它从各种备选方案中挑选成本最低的评估计划。
  • 查询评估引擎 Query evaluation engine——执行由 DML 编译器生成的低级指令。

评估给定查询的替代方法:

  • 等价表达式
  • 每个操作的不同算法

评估查询的好方法和坏方法之间的成本差异可能是巨大的。

需要估算运营成本:

  • 关键取决于数据库必须维护的关系的统计信息
  • 需要估计中间结果的统计量以计算复杂表达式的成本

查询处理的步骤:

在这里插入图片描述

  1. 解析与翻译 Parsing and translation
  2. 最佳化 Optimization
  3. 评价 Evaluation

Transaction Management

事务 transaction是在数据库应用程序中执行单个逻辑函数的操作集合。

事务管理组件 Transaction-management component 确保数据库保持一致(正确)的状态,尽管系统故障(如电源故障和操作系统崩溃)和事务失败。

并发控制管理器 Concurrency-control manager控制并发事务之间的交互,保证数据库的一致性。


1.8 数据库体系结构

Database Architecture

集中式数据库 Centralized databases

  • 一个到几个核心,共享内存

客户端-服务器 Client-server

  • 一台服务器机器代表多台客户机执行工作。

并行数据库 Parallel databases

  • 多核心共享内存
  • 共享磁盘
  • 什么都不分享

分布式数据库 Distributed databases

  • 地域分布
  • 模式/数据异质性

在这里插入图片描述


Database Applications

数据库应用程序通常被划分为两个或三个部分。

两层体系结构 Two-tier architecture——应用程序驻留在客户机上,在服务器上调用数据库系统功能。

三层体系结构 Three-tier architecture——客户机充当前端,不包含任何直接的数据库调用。

  • 客户端通常通过表单接口与应用服务器通信。
  • 应用服务器反过来与数据库系统通信以访问数据。

在这里插入图片描述


1.9 数据库用户和管理员

Database Users

用户的区别在于他们期望与系统交互的方式。

应用程序员 Application programmers——通过 DML 调用与系统交互

高级用户 Sophisticated users——数据库查询语言中表单请求

专门的用户 Specialized users——编写专门的数据库应用程序,不适合传统的数据处理框架

初级用户 Naive users——调用以前编写的永久应用程序之一

  • 例如,通过网络访问数据库的人、银行出纳员、文员

Database Administrators

数据库管理员 Database Administrator —> DBA

  • 对数据库系统有中央控制权的人,协调数据库系统的所有活动
  • 对企业的信息资源和需求有很好的了解

数据库管理员的职责 duties 包括:

  • 模式定义
  • 存储结构和访问方法定义
  • 授予用户访问数据库的权限
  • 指定完整性约束
  • 充当与用户的联络人
  • 监测执行情况并对要求的变化作出反应

Overall System Structure

系统总体结构

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年上半年信息系统项目管理师——综合知识真题与答案解释(4)

2023年上半年信息系统项目管理师 ——综合知识真题与答案解释(4) 61、文档的规范化管理主要体现在()方面。 ①文档书写规范 ②文档质量级别 ③图表编号规则 ④文档目录编写标准 ⑤文档管理制度 ⑥文档安全标准 A.①②③④ B.②③…

MySQL_DDL语句

1.Data类临时数据的弊端 我们之前在将ServletJSP配合处理请求的过程中 数据库起到一个存取数据的作用 但是我们之前的案例中 数据是在Data类中临时定义的 并不是从数据库中获取的 这样做是不好的 因为每一次服务器关闭之后 那么部署在其上的类也会随着卸载 紧接着和类相挂钩的静…

ms17-010(永恒之蓝)

1.漏洞介绍: 永恒之蓝(ms17-010)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病…

计算机网络(第八版 谢希仁 编著) 期末复习大纲

一.每章总结 第一章:分组交换,计网定义、范围划分,性能指标,五层体系结构,TCP/IP体系结构 第二章:物理层,码元,基带调制(数字信号->数字信号,也叫编码),带…

SSE介绍(实现流式响应)

写在前面 本文一起来看下SSE相关内容。 1:SSE是什么 全称,server-send events,基于http协议,一次http请求,server端可以分批推送数据, 不同于websocket的全双工通信,SSM单向通信,一般应用于需…

softmax函数与交叉熵损失详解

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

simulink-仿真以及PID参数整定/PID tuner 的使用流程

控制器搭建与参数整定 搭建一个前馈PID控制器控制系统PID tuner使用 一个懂点控制但不多的小白,因为需要利用simulink仿真,所以不得不学习一些仿真的知识,这篇文章适合和我一样的新手入门,有理解错误的地方希望大手们能够指出来共…

背完这些软件测试核心面试题,offer轻松拿捏了!

你赞同过 软件测试和开发 相关内容 01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和…

spacy微调BERT-NER模型

数据准备 加载数据集 from tqdm.notebook import tqdm import osdataset [] with open(train_file, r) as file:for line in tqdm(file.readlines()):data json.loads(line.strip())dataset.append(data)你可以按照 CLUENER 的格式准备训练数据, 例如&#xff1…

彻底搞定找不到msvcp100.dll,无法继续执行代码的问题

当您在使用电脑过程中遇到程序运行异常,提示“缺失msvcp100.dll文件”时,不必过于焦虑,此问题可通过一系列简单步骤得到有效解决。MSVCP100.dll是Microsoft Visual C库的一部分,主要用于支持某些应用程序运行所需的特定功能。如果…

ohmyzsh的安装过程中失败拒绝连接问题的解决

1.打开官网Oh My Zsh - a delightful & open source framework for Zsh 在官网能看到下面的界面 有这两种自动安装的方式 个人本次选择的是: wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O - 1.打开终端输入安装的指令 sh -c "$(wget…

(done) 什么是马尔可夫链?Markov Chain

参考视频:https://www.bilibili.com/video/BV1ko4y1P7Zv/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 如下图所示,马尔可夫链条实际上就是 “状态机”,只不过状态机里不同状态之间的边上是 “…

向银行家应用程序添加日期

● 首先我们将下面图片上的时间更换成现在的时间 const now new Date(); const day now.getDate(); const month now.getMonth() 1; const year now.getFullYear(); const hour now.getHours(); const min now.getMinutes();labelDate.textContent ${day}/${month}/$…

数据降维-主成分分析PCA

1.背景: 在以前计算能力还很弱的年代,我们要分析经济数据是一件很困难的事情,所以我们需要对指标特征进行降维; 2.数据降维的意义: 一般我们降维的特征数据彼此之间是存在一定的相关性的, 二维降至一维…

车载电子电器架构 —— Vector对于车载以太网的解决方案(协议栈)

车载电子电器架构 —— Vector对于车载以太网的解决方案(协议栈) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你…

252 基于MATLAB的自适应差分阈值法检测心电信号的QRS波

基于MATLAB的自适应差分阈值法检测心电信号的QRS波,QRS波群反映左、右心室除极电位和时间的变化,第一个向下的波为Q波,向上的波为R波,接着向下的波是S波。通过GUI进行数据处理,展示心率和QRS。程序已调通,可…

COMSOL粗略估算计算时间

COMSOL粗略估算模型计算时间 针对反复修改调试的有限元模型,需要大致估算有限元模型的计算时间。经查阅,模型求解的自由度数和求解时间密切相关。 测试条件 测试模型为声-固耦合模型,电脑内存32G,CPU-i7-10700K,核显…

【GD32】03 - EXTI外部中断

EXTI EXTI,全称External Interrupt/Event Controller,即外部中断/事件控制器,是微控制器中的一个重要组成部分。它主要用于管理来自外部设备的中断和事件请求。以下是关于EXTI的详细介绍: 功能概述: EXTI管理了控制器的…

OpenAI 人工智能搜索产品即将推出,文本和图像都支持?!

OpenAI 人工智能搜索产品即将推出 OpenAI 计划于下周一(5 月 13 日)正式公布其人工智能搜索产品,不过报道中强调具体公告日期可能发生变化。OpenAI 拒绝对路透社的报道置评。外媒 The Information 在今年 2 月的报道中指出,OpenAI 一直在秘密开发其自家网络搜索服务,并将获…

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string:C初阶学习第六弹——string(1)——标准库中的string类-CSDN博客 前言: 在前面我们已经学习了如何使用标准库中的string类,但作为一个合格的程序员,我们不仅要会用,还要知道如…