MySQL系列之开篇 MySQL关系型数据库基础概念


Posted in MySQL onJuly 02, 2021
目录
  • 一、基础概念
  • 二、数据库管理技术的发展
  • 三、关系型数据库(RDBMS)概念
  • 四、RDBMS设计范式

 

一、基础概念

数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的、可以鉴别的信息。

1、数据库(Database,DB)是指长期储存在计算机中的有组织的、可共享的数据集合。数据要按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,系统易于扩展,并可以被多个用户分享。

数据的三个基本特点:

  • 永久存储
  • 有组织
  • 可共享

2、数据库管理系统(DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。 它实现数据库系统的各种功能。是数据库系统的核心。

  • 数据定义功能
  • 数据操作功能
  • 数据库的运行管理功能
  • 数据库的建立和维护功能
  • 数据组织、存储和管理功能
  • 数据的安全保证
  • 数据的备份功能

3、数据库系统的构成有:

  • 用户(终端用户)
  • 程序(API)
  • 应用程序:指以数据库为基础的应用程序
  • 数据库管理系统
  • 数据库管理员(DBA):负责数据库的规划、设计、协调、维护和管理等工作
  • 数据库

4、数据库系统的架构:

  • 单机架构
  • 大型 主机/终端 架构
  • 主从式架构 c/s :客户/服务器结构(Client/Server,C/S)中, “客户端”、“前台”或“表示层”主要完成与数据库使用者的交互任务; “服务器”、“后台”或“数据层”主要负责数据管理。
  • 分布式架构

5、数据库系统的结构

  • 模式:也称为概念模式或逻辑模式,是数据在逻辑上的视图,即概念视图
  • 外模式:也称为子模式或用户模式 数据视图,即用户视图
  • 内模式:也称为存储模式,是内部视图或存储视图

外模式/模式映像 保证了数据与程序的逻辑独立性

内模式/模式映像 保证了数据与程序的物理独立性

6、模型

​模型(Model)是现实世界特征的模拟和抽象表达。

​数据模型是对现实世界数据特征的抽象,描述的是数据的共性内容。

 

二、数据库管理技术的发展

  • 萌芽阶段-----文件系统 使用磁盘文件来存储数据
  • 初级阶段-----第一代数据库 出现了网状模型、层次模型的数据库
  • 中级阶段-----第二代数据库 关系型数据库和结构化查询语言
  • 高级阶段------新一代数据库 “关系-对象”型数据库

1、文件系统管理的缺点

  • 编写应用程序不方便
  • 数据冗余不可避免
  • 应用程序依赖性
  • 不支持对文件的并发访问
  • 数据间联系弱
  • 难以按用户视图表示数据
  • 无安全控制功能

2、数据库管理系统的优点

  • 相互关联的数据的集合
  • 较少的数据冗余
  • 程序与数据相互独立
  • 保证数据的安全、可靠
  • 最大限度地保证数据的正确性
  • 数据可以并发使用并能同时保证一致性

 

三、关系型数据库(RDBMS)概念

​关系数据库(Relation Database)是所有关系的集合,构成一个关系数据库。 以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上。

  • 表(Table)是一个二维的数据结构,由表名、列、若干行数据组成。
  • 关系 :关系就是二维表。并满足如下性质: 表中的行、列次序并不重要
  • 行row:表中的每一行,又称为一条记录Record或元组Tuple。表中的数据按行存储。
  • 列column:表中的每一列,称为属性Attribute,字段Field
  • 分量(Component) :元组(行)中的一个属性值,称为分量。
  • 键(Key):属性(或属性组)的值都能用来唯一标识该关系的元组,则称这些属性(或属性组)为该关系的键。
  • 主键(Primary key):用于惟一确定一个记录的字段
  • 外键(Foreign Key) 某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主键。
  • 参照关系(Referencing Relation)和被参照关系(Referenced Relation):参照关系也称为从关系,被参照关系也称为主关系,它们是指以外键相关联的两个关系。
  • 域domain:属性的取值范围,如,性别只能是‘男'和‘女'两个值。
  • 数据类型(Data Type) 每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据。

1、事务transaction

多个操作被当作一个整体对待

事务遵循ACID特性:

  • A原子性:不可分割性,所有的动作要全做,要不都不做
  • C一致性:保持数据一致性
  • I隔离性:事务没有完成无法看大最终数据
  • dirty data 脏数据:事务没做完的数据
  • D持久性:持久影响,永久性

2、E-R模型(实体-联系)

​实体Entity:客观存在并可以相互区分的客观事物或抽象事件称为实体。在E-R图中用矩形框表示实体,把实体名写在框内。

​属性:实体所具有的特征或性质

​联系:联系是数据之间的关联集合,是客观存在的应用语义链。联系有实体内部的联系和实体之间的联系。实体之间的联系用菱形框表示。

联系的类型:

  • 一对一联系(1:1)
  • 一对多联系(1:n)
  • 多对多联系(m:n)

3、关系型数据库的历史

  • 1970年 IBM的E.F.Codd提出了关系模型,奠定了关系数据库的理论基础
  • 20世纪70年代末关系方法理论研究和软件系统的研制取得了重大突破
  • 1981年 出现了比较成熟的关系数据库管理技术,证实了关系数据库的优点:高级的非过程语言接口、较好的数据独立性。
  • 20世纪80年代后 网状模型和层次模型与底层实现的结合紧密,关系模型具有坚实理论基础,成为主流数据模型。

4、关系数据模型的组成要素

数据模型的要素包括:

  • 关系数据结构
  • 关系操作集合
  • 关系完整性约束

5、数据三要素

  • 数据结构:包括两类,一类是与数据类型、内容、性质有关的对象,比如关系模型中的域、属性和关系等;另一类是与数据之间联系有关的对象,它从数据组织层表达数据记录与字段的结构。
  • 数据的操作:

数据提取,在数据集合中提取感兴趣的内容。
数据更新:变更数据库中的数据。

  • 数据的约束条件:是一组完整性规则的集合

实体(行)完整性 Entity integrity
域(列)完整性 Domain Integrity
参考完整性 Referential Integrity

6、约束constraint

  • 主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个。
  • 惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个。
  • 外键约束:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据。
  • 检查约束:字段值在一定范围内。

7、索引

​将表中的一个或多个字段中的数据复制一份另存,并且此些需要按特定次序排序存储。

8、关系运算

  • 选择:挑选出符合条件的行
  • 投影:挑选出需要的字段
  • 连接:表间字段的关联

9、数据模型

  • 数据抽象:

物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
视图层:用户角度,描述DB中的部分数据

  • 关系模型的分类:

基于对象的关系模型
半结构化的关系模型

 

四、RDBMS设计范式

​设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

​目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

​满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。

一般说来,数据库只需满足第三范式(3NF)即可。

  • 1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列。

说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库

  • 2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识PK,非PK的字段需要与整个PK有直接相关性。
  • 3NF:属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系。

到此这篇关于MySQL系列之开篇 MySQL关系型数据库基础概念的文章就介绍到这了,更多相关MySQL关系型数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
浅谈Mysql多表连接查询的执行细节
Apr 24 MySQL
超详细教你怎么升级Mysql的版本
May 19 MySQL
MySQL完整性约束的定义与实例教程
May 30 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
mysql sum(if())和count(if())的用法说明
Jan 18 MySQL
MySQL优化常用的19种有效方法(推荐!)
Mar 17 MySQL
MySQL如何快速创建800w条测试数据表
Mar 17 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
MySQL主从切换的超详细步骤
Jun 28 MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 #MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 #MySQL
mysql连接查询中and与where的区别浅析
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 #MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
MySQL query_cache_type 参数与使用详解
Jul 01 #MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 #MySQL
You might like
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
html下载本地
2006/06/19 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
讲解Python中运算符使用时的优先级
2015/05/14 Python
python字典排序实例详解
2015/05/20 Python
Python中的推导式使用详解
2015/06/03 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
建龙钢铁面试总结
2014/04/15 面试题
生物技术专业研究生自荐信
2013/09/22 职场文书
爱情保证书范文
2014/02/01 职场文书
物业经理自我鉴定
2014/03/03 职场文书
小摄影师教学反思
2014/04/27 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
PHP控制循环操作的时间
2021/04/01 PHP