永康建设局网站,WordPress菜单调用不出,北京公司建网站一般需要多少钱,我想在家给工厂加工活目录 一#xff0c; 什么是数据库
二#xff0c; 数据库管理系统(DBMS) 三#xff0c;数据库与文件系统的区别
1#xff0c;对比区别#xff1a;
2#xff0c;优缺点总结#xff1a;
四#xff0c;数据库的发展史
五#xff0c;常见数据库
1#xff0c; 关系型…目录 一 什么是数据库
二 数据库管理系统(DBMS) 三数据库与文件系统的区别
1对比区别
2优缺点总结
四数据库的发展史
五常见数据库
1 关系型数据库
2 非关系型数据库
六DBMS支持的数据模型
1层次模型
2网状模型
3关系模型
七MySQL简介
1MySQL的特性
2MySQL体系结构 一 什么是数据库 数据 描述事物的符号记录 可以是数字、 文字、图形、图像、声音、语言等数据 有多种形式它们都可以经过数字化后存入计算机。 数据库 存储数据的仓库是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储具有较小的冗余度较高的独立性和易扩展性并为各种用户共享总结为以下几点 1数据结构化
2数据的共享性高冗余度低易扩充
3数据独立性高
4数据由 DBMS 统一管理和控制安全性、完整性、并发控制、故障恢复 二 数据库管理系统(DBMS) 数据库系统成熟的标志就是数据库管理系统的出现。数据库管理系统(DataBase ManagermentSystem简称DBMS)是管理数据库的一个软件它充当所有数据的知识库并对它的存储、安全、一致性、并发操作、恢复和访问负责。是对数据库的一种完整和统一的管理和控制机制。数据库管理系统不仅让我们能够实现对数据的快速检索和维护还为数据的安全性、完整性、并发控制和数据恢复提供了保证。数据库管理系统的核心是一个用来存储大量数据的数据库。 DBMS是所有数据的知识库并对数据的存储、安全、一致性、并发操作、恢复和访问负责。 DBMS有一个数据字典有时被称为系统表用于贮存它拥有的每个事物的相关信息例如名字、结构、位置和类型这种关于数据的数据也被称为元数据metadata。 三数据库与文件系统的区别 文件系统 文件系统是操作系统用于明确存储设备常见的是磁盘或分区上的文件的方法和数据结构即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统简称文件系统。 数据库系统 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件用于建立、使用和维护数据库简称 DBMS。它对数据库进行统一的管理和控制以保证数据库的安全性和完整性。 1对比区别
1. 管理对象不同 文件系统的管理对象是文件并非直接对数据进行管理不同的数据结构需要使用不同的文件类型进行保存举例 txt 文件和 doc 文件不能通过修改文件名完成转换 而数据库直接对数据进行存储和管理。 2. 存储方式不同文件系统使用不同的文件将数据分类.doc/.mp4/.jpg 保存在外部存储上数据库系统使用标准统一的数据类型进行数据保存字母、 数字、符号、时间。 3. 调用数据的方式不同文件系统使用不同的软件打开不同类型的文件数据库系统由 DBMS 统一调用和管理。 2优缺点总结
1 由于 DBMS 的存在用户不再需要了解数据存储和其他实现的细节直接通过 DBMS 就能获取数据为数据的使用带来极大便利。
2具有以数据为单位的共享性具有数据的并发访问能力。 DBMS 保证了在并发访问时数据的一致性。
3低延时访问典型例子就是线下支付系统的应用支付规模巨大的时候数据库系统的表现远远优于文件系统。
4 能够较为频繁的对数据进行修改在需要频繁修改数据的场景下数据库系统可以依赖 DBMS 来对数据进行操作且对性能的消耗相比文件系统比较小。
5对事务的支持。 DBMS 支持事务即一系列对数据的操作集合要么都完成 要么都不完成。在DBMS上对数据的各种操作都是原子级的。 四数据库的发展史 初始阶段-----人工管理人力手工整理存储数据 萌芽阶段-----文件系统使用磁盘文件来存储数据 初级阶段-----第一代数据库出现了网状模型、层次模型的数据库 中级阶段-----第二代数据库关系型数据库和结构化查询语言 高级阶段------新一代数据库NOSQL型数据库 五常见数据库 1 关系型数据库 关系数据库是建立在关系模型基础上的数据库借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 简单说关系型数据库是由多张能互相联接的二维行列表格组成的数据库。 关系模型就是指二维表格模型 因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、MicrosoftAccess、MySQL、浪潮K-DB 、武汉达梦、南大通用、人大金仓等。 实体关系模型简称 E-R 模型是一套数据库的设计工具他运用真实世界中事物与关系的观念来解释数据库中的抽象的数据架构。实体关系模型利用图形的方式实体-关系图来表示数据库的概念设计有助于设计过程中的构思及沟通讨论。 2 非关系型数据库 非关系型数据库 又被称为 NoSQLNot Only SQL )意为不仅仅是 SQL 是一种轻量、开源、不兼容 SQL 功能的数据库 对 NoSQL 最普遍的定义是“非关联型的”强调 Key-Value 存储和文档数据库的优点而不是单纯地反对 RDBMS关系型数据库管理系统。 六DBMS支持的数据模型 1层次模型
若用图来表示层次模型是一棵倒立的树。在数据库中满足一下条件的数据模型称为层次模型
有且仅有一个节点无父节点这个节点称为根节点其他节点有且仅有一个父节点。桌面型的关系模型数据库2网状模型
在现实世界中事物之间的联系更多的是非层次关系的用层次模型表示非树型结构是很不直接的网状模型则可以克服这一弊病。网状模型是一个网络。在数据库中满足以下两个条件的数据模型称为网状模型。A.允许一个以上的节点无父节点B.一个节点可以有多于一个的父节点。
从以上定义看出网状模型构成了比层次结构复杂的网状结构适宜表示多对多的联系。 3关系模型
以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。从模型的三要素角度看关系模型的内容为
数据结构一张二维表格。
数据操作数据表的定义、检索、维护、计算等。
数据约束条件表中列的取值范围即域值的限制条件。 概念模型基于客户的想法和观点所形成的认识和抽象。
实体(Entity)客观存在的、可以被描述的事物。例如员工、部门。
属性(Attribute)用于描述实体所具有的特征或特性。如使用编号、姓名、工资等属性来描述员工的特征。 关系(Relationship)实体之间的联系。
一对一: 人 和 身份证
一对多: 班级 和 学生
多对多: 学生 和 课程 数据模型也叫关系模型是实体、属性、关系在数据库中的具体体现。
关系数据库用于存储各种类型数据的”仓库”是二维表的集合。
表实体的映射
行和列行代表一个具体的实体的数据。也叫一条记录。列是属性的映射用于描述实体的。
主键和外键。 七MySQL简介
MySQL是一个小型关系数据库管理系统开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年SUN又被Oracle以74亿美金收购。
目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低尤其是开放源代码这一特点许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 1MySQL的特性
使用C和C编写并使用了多种编译器进行测试保证源代码的可移植性。支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、 OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C、C#、Delphi、Eiffel、Java、Perl、PHP、 Python、Ruby和Tcl等。支持多线程充分利用CPU资源支持多用户。优化的SQL查询算法有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中也能够作为一个库而嵌入到其他的 软件中。提供多语言支持常见的编码如中文的GB 2312、BIG5日文的Shift_JIS等都可以用作数据表名和数 据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。可以处理拥有上千万条记录的大型数据库。2MySQL体系结构
Mysql是由SQL接口解析器优化器缓存存储引擎组成的。
Connectors指的是不同语言中与SQL的交互。
Management Serveices Utilities 系统管理和控制工具。
Connection Pool连接池。管理缓冲用户连接线程处理等需要缓存的需求。
SQL InterfaceSQL接口,接受用户的SQL命令并且返回用户需要查询的结果。比如select from就是调 用SQL Interface。
Parser 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。
Optimizer查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化。
Cache和Buffer 查询缓存。如果查询缓存有命中的查询结果查询语句就可以直接去查询缓存中取数 据。
Engine存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。 -- 查看最大连接数
showvariableslike%max_connections%; # 查询缓存配置情况
showvariableslike%query_cache%; 一条SQL语句执行流程
连接层 1提供连接协议TCP/IP 、SOCKET 2提供验证用户、密码IPSOCKET 3提供专用连接线程接收用户SQL返回结果 通过以下语句可以查看到连接线程基本情况 mysql show processlist; SQL层 1接收上层传送的SQL语句 2语法验证模块验证语句语法,是否满足SQL_MODE 3语义检查判断SQL语句的类型 DDL 数据定义语言 DCL 数据控制语言 DML 数据操作语言 DQL 数据查询语言 ... 4权限检查用户对库表有没有权限 5解析器对语句执行前,进行预处理生成解析树(执行计划),说白了就是生成多种执行方案. 6优化器根据解析器得出的多种执行计划进行判断选择最优的执行计划 代价模型资源CPU IO MEM的耗损评估性能好坏 7执行器根据最优执行计划执行SQL语句产生执行结果 执行结果在磁盘的xxxx位置上 8提供查询缓存默认是没开启的会使用redis tair替代查询缓存功能 9提供日志记录日志管理章节binlog默认是没开启的。
存储引擎层类似于Linux中的文件系统 负责根据SQL层执行的结果从磁盘上拿数据。 将16进制的磁盘数据交由SQL结构化化成表 连接层的专用线程返回给用户。