当前位置: 首页 > news >正文

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念

1.1数据库的体系结构

1.1.1常见数据库

①集中式数据库

数据是集中的;数据管理是集中的

②C/S结构

客户端负责数据表服务;服务器负责数据库服务;系统分前后端;ODBC、JDBC

③分布式数据库

物理上分布、逻辑上集中;物理上分布、逻辑上分布;透明性

④并行数据库

分为共享内存式和无共享式

1.1.2分布式数据库的特点

数据独立性。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)。 ②集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。 ③适当增加数据冗余度。在不同的场地存储同一数据的多个副本,可以提高系统的可靠性和可用性,同时也能提高系统性能。(提高系统的可用性,即当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。)全局的一致性、可串行性和可恢复性

1.1.3分布式数据库的透明性

分片透明:是指用户不必关心数据是如何分片/分块的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。

复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。

位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的

局部映像透明性(逻辑透明)∶是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。

1.1.4例题

(1)

答案:D A

解析:白给

(2)

答案:C

解析:白给

知识点补充与回顾:

在分布式数据库中:

①共享性:所有的数据都是共享的

②自治性:每个节点有局部的数据库管理系统管理

③可用性:某个节点故障,而有副本,系统仍可用

④分布性:在物理结构上分布

1.2三级模式结构

1.2.1三级模式概念图

注:①外模式-概念模式映射/映像对应逻辑独立性

逻辑独立性:数据的逻辑结构发生变化后,用户程序也可以不修改,但是为了保证应用程序能够正确执行,需要修改外模式和概念模式之间的映像。

②概念模式-内模式映射对应物理独立性

物理独立性:当数据的物理结构发生改变时,应用程序不用改变。但是为了能够保证应用程序能够正确执行,需要修改概念模式和内模式之间的映像。

1.2.2例题

答案:B

解析:白给题

答案:B

解析:白给

答案:D

解析:白给

1.3数据仓库

1.3.1数据仓库的特点

①面向主题:数据按主题组织

②集成的:消除了源数据中的不一致性,提供整个企业的一致性全局信息

③相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或是不删除)

④反映历史变化(随着时间变化)︰记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测

1.3.2数据仓库的过程

OLAP和OLTP的区分:

OLAP:数据仓库就是典型的OLAP,其中A是分析的意思,着重于分析

OLTP:常见的数据库就是OLTP,关于联机事务,着重于事务

1.3.3例题

答案:B

解析:

A数据清理

D数据抽取

2.数据库的设计过程

2.1设计过程概念图

注:①数据流图(OFD)

②数据字典(OD)

③聚簇索引属于物理设计

④逻辑设计阶段的关系模式需要考虑关系规范化

2.2例题

答案:B

解析:白给

3.概念设计

3.1概念设计过程

在“合并局部模型消除冲突”中:

(1)集成方法:

①多个局部E-R图一次集成

②逐步集成,用累加的方式一次集成两个局部E-R

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

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

命名冲突:包括同名异义和异名同义

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

3.2 E-R图

3.2.1 E-R模型示意图

实体用矩形表示,属性用椭圆表示,联系用方块表示,特殊化的实体用特殊矩形+特殊线段表示

3.2.1 E-R图
3.2.1.1基本概念

①实体:实体是现实世界中可以区别于其他对象的事件或事物。(实体集―实体的集合)

②属性:属性是实体某方面的特性

③联系∶实体的联系分为实体内部的联系和实体与实体间的联系。实体间联系类型:一对一(1 : 1)、一对多(1 : n)、一对多(n : m)

3.2.1.2属性

(1)简单属性和复合属性

①简单属性是原子的,不可再分的

②复合属性可以细分为更小的部分(即划分为别的属性)

复合属性的举例:地址可以拆分出省、市

(2)单值属性和多值属性

①定义的属性对于一个特定的实体都只有单独的一个值,称为单值属性

②在某些特定情况下,一个属性可能对应一组值,称为多值属性

多值属性的举例:一个人有好几个号码

(3)一些特殊的属性

①NULL属性:表示无意义或不知道

②派生属性:可以从其他属性得来

派生属性的举例:年龄可由身份证号推出

3.2.1.3联系

(1)一对一(1 : 1)

一个班就只有一个班长,一个班长只对应一个班

(2)一对多(1 : n)(1 : *)

一个班有很多学员,一个学员只属于一个班级

(3)多对多(n : m)(* : *)

一门课程有多个学员学习,一个学员可以学习多门课程

3.2.1.4三元联系

(1)两个以上不同实体集之间的联系可以存在三元联系

(2)多重度的确定,可根据语义直接转换

以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例:

①若中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的连通数为“—”

P_D:表示一个病房有多个病人和多个医生,一个医生只负责一个病房,一个病人只属于一个病房

②若中心实体有多于一个实例能与另两个实体实例进行关联,则中心实体的连通数为“多”

