软考高级·系统架构设计师 | 六、数据库设计基础知识

文章目录

数据库基本概念

  1. 数据 (Data) 是描述事物的符号记录,它具有多种表现形式,可以是文字、图形、图像、 声音和语言等。

  2. 信息 (Information) 是现实世界事物的存在方式或状态的反映。

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

  4. 数据库 (DataBase,DB) 是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。

  5. **DBMS(数据库管理系统)**主要功能包括数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。

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

  • 人工管理阶段 ,数据处理特点:(1)数据量较少(2)数据不保存。(3)没有软件系统对数据进行管理。缺点 :(1)应用程序与数据之间的依赖性太强,不相互独立。(2)数据组和数据组之间可能有许多重复数据,造成数据冗余。缺点:(1)数据冗余 (Data Redundancy)。(2)数据不一致性 (Data Inconsistency)。(3)数据孤立 (Data Isolation)
  • 文件系统阶段,数据管理特点:(1)数据可以长期保留,数据的逻辑结构和物理结构有了区别,程序可以按照文件名称访问文件,不必关心数据的物理位置,由文件系统提供存取方法。(2)数据不属于某个特定的应用,即应用程序和数据之间不再是直接的对应关系,数据可以重复使用。(3)文件组织形式的多样化,有索引文件、链接文件和Hash文件等。
  • 数据库系统阶段:数据管理特点:(1)采用复杂的数据模型表示数据结构。(2)有较高的数据独立性。
  1. 数据库系统是由计算机软件、硬件资源组成的系统,它有组织地、动态地存储大量关联数 据,方便多用户访问,它与文件系统重要的区别是数据的充分共享、交叉访问、与应用程序的 高度独立性。

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

  3. 数据模型 的三要素是 数据结构数据操作数据的约束条件

  4. 层次模型 采用树形结构 表示数据与数据间的联系。网状模型是一个比层次模型更具有普遍性的数据结构,层次模型是网状模型的一个特例

  5. 网状模型:采用网络结构表示数据间联系的数据模型。

  6. 层次或网状模型 ,底层的数据结构均可用图来表示。共同特点:

    ● 支持三级模式的体系结构;

    ● 用存取路径来表示数据之间的联系;

    ● 独立的数据定义语言;

    ● 导航的数据操纵语言。

  7. 关系模型 (Relation Model) 是目前最常用的数据模型之一。关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特 色是描述的一致性。

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

  • (1)数据结构化且统一管理。

  • (2)有较高的数据独立性。

  • (3)数据控制功能 :包括对数据库中数据的安全性、完整性、并发和恢复的控制

    • ● 数据库的安全性 (Security) 是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
    • ● 数据的完整性 (Integrality) 是指数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据。
    • ● 并发控制 (concurrency control) 是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。
    • ● 故障恢复 (recovery from failure)。 数据库中的常见故障是事务内部故障、系统故障、介质故障及计算机病毒等
  1. 数据库系统 一般采用三级模式结构 。系统开发人员需要通过视图层、逻辑层和物理层三个层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互。
  • (1)视图层 (View Level) 是最高层次的抽象,描述整个数据库的某个部分的数据。
  • (2)逻辑层 (Logical Level) 是比物理层更高一层的抽象,描述数据库中存储的数据以及这些数据间存在的关系。
  • (3)物理层 (Physical Level) 是最低层次的抽象,描述数据在存储器中是如何存储的。物理层详细地描述复杂的底层结构。

