数据库基础面试一

1.数据库基础

1.概念:

常见说法:存储和操作数据的仓库; 专业说法:用于存储数据和操作数据的文件系统

本质:一个文件系统,操作数据就是操作文件(IO操作)

数据库分为两种:关系型数据库(RDBMS)和非关系型数据库(NoSQL)

关系型数据库:

基于二维表来存储

1.行,通过约束(Constraints)事务(ACID)来实现完整性

2.列,通过定义数据类型(如INTVARCHAR)和约束(如NOT NULLUNIQUE)限制数据的输入格式和范围

3.表之间通过主键与外键建立关系(如一对一、一对多),支持JOIN操作关联数据。

4.选择条件,需要强事物,复杂查询,数据一致性优先

非关系型数据库:

  • 灵活的数据模型:支持多种形式,如键值对(Key-Value)、文档(Document)、列族(Column Family)、图(Graph)等。
  • 无固定模式(Schema-less):数据可以动态扩展字段,适合半结构化或非结构化数据。
  • 选择条件:数据量大、结构多变、高并发写入、拓展性优先

2.内容

1.关于主键生成(雪花算法)

概念:

一种分布式环境下生成全局唯一ID的常用方案。它的核心是通过:时间戳+机器ID+序列号组合成一个趋势递增且不重复的数值型主键

2.存储过程

除开银行系统可能会使用存储过程,之外的大多都是禁止使用存储过程(阿里开发)

理由如下:

1.维护成本高

  • 逻辑分散:业务逻辑分散在应用代码和数据库中,导致代码库碎片化,增加维护复杂度。
  • 调试困难:存储过程的调试工具有限(如断点、日志追踪),错误排查效率低。
  • 版本控制难:存储过程通常不纳入Git等版本控制系统,协作时容易引发冲突。

2.移植性差

  • 数据库方言差异:不同数据库(MySQL、Oracle、PostgreSQL)的存储过程语法差异大,迁移成本高。
  • 绑定数据库厂商:存储过程深度依赖数据库特性,更换数据库时需重写逻辑。

3.拓展性下降

  • 计算能力瓶颈:数据库的CPU和内存资源有限,复杂业务逻辑可能导致性能问题。
  • 难以水平扩展:存储过程运行在数据库服务器上,无法像应用服务器一样轻松扩容。

3.触发器

概念:

一种特殊的存储过程

作用:在对表中数据进行增删改查之后(之前)的时机,触发一些事件比如:记录日志,校验数据等

posted @ 2025-03-10 10:09  留梦&  阅读(25)  评论(0)    收藏  举报