• 软考知识点---10数据库基础


    💡大纲

    了解数据库的基本内容,理解数据库系统的总体框架,了解数据库系统在计算机系统中的地位,以及熟悉数据库系统的功能

    👉主要包括数据库的基本概念、数据库模式、数据模式和关系模式关系代数和关系演算

    一、数据库的基本概念

    (一)数据库基础

    💡数据库系统(DBS)由数据数据库数据库管理系统操作数据库的应⽤程序,加上⽀撑它们硬件平台软件平台和与数据库有关⼈员组成,其有机结合构成⼀个完整的数据库系统

    1、数据库(DB)

    👉是指按照一定的数据结构来组织、存储和管理数据的仓库

    • 数据库中的数据按一定的数学模型组织、描述和存储
    • 具有较小的冗余度,较高的数据独立性和易扩容性,可被各类用户共享

    2、硬件

    👉是指计算机系统中的各种物理设备,包括存储数据所需要的外部设备

    3、软件

    👉包括操作系统、数据库管理系统(DBMS)及应用程序

    4、数据库管理系统(DBMS)

    👉是一个用来操纵和管理数据库的大型软件,用于建立、使用和维护数据库主要实现共享数据有效地组织、管理和存取

    • DBMS的功能:数据定义、数据库操作、数据库运行管理、数据库的建立和维护等

    • DBMS的特征结构化管理数据有较高的数据独立性,数据的安全性、完整性、并发性、故障恢复等控制功能

    • DBMS的分类:关系数据系统、面向对象的数据库系统、对象关系数据库系统

    5、人员

    👉包括系统分析员和数据库设计人员、应用程序员、最终用户和数据库管理员4类人员

    (二)数据库管理技术的发展

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

    1、人工管理阶段

    👉早期的数据处理都是通过手工进行的

    👉程序和数据之间的关系如下图所示

     💡这种数据处理具有几个特点

    • 数据量较少:一组数据对应一个程序,数据面向应用,独立性很差,数据重复性大
    • 数据不保存:主要用于科学计算,数据一般不需要长期保存,需要时输入即可
    • 没有软件系统对数据进行管理:程序员不仅要规定数据的逻辑结构,而且在程序中还要使用其物理结构,包括存储结构的存取方法、输入/输出方式等。数据对程序不具有独立性,一旦数据在存储器上改变物理地址,就需要改变相应的用户程序

    ⭕手工处理数据有两个特点:一是应用程序对数据的依赖性太强,二是数据组之间可能有许多重复的数据,造成数据冗余

    2、文件系统阶段

    👉文件系统是操作系统中的一个子系统,它按一定的规则将数据组织成为一个文件,应用程序通过文件系统对文件中的数据进行存取和加工

    👉文件系统对数据的管理,实际上是通过应用程序和数据之间的一种接口实现的,如下图所示

     

     💡文件系统的最大特点是解决了应用程序和数据之间的一个公共接口问题,使得应用程序采用统一的存取方法来操作数据

    👉在文件系统阶段中,数据管理的特点有

    • 数据可以长期保留
    • 数据不属于某个特定的应用
    • 文件组织形式的多样化

     👉缺点

    • 数据冗余度大
    • 数据不一致性:由于相同数据重复存储,单独管理,给数据的修改和维护带来难度,容易造成数据的不一致
    • 数据联系弱

    3、数据库系统

    💡与文件系统的重要区别是数据的充分共享、交叉访问、与应用程序高度独立

    👉在文件系统阶段中,数据管理的特点有

    • 采用复杂的数据模型表示数据结构:数据不再面向某个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享
    • 有较高的数据独立性:以文件方式存储数据的,但它是数据的一种更高级的组织形式
    • 文件组织形式的多样化

    二、数据库模式---三级模式和两级映像

    💡从数据库管理系统的角度看,数据库系统体系结构一般采用三级模式结构

    1、三级模式 

     💡数据库系统设计员可以在视图层、逻辑层和物理层对数据抽象,通过外模式、概念模式和内模式来描述不同层次上的数据特性

    👉外模式(子模式或用户模式)

    • 对应于用户级(外部级)。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示
    • 反映了数据库系统的用户观

    👉概念模式(模式或逻辑模式)

    • 对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)
    • 反映了数据库系统的整体观

    👉内模式(存储模式)

    • 对应于内部级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库
    • 反映了数据库系统的存储观

     ⭕内模式、概念模式是唯一的,对应的外模式不是唯一的,也不可能是唯一的

    2、两级映像

    💡数据库系统在三级模式之间提供了两级映像:模式/内模式的映像、外模式/模式的映像

    👉模式/内模式的映像:实现概念模式到内模式之间的相互转换

    👉外模式/模式的映像:实现外模式到概念模式之间的相互转换

    数据独立性是指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。数据的独立性是由DBMS(数据库管理系统)的二级映像功能来保证的数据独立性包括数据的物理独立性、逻辑独立性

    👉物理独立性

    • 当数据库的内模式发生改变时,数据的逻辑结构不变
    • 需要修改概念模式/内模式之间的映像

    👉逻辑独立性

    • 用户的应用程序与数据库的逻辑结构是相互独立的
    • 需要修改外模式/概念模式之间的映像

    ⭕三级模式两级映射使数据库拥有保护功能,DBMS对数据库的保护主要通过四个方面实现,即数据库恢复、数据完整性控制、多用户环境下的并发控制和数据安全性控制

    数据按外模式的描述提供给用户;按内模式的描述存储在磁盘上;而概念模式提供了连接这两级模式的中间层,相对而言比较稳定,使得内外两级中任意一级的改变都不受另一级的牵制

    三、 数据模型

    💡最常用的数据模型:概念模型和基本数据模型

    (一)概念模型(信息模型)

    👉强调语义,便于用户理解

    👉用户和数据库设计人员交流的语言,主要用于数据库设计

    👉最著名的是实体联系模型:E-R模型

    (二)基本数据类型---计算机的观点

    👉基本的数据模型有层次模型、网状模型、关系模型和面向对象模型

    1、层次模型(树形结构)

    👉采用树型结构表示数据与数据之间的联系

    👉根节结点以外的其他结点有且只有一个双亲结点。上一层和下一层类型的联系是1n(包括11联系)

    2、网状模型(有向图)

    👉采用网络结构表示实体类型及实体间联系的数据模型

    👉网状模型可以直接地描述现实世界

     3、关系数据模型(二维表格)

    👉一个关系模式相当于一个记录型

    4、三者各自的优缺点

    • 层次数据模型:其结构简单,容易看到各实体间的联系;查询效率高;数据修改和数据库扩展容易实现。但结构呆板,不灵活,节点间横向联系弱
    • 网状数据模型:方便表示现实世界中的复杂关系;结构没有严格限制,比较灵活。但是由于随着应用环境的扩大,数据结构会越来越复杂,不易使用
    • 关系数据模型:非常贴近现实世界,容易理解;数据表间相对独立,互不影响;根据数据表之间的关联可进行多表操作。但是为维护数据一致性读写性能较差 

    (三)数据模型的三要素:数据结构、数据操作和数据的约束条件

    1、数据结构

    👉指所研究的对象类型的集合,是系统静态特性的描述

    2、数据操作

    👉是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作规则,是对系统动态性的描述

    3、数据约束条件

    👉是一组完整性规则的集合

    (四)关系数据库的基本概念

    1、属性和域

    👉属性:对于事务特征的描述

    👉域:属性的取值范围

    2、主要术语(主要是在SQL语言中)

    • 元组(记录):元组是指属性的一组取值,代表着一条记录

    • 键:也称为关键码,是一个属性集合,分为超键、候选键、主键和外键。最常用的是主键,它是正在使用的候选键,指能惟一标识元组的最小属性集。在不加说明的情况下,关系模式的键特指主键

    • 候选码(Candidate Key):若关系中某一属性(或属性组)的值能唯一地标识一个元组,且不含冗余属性,那么就称此属性(属性组)为候选码

    • 主属性(Key attribute):指包含在任何候选码中的属性

    • 非主属性(Non-Key attribute):指不包含在任何候选码中的属性

    • 外键(Foreign):如果关系模式R中的属性(属性组)不是此关系的码,但是它是其他关系的码,那么此属性(属性组)对关系模式R而言是外码

    3、关系的三种类型

    👉基本关系(通常称为基本表或基表):是实际存在的表,它是实际存储数据的逻辑表示

    👉查询表:查询结果对应的表(查询结果集)

    👉视图表:是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表

    4、关系数据库模式

    💡关系的描述为关系模式,表示为R(U,D,dom,F)

    ⭕R表示关系名;U是组成此关系的属性名集合;D是属性的域;dom是数学向域的映像集合;F为属性间数据的依赖关系集合

    5、完整性约束

    💡完整性规则保证授权用户对数据库进行修改不会破坏数据的一致性。关系模型的完整性规则是对关系的某种约束条件,分为实体完整性、参照完整性(也称引用完整性)和用户定义完整性3

    👉实体完整性规定基本关系R主属性A不能取空值(唯一标识)

    👉参照完整性存在于两个关系之间,也称为引用完整性,用于描述关系模型中实体和实体间的联系

    👉用户定义的完整性:就是针对某一具体的关系数据库的约束条件

    6、E-R模型

    构件

    说明

    矩形

    表示实体集

    双边矩形

    表示弱实体集

    菱形

    表示联系集

    双边菱形

    表示弱实体集对应的标识性联系

    椭圆

    表示属性

    双椭圆

    表示多值属性

    虚椭圆

    表示派生属性

    线段

    将属性与相关的实体集连接,或将实体集与联系集相连

    双线

    表示一个实体全部参与到联系集中

    💡E-R模型的主要概念有实体、联系和属性 

    👉实体:现实世界中可以区别于其他对象的事务,实体集是具有相同属性实体的集合

    👉实体的联系:实体内部的联系和实体与实体之间的联系。两个不同实体之间存在一对一、一对多和多对多的联系类型

    👉属性:实体某方面的特性

     ⚠️E-R模型的集成冲突

    💡E-R模型是通过多个局部E-R图逐步集成得到的,但是在集成过程中存在冲突

    • 属性冲突:包括属性域冲突和属性取值冲突。身高衡量单位(m/cm)
    • 命名冲突:包括同名异意和异名同义。学生表和教职工表中的教师
    • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同

    四、 关系代数

    💡以关系为运算对象的一组高级运算的集合,把关系看成集合

    👉五种基本运算:并、差、笛卡尔积、投影和选择

    👉四种组合运算:交、连接、自然连接、除法

     📑例题1:设有关系RS,如下图所示,求RUSR-SR×SπA,C(R)、σA>B(R)、σ3<4(R×S)

     📑例题2:设有关系R、S,如下图所示,求R S(自然连接)

     📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 相关阅读:
    代码随想录34|62.不同路径,63. 不同路径 II,343. 整数拆分
    【pandas小技巧】--缺失值的列
    Ubuntu离线源的制作
    Java—Map
    【性能测试】【监控】Python使用psutil实现一个简单的系统资源监控
    flask框架+pygal+sqlit3搭建图形化业务数据分析平台
    java学习之SpringMVC
    Flink部署 完整使用 (第三章)
    Maven 项目配置使用备忘录
    【VC++】字符串详解&窗口&第一个windows程序
  • 原文地址:https://blog.csdn.net/soaipipiop/article/details/127389659