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

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 ®

选择( 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 文嵌入的目标源码的语言称为宿主语言。

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值