Skip to content

Lecture 1

数据库是存在内部相关性的数据的有组织的集合,可以用来模拟现实世界的某个方面。

CSV文件是一种简单的数据格式,它以逗号分隔的值的形式存储表格数据。例如:

Text Only
1
2
3
Name,Age,Location
Alice,23,Paris
Bob,25,London

数据库管理系统(DBMS)是一种用于管理数据库的软件系统。它们允许用户创建、更新和管理数据库。常见的DBMS包括MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Oracle等。

Relational Model

Relational Model(关系模型)是一种用于表示数据的结构化方法,于1970年由Ted Codd提出。在关系模型中,数据被组织为表格(表),表格中的每一行代表一个记录,每一列代表一个属性。

Data Models(数据模型)是一种用于描述数据、数据结构、数据操作和一致性约束的概念工具;Schema(模式)是关于数据库中数据的结构和约束的元数据。如今大多数DBMS使用的是关系模型,即Relational Model。

Relational Model分为三个部分:Structure(结构)、Manipulation(操作)和 Integrity(完整性)。

Primary Key(主键)是表格中的一列(或一组列),其值能够唯一标识表格中的每一行。如:artist_id列。Foreign Key(外键)是表格中的一列,其值必须在另一个表格的主键中存在。如:album_id列,它是albums表格的主键。

DML(Data Manipulation Language)是一种用于查询和修改数据库中数据的语言。常见的DML语言包括SQL(Structured Query Language)。分为procedural DML和non-procedural DML,前者需要指定如何实现目标,后者只需要指定目标。

Relational Algebra

Relational Algebra(关系代数)是一种用于查询关系数据库的形式化查询语言。它包括一组操作,如select(σ)、project(π)、union(∪)、intersection(∩)、difference(-)、product(×)、join(⋈)等。

Select Operation

选择操作(σ)用于从关系中选择满足指定条件的元组。例如,选择年龄大于20的学生:

\[ \sigma_{age > 20}(Students) \]

Project Operation

投影操作(π)用于从关系中选择指定列。例如,选择学生的姓名和年龄:

\[ \pi_{name, age}(Students) \]

Union Operation

并集操作(∪)用于将两个关系的元组合并为一个关系。两个关系必须具有相同的属性。例如,合并两个关系:

\[ R \cup S \]

Intersection Operation

交集操作(∩)用于从两个关系中选择共有的元组。两个关系必须具有相同的属性。例如,选择两个关系的交集:

\[ R \cap S \]

Difference Operation

差集操作(-)用于从一个关系中选择不在另一个关系中的元组。两个关系必须具有相同的属性。例如,选择两个关系的差集:

\[ R - S \]

Product Operation

笛卡尔积操作(×)用于将两个关系的元组组合为一个关系。例如,两个关系的笛卡尔积:

\[ R \times S \]

得到的结果是两个关系的所有可能组合。

Join Operation

连接操作(⋈)用于将两个关系的元组组合为一个关系。例如,两个关系的连接:

\[ R \bowtie S \]

这是一个Natural Join,它会自动选择两个关系中具有相同属性的元组进行连接。

其他操作

除了上述操作,还有其他一些操作,如rename(ρ)、assignment(R ← S)、division(÷)等。

为了达到更高的查询效率,我们只需要给出查询的目标,让DBMS自行选择最佳的查询计划。