关系数据库

  1. 关系数据库是目前应用非常广泛的数据库之一,有一套完整的理论支持。
  2. 关系数据库系统 是支持关系数据模型的数据库系统。
  3. 关系基本术语
  • (1)属性 (Attribute): 在现实世界中,要描述一个事物常常取若干特征来表示。
  • (2)域 (Domain): 每个属性的取值范围对应一个值的集合,称为该属性的域。
  • (3)目或度 (Degree): 目或度指的是一个关系中属性的个数。
  • (4)候选码 (Candidate Key): 若关系中的某一属性或属性组的值能唯一的标识一个元组,则称该属性或属性组为候选码。
  • (5)主码 (Primary Key): 或称主键,若一个关系有多个候选码,则选定其中一个作为主码。
  • (6)主属性 (Prime Attribute): 包含在任何候选码中的属性称为主属性。
  • (7)外码 (Foreign Key): 如果关系模式 R 中的属性或属性组不是该关系的码,但它是其他关系的码,那么该属性集对关系模式R 而言是外码。
  • (8)全码 (All-key): 关系模型的所有属性组是这个关系模式的候选码,称为全码。
  • (9)笛卡尔积:D?×D?×D?×...×Dn={(d?,d?,d?...,d,)|d;∈D,i=1,2,3,...,n}
  1. 关系数据库:关系数据库的值是这些关系模式在某一时刻对应的关系的集合。
  2. 关系模型的完整性规则是对关系的某种约束条件。
  3. 关系的完整性约束共分为3类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。
  4. 关系操作的特点 是操作对象和操作结果都是集合。关系代数运算符 有4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符
  • 并 (Union ):关系R 与S 具有相同的关系模式,即R 与S 的元数相同(结构相同)。关系R 与 S 的并由属于R 或属于S 的元组构成的集合组成,记作RUS
  • 差 (Difference):关系 R 与 S具有相同的关系模式,关系R 与 S 的差是由属于 R 但不属于S 的元组构成的集合,记作R-S
  • 交 (Intersection):关系 R 与S 具有相同的关系模式,关系 R 与S 的交是由属于 R 同时又属于S 的元组构成的集合,关系R 与 S 的交可记为R∩S
  • **广义笛卡尔积 (Extended Cartesian Product)**两个元数分别为 n 目和 m 目的关系R 和S 的广义笛卡尔积是一个 (n+m) 列的元组的集合。元组的前 n 列是关系R 的一个元组,后m 列是关系S 的一个元组,记作R×S,
  • 投影:从关系的垂直方向进行运算,在关系R 中选择出若干属性列A 组成新的关系,记作π?®。
  • 选择:从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的诸元组,记作σp®
  • 连接分为θ连接、等值连接及自然连接3种。θ连接是从R 与S 的笛卡尔积中选取属性满足一定条件的元组;当θ为"="时,称之为等值连接;自然连接 (Natural Join) 是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。
  • :同时从关系的水平方向和垂直方向进行运算。
  • 广义投影运算:允许在投影列表中使用算术运算,实现了对投影运算的扩充。
  • 外连接运算:是连接运算的扩展,可以处理缺失的信息。
  • 聚集运算是关系代数运算中的一个非常重要的扩展。
  1. 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间联系和约束的抽象,是数据内在的性质,是语义的体现。
  • 设R(U) 是属性集 U上的关系模式, X Y是 U的子集。若对 R(U) 的任何一个可能的关系r,r中不可能存在两个元组在X 上的属性值相等,而在Y 上的属性值不等,则称X 函数决定 YY 函数依赖于X , 记作:X→Y。Y≠X, 则称X→Y是非平凡的函数依赖。YEX, 则称X→Y是平凡的函数依赖。
  • 在 R(U) 中,如果X Y, 并且对于X的任何一个真子集X′, 都有X 不能决定Y, 则称 Y 对X 完全函数依赖,记作: X---→Y。
  • 在R(U,F) 中,如果X→Y,Y≠x,Y+X,Y→Z, 则称Z对X传递依赖。
  1. 多值依赖 :若关系模式R(U) 中,X Y Z是 U的子集,并且Z=U-X-Y 当且仅当对 R(U)的任何一个关系 r, 给定一对(x, z) 值,有一组 Y 的值,这组值只由x值决定而与 z 值无关,则称 "Y多值依赖于X"或 "X多值决定 Y"成立。记为: X→→Y。 性质:
    ● 多值依赖具有对称性。即若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→→Y∩Z。
    ● 若X→→Y,X→→Z, 则X→→Z-Y。

