数据库技术基础--基本概念

2023-11-08

说在前面:

本系列文章专注于软考备考复习内容梳理,文章内容是对教材中知识点和考点的提炼,备考过程中可以有针对的进行复习,减少阅读量,有的放矢。


导航目录:

一、数据库与数据库管理系统

数据库系统(DataBase System,DBS)从广义上讲是由数据库、硬件、软件和人员组成的,其中管理的对象是数据。数据是经过组织的比特集合,而信息是具有特定释义和意义的数据。

1. 数据库

数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
系统使用的所有数据存储在一个或几个数据库中。

2. 硬件

硬件是指构成计算机系统的各种物理设备,包括存储数据所需的外部设备。

3. 软件

软件包括操作系统、数据库管理系统及应用程序。数据库管理系统(DataBase Management System,DBMS)是数据库系统的核心软件,要在操作系统的支持下工作,解决如何科学地组织和存储数据、如何高效地获取和维护数据库的系统软件问题。其主要功能包括数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。

4.人员

与数据库系统有关的人员主要有以下四类。

  • 系统分析员和数据库设计人员。
  • 应用程序员。
  • 最终用户。
  • 数据库管理员(DataBase Administrator,DBA)。

二、DBMS的功能

1. 数据定义

DBMS提供数据定义语言(Data Description Language,DDL),用户可以对数据库的结构描述定义,包括外模式、模式和内模式的定义;数据库的完整性定义;安全保密定义。这些定义存储在数据字典中,是DBMS运行的基本依据。

2. 数据库操作

DBMS向用户提供数据操纵语言(Data Manipulation Language,DML),实现对数据的基本操作,如检索、插入、修改和删除。DML分为两类,即宿主型和自含型。宿主型是指将DML语句嵌入某种主语言中使用;自含型是指可以单独使用DML语句,供用户交互使用。

3. 数据库运行管理

数据库在运行期间多用户环境下的并发控制、安全性检查和存取控制、完整性检查和执行、运行日志的组织管理、事务管理和自动恢复等是DBMS的重要组成部分。

4. 数据组织、存储和管理

DBMS 分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等;要确定以何种文件结构和存取方式在存储级上组织这些数据,以提高存取效率。实现数据间的联系、数据组织和存储的基本目标是提高存储空间的利用率。

5.数据库的建立和维护

数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组和重构、性能监测和分析等。

6.其他功能

如 DBMS在网络中与其他软件系统的通信功能,一个DBMS与另一个 DBMS 或文件系统的数据转换功能等。

三、DBMS的特征与分类

1. DBMS的特征

DBMS具有以下特征。

(1) 数据结构化且统一管理。数据库中的数据由DBMS统一管理。由于数据系统采用复杂的数据模型表示数据结构,数据模型不仅描述数据本身的特点,还描述数据之间的联系;数据不再面向某个应用,而是面向整个系统模型;数据易维护、易扩展、数据冗余较小,实现了数据共享。
(2) 有较高的数据独立性。数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。


① 数据的物理独立性是指数据库的内模式发生改变时,数据的逻辑结构不变,从而应用程序不需要修改。


② 数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。

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


① 数据的安全性保护。数据的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。


② 数据的完整性。数据的完整性是指数据正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据。


③ 并发控制。并发操作带来的问题是数据的不一致性。DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,避免用户得到不正确的数据。



④ 故障恢复。数据库中的四类故障分别是事务内部故障、系统故障、介质故障及计算机病毒。故障恢复主要是指恢复数据库本身,即在故障引起数据库当前状态不一致后,将数据库恢复到某个正确状态或一致状态。

2. DBMS的分类

DBMS通常可分为以下3类。





(1)关系数据库系统(Relation DataBase System,RDBS)是支持关系模型的数据库系统。在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,所有实体及实体之间的关系的集合所构成的关系数据库也有类型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合∶关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。微机方式下的简单的DBMS系统包括常见的FoxBASE、Foxpro、dBASE、Access等。





(2)面向对象的数据库系统(Object-Oriented DataBase System,OODBS)是支持以对象形式对数据建模的数据库管理系统。这包括对以下功能的支持∶支持对象的类、支持类属性的继承、支持子类。一个面向对象的数据库系统必须符合两个条件:必须是一个 DBMS;必须是面向对象的。





(3)对象关系数据库系统(Object-Oriented Relation DataBase System,ORDBS)在传统的关系数据模型基础上,提供元组、数组、集合之类更丰富的数据类型以及处理新的数据类型操作的能力,这样形成的数据模型称为对象关系数据模型。基于对象关系数据模型的DBS 称为对象关系数据库系统。

四、数据库系统的体系结构

站在不同的角度或不同层次上看,数据库系统的体系结构也不同。站在最终用户的角度看,数据库系统的体系结构分为集中式、分布式、C/S(客户端/服务器)和并行结构。

1. 集中式数据库系统