Supp为供应商,Proj为项目,Part为零件

SP_P:表示供应商为多个项目供应多种零件,每个项目可用多个供应商供应的零件,每种零件可由不同的供应商供应。

3.2.1.5同一个实体集内部的二元联系

3.2.1.6扩充的E-R模型

(1)弱实体:在现实世界中有一种特殊的依赖联系,该联系是指某实体是否存在对于另一些实体具有很强的依赖关系,即一个实体的存在必

须以另一个实体为前提,而将这类实体称为弱实体,如家属与职工的联系,附件与邮件

(2)特殊化:在现实世界中,某些实体一方面具有一些共性,另一方面还具有各自的特性,一个实体集可以按照某些特征区分为几个子实体

(3)聚集:一个联系作为另一个联系的一端

4.逻辑设计

4.1关系模式相关概念

4.1.1数据模型

①层次模型

该图来源于数据库系统概论第五版

②网状模型

该图来源于数据库系统概论第五版

其中S-SC和C-SC为联系名

关系模型

关系名(属性1, 属性2, 属性3, ……, 属性n)

eg:学生(学号, 姓名, ……)

该图来源于数据库系统概论第五版

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

④面向对象模型(了解一下)

以对象为单位来组织的模型

4.1.2关系模型的相关概念

(1)目和度

关系模式中属性的个数

(2)候选码(候选键)

若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

(3)主码(主键)

若一个关系有多个候选码,则选定其中一个为主码

(4)主属性与非主属性

候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。

(5)外码(外键)

其它关系的主键

(6)全码

关系模式的所有属性组是这个关系的候选码

(7)关系表的三种类型

基本关系表、查询表、视图表,前者为存在于数据库中的实表,后两者为虚表

(8)完整性约束

实体完整性约束(主键唯一且非空)、参照完整性约束(即外键,要么是其它主键,要么是空)、用户自定义完整性约束

注:触发器可以完成复杂完整性的定义

4.2 E-R图转关系模式

4.2.1相关概念

(1)一个实体型必须转换为一个关系模式

(2)联系转关系模式:

①一对一联系的转换有两种方式

独立的关系模式:并入两端主键及联系自身属性。(主键:任一端主键)

归并(任意一端):并入另一端主键及联系自身属性。(主键:保持不变)

②一对多联系的转换有两种方式

独立的关系模式:并入两端主键及联系自身属性。(生键:多端主键)

归并(多端)∶并入另一端主键及联系自身属性。(主键:保持不变)

③多对多联系的转换只有一种方式

独立的关系模式:并入两端主键及联系自身属性。(主键:两端主键的组合键)

4.2.2例题

其中下划线代表主键,波浪线代表外键

(1)1 : 1

E-R图:

关系模式:

①独立关系模式

②归并:

第一种归并:

第二种归并:

(2)1 :n

E-R图:

关系模式:

①独立关系模式:

②归并:

(3)n : m

E-R图:

关系模式:

上一篇:软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

下一篇:软件设计师学习笔记11-磁盘管理+IO管理软件+文件管理+作业管理

相关文章:

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的;数据管理是集中的 ②C/S结构 客户端负责数据表服务;服务器负责数据库服务;系统分前后端;ODBC、JDBC ③分布式数据库 物理上分布、逻…...

distcc分布式编译

distcc https://gitee.com/bison-fork/distcc.git 下载工具链 mingw,https://www.mingw-w64.org/downloads/#w64devkitperl,https://strawberryperl.com/releases.html免安装zip版本,autoconf等脚本依赖perlautoconf、automake&#xff0c…...

Java面试题-0919

集合篇 Java面试题-集合篇HashMap底层实现原理概述javaSE进阶-哈希表 为了满足hashmap集合的不重复存储,为什么要重写hashcode和equals方法? 首先理解一下hashmap的插入元素的前提: hashmap会根据元素的hashcode取模进行比较,当…...

WPF列表性能提高技术

WPF列表性能提高技术 WPF数据绑定系统不仅需要绑定功能,还需要能够处理大量数据而不会降低显示速度和消耗大量内存,WPF提供了相关的控件以提高性能,所有继承自ItemsControl的控件都支持该技术。 虚拟化 UI虚拟化是列表仅仅为当前显示项创建…...

掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(2)

BERT的先进技术 当您精通 BERT 后,就该探索先进技术以最大限度地发挥其潜力。在本章中,我们将深入研究微调、处理词汇外单词、领域适应,甚至从 BERT 中提取知识的策略。 微调策略:掌握适应 微调 BERT 需要仔细考虑。您不仅可以微调…...

【算法优选】 二分查找专题——贰

