当前位置: 首页 > 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…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...