数据库设计

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

  2. 数据库设计分为如下6个阶段:(1)用户需求分析(2)概念结构设计。(3)逻辑结构设计。(4)物理结构设计。(5)数据库实施阶段。(6)数据库运行和维护阶段。

  3. 需求分析阶段的任务:综合各个用户的应用需求,对现实世界要处理的对象(组织、部门 和企业等)进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,收集支持系统 目标的基础数据及处理方法。

  4. 概念结构设计 最著名最常用的方法是:实体-联系方法 (EntityRelationship Approach), 简称E-R方法工作步骤 包括:选择局部应用、逐一设计分E-R图和E-R 图合并。

  5. 逻辑结构设计 即是在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型。逻辑结构设计阶段的主要工作步骤包括确定数据模型、将E-R 图转换成为指定的数据模型、确定完整性约束和确定用户视图。

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

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

  8. 数据库维护工作的主要内容包括 对数据库性能的监测和改善、故障恢复、数据库的重组和重构。在数据库运行阶段,对数据库 的维护主要由DBA完成。

应用程序与数据库交互

  1. 库函数级别的数据访问接口往往是数据库提供的最底层的高级程序语言访问数据接口,如Oracle 数据库的 Oracle Call Interface(OCI)。

  2. OCI 是由一组应用程序开发接口 (API) 组成的, Oracle 提供 API 的方式是提供一组库。

  3. 嵌入式SQL(Embedded SQL) 是一种将 SQL语句直接写入某些高级程序语言,如 C、COBOL、Java、Ada等编程语言的源代码中的方法。

  4. 开放数据库连接 (Open DataBase Connectivity,ODBC) 是为解决异构数据库间的数据共享而产生的。ODBC为异构数据库访问提供统一接口 ,允许应用程序以SQL为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵数据库中的数据,免除随数据库的改变而改变,也可以访问如 Excel表和ASCII数据文件这类非数据库对象。

  5. Java数据库连接 (Java Database Connectivity,JDBC) 是 Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

  6. 对象关系映射 (Object Relational Mapping, 简称 ORM或 O/RM或 O/R mapping) 是一种程 序设计技术,用于实现面向对象编程语言里不同类型系统数据之间的转换。

  7. ORM 是通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据库相互映射;ORM 可以解决数据库与程序间的异构性。ORM的使用也降低了程序员数据库知识的要求。典型的ORM框架有Hibernate、Mybatis 和 JPA 等。

  8. NoSQL 最常见的解释是Non-Relational,Not Only SQL也被很多人接受。 NoSQL仅仅是一 个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID特性。

  9. NoSQL 数据库 分为以下4种类型:1.列式存储数据库2.键值对存储数据库3.文档型数据库4.图数据库


如果这篇文章对您有帮助?关注、点赞、收藏 ,三连支持一下。

有疑问或想法?评论区见

我们下期再见。

相关推荐
小高不会迪斯科9 小时前
CMU 15445学习心得(二) 内存管理及数据移动--数据库系统如何玩转内存
数据库·oracle
e***89010 小时前
MySQL 8.0版本JDBC驱动Jar包
数据库·mysql·jar
l1t10 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
今天只学一颗糖10 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
失忆爆表症11 小时前
03_数据库配置指南:PostgreSQL 17 + pgvector 向量存储
数据库·postgresql
AI_567811 小时前
Excel数据透视表提速:Power Query预处理百万数据
数据库·excel
SQL必知必会12 小时前
SQL 窗口帧:ROWS vs RANGE 深度解析
数据库·sql·性能优化
Gauss松鼠会12 小时前
【GaussDB】GaussDB数据库开发设计之JDBC高可用性
数据库·数据库开发·gaussdb
+VX:Fegn089513 小时前
计算机毕业设计|基于springboot + vue鲜花商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
识君啊13 小时前
SpringBoot 事务管理解析 - @Transactional 的正确用法与常见坑
java·数据库·spring boot·后端