备战计算机二级公共基础知识(五)----数据库设计基础
数据库设计基础
目录
数据库设计基础
数据库的基本概念:数据库,数据库管理系统,数据库系统
数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系数据模型
关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论
数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略
数据库的基本概念:数据库,数据库管理系统,数据库系统
数据库(Database)是指在计算机系统中存储、组织和管理数据的集合。它通常由一个或多个相关表组成,每个表包含一个特定类别的数据,并且这些数据之间存在着某种关系。
数据库管理系统(Database Management System,DBMS)是一种软件系统,用于管理和操作数据库。它提供了一个结构化的方式来存储和检索数据,可以支持多用户并发访问,保证数据的完整性、一致性和安全性,提高数据访问效率和管理能力。
数据库系统(Database System)是由数据库、数据库管理系统和相关应用程序构成的一个完整的信息系统。它可以帮助用户轻松地管理和访问大量数据,对数据进行审计、备份和恢复,并支持多种应用程序,例如财务、销售、人力资源等。
数据库的基本概念还包括:
数据库模型:描述数据如何在数据库中组织和存储的规则和原则。常见的数据库模型有关系型模型、面向对象模型和文档型模型等。
数据库表:由行和列组成的二维表格,用于存储特定类型的数据。每个表都有一个唯一的名称,并且包含一个或多个列,每个列描述一个特定的数据类型。
主键:用于唯一标识数据库表中的每一行记录的一列或列组合。主键可以帮助识别和检索特定的记录。
外键:用于在不同表之间建立关系的列,它引用另一个表的主键,并确保数据的完整性和一致性。
SQL:结构化查询语言(Structured Query Language)是一种用于管理关系型数据库的标准化语言,它可以用于检索、更新和管理数据库中的数据。
数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系数据模型
数据模型是描述数据、数据之间关系以及数据操作的概念模型。常见的数据模型包括层次模型、网状模型和关系模型等。
实体联系模型(Entity-Relationship Model,E-R Model)是一种用于描述现实世界中实体、实体之间关系和属性的图形化表示方法。它主要由实体、联系和属性组成。
实体(Entity)是指现实世界中可以独立存在并具有唯一标识的事物,例如一个人、一本书或一个订单。实体通常用矩形框表示。
联系(Relationship)表示实体之间的关系。例如,一个学生和一个教师之间可能存在着“学习”关系。联系通常用菱形表示。
属性(Attribute)描述实体的特征或性质。例如,一个学生实体可能有姓名、年龄和性别等属性。属性通常用椭圆形表示。
E-R 图是使用实体、联系和属性表示现实世界中实体之间关系的图形化表示。它由实体框、联系线和属性表示符组成。
在根据 E-R 图导出关系数据模型时,需要将实体、联系和属性转换为对应的表和列。
实体转换为表:每个实体会被转换为一个表,表的每个列对应实体的属性。
联系转换为外键:在表中添加外键来表示实体之间的关系。外键是一个指向另一个表的列,它用于建立联系。
属性转换为列:每个属性会被转换为表中的列,列的数据类型和约束条件根据属性的特性确定。
通过以上转换,可以得到关系数据模型,也即是用关系表表示实体、实体之间的关系以及属性的模型。
关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论
关系代数是一种用于操作关系数据库的形式化查询语言,主要包括集合运算和关系运算。
- 集合运算:
- 并(Union)运算:将两个关系的元组合并在一起,去除重复元组。
- 交(Intersection)运算:找出同时出现在两个关系中的元组。
- 差(Difference)运算:找出存在于一个关系中但不存在于另一个关系中的元组。
- 关系运算:
- 选择(Selection)运算:从一个关系中选择满足指定条件的元组。
- 投影(Projection)运算:从一个关系中抽取出指定的属性列,生成一个新的关系。
- 连接(Join)运算:通过共享的属性将两个关系连接在一起,生成一个新的关系。可以使用等值连接、自然连接或其他连接类型。
数据库规范化理论是指将关系数据库设计分解成更小、更规范的关系模式的过程。规范化的目的是消除冗余数据,提高数据的存储效率和查询性能,同时保持数据的一致性和完整性。
规范化理论通常包括以下几个范式:
- 第一范式(1NF):确保每个属性都是原子的,不可再分。
- 第二范式(2NF):在满足1NF的基础上,消除非主属性对主键的部分函数依赖。
- 第三范式(3NF):在满足2NF的基础上,消除非主属性对主键的传递函数依赖。
- BCNF(Boyce-Codd范式):在满足3NF的基础上,消除主属性对候选键的部分和传递函数依赖。
- 第四范式(4NF):在满足BCNF的基础上,消除多值依赖。
- 第五范式(5NF):在满足4NF的基础上,消除连接依赖。
数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略
数据库设计是一个系统化和逐步的过程,通常包括需求分析、概念设计、逻辑设计和物理设计等步骤。以下是每个步骤的相关策略:
- 需求分析:
- 理解业务需求:与业务相关的人员交流,了解业务需求、数据要求和操作流程。
- 收集和分析数据:收集相关数据并进行详细的分析,包括数据类型、数据量、数据关系等。
- 确定功能需求:明确数据库需要支持的功能和操作,例如查询、插入、更新、删除等。
- 概念设计:
- 实体识别和关系建立:根据需求分析阶段的数据分析结果,识别实体和实体之间的关系,建立概念模型。
- 绘制E-R图:使用实体-联系图(E-R图)表示概念模型,清晰地展示实体、关系和属性的结构。
- 逻辑设计:
- 范式分析:将概念模型转换为符合范式要求的逻辑数据模型,如第三范式(3NF)或BCNF。
- 设计关系模式:将实体和关系转换为关系表,确定表之间的关系、主键和外键等约束。
- 物理设计:
- 数据库存储结构:确定数据库的存储结构,如表空间、数据文件和日志文件等。
- 索引设计:根据查询需求和性能考虑,在关键字段上创建适当的索引,提高查询效率。
- 安全和备份策略:制定数据安全策略,包括用户权限控制、备份和恢复策略,以保证数据的安全性和可靠性。
相关文章:
备战计算机二级公共基础知识(五)----数据库设计基础
数据库设计基础 目录 数据库设计基础 数据库的基本概念:数据库,数据库管理系统,数据库系统 数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系…...

【excel密码】excel文件加密方法总结:
想要给Excel文件进行加密,方法有很多,今天分享三种Excel加密方法给大家。 打开密码 设置了打开密码的excel文件,打开文件就会提示输入密码才能打开excel文件,只有输入了正确的密码才能打开并且编辑文件,如果密码错误…...

MySQL之用户管理
用户 用户信息 MySQL中的用户,都存储在系统数据库mysql的user表中 ps: host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆 user: 用户名 authentication_string: 用户…...

伪静态web.config常见规则写法与参数介绍说明
伪静态web.config常见规则写法与参数介绍说明. 示例1: <?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><rules><rule name"规则 1" stopProcessing"tru…...
使用kubasz快速搭建Kubernetes集群
Kubernetes安装 Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。使用ans…...
php常用加密算法大全aes、3des、rsa等
目录 一、可解密加解密算法 1、aes 加解密算法 2、旧3des加解密方法 3、新3des加解密方法 4、rsa公私钥加解密、签名验签方法 5、自定义加密算法1 6、自定义加密算法2 7、自定义加密算法3 二、不可解密加密算法 1、md5算法 2、crypt算法 3、sha1算法 5、hash 算…...

ubuntu22.04搭建verilator仿真环境
概述 操作系统为 Ubuntu(22.04.2 LTS),本次安装verilator开源verilog仿真工具,进行RTL功能仿真。下面构建版本为5.008的verilator仿真环境。先看一下我系统的版本: 安装流程 安装依赖 sudo apt-get install git perl python3 make autoc…...

python中如何使用正则表达匹配\本身?(文末赠书)
点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 将军向宠,性行淑均。 大家好,我是皮皮。 一、前言 前几天在Python钻石群【空】问了一个Python正则表达式的问题,一起…...

Linux学习之MySQL连接查询
接上一篇 连接查询 连接查询也中多表查询,常用于查询来自于多张表的数据,通过不同的连接方式把多张表组成一张新的临时表,再对临时表做数据处理。 #表基础信息,内容可从上一篇博客中查看 mysql> desc departments; ---------…...

