数据库第一天 TAT

第一章 数据库

1.1 什么是数据库

数据:描述事物的符号记录,可以是数字、 文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。

数据库:存储数据的仓库,是长期存放在计算机内、有组织,可共享的大是数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
1、数据结构化
2、数据的共享性高,冗余度低,易扩充数据独立性高
3、数据由 DBMS 统一管理和控制(安全性、完整性、并发控制、故障恢复)

1.2 数据库管理系统(DBMS)

数抿库系统成熟的标志就是:数据库管理系统的出现,数据库管理系统(DataBase ManagermentSystem,简称DBMS)是管理数据库的一个软件,它充当所有数据的知识库,并对它的存储,安全、一致性、并发操作,恢复和访问负责,是对数据库的一种完整和统一的管理和控制机制。数据库管理系统不仅让我们能够实现对数据的快速检素和维护,还为数据的安全性,完整性、并发控制和数据恢复提供了保证,数据库管理系统的核心是一个用来存储大量数据的数据库。

DBMS是所有数据的知识库,并对数据的存储、安全、一致性、并发操作、恢复和访问负责。

DBMS有一个数据字典(有时被称为系统表),用于贮存它拥有的每个事物的相关信息,例如名字、结构、位置和类型,这种关于数据的数据也被称为元数据(metadata)在这里插入图片描述

1.3 数据库与文件系统的区别

文件系统:文件系统是操作系统用于明确存法设备(常讯的是磁盘)或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
数据库系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS,它对数据库讲行统一的管理和控制,以保证数据库的安全性和完整性
对比区别:
1.管理对象不同:文件系统的管理对象是文件,并非直接对数据进行管理,不同的数据结构需要使用不同的文件类型进行保存(举例:
txt文件和doc文件不能通过修改文件名完成转换):而数据库直接对数据进行存储和管理
2.存储方式不同:文件系统使用不同的文件将数据分类(doc/mp4/jpg)保存在外部存储上;数据库系统使用标准统一的数据类型进
行数据保存(字母、数字、符号、时间)
3.调用数据的方式不同:文件系统使用不同的软件打开不同类型的文件;数据库系统由DBMS统一调用和管理。
在这里插入图片描述
优缺点总结:
1、由于DBMS的存在,用户不再需要了解数据存储和其他实现的细节,直接通过DBMS就能获取数据,为数据的使用带来极大便利。。具有以数据为单位的共享性,具有数据的并发访问能力。DBMS保证了在并发访问时数据的一致性。
2、低延时访问,典型例子就是线下支付系统的应用,支付规模巨大的时候,数据库系统的表现远远优于文件系统。
。能够较为频繁的对数据进行修改,在需要频繁修改数据的场景下,数据库系统可以依赖DBMS来对数据进行操作且对性能的消耗相比文件系统比较小。
3、对事务的支持。DBMS支持事务,即一系列对数据的操作集合要么都完成,要么都不完成。在DBMS上对数据的各种操作都是原子级的。

1.4 数据库的发展史

初始阶段----人工管理:人力手工整理存储数据
萌芽阶段----文件系统:使用磁盘文件来存储数据
初级阶段-----第一代数据库:出现了网状模型,层次模型的数据库
中级阶段----第二代数据库:关系型数据库和结构化查询语言
高级阶段------新一代数据库:NOSOL型数据库

1.5 常见的数据库
1.5.1 关系型数据库

关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。

关系措型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有 OracleDB2、Microsoft SQL ServerMicrosoftAccessMySQL、浪潮K-DB、武汉达梦、南大通用、人大金仓等。

实体关系模型简称E-R模型,是一套故抿库的设计工具,他运用真实世界中事物与关系的理令,来解释数据库中的抽象的数据架构,实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论。

1.5.2 非关系型数据库

非关系型数据库:又被称为NoSQL(NotOnlySQL),意为不仅仅是SQL,是一种轻量、开源、不兼容SOL功能的数据库,对NoSQL最普遍的定义是“非关联型的”,强调 Key-Value存储和文档数据库的优点,而不是单纯地反对RDBMS(关系型数据库管理系统)。

1.6 DBMS支持的数据模型
在这里插入图片描述
层次模型
若用图来表示,层次模型是一棵倒立的树。在数据库中,满足一下条件的数据模型称为层次模型:
1、有且仅有一个节点无父节点,这个节点称为根节点
2、其他节点有且仅有一个父节点。桌面型的关系模型数据库
在这里插入图片描述
在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构是很不直接的,网状模型则可以克服这一弊病。网状模型是一个网络。在数据库中,满足以下两个条件的数据模型称为网状模型。A.允许一个以上的节点无父节点:B.一个节点可以有多于一个的父节点。
从以上定义看出,网状模型构成了比层次结构复杂的网状结构,适宜表示多对多的联系。
在这里插入图片描述
关系模型
以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。从模型的三要素角度看,关系模型的内容为:
数据结构:一张二维表格。
数据操作:数据表的定义、检索、维护、计算等。
数据约束条件:表中列的取值范围即域值的限制条件。
在这里插入图片描述
**概念模型:**基于客户的想法和观点所形成的认识和抽象。
实体(Entity):客观存在的、可以被描述的事物。例如员工、部门。
属性(Attribute):用于描述实体所具有的特征或特性。如使用
编号、姓名、工资
等来属性来描述员工的特征。
关系(Relationship):实体之间的联系
一对一:大和身份证
一对多:班级和学生
多对多:学生和课程
**数据模型:**也叫关系模型,是实体、属性、关系在数据库中的具体体现。
**关系数据库:**用于存储各种类型数据的“仓库”,是二维表的集合。
**表:**实体的映射
**行和列:**行代表一个具体的实体的数据。也叫一条记录。列是属性的映射,用于描述实体的。
主键和外键。
在这里插入图片描述
1.7 运维对数据库的要求
程序员对数据库要求

