Lecture #01: Relational Model & Relational Algebra

本文是对CMU15-445课程第一节笔记的一个粗略总结和翻译。仅供个人(M1kanN)复习使用。如果能对其他同学学习这门课有帮助的话,不胜荣幸。

1. Database

​数据库(Database) 是一个有组织的、互相关联的、对现实世界的某些方面进行建模的集合。注意:数据库(DB) != 数据管理系统(DBMS)。Database management system是一种管理数据库的软件。 本笔记中,用一个存储着艺术家和对应的专辑信息的数据库作为例子,亦即数字音乐商店(A database that models adigital music store)。


【资料图】

2. Flat File Strawman

数据库常常以CSV(comma-separated value)文件的形式存储,由DBMS进行管理。每次应用程序要读取或者更新记录时,都必须解析文件(parse files)。

以数字音乐商店的例子,会有两个文件,一是艺术家,二是专辑。

每个实体都有自己的属性集,所以在每个文件中,不同的记录都用新的行来划分,而一条记录中的每个相应属性都用逗号隔开。

例子:

NameYearCoutry
Wu-Tang Clan1992USA
Notorious BIG1992USA
GZE1990USA

关于平面文件(Flat File)

3. Database Management System

一个DBMS是一个能让应用在数据库中保存与分析数据的软件

通常,DBMS设计的目的是允许定义、创建、查询、更新和管理符合某种数据模型的数据库。

Early DBMSs

早期,数据库应用很难建立和维护,因为逻辑层和物理层之间存在着紧密的耦合。

所以早期的数据库,一旦改变了物理层,逻辑层也得跟着变。

4. Relational Model

人们每次改变物理层都要重新写数据管理系统,故Ted Codd注意到后提出了关系模型。

5. Data Manipulation Languages (DMLs)

有两类语言去保存和检索在数据库中的信息。

一般现在都是用第二种的,我不管DBMS用什么策略,我只需要你给我我想要的数据。

6. Relational Algebra

关系代数就是一组基本操作,用于检索和操作关系中的图元。(感觉这部分不需要很了解,毕竟我学数据库只是为了混个项目)每个操作符都需要一个或多个关系作为输入,并输出一个新的关系。为了编写查询,我们可以把这些运算符 "链 "在一起,以创建更复杂的操作。

推荐内容