在集中式数据库系统中,不但数据是集中的,数据的管理也是集中的,数据库系统的所有功能,从形式的用户接口到DBMS核心都集中在DBMS所在的计算机上。

2.客户端/服务器体系结构

客户端/服务器结构的数据库系统功能分为前端和后端。前端主要包括图形用户界面、表格生成和报表处理等工具;后端负责存取结构、查询计算和优化、并发控制以及故障恢复等。前端与后端通过SQL或应用程序来接口。
数据库服务器一般可分为事务服务器和数据服务器。

3.并行数据库系统

并行体系结构的数据库系统是多个物理上连在一起的 CPU,而分布式系统是多个地理上分开的 CPU。并行体系结构的数据库类型分为共享内存式多处理器和无共享式并行体系结构。

4.分布式数据库系统

分布式DBMS包括物理上分布、逻辑上集中的分布式数据库结构和物理上分布、逻辑上分布的分布式数据库结构两种。前者的指导思想是把单位的数据模式(称为全局数据模式)按数据来源和用途,合理分布在系统的多个节点上,使大部分数据可以就地或就近存取。数据在物理上分布后,由系统统一管理,使用户不感到数据的分布。后者一般由两部分组成∶一是本节点的数据模式;二是本节点共享的其他节点上有关的数据模式。节点间的数据共享由双方协商确定。这种数据库结构有利于数据库的集成、扩展和重新配置。

五、数据库的三级模式结构

1. 模式结构

数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构。











(1)概念模式(Schema)。也称模式,是数据库中全体数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及行的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。











(2)外模式(External Schema)。也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述,由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL。












(3)内模式(Internal Schema)。也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节。描述内模式的数据定义语言称为内模式DDL。

2.两级映像

数据库系统在三级模式之间提供了两级映像,即模式/内模式映像和外模式/模式映像。











(1) 模式/内模式映像。该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。











(2)外模式/模式映像。该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。
DBMS的二级映像功能保证了数据的独立性。

未完待续。。。

更多知识传送:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库技术基础--基本概念 的相关文章

  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 当所有维度值都具有 100% 重要性时处理多对多维度

    我至少会尽力保持简洁 假设我们正在跟踪一段时间内的账户余额 所以我们的事实表将包含诸如 账户余额情况表 FK 账户ID FK 日期ID Balance 显然你有一个账户维度表 and a 日期维度表 所以现在我们可以轻松地过滤帐户或日期 或
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • 如何 md5 所有列(无论类型如何)

    我想创建一个 sql 查询 或 plpgsql 它将 md5 所有给定的行 无论类型如何 但是 在下面 如果 1 为空 则哈希为空 UPDATE thetable SET hash md5 accountid accounttype cre
  • 内连接不重复,可以吗?

    鉴于这两个表 表 A1 有两行具有相同的值 a A1 a a 表 A2 有两行主键值为 A B 它们与 a 关联 A2 PK col2 A a B a 我想要的是 A1 和 A2 的连接并得到这个结果 a A a B 显然内连接在这里不起作
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • 如何将表中不存在但原始SQL中存在的实体字段设置为别名?

    假设我们有一个这样的查询 SELECT CUSTOM EXPRESSION as virtualfield FROM users 用户的实体本身具有 虚拟字段 但映射注释没有 因为表没有该字段 假设它作为原始 SQL 执行 我们如何使用上面
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • XML 解析:格式良好的检查:未声明的实体

    我正在使用 SSMS 2008 但收到以下错误 你知道这意味着什么吗 Msg 9448 Level 16 State 1 Line 4 XML parsing line 1 character 89 well formed check un
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Oracle 行的多个列上使用透视

    我在 Oracle 表中有以下示例数据 tab1 我正在尝试将行转换为列 我知道如何在某一列上使用 Oracle 数据透视表 但是否可以将其应用于多个列 样本数据 Type weight height A 50 10 A 60 12 B 4