基本的SQL操作、CRUD操作
多表连接查询、分组查询和子查询
常用数据库的单行函数
常用数据库的基本命令
常用数据库的开发工具
事务概念
索引、视图、存储过程和触发器

运维对数据库的要求
部署环境
数据库安装、参数设置、权限分配
备份|还原
监控
故障处理
性能优化
容灾
升级/迁移
系统用户反馈的数据库问题
数据库运维工作总原则

1、能不给数据库做的事情不要给数据库,数据库只做数据容器。
2、对于数据库的变更必须有记录,可以回滚。
1.8 MySQL简介
MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被 Oracle以74亿美金收购。

目前MvSOL被广泛地应用在Internet上的中小型网站中,由干体积小、速度快,总体拥有成本低,尤其是开放源代码这一特点,许多中小
型网站为了降低网站总体拥有成本而选择了MySOL作为网站数据库。

1.8.1MySQL的特性

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
2.支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OSNovell NetwareNetBSDOpenBSD
OS/2 WrapSolarisSunOSWindows等多种操作系统。
3.为多种编程语言提供了API。这些编程语言包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP Python、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源,支持多用户
5.优化的SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多字符集支持,常见的编码如中文的GB2312、BIG5,日文的Shift|IS等都可以用作数据表名和数据列名。
8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.可以处理拥有上千万条记录的大型数据库。

1.9 MySQL获取

版本介绍:
Alpha版:开发版,公司内部使用
Beta版:完成开发后,用户体验版
RC版:生产环境发布之前的一个小版本或称候选版
GA版:正式发布版本
MySQL官网地址:http://www.mysql.com/
从官方网站下载安装包
从官方网站下载源代码包
从官方网站下载二进制包
MySQL 常见版本:
MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
MySOL Enterprise Edition企业版本,需付费,可以试用30天。
MySQL Cluster集群版,开源免费。可将几个MySQLServer封装成一个Server。
MySQLCluster CGE 高级集群版,需付费

1.10 MySQL在企业中的应用
数据库排名:http://db-engines.com/en/rangking
在这里插入图片描述
适用场景:
互联网公司web网站系统、数据仓库系统、日志记录系统、嵌入式系统
MySQL典型用户:
google、雅虎、腾讯、北电、思科、YouTube、SecondLife 百度、优酷网、新浪、中国电子科学研究院
数商3.0、一大把、哈票网、短信网关、IP通讯
在这里插入图片描述

MySQL在晕中普遍应用:
在这里插入图片描述
1.11 MySQL的体系结构
Mysgl是由SQL接口,解析器,优化器,缓存,存储引擎组成的
Connectors指的是不同语言中与SOL的交互
Management Serveices&Utilities:系统管理和控制工具
Connection Pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求
SOLInterface:SOL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如selectfrom就是调用SQL Interface
Parser::解析器。SOL命令传递到解析器的时候会被解析器验证和解析。
Optimizer:查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化。
Cache和Buffer:查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据.
Engine:存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。
在这里插入图片描述
在这里插入图片描述
-----查看最大连接数
show variable like ‘%max_connections%’:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
一条SQL语句执行流程:
连接层
(1)提供连接协议:TCP/IP、SOCKET(2)提供验证:用户、密码,IP,SOCKET
(3)提供专用连接线程:接收用户SQL,返回结果通过以下语句可以查看到连接线程基本情况

mysq1> show processlist;

SQL层
(1上传送的SQL语句
(2)语法验证模块:验证语句语法,是否满足SQL_MODE
(3)语义检查:判断SQL语句的类型
DDL :数据定义语言
DCL :数据控制语言
DML :数据操作语言
DQL:数据查询语言

(4)权限检查:用户对库表有没有权限
(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.
(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划
代价模型:资源(CPUIOMEM)的耗损评估性能好坏
(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果执行结果:在磁盘的*xxx位置上
(8)提供查询缓存(默认是没开启的),会使用redistair替代查询缓存功能(9)提供日志记录(日志管理章节):binlog,默认是没开启的。

存储引擎层(类似于Linux中的文件系统)
负责根据SQL层执行的结果,从磁盘上拿数据。将16进制的磁盘数据,交由SQL结构化化成表连接层的专用线程返回给用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WHearTBeat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值