【MySQL】数据库概述

目录

一、为什么使用数据库?

二、数据库与数据库管理系统

2.1 相关概念

2.2 两者关系

三、 MySQL介绍

四、 RDBMS和非RDBMS

4.1 关系型数据库(RDBMS)

4.2 非关系型数据库(非RDBMS)

五、关系型数据库设计规则

5.1 表、记录、字段

5.2 表的关联关系

5.2.1 一对一关联

5.2.2 一对多关联

5.2.3 多对多关联

5.2.4 自我引用


一、为什么使用数据库?

我们知道内存中的数据一旦机器掉电其数据就会丢失,为此我们可将数据保存到可掉电式的存储设备中如硬盘上的数据库中,从而实现数据的持久化存储。

二、数据库与数据库管理系统

2.1 相关概念

DB: 数据库(Database)

用来存储数据的仓库,其本质就是一个文件系统。保存了一系列有组织的数据。

DBMS:数据库管理系统(Database Management System)

用来管理和操作数据库的大型软件,通过此软件可以建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统来访问数据库表内的数据。

SQL:机构化查询语言(Structured Query Language)

数据管理员通过SQL代码在数据库管理系统上操作数据库的语言。是数据库管理系统操作数据库的一种工具(代码语言)。

2.2 两者关系

数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据一般会在数据库中创建多个表,以保存程序中实体用户的数据。

三、 MySQL介绍

MySQL是一个开发源代码的关系型数据库管理系统,可以处理上千万条记录的数据库。32位系统表文件最大支持4GB,64位系统支持最大的表文件8TB。MySQL使用SQL语言来操作数据库。一般大型企业使用收费的Oracle数据库、中小型企业使用免费的MySQL数库。

四、 RDBMS和非RDBMS

4.1 关系型数据库(RDBMS)

关系型数据库将复杂的数据结构归结为简单的二元关系即二维表格的形式。

  • 关系型数据库以行和列的形式存储数据便以用户理解,一系列的行和列被称为表,多个表组合到一起就构成了一个数据库。
  • 表与表之间的数据记录都是有关系的。现实世界中的各种实体以及实体之间的各种联系均用关系模型(各表之间数据记录之间的联系被称为关系模型)来表示。关系型数据库就是建立在关系模型基础上的数据库。
  • 可以使用SQL语句在多表之间做复杂的数据查询。
  • 对安全性要求很高的数据也可以使用关系型数据库访问。
4.2 非关系型数据库(非RDBMS)

非关系型数据库是以键值对的形式来存储数据的、不需要SQL层的解析,性能非常好,同时减少了一些不常用的功能。NoSQL泛指非关系型数据库,包括有:键值型数据库、文档型数据库、搜索型数据库和列存储等,还有图形数据库。

五、关系型数据库设计规则

  • 关系型数据库的数据结构就是数据表
  • 数据都是放在表中的,表都是放在库中
  • 一个数据库可以放多张表,每个表都有相对应的名字用来唯一标识自己
  • 表都会有一些特性、这些特性来规定数据在表中如何存储。
5.1 表、记录、字段
  • E-R(实体-联系)模型中三个主要概念是:实体集、属性、联系集(表之间实体与实体之间的联系)。

数据库中的一个表------->java或python中的一个类(或实体集)

数据库中的一行数据即记录----->类的一个对象(或实体)

数据库中的一列即字段----->类中的一个属性

5.2 表的关联关系

在数据库中表之间的数据记录有关系、在现实世界中各实体对象之间也存在各种联系,我们可以使用关系模型(表)表示出来。

四种:一对一关联、一对多关联、多对多关联、自我引用。

5.2.1 一对一关联
  • 表中的一条记录(实体)对应另外一张表中的一条记录即为一对一关系。
  • 记录之间一对一关系的两张表完全可以合并到一张表中,因此在实际开发中应用不多。 
5.2.2 一对多关联
  • 表中的一条记录对应另一张表中的多条记录

5.2.3 多对多关联
  • 表中的一条记录对应另个表的多条记录同时另个表中的一条记录又对应本表中的多条记录。
  • 要表示多对多关系,必须创建第三个联接表,它将多对多关系划分为两个一对多的关系。将这两个表的主键都插入第三个表中。

 备注:多对多的关系在选课信息表中体现了出来(中间表)

5.2.4 自我引用
  • 一张表中记录的某条字段(属性值)指向的还是自己这张表中的某个记录被称为自我引用即表中记录的某字段引用的还是这个表中的记录(自己人找自己人即表找表本身)。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487165.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

挑战杯 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

QT问题 打开Qt Creator发现没有菜单栏

之前不知道按了什么快捷键,当我再次打开Qt Creator时发现菜单栏消失啦 找了许多原因发现:安装有道词典的快捷键Ctrl Alt m 与Qt Creator里的快捷键冲突导致菜单栏被莫名其妙的隐藏 解决方法: 1找到有道词典快捷键 2再次按快捷键 Ctrl Alt m就可以重新显示菜单栏

机器学习---强化学习方法

1. 强化学习方法 1.1 动态规划法 动态规划方法是由Bellman 方程转化而来,通过修正Bellman 方程的规则,提高所期望值函数的近 似值。常用算法有两种:值迭代(Value Iteration)和策略迭代(Policy Iteration…

[云原生] 二进制k8s集群(下)部署高可用master节点

在上一篇文章中,就已经完成了二进制k8s集群部署的搭建,但是单机master并不适用于企业的实际运用(因为单机master中,仅仅只有一台master作为节点服务器的调度指挥,一旦宕机。就意味着整个集群的瘫痪,所以成熟…

较通用web脚手架模板搭建

较通用web脚手架模板搭建 从这里开始就接触到以后写项目的思维了。 做一个web开发,那就要层次分明,要有个实现的规划,这通常也是有一个较为通用的模板的。 总的来说:不同的层次有不同的模块,每个模块有必须实现的功…

【开源】JAVA+Vue.js实现校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

一种基于javax.max注解的能力增强技术

目录 现有框架的不足之处 我的改进内容 改进的成果 现有框架的不足之处 Max是javax.validation包中的一个常用注解,用于对传入参数进行最大值校验。但是其校验区间为闭区间,且不支持修改,如:Max(2),表示表示传入参…

Codeforces Round 494 (Div. 3)

目录 A. Polycarps Pockets B. Binary String Constructing C. Intense Heat D. Coins and Queries E. Tree Constructing F. Abbreviation A. Polycarps Pockets 记录数量可以直接开一个桶即可然后求最大值 void solve(){cin>>n;vector<int> ton(105);int …

微服务篇之分布式事务

一、Seata架构 Seata事务管理中有三个重要的角色&#xff1a; TC (Transaction Coordinator) - 事务协调者&#xff1a;维护全局和分支事务的状态&#xff0c;协调全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器&#xff1a;定义全局事务的范围、开始全局事务、…

Vulnhub-OSCP

信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-07 17:49 CST Nmap scan report for 192.168.1.1 Host is up (0.00052s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168.1.…

JSON与GET请求参数互转工具

JSON与GET请求参数互转工具 - BTool在线工具软件&#xff0c;为开发者提供方便。 本工具能让你轻松地在JSON和GET请求参数之间互转。无论是将JSON数据转换为URL查询参数&#xff0c;还是将URL查询参数解析为JSON对象&#xff0c;它都能帮你快速完成。告别手动拼接和解析URL参数…

详解编译和链接!

目录 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理 2.2 编译 2.3 汇编 2.4 链接 3. 运行环境 4.完结散花 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们…