备战计算机二级公共基础知识(五)----数据库设计基础
数据库设计基础
目录
数据库设计基础
数据库的基本概念:数据库,数据库管理系统,数据库系统
数据模型,实体联系模型及 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 社区湖仓分…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
