系统架构师-第六章-数据库设计基础知识-学习笔记

数据库基本概念

数据(Data) 是描述事物的符号记录,它具有多种表现形式,可以是文字、图形、图像、声音和语古等。信息O nfonnatìon ) 是现实世界事物的存在方式或状态的反映。

数据库系统( DataBase System, DBS ) 是一个采用了数据库技术,有组织地、动态地存储大量;相关联数据,从而方便多用户访问的计算机系统。

数据库技术的发展

数据处í.l且是对各种数据进行lj业集、存储、加工和传播的一系列活动。

数据管理是对数据进行分类、组织、编码、布储、检索和维护的活动。

数据管理技术的发展纤历了3 个阶段:  人工管理、文件系统和数据库系统阶段。

人工管理阶段

特点:数据量少、数据不保存、没有软件系统对数据进行管理

缺点:

(1) 应用程序与数据之间的依赖性太强,不相互独立。
(2) 数据组和数据组之间可能有许多重复数据, 造成数据冗余。

文件系统阶段

特点:

(1)数据可以长期保留,数据的逻辑结构和物理结构有了区别,程序可以按照文件名称访问文件,不必关心数据的物理位置,由文件系统提供存取方法。
(2) 数据不属于某个特定的应用, 即应用程序和数据之间不再是直接的对应关系,数据可以重复使用。但是文件系统只是简单地存取数据,相互之间并没有有机的联系,即数据存取依赖于应用程序的使用方法,不同的应用程序仍然很难共享同一数据文件。
(3)文件组织形式的多样化,有索引文件、链接文件和Hash 文件等。但文件之间没有联系,相互独立,数据间的联系要通过程序去构造。

缺点:

(1)数据冗余( Data Redundancy) 。文件与应用程序密切相关,相同的数据集合在不同的应用程序中使用时,经常需要重复定义、重复存储,数据冗余度大。
(2) 数据不一致性( Data lnconsistency ) 。由于相同数据的重复存储,单独管理,同样的数据可能存在于多个不同的文件中,给数据的修改和维护带来难度,容易造成数据的不一致。
(3)数据孤立( Data Isolation) ,即数据联系弱。

数据库系统阶段

特点:

(1) 采用复杂的数据模型表示数据结构。
(2) 有较高的数据独立性。

数据库系统与文件系统的区别:

数据库对数据的存储是按照同一种数据结构进行的,不同的应用程序都nJ 以在接操作这些数据(即对应用程序的高度独立性)

数据模型

数据库的基础结构是数据模型,是用来描述数据的一组概念和定义。

