数据库基础笔记 | 青训营

77 阅读5分钟

数据库基础笔记

  1. 什么是数据库(Database)?

数据库是一个长期存储、组织、管理和维护数据的系统。它为多个用户提供了一个中心化的数据存储和访问机制,允许数据的存储、检索、更新和删除。与文件系统不同,数据库设计成支持并发访问、高效查询以及数据完整性和安全性。今天的组织和公司的核心运营往往依赖于数据库。从金融交易到社交媒体帖子,几乎所有的在线活动背后都有数据库的支持。

由于数据对于组织来说非常宝贵,因此选择正确的数据库类型至关重要。例如,关系型数据库在金融和零售领域很受欢迎,而NoSQL数据库(如MongoDB或Cassandra)适用于大型数据或需要灵活数据结构的应用。

  2. 关系型数据库(Relational Database)

以表的形式存储数据并通过标准查询语言(例如SQL)进行访问。常见的关系型数据库有MySQL, PostgreSQL, Oracle, SQL Server等。 关系型数据库是目前最流行的数据库类型。它们使用表格结构,其中每行代表一个记录,每列代表一个属性或字段。这些表通过键(通常是主键和外键)相互连接,这使得数据可以在多个表之间高效地关联。

例如,考虑一个电商应用。有一个“用户”表格和一个“订单”表格。通过在“订单”表格中使用用户ID作为外键,可以追踪哪个用户下了哪个订单。 关系型数据库的另一个主要特点是支持SQL。使用SQL,开发者和数据库管理员可以查询、更新、删除和插入数据。   3. 数据库基础概念

  • 表(Table):存储特定类型数据的结构,由行和列组成。

  • 行(Row):表中的单个记录。

  • 列(Column):表中的一个字段,存储特定类型的数据。

  • 主键(Primary Key):一个或多个列的组合,其值可以唯一标识表中的每一行。

   4. SQL基础

SQL是用于查询和管理关系型数据库的标准语言。学习SQL意味着掌握数据检索、数据操作、数据定义和数据控制的各种命令。

SQL的操作范围非常广,除了上面提到的基本操作外,还有像GROUP BY(用于聚合数据)、JOIN(用于连接表)等高级命令,使得处理复杂查询成为可能。

  • 基本查询语句

SELECT column1, column2, ...

FROM table_name

WHERE condition;

  • 插入数据

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...);

 

  • 更新数据  

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

  • 删除数据  

DELETE FROM table_name WHERE condition;

 

5. 数据库设计

数据库设计不仅仅是创建表和定义关系。它还涉及到如何优化数据结构以满足特定应用的需求,如性能、安全性和数据完整性。

  • 规范化:数据库设计过程中的一种技术,旨在减少数据冗余和避免不必要的数据,增加数据的完整性。

  • 数据完整性:确保数据的准确性和一致性。

  • 数据冗余:避免在数据库中重复存储数据。 

6. 数据库连接

随着应用程序的发展,数据库连接变得越来越重要。从Web服务到手机应用,都需要与数据库进行交互。

以Python为例,我们可以使用pymysql库连接MySQL数据库:  


import pymysql


# 创建连接

conn = pymysql.connect(host='localhost', user='username', password='password', db='database_name')

# 创建游标

cursor = conn.cursor()
 

# 执行SQL并返回受影响行数

effect_row = cursor.execute("SELECT * FROM table_name")
 

# 获取数据

data = cursor.fetchone()  # 获取一行数据

data_all = cursor.fetchall()  # 获取所有数据

 

# 关闭连接

cursor.close()

conn.close()

7. 数据库优化

为了提高数据库性能,我们可以:

  • 选择合适的数据类型。

  • 使用索引来加速查询。

  • 定期维护和优化数据库。

  • 监视和分析查询性能。

  8. 事务处理

数据库事务是一个执行单元,它要么完全完成,要么完全不执行。它是为了保证数据的完整性。

  事务的四个特性(ACID):

  • 原子性(Atomicity): 事务中的所有操作要么全部提交成功,要么全部失败回滚。  

  • 一致性(Consistency): 事务应确保数据库从一个状态更改为另一个状态。

  • 隔离性(Isolation): 事务应该独立于其他事务进行。  

  • 持久性(Durability): 已被提交的事务对数据的更改应该是永久性的。

9. 数据备份与恢复

定期备份数据是数据库管理的重要部分。它确保在数据丢失或损坏时可以从备份中恢复数据。对于任何组织来说,数据都是宝贵的。损失数据可能会导致财务损失、客户信任度下降或法律纠纷。数据备份策略应该考虑到数据的大小、恢复时间目标、备份频率等。而数据恢复策略应该确保在灾难发生时,可以尽快、准确地恢复数据。

结论

数据库是现代IT系统的核心组件,其管理和维护至关重要。了解基本的数据库概念、设计和优化技巧可以帮助我们更好地管理数据和提高系统的性能,是组织和管理数据的系统化工具,具备高效、并发访问和数据安全性的特点。关系型数据库,如MySQLPostgreSQL,使用表格方式存储数据,其中每一行代表一个记录,每一列代表一个属性。 SQL是关系型数据库的核心,使我们能够查询、修改和管理数据。数据库设计应注重数据的结构和关系,常见设计手段如规范化可确保数据的一致性和减少冗余。同时,数据库连接的安全性和效率也不容忽视。为提高查询速度,数据库经常采用索引。事务处理保证了数据的一致性和完整性,特别是在多用户并发访问的场景中。最后,数据备份与恢复策略是任何组织都应优先考虑的,因为数据安全和完整性对于维护业务和客户信任至关重要。