【Hello Algorithm】二叉树相关算法
本篇博客介绍:介绍二叉树的相关算法 二叉树相关算法 二叉树结构遍历二叉树递归序二叉树的交集非递归方式实现二叉树遍历二叉树的层序遍历 二叉树难题二叉树的序列化和反序列化lc431求二叉树最宽的层二叉树的后继节点谷歌面试题 二叉树结构 如果对于二叉树的结构还有…...

ExpressLRS开源代码之工程结构
ExpressLRS开源代码之工程结构 1. 源由2. 工程3. 开发环境安装4. pio命令5. ExpressLRS配置6. 硬件认证过程7. 参考资料 1. 源由 ExpressLRS开源代码基于Arduino框架设计,在所支持的硬件环境下,提供900/2400发射机和接收机硬件方案。 该设计提供了一个…...

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现
拉取docker容器 访问并抓包 修改为POST 方式,文件类型改为json格式,发送json数据包,发送成功 这里安装一个bp的插件 使用安装的插件 可以看到,插件告诉我们这里有漏洞,并且提供了POC 既然我们发现有 rmi ,…...
探秘MySQL三个神秘隐藏列(mysql三个隐藏列) rownum、rowid、oid
探秘MySQL三个神秘隐藏列 MySQL是一款流行的关系型数据库管理系统,被广泛应用于Web应用程序开发和数据存储。然而,MySQL也有一些神秘的隐藏列,这些隐藏列可以帮助我们更好地管理和查询数据。 接下来,我们将探秘MySQL三个神秘隐藏…...

leetcode刷题--数组类
文章目录 1. 485 最大连续1的个数2. 495 提莫攻击3. 414 第三大的数4. 628 三个数的最大乘积5. 645 错误的集合6. 697 数组的度7. 448 找到所有数组中消失的数字9. 41 缺失的第一个正数10. 274 H指数11. 453 最小操作次数使得数组元素相等12. 665 非递减数列13. 283 移动零14. …...

Vue3---uni-app--高德地图引用BUG
先给报错信息:module libs/map//libs/map_min.js is not defined, require args is /libs/map_min.js 查看我引用方法: 本人查阅资料发现 是 require 使用的是 commonJS方式引用说这个适配Vue2可我项目是Vue3应该使用ES6语法糖 然后我有跑了项目发现BU…...

Stable Diffuse 之 本地环境部署/安装包下载搭建过程简单记录
Stable Diffuse 之 本地环境部署/安装包下载搭建过程简单记录 目录 Stable Diffuse 之 本地环境部署/安装包下载搭建过程简单记录 一、简单介绍 二、注意事项 三、环境搭建 git 下载和安装 python 下载和安装 stable-diffusion-webui 下载和安装 测试 stable diffuse w…...

护航数字政府建设,美创科技成为“数字政府建设赋能计划”成员单位
近日,“2023软博会-软件驱动数字政府创新发展论坛”顺利召开,本次论坛由中国信息通信研究院、中国通信标准化协会承办,中国通信标准化协会云计算标准和开源推进委员会、数字政府建设赋能计划支持。 天津市工业和信息化局总经济师杨冬梅、中国…...

Kafka3.0.0版本——消费者(消费者组原理)
目录 一、消费者组原理1.1、消费者组概述1.2、消费者组图解示例1.3、消费者组注意事项 一、消费者组原理 1.1、消费者组概述 Consumer Group(CG):消费者组,由多个consumer组成。形成一个消费者组的条件,是所有消费者…...

天津web前端培训班 前端是否适合零基础学?
随着HTML 5和ECMAScript 6的正式发布,大量的前端业务逻辑,极大地增加了前端的代码量,前端代码的模块化、按需加载和依赖管理势在必行,因此Web前端越来越被人们重视。 Web前端的就业前景 Web前端开发工程师薪资持续走高ÿ…...

Paimon+StarRocks 湖仓一体数据分析方案
本文整理自阿里云高级开发工程师曾庆栋(曦乐)在 Streaming Lakehouse Meetup 分享的内容,深入探讨了传统数据仓库分析、PaimonStarRocks湖仓一体数据分析、StarRocks 与 Paimon 的协同使用方法与实现原理,以及StarRocks 社区湖仓分…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...