备战计算机二级公共基础知识(五)----数据库设计基础
数据库设计基础
目录
数据库设计基础
数据库的基本概念:数据库,数据库管理系统,数据库系统
数据模型,实体联系模型及 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 社区湖仓分…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