随机推荐

  • 测试的艺术:代码检查、走查与评审

    软件开发人员通常不会考虑的一种测试形式 人工测试 大多数人都以为 因为程序是为了供机器执行而编写的 那么也该由机器来对程序进行测试 这种想法是有问题的 人工测试方法在暴露错误方面是很有成效的 实际上 大多数的软件项目都应使用到一下的人工测试
  • 详解Shell 脚本中 “$” 符号的多种用法

    通常情况下 在工作中用的最多的有如下几项 1 表示执行脚本传入参数的个数 2 表示执行脚本传入参数的列表 不包括 0 3 表示进程的id Shell本身的PID ProcessID 即脚本运行的当前 进程ID号 4 Shell最后运行的后台
  • 解决uni-toast被弹窗组件遮挡

    在App vue uni toast设置层级比popup高就行 uni toast z index 999999
  • 输入文本就可建模渲染了?!OpenAI祭出120亿参数魔法模型!

    转自 https new qq com omn 20210111 20210111A0CBRD00 html 2021刚刚开启 OpenAI又来放大招了 能写小说 哲学语录的GPT 3已经不足为奇 那就来一个多模态 图像版GPT 3 今天
  • 微信小程序事件和页面跳转

    一 页面跳转 1 非TabBar页面 一个小程序拥有多个页面 我们通过wx navigateTo进入一个新的页面 我们通过下边点击事件实现页面跳转进行代码实现及参考 wx navigateBack 回退到上一个页面 wx redirectT
  • 【单片机毕业设计】【mcuclub-310】红外遥控器

    设计简介 项目名 基于单片机的红外遥控器的设计 标准版 单片机 STC89C52 功能简介 1 利用红外发射电路 通过按不同的按键发送不同的数据值 2 利用红外接收电路 接收发送端发送的数据 3 通过数码管显示数据 资料预览 效果图 发送端
  • MiniGPT-4本地部署的实战方案

    大家好 我是herosunly 985院校硕士毕业 现担任算法研究员一职 热衷于机器学习算法研究与应用 曾获得阿里云天池比赛第一名 CCF比赛第二名 科大讯飞比赛第三名 拥有多项发明专利 对机器学习和深度学习拥有自己独到的见解 曾经辅导过若
  • Ubuntu22下OpenCV4.6.0+contrib模块编译安装

    目录 第一章 Ubuntu22下OpenCV4 6 0 contrib模块编译安装 第二章 ubuntu22下C kdevelop环境搭建 OpenCV示例 第三章 C 下OPENCV驱动调用海康GigE工业相机 文章目录 目录 Ubunt
  • K8S常用资源认识

    文章目录 一 Namespace 二 Pod 三 Label 四 Deployment 五 Service 一 Namespace namespace是kubernetes系统中的一种非常重要的资源 它的主要作用是用来实现多套环境的资源隔离
  • 基于栈与基于寄存器的指令集架构

    用C的语法来写这么一个语句 C代码 a b c 如果把它变成这种形式 add a b c 那看起来就更像机器指令了 对吧 这种就是所谓 三地址指令 3 address instruction 一般形式为 op dest src1 src2
  • python 模块和包

    文章目录 前言 模块 什么是模块 导入模块 import 导入模块 from 模块名 import 功能 from 模块名 import as定义别名 制作模块 模块的定位顺序 all 包 导入包 import 包名 模块 导入包 from
  • 打开Ubuntu18.04出现启动紫屏卡死不弹登录框问题

    1 进入grub高级模式 重启虚拟机 按esc进入 按 进入Ubuntu高级选项 2 选择recovery mode 3 选择root shell会话 输入root密码 4 编辑 etc gdm3 custom conf文件 将 Wayla
  • 5-快速排序

    假设有下面这样一排数据需要排序 3 7 6 1 2 9 1 2 6 排开常用的冒泡和选择排序 今天我们来试一下一种新的方法 快速排序 快速排序的思路如下 首先我们要先从这组数据中选出一个任意值X 然后以X为分界 比X小的数据排到X的左半边
  • Shiro之@RequiresPermissions注解原理详解

    前言 shiro为我们提供了几个权限注解 如下图 这几个注解原理都类似 这里我们讲解 RequiresPermissions的原理 铺垫 第一 首先要清楚 RequiresPermissions的基本用法 就是在Controller的方法里
  • python爬虫超时重试_python爬虫多次请求超时的几种重试方法(6种)

    第一种方法 headers Dict url https www baidu com try proxies None response requests get url headers headers verify False proxi
  • C#中的Dictionary简介

    简介 在C 中 Dictionary提供快速的基于键值的元素查找 当你有很多元素的时候可以使用它 它包含在System Collections Generic名空间中 在使用前 你必须声明它的键类型和值类型 详细说明 必须包含名空间Syst
  • tensorflow:使用全连接(full-connection)网络实现mnist

    tensorflow1 8 python3 6 4 coding utf 8 import tensorflow as tf import numpy as np from tensorflow examples tutorials mni
  • 【pytorch目标检测】FPN网络结构

    语义一般指的是图像每个像素点的类别归属 语义信息可以理解为与类别划分有关的信息 对网络前端通过非线性变换 对图像内容中纹理 几何颜色等信息表达 这种表达会使网络后端对类别归属做出正确的预测 低级语义信息 对浅层特征的表达 如颜色 几何 纹理
  • vue中的异步请求Axios(个人学习笔记五)

    目录 友情提醒 第一章 传统的jQuery方式获取数据 1 1 后端controller层代码 1 2 传统的jQuery获取数据 1 3 使用vue对象和jQuery获取异步数据 第二章 使用Axios获取数据 2 1 axios简介 2
  • 数据库技术基础--基本概念

    说在前面 本系列文章专注于软考备考复习内容梳理 文章内容是对教材中知识点和考点的提炼 备考过程中可以有针对的进行复习 减少阅读量 有的放矢 导航目录 一 数据库与数据库管理系统 1 数据库 2 硬件 3 软件 4 人员 二 DBMS的功能