您现在的位置是:首页 > 编程 > 

面了个初级java,竟说不清什么是数据库?

2025-07-25 13:05:48
面了个初级java,竟说不清什么是数据库? 本文转载自:Hello 我是方才,8人后端研发leader、6年后端经验、年团队管理&架构经验。 专注于分享成体系的编程知识、职场经验、个人成长历程等! 文末,方才送你一份优质的技术资料,记得领取哟!最近方才面试了一个初级ava同学,聊到Mysql,我首先问了一句,什么是数据库?他说mysql就是数据库呀。。。回答得看似正确,实际也是一点毛病都

面了个初级java,竟说不清什么是数据库?

本文转载自:

Hello 我是方才,8人后端研发leader、6年后端经验、年团队管理&架构经验。 专注于分享成体系的编程知识、职场经验、个人成长历程等! 文末,方才送你一份优质的技术资料,记得领取哟!

最近方才面试了一个初级ava同学,聊到Mysql,我首先问了一句,什么是数据库?

他说mysql就是数据库呀。。。

回答得看似正确,实际也是一点毛病都没有。

不过这反应出这位同学,对数据库是没有一个认知的,没有理解数据库的本质。

今天方才简单聊聊,什么是数据库?如果对你有所启发,记得点赞关注哟。

那什么是数据库呢?

大白话讲解下就是:数据库就是按照一定的规则和结构,把数据组织管理起来,方便高效地对数据进行增删改查的软件程序。

再用小学生都能听懂的话理解下(直接看AI的回答了,嘿嘿):

image-2024122716522844

几个关键字对应着理解下,就很清晰了:

  • 按一定的规则和结构:比如说大盒子、抽屉、贴标签;
  • 把数据组织起来:把玩具放进对应标签的抽屉中;
  • 方便快速增删改查:根据标签,定位玩具,快速存放、拿取等等。

基于这个理解,其实稍微有点编程基础的伙伴,就可以自己开发一个简单的数据库系统(和mysql、Oracle这种比较起来,只是实现的功能很简单,增删改查效率很低而已)。

简单实现个数据库

方才就直接让AI,使用JavaScript实现了一个极简版的数据库;来动手感受下,其实数据库真没有很高大上。

下面的代码,就是包含了增删改查(CRUD)的基本功能的数据库:

代码语言:javascript代码运行次数:0运行复制
class SimpleDB {
    ctructor() {
        this.db = {};
    }

    // 增加记录
    insert(table, record) {
        if (!this.db[table]) {
            this.db[table] = [];
        }
        this.db[table].push(record);
    }

    // 查询记录
    find(table, query) {
        return this.db[table].filter(record => {
            for (let key in query) {
                if (record[key] !== query[key]) {
                    return false;
                }
            }
            return true;
        });
    }

    // 更新记录
    update(table, query, updateData) {
        ct records = this.find(table, query);
        records.forEach(record => {
            for (let key in updateData) {
                record[key] = updateData[key];
            }
        });
    }

    // 删除记录
    remove(table, query) {
        this.db[table] = this.db[table].filter(record => {
            for (let key in query) {
                if (record[key] === query[key]) {
                    return false;
                }
            }
            return true;
        });
    }
}

// 使用示例
ct db = new SimpleDB();

// 插入数据
db.insert('users', { id: 1, name: '方才', age: 25 });
db.insert('users', { id: 2, name: '方才呀', age: 0 });

// 查询数据
cole.log(db.find('users', { name: '方才' })); // 查名为【方才】的用户

// 更新数据
db.update('users', { id: 1 }, { age: 26 }); // 更新ID为1的用户的年龄

// 删除数据
db.remove('users', { id: 2 }); // 删除ID为2的用户

// 查看更新后的数据
cole.log(db.db);

这个一个简单的数据库就实现了,提供基本的CRUD操作:

  • insert(table, record):向指定的表中插入一条记录。
  • find(table, query):根据查询条件在指定的表中查记录。
  • update(table, query, updateData):根据查询条件更新指定表中的记录。
  • remove(table, query):根据查询条件删除指定表中的记录。

运行的效果:

代码语言:javascript代码运行次数:0运行复制
[ { id: 1, name: '方才', age: 25 } ]
{ users: [ { id: 1, name: '方才', age: 26 } ] }

是不是很简单,哈哈。

其实MySQL数据库也是类似是的,只是底层管理数据的数据结构更加复杂,数据文件间的组织更加复杂,实现了一套标准的增删改查语法糖而已。

参考回答

回到开头的题目,方才会这样去回答:什么是数据库?

数据库就是按照一定的规则和结构,把数据组织管理起来,方便高效地对数据文件进行增删改查的软件程序。

不同类型的数据库系统,只是数据组织的规则和结构不同,以及提供的增删改查交互不同而已,比如说关系型数据库 Mysql 以逻辑概念 库、表、字段对数据进行管理,非关系型数据库 Redis 以key-value的形式对数据进行管理。

(ps:如果你了解更底层的内容,还可以去引导下面试官后续的发问)在深入点,比如说在MySQL底层,使用Innodb引擎,将表数据索引构建为B+树,以提高对数据的增删改查操作的效率;记录 redo log 实现了事务的持久性, undo log 实现了事务的原子性和一致性,通过MVCC+锁机制,实现了事务的隔离性。本质都是对数据的管理。

后续预告

不知道今天的分享是否对你有所帮助,记得评论中告诉方才哟。

后续方才,也会持续输出完整的MySQL系列+面试内容,期望能帮大家建立一个完整的知识体系。

本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-12-0,如有侵权请联系 cloudcommunity@tencent 删除管理事务数据java数据库

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1206445.html

相关标签:无
上传时间: 2025-07-24 10:26:57
留言与评论(共有 13 条评论)
本站网友 成妖记
19分钟前 发表
还可以去引导下面试官后续的发问)在深入点
本站网友 空耳
12分钟前 发表
那什么是数据库呢? 大白话讲解下就是:数据库就是按照一定的规则和结构
本站网友 玉米煮多久就熟了
13分钟前 发表
[ { id
本站网友 男士减肥方法
1分钟前 发表
方才送你一份优质的技术资料
本站网友 中韩
3分钟前 发表
方便高效地对数据文件进行增删改查的软件程序
本站网友 番禺seo
15分钟前 发表
以提高对数据的增删改查操作的效率;记录 redo log 实现了事务的持久性
本站网友 塔西陀陷阱
10分钟前 发表
只是底层管理数据的数据结构更加复杂
本站网友 两性常识
0秒前 发表
record):向指定的表中插入一条记录
本站网友 古田租房
22分钟前 发表
回答得看似正确
本站网友 火车退票规定
10分钟前 发表
26 }); // 更新ID为1的用户的年龄 // 删除数据 db.remove('users'
本站网友 今天是农历几月几号
25分钟前 发表
记得点赞关注哟
本站网友 广百新一城
8分钟前 发表
基于这个理解