文章目录 😎前言🌲[山脉数组的峰顶索引](https://leetcode.cn/problems/peak-index-in-a-mountain-array/)🚩题目描述:🚩算法思路🚩代码实现: 🌴[寻找峰值](https://leetcode.cn/pro…...

SQL 的优化

SQL 优化是指对数据库查询语句进行优化,以提高查询性能和效率。下面列出了一些常见的 SQL 优化技巧: 1、索引优化 (1)使用适当的索引来加速查询操作。在频繁用于查询的列上创建索引,特别是在 WHERE 条件、JOIN 条件和…...

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南

目录 引言 ​编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代,性能优化和调优对于…...

Go If流程控制与快乐路径原则

Go if流程控制与快乐路径原则 文章目录 Go if流程控制与快乐路径原则一、流程控制基本介绍二、if 语句2.1 if 语句介绍2.2 单分支结构的 if 语句形式2.3 Go 的 if 语句的特点2.3.1 分支代码块左大括号与if同行2.3.2 条件表达式不需要括号 三、操作符3.1 逻辑操作符3.2 操作符的…...

yolov8 strongSORT多目标跟踪工具箱BOXMOT

1 引言 多目标跟踪MOT项目在Github中比较完整有:BOXMOT , 由mikel brostrom提供。在以前的版本中,有yolov5deepsort(版本v3-v5), yolov8strongsort(版本v6-v9),直至演变…...

如何开发一款跑酷游戏?

跑酷游戏(Parkour Game)是一种流行的视频游戏类型,玩家需要在游戏中控制角色进行极限动作、跳跃、爬墙和各种动作,以完成各种挑战和任务。如果你有兴趣开发一款跑酷游戏,以下是一些关键步骤和考虑事项: 游…...

使用宝塔面板在Linux上搭建网站,并通过内网穿透实现公网访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板,它支持Linux/Windows系统,我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…...

Unity可视化Shader工具ASE介绍——6、通过例子说明ASE节点的连接方式

大家好,我是阿赵。继续介绍Unity可视化Shader编辑插件ASE的用法。上一篇已经介绍了很多ASE常用的节点。这一篇通过几个小例子,来看看这些节点是怎样连接使用的。   这篇的内容可能会比较长,最终是做了一个遮挡X光的效果,不过把这…...

VUE3基础知识梳理

VUE3基础知识梳理 一、vue了解和环境搭建1.vue是什么:cn.vuejs.org/vuejs.org2.渐进式框架3.vue的版本4.vueAPI的风格5.准备环境5.1.创建vue项目5.2.vue的目录结构 二、vue3语法1.干净的vue项目2.模板语法2.1 文本插值2.2属性绑定2.3条件渲染2.4列表渲染2.5通过key管…...

Java架构师缓存通用设计方案

目录 1 采用多级缓存2 缓存数据尽量前移3 静态化4 数据平衡策略5 jvm缓存的问题6 redis存放数据解决7 redis垂直拆分8 总结1 采用多级缓存 在实际应用中需要考虑的实际问题。首先,前端页面可以做缓存,虽然图上没有显示,但在现实应用中这是提高性能的一个重要方面。前端页面缓…...

2023年【危险化学品生产单位安全生产管理人员】及危险化学品生产单位安全生产管理人员模拟考试题

题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员考前必练!安全生产模拟考试一点通每个月更新危险化学品生产单位安全生产管理人员模拟考试题题目及答案!多做几遍,其实通过危险化学品生产单位安…...

微信小程序 在bindscroll事件中监听scroll-view滚动到底

scroll-view其实提供了一个 bindscrolltolower 事件 这个事件的作用是直接监听scroll-view滚动到底部 但是 总有不太一样的情况 公司的项目 scroll-view 内部 最下面有一个 类名叫 bottombj 的元素 我希望 滚动到这个 bottombj 上面的时候就开始加载滚动分页 简单说 bottombj这…...

收银系统商品定价设计思考

一、背景 因为门店系统里商品总共也就几万款,一直以来都是根据条码由总部统一定价销售,现在有加盟店,各门店也有进行各自促销活动的需求,这就需要放开门店自主定价权,所以近段时间系统在商品定价上做了扩展。 二、商…...

Kotlin函数作为参数指向不同逻辑

Kotlin函数作为参数指向不同逻辑 fun sum(): (Int, Int) -> Int {return { a, b -> (a b) } }fun multiplication(): (Int, Int) -> Int {return { a, b -> (a * b) } }fun main(args: Array<String>) {var math: (Int, Int) -> Intmath sum()println(m…...

读书笔记—《如何阅读一本书》

读书笔记—《如何阅读一本书》 一、阅读的层次1、主动阅读的基础一个阅读者要提出的四个基本问题 2、基础阅读&#xff08;第一层&#xff09;3、检视阅读&#xff08;第二层&#xff09;4、分析阅读&#xff08;第三层&#xff09; 二、阅读不同读物的方法三、阅读的最终目标1…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...