数据库系统

数据库管理系统 DBMS Database Management System分为三类:

关系数据库系统(Relation Database System)

面向对象数据库系统 (Object-Oriented Database System)

对象关系数据库系统 (Object-Oriented  Relation Database System)


数据库设计过程

需求分析

需求说明书

数据流图

数据流图的设计原则

  • 数据守恒原则,对于任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者说是通过该加工能产生的数据。
  • 守恒加工原则,对同一个加工来说,输入与输出的名字必须不相同,即使他们的组成成分相同。
  • 对于每个加工,必须既有输入数据流,又有输出数据流
  • 外部实体与外部实体之间不存在数据流
  • 外部实体与数据存储之间不存在数据流
  • 数据存储与数据存储之间不存在数据流
  • 父图与子图的平衡原则,子图的输入数据流父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡,父图与子图之间的平衡原则不存在于单张图。
  • 数据流与加工有关,且必须经过加工

父图:只有实体和数据流

子图:对父图的细分

数据流图的主要组成部分:

数据流(Data Flow):数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。(起点或终点必须有一个是加工

加工(Process):数据处理过程是对数据进行处理的单元,它可以是一个物理设备或软件模块。(至少有一个输入和输出

数据存储(Data Store):数据存储是系统中存储数据的单元,它可以是一个文件、数据库或内存中的变量。

外部实体(Element Agent):外部实体是与系统进行信息交流的外部机构或个人,它可以是一个用户、另一个系统或传感器等。

对基本加工的说明有三种描述方式:

结构化语言、判断表(决策表)、判断树(决策树)。

基本加工逻辑描述的基本原则为:

1.对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。

2.基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

3.加工逻辑说明必须描述实现加工的策略不是实现加工的细节。(考点

4.加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。

创建数据流图的一般步骤如下:

①确定外部实体:确定与系统进行信息交流的外部机构或个人,例如用户、另一个系统或传感器等。

②确定数据流:根据外部实体和系统的需求,确定需要交互的数据流。

③确定数据处理过程:根据系统的功能需求和数据流,确定数据处理过程,例如计算、查询、存储等。

④确定数据存储:根据数据处理过程的需求,确定需要存储的数据项和存储方式,例如文件、数据库或内存变量等。

⑤绘制图形:使用数据流图的图形符号,绘制出外部实体、数据流、数据处理过程和数据存储的图形表示。

⑥完善细节:在绘制完初步的数据流图后,根据系统的实际情况和完善需求,完善图中的细节,例如添加注释、标明数据类型和格式等。

异常现象
黑洞:一个加工只有输入数据流而无输出数据流。
奇迹:一个加工只有输出数据流而无输入数据流。
灰洞:若一个加工的输入数据流无法通过加工产生输出流

加工 3.1.2 有输入但是没有输出,我们称之为“黑洞”。因为数据输入到过程,然后就消失了。在大多数情况下,建模人员只是忘了输出。

加工 3.1.3 有输出但没有输入。在这种情况下,输入流似乎被忘记了。

加工 3.1.1 中输入不足以产生输出,我们称之为“灰洞”。这有几种可能的原因:一个错误的命名过程;错误命名的输入或输出;不完全的事实。灰洞是最常见的错误,也是最使人为难的错误。一旦数据流图交给了程序员,到一个加工的输入数据流必须足以产生输出数据流。


数据字典

概要结构设计

ER模型

实体-联系模型(E-R模型),包含实体,联系,属性(简单属性、复合属性、单值属性、多值属性、派生属性)

集成产生的冲突以及解决办法:(针对同一对象)

属性冲突:包括属性阈冲突和属性取值冲突

命名冲突:包括同名异意,异名同意

结构冲突:同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。


逻辑结构设计

关系模式

目或度:关系模型中属性的个数

候选码(候选键):唯一标识元组,且无冗余。

主键:在候选码中任选一个

主属性和非主属性:组成候选码的属性就是主属性,其他的就是非主属性

外码(外键)

关系模式可以有3种类型:

  • 基本关系(通常又称为基本表或基表)基本表是实际存在的表,它是实际存储数据的逻辑表示。
  • 查询表:查询结果对应的表。
  • 视图表:是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

物理设计


三级模式

内模式(文件级):数据物理结构和存储方式的描述,存储文件。

概念模式(表级):对应数据表,全体数据的逻辑结构和特征的描述

外模式(视图级): 对应视图,是用户与数据库系统的接口,用户用到的那部分数据的描述(用户模式)。


两级映射

两级映射:

模式/内模式映射:实现概念模式到内模式之间的相互转换。(保证物理独立性)

外模式/模式映射:实现外模式到概念模式之间的相互转换。(保证逻辑独立性)


关系代数

并(Union)

关系R 与关系S 的并记作:R ∪ S = { t ∣ t ∈ R ∨ t ∈ S }

交( Intersection)

关系R 与关系S的交记作:R ∩ S = { t ∣ t ∈ R ∧ t ∈ S }

差(Difference)

关系R与关系S的差记作:R − S = { t ∣ t ∈ R ∧ t ∉ S }

广义笛卡尔积(Extended Cartesian Product)

R×S={(a1,a2,…am,b1,b2,…bn)∣(a1,a2,…am)∈R∧(b1,b2,…bn)∈S}。

选择运算

σ F ( R ) = { t ∣ t ∈ R ∧ F ( t ) = ‘真’ }

投影(Projection)

连接(Join)

连接也称为θ连接

连接运算从R 和 S 的广义笛卡尔积R × S 中选取(R 关系)在A 属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组

等值连接(equijoin)

自然连接(Natural join)

  • 自然连接是一种特殊的等值连接
    • 两个关系中进行比较的分量必须是相同的属性组
    • 在结果中把重复的属性列去掉
  • 自然连接的含义
    • R和S具有相同的属性组B

除(Division)


规范化理论

关系模式的存储异常问题

设有一个关系模式R(SNAME,CNAME,TNAME,TADDRESS)

其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。

仔细分析,这个模式存在着下列存储异常的问题:

数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。

修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值,否则就会出现地址值不一致的现象。

插入异常:如果不知道听课学生名单,则这个教师的任课情况和家庭地址就无法进入数据库;

否则就要在学生姓名处插入空值。

删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。

因此,模式R虽然只有4个属性,但却是性能很差的模式。

如果把R分解成下列两个关系模式:

R1(SNAME,CNAME)和R2(CNAME,TNAME,TADDRESS)

则能消除上述提出的存储异常现象。

为什么会产生这些异常呢?与关系模式属性值之间的联系直接有关。

在模式R中,学生与课程有直接联系,教师与课程有直接联系,而教师与学生无直接联系,这就产生了模式R的存储异常。

因此,模式设计强调"每个联系单独表达"是一条重要的设计原则,把R分解成R1和R2是符合这条原则

函数依赖

假设存在关系:

R(学号,姓名,性别,班级,班主任,课程号,课程名,学时数,成绩)

主键:学号+课程号

主属性:{学号,课程号}

非主属性有:{姓名,性别,班级,班主任,课程名,学时数,成绩}

完全函数依赖分析

成绩依赖于学号和课程号两个字段的组合;但只知道学号无法确定成绩,同理只知道课程号也无法确定成绩;只有学号和课程号组合在一起才能标识哪个学生哪门课程的成绩;

因此(学号,课程号)---->成绩 是“完全函数依赖”。

部分函数依赖分析

姓名、性别和班级三个属性只依赖于主键中的学号,与“课程号”无关。

因此(学号,课程号)---->姓名是“部分函数依赖”

(学号,课程号)---->性别是“部分函数依赖”

(学号,课程号)----->班级是“部分函数依赖”

课程名和学时数只依赖于课程号,

因此(学号,课程号)----->课程名是“部分函数依赖”

传递函数依赖分析

班主任依赖于班级,与学号无关,与课程号也无关

又因班级依赖于学号所以班主任间接依赖于学号

因此,(学号,课程号)----->班主任是“传递函数依赖”

范式

1NF:无重复的列(数据库表中的每一列都是不可分割的基本数据项)

2NF:满足1NF且非主键列都完全函数依赖于主键。(缺点:插入异常,删除异常以及冗余问题)

3NF:满足2NF且非主属性列都不传递依赖于主键。

BCNF(巴斯克斯):满足3NF且不允许主键的一部分被另一部分或其它部分所决定(即满足3范式,并且主属性之间没有依赖关系)。

关系模式分解:把一个关系模式分解成若干个关系模式的过程


数据库事务

数据库管理系统运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,这些操作序列要么全做,要么全不做,是一个不可分割的工作单位。

事务具有以下特性。

  • 原子性(Atomicity):数据库的逻辑工作单位。
  • 一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态。
  • 隔离性(Isoation):不能被其他事务干扰。
  • 持续性(永久性)(Durabiity):一旦提交,改变就是永久性的。

并发控制

在多用户共享系统中,许多事务可能同时对同一数据进行操作,称为"并发操作"

数据库的并发操作带来的问题:

  • 丢失更新问题
  • 不一致分析问题(读过时的数据)
  • 依赖于未提交更新的问题(读了"脏"数据)

处理并发控制的主要方法是采用封锁技术。

排他型封锁(简称X封锁):其含义是如果事务T对数据A(可以是数据项、记录、数据集以至整个数据库)实现了X封锁,那么只允许事务T读取和修改数据A,其他事务要等事务T解除X封锁以后,才能对数据A实现任何类型的封锁。可见X封锁只允许一个事务独锁某个数据,具有排他性。

共享型封锁(简称S封锁):X封锁只允许一个事务独锁和使用数据,要求太严。需要适当从宽,例如可以允许并发读,但不允许修改,这就产生了S封锁概念。S封锁的含义是如果事务T对数据A实现了S封锁,那么允许事务T读取数据A,但不能修改数据A,在所有S封锁解除之前决不允许任何事务对数据A实现X封锁。

在多个事务并发执行的系统中,主要采取封锁协议来进行处理。一级封锁协议:事务T在修改数据R之前必须先对其加X封锁,直到事务结束才释放。

一级封锁协议可防止丢失修改,并保证事务T是可恢复的。但不能保证可重复读和不读"脏"数据。

二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。二级封锁协议可防止丢失修改,还可防止读"脏"数据。但不能保证可重复读。

三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。三级封锁协议可防止丢失修改、防止读"脏"数据与防止数据重复读。

两段锁协议:所有事务必须分两个阶段对数据项加锁和解锁。其中扩展阶段是在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;收缩阶段是在释放一个封锁之后,事务不能再申请和获得任何其他封锁。若并发执行的所有事务均遵守两段封锁协议,则对这些事务的任何并发调度策略都是可串行化的。遵守两段封锁协议的事务可能发生死锁。


分布式数据库  DDBS

分布式数据库Distributed Database System是针对地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为完全分布式数据库系统。分布式数据库系统的特点是数据的集中控制性、数据独立性、数据余可控性、场地自治性和存取的有效性。

分布式抽象为4层的结构模式

分布透明性

分布透明性是指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节也不必关心局部场地上数据库的数据模型。分布透明性包括分片透明性、位置透明性和局部数据模型透明性。

(1)分片透明性。分片透明性是分布透明性的最高层次,它是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片。当分片式改变时,只要改变全局模式到分片模式的映射,而不影响全局模式和应用程序。全局模式不变,应用程序不必改写。

(2)位置透明性。位置透明性是指用户或应用程序应当了解分片情况,但不必了解片段的存储场地。当存储场地改变时,只要改变分片模式到分配模式的映射,而不影响应用程序。同时,若片段的重复副本数目改变了,数据的冗余改变了,但用户不必关心如何保持各副本的一致性,这也提供了重复副本的透明性。

(3)局部数据模型透明性。局部数据模型透明性是指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据模型。


商业智能BI

商业智能(Business Intelligence,BI)是企业对商业数据的搜集、管理和分析的系统过程,目的是使企业的各级决策者获得知识或洞察力,帮助他们做出对企业更有利的决策。它是数据仓库、联机分析处理(OnlineAnalyticalProcessing,OLAP)和数据挖掘等相关技术走向商业应用后形成的一种应用技术。商业智能系统主要实现将原始业务数据转换为企业决策信息的过程。它主要包括数据预处理、建立数据仓库、数据分析及数据展现4个主要阶段。一般认为数据仓库、联机分析处理和数据挖掘技术是商业智能的三大组成部分。


数据仓库

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile),且随时间变化的(Time Variant)数据集合,支持管理部门的决策过程。数据仓库的关键特征为面向主题、集成的、非易失的、时变的。采用三层结构,底层是数据仓库服务器、中间层是OLAP服务器、顶层是前端工具

数据仓库的实现步骤有规划、需求研究、问题分析、数据的抽取清洗集成装载、数据仓库设计、数据仓库管理、分析报表查询、数据仓库性能优化及数据仓库的部署发布等几个步骤。实现方法有自顶向下方法、自底向上方法及二者混合方法。对于开发数据仓库系统,一个推荐的方法是以递增、进化的方式实现数据仓库。


多维分析海量数据分析器--OLAP

OLAP(联机分析处理,Online Analytical Processing)是一种用于快速分析多维数据的技术。对于 TB 级的海量数据,联机分析处理 OLAP 利用多维的概念,提供了切片、切块、下钻、上卷和旋转等多维度分析与跨维度分析功能。它允许用户从不同的角度和层次对数据进行查询和分析,通常用于商业智能和数据仓库环境中。
OLAP 系统架构主要分为基于关系数据库的ROLAP(RelationalOLAP)、基于多维数据库的 MOLAP(Multidimensional OLAP)和基于混合数据组织的 HOLAP(HybridOLAP)三种。

OLAP广泛应用于财务分析、市场研究、销售分析等领域,帮助企业做出数据驱动的决策。


数据挖掘(data mining)

数据挖掘(data mining)是从大量的、不完全的、有声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。从商业的角度来看,数据挖掘是一种新的商业信息处理技术,其主要特点是对大量业务数据进行抽取、转换、模型化处理,从中提取辅助商业决策的关键性数据。我们采用数据挖掘的广义观点:数据挖掘是从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程。

数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要功能有5类:自动预测趋势和行为、关联分析、聚类、概念描述和偏差检测。

常用的数据挖掘技术包括关联分析、序列分析、分类分析、聚类分析、预测以及时间序列分析等。

数据挖掘的流程为确定挖掘对象、准备数据、建立模型、数据挖掘、结果分析和知识应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/436344.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion绘画 | SDXL模型使用注意事项

注意事项 SDXL模型的使用,对电脑配置要求更高,需要 8GB 以上显存的显卡SDXL模型兼容性不太好,容易出现错误,对 Mac 电脑不友好只能选择 SDXL模型 训练的 LoRA 使用不能使用旧的 VAE文件 SDXL 专用 VAE 文件:sdxl_vae.…

在矩池云使用 Llama-3.2-11B-Vision 详细指南

Llama 3.2-Vision是Meta开发的一系列多模态大型语言模型(LLMs),包含11B和90B两种规模的预训练和指令调整模型。 这些模型专门优化用于视觉识别、图像推理、字幕生成和回答有关图像的一般问题。Llama 3.2-Vision模型在常见行业基准测试中的表…

【网络安全】内部应用中的多重漏洞利用

未经许可,不得转载。 文章目录 初步发现:帐户枚举利用帐户枚举发现 IDOR 导致帐户接管拦截请求洪水攻击:注册拒绝服务目标网站:https://redacted.com 初步发现:帐户枚举 在最近的一次渗透测试中,我对一个仅供员工使用的内部应用程序进行了评估,重点关注身份验证和帐户…

HR告诉你:HCIE证书到底是职场神话还是锦上添花?真相大解析

在职场内卷的赛道上,每个人都在寻找能让自己脱颖而出的光环。而HCIE证书,作为IT领域的一项高含金量认证,莫过于优势最高最让人垂涎的光环,许多人相信它能开启通往理想职位的大门。 但在这个快速变化的时代,HCIE证书真的…

基于Hive和Hadoop的电商消费分析系统

本项目是一个基于大数据技术的电商消费分析系统,旨在为用户提供全面的电商消费信息和深入的消费行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 S…

望繁信科技CTO李进峰受邀在上海外国语大学开展流程挖掘专题讲座

2023年,望繁信科技联合创始人兼CTO李进峰博士受邀在上海外国语大学国际工商管理学院(以下简称“上外管院”)开展专题讲座,畅谈流程挖掘的发展及对企业数字化转型的价值。演讲吸引了上外教授和来自各行各业的领军企业学员百余人。 …

easyExcel使用模版填充excel,合并单元格

一、最终效果 二、制作模版 1、制作填充模版 模版在代码中保存的位置 2、Controller /*** 下载模板*/ RequestMapping(value "exportData") public void exportData(KqKqb kqKqb,HttpServletResponse response, HttpServletRequest request) throws IOExceptio…

高级算法设计与分析 学习笔记10 平摊分析

动态表,可以变长。 一溢出就另起一个两倍大小的表。 可以轻易证明把n个数字放进去的时间复杂度是O(n),n n/2 n/4……也就2n,插入数字本身也就是n,加起来最多不超过3n. 这种复杂度究竟是怎么算的?毕竟每次插入复杂度…

Vulhub zico 2靶机详解

项目地址 https://download.vulnhub.com/zico/zico2.ova实验过程 将下载好的靶机导入到VMware中,设置网络模式为NAT模式,然后开启靶机虚拟机 使用nmap进行主机发现,获取靶机IP地址 nmap 192.168.47.1-254根据对比可知Zico 2的一个ip地址为…

阿里云ACP认证考试题库

最近有好些同学,考完阿里云ACP了,再来跟我反馈:自己花700买的阿里云ACP题库,结果答案是错的! 或者考完后发现,买的阿里云ACP题库覆盖率只有50%! 为避免大家继续踩坑,给大家分享一个阿…

短视频去水印解析api接口使用文档

短视频去水印解析api接口,支持各大平台短视频和图集。 请求示例:https://www.dspqsy.vip/spapi?key密钥&url短视频链接 返回数据格式:JSON 请求方式:GET/POST 请求参数:url (短视频分享的URL) PHP 源码&…

从存储到人工智能洞察: 利用 MinIO 和 Polars 简化数据管道

将 MinIO 的高性能、可扩展企业对象存储的强大功能与 Polars(闪电般快速的 DataFrame 库)的快速内存数据处理功能相结合,可以显著提高数据管道的性能。在 AI 工作流中尤其如此,其中预处理大型数据集和执行特征选择是关键步骤。在这…

Linux操作系统中dubbo

1、简介 dubbo框架是做微服务通信的,是由阿里巴巴开发,后捐赠给阿帕奇基金会。 2、与OpenFeign的区别 dubbo是采用RPC协议实现微服务通信,OpenFeign是采用Http请求的方式实现的。 OpenFeign 最简单的,就是Spring公司开发的&am…

RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察

RabbitMQ 是一个功能强大且广泛使用的消息代理,它通过处理消息的传输、存储和交付来促进分布式应用程序之间的通信。作为消息代理,RabbitMQ 充当生产者(发送消息的应用程序)和使用者(接收消息的应用程序)之…

2024年软考网络工程师中级题库

1【考生回忆版】以下不属于5G网络优点的是(A) A.传输过程中消耗的资源少,对设备的电池更友好 B.支持大规模物联网,能够连接大量低功耗设备,提供更高效的管理 C.引入了网络切片技术,允许将物理网络划分为多个虚拟网络…

Elasticsearch7.7.1集群不能相互发现的问题解决以及Elasticsearch7.7.1安装analysis-ik中文分词插件的应用

一、Elasticsearch7.7.1集群不能相互发现的问题解决 在使用elasticsearch7.7.1搭建集群,使用了3台服务器作为节点,但在搭建的过程中发现每台服务器的elasticsearch服务都正常,但是不能相互发现,期间进行了一些配置的修改偶尔出现了…

uniapp中实现评分组件,多用于购买商品后,对商品进行评价等场景

前言 uni-rate是uniapp框架中提供的一个评分组件。它可以用于用户评价、打分等场景。uni-rate组件可以根据设定的星星总数,展示用户评分的效果,用户可以通过点击星星或滑动星星的方式进行评分。同时,uni-rate组件也支持自定义星星图标、星星…

Vue 技术进阶 day2 数据监视的原理、其他内置指令、自定义指令、生命周期、组件化、VueComponent构造函数

目录 1.Vue监测数据的原理 1.1 原理 1.1.1 数据劫持 1.1.2 观察者模式(Vue内部的实现) 1.1.3 更新组件 1.1.4 计算属性和侦听器 1.2 后添加属性做响应式(Vue.set / vm.$set) 1.3 对象和数组的响应式 1.4 数据监视案例 2.指令 2.1 内置指令 2.…

丹摩智算平台部署 Llama 3.1:实践与体验

文章目录 前言部署前的准备创建实例 部署与配置 Llama 3.1使用心得总结 前言 在最近的开发工作中,我有机会体验了丹摩智算平台,部署并使用了 Llama 3.1 模型。在人工智能和大模型领域,Meta 推出的 Llama 3.1 已经成为了目前最受瞩目的开源模…

初识Linux · O(1)调度算法

目录 前言: O(1)调度算法 前言: 在初识进程的那一块,我们已经知道了进程并不是一直占用cpu资源的,而是存在时间片的概念,即,每个进程都有一定的时间来执行该进程,时间一到,该进程…