第一章 数据库

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结构化化成表连接层的专用线程返回给用户。

数据库第一天 TAT相关推荐

  1. 数据库 第一章 绪论

    1 数据库系统概述 1.1 数据库的4个基本概念 1.数据(Data) 数据(Data)是数据库中存储的基本对象 数据的定义 描述事物的符号记录 2.数据库(Database) 数据库的定义 数据库( ...

  2. 借“核高基”东风 打造国产数据库第一品牌

    "韶华休笑本无根,好风凭借力,送我上青云."这是曹雪芹<红搂梦>中咏柳的名句,用来形容国产数据库厂商人大金仓CEO任永杰博士现在的心情最为合适. 长久以来,中国的基础软 ...

  3. 达梦数据冲刺A股市场“国产数据库第一股”;我国《AI对话系统分级定义》正式发布;“数字孪生应用技术员”成为新职业 | 每日大事件...

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 01.达梦数据冲刺科创板 或将成为A股市场"国产数据库第一股" 6月29日,武汉达梦数据库股份有限公司(下称"达梦数 ...

  4. 国产数据库“第一股”拟上市,22年试炼场终“达梦”

    6月29日,武汉达梦数据库股份有限公司(以下简称「达梦数据」)正式递交招股书,申请上交所科创板上市.一旦上市成功,将成为国产数据库"第一股". 犹如一颗重磅"信号弹&qu ...

  5. 5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)

    这是关于五天学习MYSQL数据库的笔记,如果想要观看视频可以访问(视频链接(b站) 或者访问视频链接 之前的笔记已经记到了1.3的mysql基本介绍,接下来主要是: 2.1MySQL服务端框架 一. ...

  6. mysql查询数据库第一条记录_SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)...

    Sqlserver 获取每组中的第一条记录 在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组 ...

  7. DrLLPS (相分离数据库): 第一个注释全面的液液相分离相关蛋白质数据库 (liquid-liquid phase separation database)

    DrLLPS (相分离数据库): a data resource of liquid-liquid phase separation in eukaryotes--第一个注释全面的液液相分离相关蛋白质 ...

  8. Oracle数据库-第一章:select语句,数据查询操作

    前言: 1.一个认知 认知什么是oracle? oracle:商业运用第一的关系型数据库 实质:关系型数据库 了解oracle数据库发展历史(文档) 2.二个概念 数据库:数据存储的仓库 关系型数据库 ...

  9. oracle数据库系统中启动数据库第一步,Oracle数据库基础题库【含答案】

    一. 判断题,正确请写写\,错误请写写\, 1.oracle数据库系统中,启动数据库的第一步是启动一个数据库实例.( T )2.Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客 ...

最新文章

  1. Google和微软分别提出分布式深度学习训练新框架:GPipe PipeDream
  2. SQL操作的组成部分-数据控制
  3. 零基础python入门书籍-浅谈零基础自学python入门书
  4. 几个极品笑话,放松下心情
  5. 你为什么薪水那么低(二)之 生产力
  6. jQuery图表插件 JS Charts
  7. android 通知打开app,Android打开通知栏并回到主页的几种方式
  8. Qt::FocusPolicy的使用
  9. 新建模块 pom.xml依赖无法识别_使用模块依赖关系,第2部分
  10. Netty5+Jboss(Marshalling)完成对象序列化传输
  11. python3.x编程模板总结
  12. php把日期转成时间戳,php如何把日期转为时间戳
  13. 【自动化】Python脚本selenium库完成自动创建汇联易账号
  14. Android Jetpack组件(九)DataStore
  15. Linux远程登录和多机操作
  16. 读书笔记之稻盛和夫自传
  17. 第十一节:分布式文件系统
  18. 每天读一点职场心理学读书笔记
  19. 【深度学习】更大规模的完整视频理解
  20. 一文搞懂ECU休眠唤醒之利器-TJA1145

热门文章

  1. 手机访问电脑文件ftp服务器,怎么用手机直接访问电脑上的视频文件图片等?
  2. 2.5、信道的极限容量!
  3. 台式计算机功率是多少瓦,台式电脑电源功率多大才合适?组装电脑选购电源功率瓦数指南...
  4. Hadoop期末总结
  5. 程序猿口中的hook是什么意思?
  6. 〖产品思维训练白宝书 - 产品思维认知篇⑤〗- 学习 [产品思维] 需要做哪些准备?
  7. 学linux好找工作吗?未来可以从事什么岗位?
  8. GBase 8s基本数据类型
  9. 校招Java后端开发面经专栏——序
  10. java around_基于Annotation的Spring AOP: @Around | 学步园