MySQL基础教程

第一章: 环境搭建,安装MySQL

第二章: 掌握数据库的核心概念

第三章: MySQL服务与Show命令

第四章: 创建数据库与数据表

第五章: MySQL增查改删

第六章: MySQL常用函数

第七章: 在Python中操作MySQL

首页 > MySQL基础教程 > 第二章: 掌握数据库的核心概念 > 2.2节: 简单文件存储与DBMS

2.2节: 简单文件存储与DBMS

薯条老师 2021-03-26 08:18:11 234538 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python小班办得很好,学员的平均就业薪资有11K。线下小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

2.2.1 简单文件存储

硬盘数据库,其底层是以磁盘文件的方式来进行存储: 以文件为基本单位,实现数据的存储和共享。使用简单的文件存储,将程序和数据分离开来,使得程序和数据具备了一定的独立性。同学们考虑如下的一种场景,将程序中需要访问的数据,以json的格式写入到文件中。假设最初的json文件为如下的一种格式:

[
{
    "category": 0,
    "data": [{"name": "婴宁", "age": 18, "role": "狐仙" }]
},
{
    "category": 1,
    "data": [{"name": "江城", "age": 39, "role": "泼妇"}]
},
{
    "category": 2,
    "data": [{"name": "聂小倩", "age": 17, "role": "女鬼"}]
}
]

在以上的json格式中,定义了category字段来表示聊斋奇女子的类别,data字段储存了该类别下的数据集合。将程序中需访问的数据写入到json文件,程序运行时再进行读取,实现了一定程度上的数据独立性。这样设计的不足在于,程序运行时需要将文件中的内容全部读取到内存中,如果仅需要处理category为0的数据,那么就造成了资源的浪费。为解决这样的问题,可以按category进行分类,将不同类别的数据存储到不同的文件中。根据category来进行分类存储以后,json文件的逻辑结构也随之发生变化。

category为0的文件:

{
    "category": 0,
    "data": [{"name": "婴宁", "age": 18, "role": "狐仙" }]
}

category为1的文件:

{
    "category": 1,
    "data": [{"name": "江城", "age": 39, "role": "泼妇"}]
}

文件的逻辑结构发生变化以后,程序的逻辑也必须作出相应的修改,从这一个角度来看,文件的逻辑结构与程序存在很强的耦合性。此外,很难处理字段级别的查询,继续以上文的json文件为例,要查出所有name为婴宁的人,在不改变现有文件结构的前提下,需要将所有目录中的文件逐一读取到内存中,然后逐一判断name是否等于婴宁。 如果文件数量很大,那么此举会是一个非常耗时的查询过程。

简单的文件存储,存在诸多弊端,这种存储方式以文件为中心,尽管可以把数据组织成相互独立的文件,实现记录内的结构性,但整体却是无结构的,不能对文件进行结构化操作。

2.2.2 DBMS

DBMS是数据库管理系统的英文简写,是一种专门用来对数据进行管理和控制的系统软件,通过DBMS可以创建,使用,维护数据库。DBMS在文件系统的基础上发展而来,用户直接使用文件进行数据共享时,利用的是操作系统提供的接口来对文件进行读写操作。使用DBMS时,利用的是DBMS对外提供的接口来对数据进行处理。

DBMS在内部实现中,也是以文件来进行存储的,同简单文件存储的区别在于,DBMS在内部采用了复杂的数据模型来表示数据结构,真正的实现了以数据为中心的数据共享。DBMS就是程序员编写的一个复杂软件,它对数据进行集中的管理和控制,来保证数据的安全性和完整性。

2.2.3 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:




欢迎 发表评论: