NO.A.0001.mysql/mariadb/概念介绍
Posted Java BBS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NO.A.0001.mysql/mariadb/概念介绍相关的知识,希望对你有一定的参考价值。
一概述:
1、课程大纲:
关系型数据库基础/安装mysql/管理数据库和表/用户和权限管理/函数和存储/MySQL架构/存储引擎/服务器选项,系统和状态变量/优化查询和索引管理/锁和事务管理/日志管理/备份还原/MySQL集群
2、数据的时代:设计的数据量大/数据不随程序的结束和消失/数据被多个应用程序共享/大数据
3、数据库的发展史
萌芽阶段:文件系统:使用磁盘文件来存储数据
初级阶段:第一代数据库:出现了网状模型,层次模型的数据库
中级阶段:第二代数据库:关系型数据库和结构化查询语言
高级阶段:第一代数据库:关系-对象型数据库
文件系统的特点: |
数据库的管理系统(DBMS)优点 |
编写应用程序不方便 | 相互互联数据的集合 |
数据冗余不可避免 | 较少的数据冗余 |
应用程序依赖性 | 程序与数据相互独立 |
不支持对文件的并发访问 | 保证数据的安全可靠 |
数据间联系弱 | 最大限度的保证数据的正确性 |
难以按用户视图表述数据 | 数据可以并发使用并能同时保证一致性 |
无安全控制功能 |
4、数据库管理系统数据库
数据库是数据的汇集,它以一定的组织形式存在于存储介质上
DBMS:是管理数据库的系统软件,它实现数据库系统的各种功能,数是
数据库系统的核心
DBA:负责数据库的规划、设计、协调、维护和管理等
应用成需指以数据库为基础的应用程序
数据库管理系统的基本功能:
数据定义
数据处理
数据安全
数据备份
数据库系统的架构:
单击架构:数据库存放在一个主机上,例如财务软件,
大型主机/终端架构:multics是一种大型主机的终端架构。
主从式架构(C/S):是目前主流的架构模式,mysql、oracle、SqlServer/
分布式架构:
关系型数据库:
关系:关系就是二维表,并满足如下性质:表中的行,列一次序并不重要
行row:表中的每一行,又称为一条记录;又称为record记录
列column:表中的每一列,称为数学,字段;又称为:field域 、column列
主键primary key:用于唯一确定一个记录的字段
域domain:属性的取值范围,如,性别只能是“男”和“女”两个值
不是所有的数据库都是关系型数据库
非关系型数据库:大部分情况下性能是特别好的,
NO SQL(not Only SQL) memcached,redis,k/v值
mongodb(基于文档型存放文档的)
5、关系型数据库:RDBMS
MySQL: mysql 、mariadb、percona server
postgresql:简称pgsql,enterprisedb
oracle:
MSSmssql:
DB2:
事务transaction:对个操作别当做一个整体对待ACID:
A:原子性:
B:一致性
I:隔离性
D:持久性
实体-联系模型E-R
实体Entity
客观存在并可以相互区分的客观事务或者抽象事务称为实体。
在E-R图中用矩形框表示实体,把实体名写在框内
属性:实体所具有的特征或性质。
联系:是数据之间的关联集合,是客观存在的应用语义链
实体内部的联系:之组成实体的个属性之间的联系,如职工实体中,职工号和部门经理好之间有一种关联关系
实体之间的联系: 指不同实体之间的联系,例如学生选课实体和学生基本信息实体之间,实体之间的而联系用菱形框表示
联系类型:
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)
6、数据三要素:数据结构:包括两类:
一类是与数据类型、内容、性质有关的对象、比如关系模型中的域、属性、和关系等
另一类是与数据之间的联系有关的对象,他从数据组织层表达数据记录与字段的结构
数据的操作:
数据的提取:在数据集合中提取感兴趣的内容。SELECCT
数据更新:变更数据库中的数据,。INSERT、DELETE、UPDATE
数据的约束条件:十一组完整性规则的集合
实体(行)完整性Entity integrity
域(列)完整性Domain integrity
参考完整性Referential integrity
7、简易数据的正规化分析
RDMBS设计范式基础概念:设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同范式,各种范式成递次规范,越高的范式数据库冗余越小。
目前关系型数据库有六种范式:
第一范式(1NF)
第二范式(2NF)
第三范式(完美范式)、满足最低要求的范式是第一范式(1NF)在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式一次类推,一般说来,数据库只需满足第三范式(3NF)即可。
1NF:无重复的列,每一列都是不可分割的基础数据项,同一列中不能有多个值,及实体中的额某个属性不能有多个值或者不嫩共有重复的属性,出去同类型的字段,就是无重复的列、
说明: 第一范式(1NF)是对关系魔性的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
2NF: 属性完全依赖于主键,第二范式必须我先满足第一范式,要求表中的每行必须可以被唯一地区分,通常为标价上一个列,以存储各个实例的唯一标识pk,非pk的字段需要与整个pk的直接相关性。
3NF: 属性不依赖于其他非主属性,满足第三范式必须先满足第二范式,第三范式必须要求一个数据库表中不包含已在其他表中已包含的非主关键字信息,非pk的字段间不能有从属关系。
二、SQL概述:
1、SQL: structure query language
SQL: 结构化查询语言
s:server,监听与套接字,接收并处理客户端的应用请求
c: client
sql解释器:
数据存储协议: 应用层协议,C/
客户端程序接口:CLI、GUI
2、应用编程接口:
ODBC:open database connectivity
JDBC:java data base connectivity
3、约束
约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行,必须提供数据,既not null ,一个表只能有一个
唯一键: 一个或多个字段的组合,体乳的数据必须能在本表中唯一标识本行,允许为null,一个表可以存在多个
外键: 一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查: 字段值在一定范围内
索引: 在表中的一个或多个字段中的数据复制一份另存,并切此些需要按特定次序排序存储44
关系运算: 选择:挑选出符合条件的行
投影:挑选出需要的字段
连接:标间字段的关联
4、数据模型:数据抽象:
物理层:数据存储的格式,既RDBMS在磁盘上如何组织文件
逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
视图层:用户角度,描述DB中的部分数据
5、关系模型的分类:
基于对象的关系模型
半结构化的关系模型:XML数据
6、mysql的发展历史:
1979年:TcX公司 Monty Widenius, Unirey
1996年:发布MySQL L1.0 Solaris 版本,linux版本
1999年:MySQL AB公司,瑞典
2003年:MySQL 5.0版本,提供视图,存储过程等功能
2008年:Sun收购
2009年:Oracle收购Sun
2009年:Monty成立MariaDB
7、MariaDB的特性:
插件式存储引擎,也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别,用户可根据需要灵活选择,mysql5.5.5开始innoDB引擎是mysql默认引擎
MyISAM= >Aria
InnoDB=> XtraDB
单进程、多线程
出多扩展和新特征
提供了较多测试组件
开源
三、概述二:
1、什么是数据库:
数据:描述事物的符号记录;可以是数字、文字、图形、声音、语言等。数据有多种形式,他们都有可以经过数字化后存入计算机。
数据库: 存储数据的仓库,是长期存放在计算机内、有组织的,可共享的大量的数据集合,数据库中的数据按照一定的数据模型组织,描述和存储,具有较小的冗余度,较高的独立性和以扩展性,并为各种用户共享,
数据库特点:
数据结构化
数据共享性、冗余度低、易扩充。
数据地理性高
数据由DBMS统一管理和控制(安全性,完整性,并发控制,故障恢复)
注释:DBMS数据库管理系统(能够操作和管理数据库的大型软件)
2、数据库和文件系统的区别:
文件系统:操作系统用于明确存储设备(常见的是磁盘)或分区上的文件方法和数据结构,既在存储设备上组织文件的方法;操作系统中负责管理和存储文件信息的软件机构为文件系统管理,简称文件系统
数据库系统:是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS,他对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
对比区别:
1、管理对象不同:文件系统管理对象是文件;并非直接对数据进行管理,不同的数据结构需要使用不精通的文件类型进行保存(举例:txt文件和doc文件不能通过修改文件名完成转换)而数据库直接对数据进行存储和管理。
2、存储方式不同:文件系统使用不同的文件将数据分类(.doc .mp4 .jpg)保存外部存储上,数据库系统使用标准统一的数据类型进行数据保存(字母、数字、符号、时间)
3、调用数据的方式不同:文件系统使用不同的软件打开不同类型文件,数据库系统由DBMS统一调用和管理
DBMS统一调用和管理,如下图:
优缺点总结:
由于DBMS的存在,用户不在需要了解数据存储和其他实现的细节。直接通过DBMS就能获取数据。为数据的使用带来极大的便利。
具有以数据为单位的共享性,具有数据的并发访问能力,DBMS保证了在并发访问时数据的一致性。
低延时访问,典型的例子就是线下支付系统的应用。支付闺蜜巨大的时候,数据库系统的表现远远优于文件系统。
能够频繁的对数据进行修改,在需要频繁修改数据的场景下。数据库系统可以依赖DBMS来对数据进行操作切对性能的消耗相比文件系统比较小。
对事物的支持;DBMS支持事务,既一系列对数据的操作集合要么都完成,要么都不完成。在DBMS上对数据的各种操作都是原子级的。
常见数据库类型:
关系型数据库是建立在关系模型基础上的数据库;借助于集合代数等数学概念和方式来处理数据库中的数据。现实世界中的各种实体之间的各种联系君用于关系型模型来表示,简单说;关系型数据库是由多张能互相连接的二维行列表格组成的数据库
关系模型就是指二维表格模型。因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有:oracle DB2 Microsoft SqlServer MySQL,浪潮的KDB等
实体关系型简称E-R模型;是一套数据库的设计工具,它运用真实世界中事物与关系的概念。来解释数据库中的抽象的数据结构,实体关系型模型利用图形(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论。
非关系型数据库:又称NOSQL,意为不仅仅是SQL,是一种轻量、,开源不兼容SQL的功能的数据库,对NOSQL最普遍的定义是非关联性,强调Key-Value存储和文档数据库的优点,而不是单纯的反对RDBMS(关系型数据库管理系统)
4、关系型数据库(MySQL)的特征及组成结构介绍。
关系型数据库的发展历程:层次模型:
网状模型:
关系模型(relation)
关系模型以二维表结构来表示实体与实体之间的联系,关系模型的数据结构是“二维表框架”组成集合,每个二维表又称为关系,在关系模型中,操作对象和结果都是二维表。
关系模型是目前最流行的数据库模型,支持关系模型的数据库管理系统称为关系数据库管理系统,ACCESS就是一种关系数据库管理系统,
关系型数据库的组成结构和名词解释:
数据以表格的形式出现,每行为单独的一条记录,每列为一个单独的字段,许多的记录和字段组成一张表单(table)若干的表单组成库(database)
记录(一条数据):在数据库当中,表当中的行称之为记录
字段(id name......)在数据库当中,表当中的列称之为字段。
5、MySQL数据类型:
数据类型用于指定字段所包含数据的规则;它决定了数据保存在字段的方式,包括分配给字段的宽度,以及值是否可以是字母,数字,日期和时间等。任何数据或数据的组合都有对应的数据类型,用于存储字母,数字,日期时间,图像,二进制数据等。数据类型是数据本身的特征,其特性被设置到表里的字段。
MySQL常见基础数据类型:
* 字符串类型(CHAB 0-255固定长度,VARCHAR 0-255可变长度)
* 数值类型(INT 整数型、FLOAT 浮点型)
* 日期和时间类型(DATE年月日,TIME时分秒)
mysql约束类型:
约束:约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。
主键约束:相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值,每个表最多只允许一个主键,建立主键约束可以列级别创建,也可以在表级别创建,当创建主键约束时,系统默认会在所有的列和列组合上建立对应的唯一索引。
外键约束: 保证一个或两个表之间的参照完整性,外键一构建一个表的两个字段或是两个表的两个字段之间的参照关系。
唯一约束: 唯一约束时指定table的列和列组合不能重复,保证数据的唯一性,唯一约束不允许出现重复的值,但是可以为多个null,同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一的约束时,如果不给唯一约束名称,就默认和列明相同,唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。
非空约束与默认值: 用于确保当前列的值不能为空值,只能出现在表对象的列上,Null类型特征,所有的类型的值都可以是Null,包括int、float等数据类型。
6、MySQL索引:
索引是一个单独的,物理的数据库结构,它是某个表中一字段或若干字段值的集合,表的存储由两部分组成,一部分用来存放数据,另一部分存放索引页面,通常,索引页面相当于对于数据页面来说小得多。数据检索花费的大部分开销是磁盘读写,没有索引就需要从磁盘上读表的每一个数据页,如果有索引,则只需要找索引页面就可以,所以建立合理的索引,就能加速数据的检索过程。
7、MySQL锁:
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时。在数据库中就会产生多个事务同时存取同一个数据的情况。若对并发操作不加控制就可能就会读取和存取不正确的数据。破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术,当事务对某个数据对象进行操作前,现象系统发出请求。对其加锁。加锁后事务就对数据对象有一定的控制。在该事物释放锁之前。其他的事务不能对此数据对象进行更新操作。
8、MySQL存储引擎:
就是存储数据,建立索引。更新查询数据等等技术的实现方式,存储引擎是基于表的,而不是基于库,所以存储引擎也可被称为表类型,oracle SQLserver等数据库只是一种存储引擎。MySQL提供了插件的存储引擎架构,所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎或者编写存储引擎。
MYISAM:默认支持;插入和查询速度较快,支持全文索引,不支持事务,行级锁和外键约束等功能。
INNODB:支持事务、行级锁和外键约束等功能。
MEMORY:工作在内存中,通过散列字段保存数据,速度快,不能永久保存数据。
9、事务是并发控制的基本单位:可以把一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不执行。
经典案例:
银行转账工作,从一个账号扣款并使用另一个账号增款,这两个操作要么都
执行要么都不执行,所以应该把它们看成一个事务,事务是数据库维护数据一致性的单
位,在每个事务结束时,都要保持数据的一致性。
END
声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!
推荐阅读
Recommended reading
Git JavaBBS
→
JavaBBS大数据
/dsj
JavaBBS云存储
/ycc
JavaBBS数据库
→
/sjk
JavaBBS云计算
/yjs
JavaBBSIT.Log
→
JavaBBSnginx
→
/ngx
JavaBBSzabbix
→
/zbx
JavaBBSJavaSE
→
/jse
JavaBBS社区文章
→
/bwz
JavaBBS社区资料
→
/bzl
以上是关于NO.A.0001.mysql/mariadb/概念介绍的主要内容,如果未能解决你的问题,请参考以下文章