数据库的英语是 “Database”。
这个词其实是个组合词,由 “Data” 和 “Base” 组成。”Data” 就是数据,”Base” 在这里可以理解成基地或者仓库。所以,”Database” 字面意思就是存放数据的仓库。
刚开始接触这东西的时候,很多人会把它跟 Excel 表格搞混。确实,它们看起来有点像,都是一行一行、一列一列地存数据。但它们完全是两码事。Excel 文件通常就是单个文件,适合个人或者小团队处理少量数据。比如,你拿来记个账,或者做个简单的客户列表,Excel 很好用。
但是,当数据量变得很大,比如成千上万条,甚至上百万、上亿条的时候,Excel 就跑不动了,打开一个大文件可能电脑就卡死了。更关键的是,如果需要很多人同时访问和修改这些数据,Excel 根本处理不了,很容易就把文件搞坏。
这时候就需要数据库了。数据库是一个专门用来管理数据的系统,它能高效、安全地存储和处理海量数据。你可以把它想象成一个巨大的、管理得井井有条的电子仓库,背后有一套非常复杂的软件系统在支撑。这个系统叫数据库管理系统(DBMS),英文全称是 Database Management System。我们平常说的 MySQL、Oracle、SQL Server 这些,其实指的都是 DBMS。
所以,一个完整的数据库系统通常包括三个部分:数据库本身(存储数据的地方)、数据库管理系统(管理数据的软件)和应用程序(用来跟数据库交互的软件)。
数据库的种类
数据库分很多种,最常见的一种叫关系型数据库(Relational Database)。这种数据库是把数据存在一个个二维表(Table)里,就像 Excel 那样。每个表有很多行(Row)和列(Column)。比如,一个“学生表”里,每一行代表一个学生,每一列代表一种信息,比如“学号”、“姓名”、“年龄”。
这些表之间还可以建立关联。比如,我们还有一个“成绩表”,里面存着“学-号”和对应的“课程分数”。通过“学号”,我们就能把“学生表”和“成绩表”关联起来,这样就能查到一个具体学生的成绩了。这种通过关系把数据组织起来的方式,是关系型数据库的核心。
关系型数据库很有名,因为它的理论基础很扎实,数据一致性做得特别好。所谓数据一致性,就是能保证数据是准确、不会出错的。比如,你在银行转账,账户 A 扣了 100 块,账户 B 就必须同时增加 100 块,不能只发生一半。关系型数据库通过一种叫做“事务”(Transaction)的机制来保证这一点。
常见的关系型数据库有:
MySQL: 这是最流行的开源数据库,很多网站和应用都在用,特别是中小型公司。它免费、速度快,而且社区很活跃。
PostgreSQL: 这也是一个开源数据库,很多人觉得它在功能上比 MySQL 更强大,特别是在处理复杂查询和保证数据强一致性方面。
Oracle Database: 这是一个商业数据库,非常强大和稳定,但价格也很贵。一般只有大型企业,特别是银行、金融这类对数据安全和稳定性要求极高的公司才会用。
SQL Server: 这是微软开发的数据库,主要用在 Windows 服务器环境里,跟微软自家的其他产品结合得很好。
SQLite: 这是一个非常轻量级的数据库,它不是一个独立的服务器,而是一个嵌入到应用里的文件。很多手机 App 和小型桌面软件都用它来存数据。
除了关系型数据库,还有一类叫 NoSQL 数据库。NoSQL 的意思不只是“No SQL”,更准确的说法是 “Not Only SQL”。这类数据库不是用传统的表结构来存数据,而是用其他形式,比如键值对(Key-Value)、文档(Document)、列式存储(Column-family)或者图形(Graph)。
NoSQL 数据库的出现,主要是为了解决关系型数据库在处理超大规模数据和高并发访问时遇到的一些问题。比如,社交网络每天会产生海量的数据,而且数据格式可能很不规整,用关系型数据库来处理就比较吃力。
NoSQL 数据库的优点是扩展性好,可以很容易地增加更多服务器来分摊压力,而且读写速度通常很快。但是,它在数据一致性上通常会做出一些妥协。
常见的 NoSQL 数据库有:
MongoDB: 这是一个文档数据库,它把数据存成类似 JSON 的格式,非常灵活,很适合那些数据结构经常变化的应用。
Redis: 这是一个键值数据库,数据都存在内存里,所以读写速度极快。通常用作缓存(Cache),来减轻主数据库的压力。
Cassandra: 这是一个列式数据库,最初由 Facebook 开发,用来处理海量的写入操作,可用性非常高,即使部分服务器挂了也不影响服务。
跟数据库打交道的语言:SQL
要操作关系型数据库,你需要用一种专门的语言,叫做 SQL,全称是 Structured Query Language,中文就是“结构化查询语言”。
SQL 是一种声明式语言,意思是你只需要告诉数据库你“想要什么”,而不用告诉它“具体怎么做”。比如,你想从“学生表”里找出所有姓“张”的学生,你只需要写一条 SQL 查询语句就行,数据库自己会想办法把结果找出来给你。
SQL 主要包含四个基本操作,正好对应增、删、改、查,有个专门的缩写叫 CRUD:
Create (创建): 在数据库里增加新的数据。对应的 SQL 命令是 INSERT。
Read (读取): 从数据库里查询数据。这是最常用的操作,对应的 SQL 命令是 SELECT。
Update (更新): 修改数据库里已经存在的数据。对应的 SQL 命令是 UPDATE。
Delete (删除): 从数据库里删除数据。对应的 SQL 命令是 DELETE。
这四个操作是所有数据库应用的基础。不管你用的是什么复杂的系统,归根结底都是在对数据进行这几种操作。
学习 SQL 是跟数据库打交道的第一步。它语法不复杂,入门很快。比如,SELECT FROM a_table_name; 这条命令就能把一个表里所有的数据都查出来。
数据库相关的职业
在 IT 行业里,有很多岗位都跟数据库直接相关。
最主要的一个角色是数据库管理员,英文叫 Database Administrator,简称 DBA。DBA 的工作就是负责数据库的安装、配置、备份、恢复和性能优化。这是一个技术要求很高的岗位,需要对数据库的底层原理有很深的理解。一个好的 DBA 能保证公司的核心数据安全、稳定、高效运行,非常重要。
另一个常见的角色是后端工程师(Backend Engineer)或软件开发者(Software Developer)。他们虽然不专门负责管理数据库,但在日常工作中需要频繁地跟数据库打交道。他们需要设计数据库的表结构,也就是所谓的“数据库建模”(Database Modeling),还要编写代码来执行 SQL 语句,实现业务逻辑。
对于开发者来说,直接用代码拼接 SQL 语句是一种方法,但这样做比较麻烦,而且容易出错,还可能导致一种叫做“SQL 注入”(SQL Injection)的安全漏洞。所以,现在大部分开发框架都提供了一种叫做 ORM 的东西。ORM 的全称是 Object-Relational Mapping,它的作用是在编程语言的对象和数据库的关系表之间建立一个映射。这样,开发者就可以直接操作对象,而不用手写 SQL 语句了,ORM 会自动把对象操作转换成对应的 SQL。这样做能提高开发效率,也更安全。
总结一下关键的英文词
- Database (DB): 数据库
- Database Management System (DBMS): 数据库管理系统
- Relational Database: 关系型数据库
- NoSQL Database: 非关系型数据库
- Table: 表
- Row / Record: 行 / 记录
- Column / Field: 列 / 字段
- Primary Key: 主键,表中每一行的唯一标识。
- Foreign Key: 外键,用于关联两个表的字段。
- Index: 索引,用来加快查询速度的东西。
- Query: 查询,指向数据库发出请求的动作或命令。
- SQL (Structured Query Language): 结构化查询语言
- CRUD (Create, Read, Update, Delete): 增删改查
- Database Administrator (DBA): 数据库管理员
- Schema: 数据库的结构或蓝图,定义了表、列和它们之间的关系。
掌握这些基本词汇,基本上就能看懂大部分跟数据库相关的技术文档,也能跟国外的技术人员进行基本交流了。数据库技术是整个软件行业的基石,无论你是做前端、后端还是数据分析,都离不开它。把它学好,对职业发展有很大帮助。


580学习网
评论前必须登录!
立即登录 注册