数据库基础
什么是数据库
数据库是一个长期存储在计算机内、有组织的、可共享的数据集合。它通过数据库管理系统(DBMS)来组织、存储和管理数据。
数据库的类型
关系型数据库(SQL)
关系型数据库使用结构化查询语言(SQL)来管理数据。数据存储在表中,表之间可以通过关系连接。
特点:
- 数据结构化存储
- 支持事务处理
- ACID特性(原子性、一致性、隔离性、持久性)
- 例如:MySQL、PostgreSQL、Oracle
非关系型数据库(NoSQL)
非关系型数据库不使用传统的表格关系来存储数据,而是使用其他数据模型,如键值对、文档、列族或图。
特点:
- 灵活的数据模型
- 水平扩展性好
- 高性能
- 例如:MongoDB、Redis、Cassandra
数据库设计基础
实体关系模型(ER Model)
实体关系模型是数据库设计的基础,它通过实体、属性和关系来描述数据。
范式化
范式化是数据库设计中的一种规范化过程,目的是减少数据冗余和提高数据一致性。
常见的范式:
- 第一范式(1NF):确保每列都是原子性的
- 第二范式(2NF):在1NF基础上消除非主属性对主键的部分函数依赖
- 第三范式(3NF):在2NF基础上消除非主属性对主键的传递函数依赖
数据库操作基础
CRUD操作
CRUD代表创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。
SQL基础
SQL是结构化查询语言,用于与关系型数据库通信。
基本语句:
- SELECT:查询数据
- INSERT:插入数据
- UPDATE:更新数据
- DELETE:删除数据
数据库安全
访问控制
数据库应设置适当的用户权限,确保只有授权用户才能访问特定数据。
数据加密
敏感数据应进行加密存储,防止数据泄露。
备份与恢复
定期备份数据库,确保在数据丢失或损坏时能够恢复。
性能优化基础
索引
索引可以加快数据检索速度,但会增加插入和更新的开销。
查询优化
编写高效的SQL查询语句,避免全表扫描。
数据库设计优化
合理的数据库设计是性能优化的基础。
实践项目
创建一个简单的博客系统数据库,包含用户表、文章表和评论表,并实现基本的CRUD操作。