【数据库私房菜 | 01】面试家常菜——数据库原理

🗺️博客地图

📍一、数据库

🖈(一)数据库定义

🖈(二)数据库特点

🖈(三)数据库分类

🖈(四)数据库模型

📍二、SQL语句

🖈(一)SQL定义

🖈(二)SQL类型

📍三、关系型数据库存储结构

🖈(一)关系型数据库存储逻辑关系

🚩1、文件的逻辑关系

🚩2、数据库逻辑关系

🖈(二)关系型数据库MySQL存储引擎

🚩1、MyISAM

🚩2、InnoDB

🚩3、MEMORY

🖈(三)数据库的管理器系统

🚩1、存储管理器

🚩2、查询管理器

🖈(四)数据库的工作方式

🚩1、MySQL工作方式

🚩2、MySQL线程分类

📍四、数据库的优化方案

📍五、关系型数据库MySQL缺点


一、数据库

(一)数据库定义

1、概念

数据库(Database)指的是以一定的方式存在一起、能为多个用户共享、具有尽可能小冗余度的特点、与应用程序彼此独立的数据集合。这种数据集合具有的特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。数据库产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

2、文件系统管理数据库存在的问题

> 数据冗余性和不一致性

> 数据访问困难

> 数据相对独立

> 完整性和原子性问题

> 并发访问异常

> 安全性问题

(二)数据库特点

> 实现数据共享

> 减少数据的冗余度

> 数据实现集中控制

> 数据的一致性

> 故障恢复

(三)数据库分类

1、关系型数据库

大型:

Oracle        收费        国外

DB2        收费        国外

SQLserver        收费        国外

达梦数据库        收费        国内

中型:

MySQL        收费/开源        国外

MariaDB        开源        国外

2、非关系型数据库

大型:

Redis        收费/开源        国外

(四)数据库模型

1、层次模型:

按照层次结构的形式组织数据库数据的模型

缺点:拥有大量的冗余数据  (IMS)

2、网状模型:

按照网状结构的形式组织数据库数据的模型

缺点:后期维护困难 (DBTG)

3、关系模型(RDBMS:Relational Database Management System)

按照数据关系的形式组织数据库数据的模型

DBMS(Database Management System):数据库管理系统

4、E-R 模型

实体( Entities )

属性( Attributes )

关系( Relationships )

E-R 图

E-R 图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;

用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。

二、SQL语句

(一)SQL定义

结构化查询语言 ( Structured Query Language ) 简称 SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;最早诞生于 IBM SYSTEM R 操作系统之上。

(二)SQL类型

DQL:数据查询语言,用于从数据库中检索数据,主要使用SELECT语句,包括条件筛选、排序和聚合等操作。 < select >

DML:数据操作语言,操作数据库中数据的命令,用于对数据库的表中的数据进行增删改的操作,包括INSERT、UPDATE、DELETE语句。 < select  insert update  delete >

DDL:数据库描述语言,用于定义数据库结构和对象,如创建、修改、删除数据库、表、列索引等,建立数据库、定义数据关系,包括CREATE、DROP、ALTER语句。 < create   drop >

DCL:数据库控制语言,用于控制用户对于数据库中数据的访问权限,包括授权GRANT、撤销权限REVOKE等。 < grant >

TCL:事务控制语言,用于控制数据库中的事务操作,如BEGIN TRANSACTION、COMMIT、ROLLBACK等。< begin transaction   commit   rollback >

三、关系型数据库存储结构

(一)关系型数据库存储逻辑关系

1、文件的逻辑关系

        上层:逻辑方式保存的文件

        底层:数据块的方式以二进制的形式存储在硬盘

        中间层:文件系统

2、数据库逻辑关系

        上层:数据表

        底层:逻辑方式保存的文件

        中间层:存储引擎

存储引擎:存储数据、建立索引以及更新和查询数据等技术的实现方法

(二)关系型数据库MySQL存储引擎

1、MyISAM

MySQL 默认存储引擎,诞生即存在,插入和查询数据较快。不支持事务、行级锁以及外键约束等功能。

锁:行级锁( InnoDB )、表级锁( MyISAM )、页级锁( DBD )

约束:域约束、外键约束

2、InnoDB

MYSQL在2008年被oracle收购后,从5.5版本开始采用此存储引擎。支持事务、行级锁以及外键约束等功能,相对于 MyISAM 更快。

3、MEMORY

运行在内存中,使用 hash 索引,数据存取速度非常快。但是数据不能持久化,适用于缓存。

(三)数据库的管理器系统

1、存储管理器

通过数据描述语言( DDL )来创建表的结构,在通过数据操作语言( DML )来保存 SQL 语句产生的数据的数据库组件。

① 权限及完整性管理器:用于用户的权限管理

② 事务管理器:保障事务操作

③ 文件管理器:读取底层文件系统,进行文件读取、存储

④ 缓冲区管理器:决定一次性加载多少数据至内存

2、查询管理器

接收用户的查询请求,理解查询请求,并将请求提交给存储管理器的数据库组件

① DDL 和 DML 解释器

② 查询执行引擎

(四)数据库的工作方式

1、MySQL工作方式

单进程多线程的工作模式,每个线程维持一个连接

2、MySQL线程分类

① 守护线程:MySQL 不需要跟用户进行交互

② 应用线程:MySQL 需要跟用户进行交互

四、数据库的优化方案

1、SQL语句方面:

①创建示图

②创建索引关联

2、架构方面

①垂直扩展

优点:不需要更改网络架构

缺点:性能瓶颈(机器的性能到达顶峰或者软件的调用性能达到顶峰)

②水平扩展

优点:能够支撑并发更高

缺点:需要更改网络架构,技术实现要求高

注:垂直扩展和水平扩展并未给集群减压,而是将压力分担。

3、缓存服务器

建立缓存服务器,减少当前服务器的压力

4、线程重用

      线程创建出来后,和第一个用户连接,第一个用户使用结束后,该线程通过占用内存资源继续存在,当其他用户访问时,可以直接连接该线程,不用重新创建该线程

       优点:降低用户连接数据库的开销

       缺点:可能会占用内存

5、分区、分表、读写分离

分库:把不同的数据库放在不同的数据库管理系统之中。

分表:非常难实现,需要区分业务之间的关联,阿里花费8年,才完成分表,可见难度之大。

五、关系型数据库MySQL缺点

MySQL采用 SMP 对称多处理器结构:

如果当前访问量为1,并且该访问者做大量的数据查询,只能调用一个 CPU 进行处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木子Linux

各位看官老爷,行行好

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

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

打赏作者

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

抵扣说明:

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

余额充值