最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

CMU15-445:Lecture #01 笔记

来源:博客园

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)

  • Data Integrity

    数据完整性

  • Implementation执行

  • Durability耐受性

3. Database Management System

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

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

  • Data model:数据模型是描述数据库中数据的概念的集合。
  • Schema:模式是对基于数据模型的特定数据集合阿尼普拉提哦那的描述。

Early DBMSs

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

  • 逻辑层:描述了数据库有哪些实体和属性。
  • 物理层:是这些实体和属性的存储方式。

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

4. Relational Model

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

  • Relational Model:

    关系模型定义了一个基于关系的数据库抽象概念,有3个关键点:

    • Store database in simple data structures (relations).
    • Access data through high-level language, DBMS figures out best execution strategy.
    • Physical storage left up to the DBMS implementation.

    简单来说就是:用简单的数据结构保存,用高级语言来访问,并让DBMS来执行最优策略以及处理物理层存储。

  • 关系模型定义的三个概念:

    • Structure:关系定义和内容。也就是关系具有的属性以及可以有的值。
    • Integrity:确保数据库的内容满足约束条件。比如:年份必须是数字。
    • Manipulation:如何访问和修改数据库的内容。
  • 关系:关系是一个无序的集合(unordered_set),包含代表的实体的属性关系。因为是无序的,所以DBMS可以用它想要的任何方式存储它们,并允许优化。

  • 元组(tuple):元组指的是关系中的一组属性值(也叫域 domain)。起初,值必须是原子的或者标量,但现在值也可以是一个特殊的值--NULL,表示为定义。

  • 有n个属性的关系,叫做:n-ary relation

  • Keys:一个关系的primary key唯一的定义了单个元组。很多DBMSs都支持autogenerated keys,所以程序就不需要手动增加了,但primary key还是在某些DBMSs是需要的。

    • Primary key:唯一的定义了单个元组。
    • Foreign key:指定一个关系中的属性必须映射到另一个关系中的元组。

5. Data Manipulation Languages (DMLs)

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

  • Procedural:The query specifies the (high-level) strategy the DBMS should use to find the desired result based on sets / bags. (relational algebra)
  • Non-Procedural(Declarative):The query specifies only what data is wanted and not how to find it. (relational calculus)

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

6. Relational Algebra

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

  • Select常用操作
  • Projection映射。配合R使用。
  • Union并
  • Intersection交
  • Difference差
  • Product笛卡尔积
  • Join常用操作。有left join, right join, full join, natural join(SQL标准)
  • Observation不同的表达式可能是一样的内容。

关键词: 数据模型 关系模型 平面文件