数据模型的三要素是数据结构、数据操作和数据的约束条件。
(1) 数据结构。对象类型的集合, 是对系统静态特性的描述。
(2) 数据操作。对数据库中各种对象(型〉的实例(值〉允许执行的操作集合,包括操作及操作规则。
(3)数据的约束条件。是… 组完整性规则的集合。

按照不同的数据模型,可以将数据库的发展历史分为3 个阶段。
1 . 层次和网状数据库系统
        层次模型采用树形结构表示数据与数据间的联系。
        采用网络结构表示数据间联系的数据模型称为网状模型。
        层次成网状模型共同特点如下
                · 支持气级模式的体系结构:
                · 用布取路往来表示数据之间的联系:
                · 独立的数据定义语言:
                · 导航的数据操纵语言。
2. 关系数据库系统
        关系模型( Relation Model ) 是目前最常用的数据模型之一。

3.第三代数据库系统

################################################################

按不同数据模型,数据库技术的发展经历了以下阶段:(AI补充)

1. 层次型数据库阶段:上世纪60年代,层次型数据库(Hierarchical Database)被广泛采用。这种数据库把数据组织成树型结构,一个父节点可以有多个子节点,但每个子节点只能有一个父节点。这种数据库结构简单,但缺点也很明显,比如数据访问效率低下,但这是数据库技术的开始。

2. 网状型数据库阶段:1970年代,在层次型数据库的基础上发展出了网状型数据库(Network Database)。这种数据库不同于层次型数据库中节点关系唯一,子节点可以有多个父节点,这增加了数据灵活性。但是这种数据库结构比较复杂,不易维护和查询。

3. 关系型数据库阶段:20世纪70年代末期,关系型数据库(Relational Database)开始出现。这种数据库采用了表格化数据结构,并且通过键值关联来实现数据的关联和查询。关系型数据库成为数据库技术的主流,被广泛应用。例如Oracle和MySQL就是关系型数据库管理系统(RDBMS)的代表。

4. 面向对象数据库阶段:随着计算机在应用范围和数据复杂度上的发展,关系型数据库的限制逐渐显现。1990年代,面向对象数据库(Object-Oriented database,OOBD)开始兴起,它采用了面向对象的思想来组织数据,如Java语言的JavaDB。

5. 大数据时代阶段:进入21世纪,互联网的爆发和移动互联网的普及带来了大量的数据。这些数据规模巨大,种类繁多,传统的关系型数据库面对这些数据难以胜任。此时,大数据技术的兴起,如Hadoop、Spark、NoSQL等技术开始备受关注和应用。这些技术采用了分布式存储和计算的方式,适用于大规模数据的管理和分析。

##################################################################

数据库管理系统

DBMS功能及特征

DBMS 功能主要包括数据定义、数据库操作、数据库运行管理、数据组织、存储和管理、数据库的建立和维护。

DBMS 的特点:
       (1) 数据结构化且统一管理。
       (2) 有较高的数据独立性.数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去,由DBMS 负责数据的仔储,应用程序关心的只是数据的逻辑结构,无须了解数据在磁靠上的有:储形式,从而简化应用程序,大大减少应用程序编制的工作址。数据的独立性包括数据的物理独立性和数据的逻辑独立性。
        (3)数据控制功能。DBMS 提供了数据控制功能,以适应共享数据的环境。

数据控制功能包括对数据库中数据的安全性、完整性、并发和恢复的控制。
        · 数据库的安全性( Security) 是指保护数据库以防止不合法的使用所j捏成的数据泄露、更改成破坏。
        · 数据的完整性( I ntegrality )是指数据库正确性和相容性,是防止合法制户使用数据库时向数据库加入不符合语义的数据。保证数据库中数据是正确的,避免非洁的更新。
        · 并发控制(concurrency control ) 是指在多用户共享的系统中,许多用户口I能同时对同一数掘进行操作. DBMS的并发控制子系统负责协调并发事务的执行, 保证数据库的完整性不受破坏,避免用户得到不正确的数据。
        · 故障恢复(recovery from failure) 。数据库中的常见故障是事务内部故障、系统故障、介质故障及计算机病毒等。

数据库三级模式

数据库系统三级模式结构,视图层、逻辑层和物理层

(1) 视图层( View Level)是最高层次的抽象,描述整个数据库的某个部分的数据。

(2) 逻辑层(Logical Level) 是比物理层更高一层的抽象,描述数据库中存储的数据以及这些数据问布在的关系。

(3) 物理层( Physical Level ) 是最低层次的抽象,描述数据在在储器中是如何在储的。

数据库也分为三级模式, 分别是外模式、概念模式和内模式。

关系数据库

关系模型是关系数据库的基础, 由关系数据结构、关系操作集合和关系完整性规则3 部分组成

关系数据库基本概念

关系数据库系统是支持关系数据模型的数据库系统。

1. 关系的基本术语
(1)属性( Attributc) : 在现实世界中,要描述一个事物常常取若干特征来表示。这些特征称为属性。
(2) 域( Domain ) : 每个属性的取值范围对应一个值的集合,称为该属性的域。
(3)目或度( Degree ) : 目或度指的是一个关系中属性的个数。
(4) 候选码(Candidate Key) :若关系中的某一属性或属性组的值能唯一的标识一个元组,则称该属性或属性组为候选码。
(5) 主码( Primary Key): 或称主键,若一个关系有多个候选码,则选定其中一个作为主码。
(6) 主属性( Prime Attribute): 包含在任何候选码中的属性称为主属性。不包含在任何候选码中的属性称为非主属性(Non-Prime Attribute) 。
(7)外码( Foreign Key): 如果关系模式R 中的属性或属性组不是该关系的码, 但它是其他关系的码,那么该属性集对关系模式R 而言是外码。
(8) 全码(AlI-key): 关系模型的所有属性组是这个关系模式的候选码,称为全码。

关系数据库模式

关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述.

关系的完整性约束

关系的完整性约束共分为3 类: 实体完整性、参照完整性(也称引用完整性) 和用户定义完整性。
(1) 实体完整性( Entity lntegrity ) 。实体完整性规则要求每个数据表都必须有主键, 而作为主键的所有字段, 其剧性必须是唯一且非空值。
(2) 参照完整性( Referential Integrity )。
(3)用户应义完整性( User Defined Integrity) 。

关系运算

5 种基本的关系代数运算包括井、差、笛卡尔积、投影和选择

并Union:关系R 与S 具有相同的关系模式,即R 与S 的元数相同(结构相同〉。关系R 与5 的并由
属于R 或属于S 的元组构成的集合组成,记作R U S

差( Difference ):关系R 与S 具有相同的关系模式, 关系R 与S 的差是由属于R 但不属于S 的元组构成的集合,记作R - S

广义笛卡尔积( Extended Cartesian Product ):两个元数分别为n 目和m 目的关系R 和S 的广义笛卡尔积是一个( n+m ) 列的兀组的集合。记作R X S

投影( Projection):投影运算是从关系的垂π方向进行运算, 在关系R 中选择出若千属性列A 组成新的关系,记作πA (R)

选择( Selection ):选择运算是从关系的水平方向进行运算,是从关系R 中选择满足给定条件的诸元组,记作σF(R)

        扩展的关系运算可以从基本的关系运算中导出, 主要包括:选择、投膨、连接、除法、广义笛卡尔积、外连接。

交( Intersection ):关系R 与S 具有相同的关系模式,关系R 与S 的交是由属于R 同时又属于S 的元组构成的集合, 关系R 与S 的交可记为R S

连接( Join ):连接分为 连接、等值连接及自然连接3 种。

除( Oivision):除运算同时从关系的水平方向和垂直方向进行运算。给定犬系R (X, r) 和s(r, Z) ,
x、Y、z :h属性组o R+S 应当满足元组在X上的分量值x 的象集ζ 包含关系S{E属性组Y上投影的集合。

广义投影( Generalized P叫ection):广义投影运算允许在投膨列表巾使用算术运算,实现了对投影运rt 的扩充。

外连接( Outer Jion ):外连接运~-f.是连接运算的扩展,可以处理缺失的信息。外连接运算有三种: 左外连接、右外连接和全外连接。

聚集函数:聚集运掠是关系代数运算中的一个非常重要的扩展。聚集函数输入·个值的集合,返回
单一倍作为结果。

关系数据库设计基本理论

函数依赖
数据依赖是通过一个关系中属性问值的相等与否体现出来的数据间的相互关系,是现实世界属性问联系和约束的抽象,是数据内在的性质, 是语义的体现。

函数依赖则是一种最重要、最基本的数据依赖。

多值依赖

多值依赖具有以下6 条性质:
· 多值依赖具有对称性。即若X→→y, 则X→→Z,其中Z=U-X- Y。
· 多值依赖具有传递性。即若X→→ y, y→→z,则X→由.z-y。
· 函数依赖时以看成是多值依赖的特殊情况。
· 若X→→ y, x→→z,则X→→ yz。
· 石X.→ -y, x→→z,则X→→ ynz。
· 若X→→ y, x→→z,则X→→ Z- Y。

规范化
关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式米评价模式规范化的程度。

范式有: lNF 、2NF 、3NF、BCNF 、4NF 和5NF ,其中lNF 级别最低。

若关系模式只的每一个分量都是不可再分的数据项,则犬系模式R 属于第一范式。

1NF存在4 个问题:冗余度大、引起修改操作的不一致性、插入异常、删除异常

当1NF 消除了非主属性对码的部分函数依赖,则称为2NF 。

当2NF消除了非主属性对码的传递函数依赖,则称为3NF 。

当3NF 消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF

一个满足BCNF 的关系模式, 应有如下性质:
(1)所有非主属性对每一个码都是完全函数依赖;
(2) 所有非上属性对每一个不包含它的码,也是完全函数依赖;
(3)没有任何属性完全函数依赖于非码的任何一组属性。

4NF 是限制关系模式的属性间不允许有非平凡且非的数依赖的多值依赖。

#####################################################

关系模式的规范化处理是指将关系模式分解成多个关系模式,以消除冗余数据,提高数据的一致性和完整性。

常用的规范化处理包括以下几个步骤:

1. 第一范式(1NF):保证每个属性的原子性,即每个属性不可再分。

2. 第二范式(2NF):保证每个非主属性完全依赖于主键。

3. 第三范式(3NF):消除传递依赖,即非主属性不依赖于其它非主属性。

4. 巴斯-科德范式(BCNF):消除主属性之间的函数依赖关系。

5. 第四范式(4NF):消除多值依赖,即非主属性不依赖于其它非主属性的部分信息。

6. 第五范式(5NF):消除多重循环依赖,即通过多个路径可以得到相同的信息。

规范化处理可以提高数据的一致性、完整性和有效性,但也会增加数据库的复杂度和查询成本。因此,在进行规范化处理时需要根据具体情况进行权衡和取舍。

#################################################

数据库设计

数据库设计(Database Design ) 属于系统设计的范畴。通常把使川数据库的系统统称为数据库应用系统,把对数据库应用系统的设计简称为数据库设计。

数据库设计的基本步骤

将数据库设计分为如下6 个阶段
(1) 用户需求分析。数据库设计人员采用一定的辅助丁.具对应用对象的功能、性能、限制等要求进行科学的分析.
(2) 概念钻构设计。概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。
(3) 逻辑结构设计。将抽象的概念模型转化为与选用的DBMS 产品所支持的数据模型相符合的逻辑模型, 它是物理结构设计的基础。包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精。
(4) 物理结构设计。是逻辑模型在计算机中的具体实现方案。
(5) 数据库实施阶段。数据库设计人员根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(6) 数据库运行和维护阶段。

数据需求分析

数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是以用户的角度来认识系统。

分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。

自顶向下的结构化分析( Structured Analysis. SA) 方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。

需求分析的重点是调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界, 以此获得用户对系统的如下要求。
(1)信息要求。用户需要在系统中保存哪些信息, 由这些保存的信息要得到什么样的信息,这些信息以及信息间应当满足的完整性要求。
(2) 处理要求。用户在系统中要实现什么样的操作功能,对保存信息的处理过程和方式,各种操作处理的频度、响应时间要求、处理方式等以及处理过程中的安全性要求和完整性要求。
(3) 系统要求。包括安全性要求、使用方式要求和可扩充性要求。

概念结构设计

概念结构设计的目标是产生反映系统信息需求的数据库概念结构, 即概念模式。

实体·联系方法(EntityRelationship Approach) ,筒称E-R 方法。它采用E-R 模型将现实世界的信息结构统一由实体、属性,以及实体之间的联系来描述

对现实事物抽象认识的3 种方法分别是分类、聚集和概括.

分类(Classification) :对现实院界的事物,按照其具有的共同特征和行为,定义一种类电.

聚集(Aggregation ) : 定义某一类型所具有的属性。

概括(Generalization ) : 由一种己知类型;主义新的类型。

通常把己知类型称为超类(Superclass) ,新定义的类型称为子类( Subclass).

E-R图的设计要依照h述的抽象机制,对需求分析阶段所得到的数据进行分类、聚集和概
括,确定实体、属性和联系。

概念结构设计工作步骤包括: 选择局部应用、逐一设计分E-R 图和E-R 图合并.

分E-R 图进行合并时,它们之间存在的冲突主要有以下3 类。
(1)属性冲突。同一属性可能会存在于不同的分E-R 图中, 由于设计人员不同或是出发点不同,对属性的类型、取值范围、数据单位等可能会不一致,这些属性数据将来只能以一种形式在计算机中存储,这就需要在设计阶段进行统一。
(2) 命名冲突。相同意义的属性,在不同的分E-R 图上有着不同的命名, 或是名称相同的属性在不同的分E-R 图中代表着不同的意义,这些也需要进行统← 。
(3) 结构冲突。同一实体在不同的分E-R 图中有不同的属性,同一对象在某一分E-R 图中被抽象为实体而在另一分E-R 阁中又被抽象为属性。对于这种结构冲突问题需要统一。

分E-R 图的合并过程中要对其进行优化, 具体可以从以下几个方面实现。
(1) 实体类型的合并。两个具有I 1 联系或1 * 联系的实体,可以予以合并, 使实体个数减少,有利于减少将来数据库操作过程中的连接开销。
(2) 冗余属性的消除。一般在各分E-R 闺中的属性是不存在冗余的,但合并后就可能出现冗余。因为合井后的E-R 图中的实体继承了合并前该实体在分E-R 图中的全部属性,属性间就可能存在冗余, 即某一属性可以由其他属性确定。
(3)冗余联系的消除。

逻辑结构设计

逻辑结构设计阶段的主要工作步骤包括确定数据模型、将E-R 图转换成为指定的数据模型、确定完整性约束和确定用户视图。

E-R 图转换为关系模式

关系模式规范化

确定完整性约束

确定用户视图

反规范化

物理设计

物理设计的主要工作步骤包括确定数据分布、存储结构和访问方式。

数据库实施

根据逻辑和物理设计的结果,在计算机上建立起实际的数据库结构,数据加载(或称装入) ,进行试运行和评价的过程,叫作数据库的实施(或称实现)。

数据库运行维护

数据库维护工作的上要内容包括对数据库性能的监测和改善、故障恢复、数据库的重组和重构。

数据库系统运行过程中,会因为一些原因而对数据库的结构做修改,称为数据库重构.

视图机制的优点是可以实现数据的逻辑独立性,并且可以实现数据的安全性。

应用程序与数据库的交互

库函数级别访问接口

嵌人SQL访问接口

将SQL 文嵌入的目标源码的语言称为宿主语言。

通用数据接口标准

ORM访问接口

NoSQL 数据库

NoSQL 最帘见的解释是Non-RelationaI. Not Only SQL 也被很多人接受

分类与特点

列式存储数据库
键值对存储数据库
文档型数据库
图数据库

目前业界对于NoSQL 并没有一个明确的范围和定义, 但是它们普遍存在下面一些共同特征:
· 易扩展: 去掉了关系数据库的关系型特性。数据之间无关系, 这样就非常容易扩展。
· 大数据量,高性能: NoSQL数据库都具有非常高的读写性能,尤其在大数据量下。这得益于它的无关系性, 数据库的结构简单。
· 灵活的数据模型: NoSQL无须事先为要存储的数据建立字段, 随时可以存储自定义的数据格式。
· 高可用: NoSQL在不太影响性能的情况下,就可以方便地实现高可用的架构, 有些产品通过复制模型也能实现高可用。

体系框架

NoSQL 整体框架分为4 层, 由下至上分为数据持久层( Data Persistence ) 、数据分布层(Data Distribution Model ) 、数据逻辑模型层(Data Logical Model ) 和接口层( lnterface ) 

(1)数据'持久层定义了数据的存储形式,主要包括基于内存、硬盘、内存和硬盘接口、订制可插拔4 种形式。
(2) 数据分布层定义了数据是如何分布的, 相对于关系型数据库, NoSQL 可边的机制比较多, 主要有3 种形式: 一是CAP 支持,可用于水平扩展: 二是多数据中心支持, 可以保证在横跨多数据中心时也能够平稳运行; 三是动态部署支持, 可以在运行着的集群中动态地添加或删除结点。
(3)数据逻辑层表述了数据的逻辑表现形式。
(4) 接口层为上层应用提供了方便的数据调用接口,提供的选择远多于关系型数据库。

接口层提供了5 种选择: Rest、Thrift、MaplReduce 、Get/Put 、恃定语言API , 使得应用程序和数据库的交互更加方便。

NoSQL 数据库在以下这几种情况比较适用:
· 数据模型比较简单;
· 需要灵活性更强的IT系统:
· 对数据库性能要求较高;
· 不需要高度的数据一致性;

##############################################################

数据库设计是指根据用户需求和系统要求,在数据库系统中确定数据结构的过程。以下是数据库设计的基础知识:

1. 关系型数据库:关系型数据库采用表格形式存储数据,并使用 SQL 语言对数据进行管理和操作。关系型数据库最常用的几种是 MySQL、Oracle 和 SQL Server。

2. 非关系型数据库:非关系型数据库不使用 SQL,而是使用键值对、文档、列簇等数据结构来存储数据。常见的非关系型数据库有 MongoDB、Redis 和 Cassandra。

3. 实体关系模型(ER 模型):ER 模型是一种描述实体、属性和关系之间关系的图形化表示方法。通过 ER 图,可以清晰地了解不同实体之间的关系,以及它们之间的属性。

4. 范式:在数据库设计中,范式是指一种规范化的数据结构,通常用于压缩和优化数据库。常用的范式包括第一范式(1NF)和第二范式(2NF)。

5. 主键和外键:主键是一种唯一标识数据库中条目的字段,它用于保证数据库中的数据正确性。外键是用于关联数据库中不同表格之间的字段,它能够帮助处理复杂的数据结构。

6. 数据库视图:视图是一种虚拟的数据表,它具有与实际表格相同的字段和数据,但是其数据是从数据库中的一个或多个表中派生而来。视图通常用于简化数据查询,或隐藏敏感数据。

7. 数据库索引:索引是一种帮助数据库提高查询效率的数据结构,它可以帮助快速定位到特定的数据行。常用的数据库索引包括聚集索引和非聚集索引。

8. 数据库事务:数据库事务是指一组数据库操作的有序集合,它们被视为一个不可分割的工作单位。在数据库事务中,操作要么全部执行成功,要么全部撤销回滚。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小果运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值