数据库基础

92 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情

一.数据库基础

什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?

文件保存数据有以下几个缺点:

1)文件的安全性问题 2)文件不利于数据查询和管理 3)文件不利于存储海量数据 4)文件在程序中控制不方便


数据库存储介质: 磁盘,内存,


为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据.数据库的水平是衡量一个程序员水平的重要指标

如何看待数据库:

软件角度:可以认为数据库是程序和磁盘之间的软件层,帮助用户更方便的进行文件管理.数据库实际上也是用文件保存数据的.

文件角度:数据库实际上是一个网络服务器,我们通过数据库客户端访问数据库服务器后台的数据库库表结构.

image-20221009214552316


问:mysql或者数据库,属于哪一个层的?

属于应用层,mysql不是OS内置的,需要我们自己安装,底层一定是直接或者间接访问OS的文件接口


服务器,数据库,表关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库,为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据 Mysql服务器的端口号为:3306,

数据库服务器、数据库和表的关系如下

image-20221010103346971


连接层干的事情:

1.用户验证 2.选择连接的协议(tcp,本地套接字) 3.创建线程对客户端进行服务

server层:

1.检查sql语句的语法 -> 比如sql语句的语法是否规范 2.语义分析 3.权限检查-查看当前用户是否有操作该表的权限

4.分析sql语句的查找方案,选出一个执行效率最高的方案 5.执行sql

server会将任务交给存储引擎,存储引擎去磁盘之中找到数据后,将其返回给server层

存储引擎

相当于Linux当前的文件系统,不同的存储引擎可以决定数据的存储方式,常用的有INNODB MyISAM