目录:
基本概念:
- 数据抽象:为了让复杂的数据库系统能够面对开发人员,数据库层面上定义了三个层次的抽象:物理层抽象,逻辑层抽象,视图层抽象。(注意:一个数据库当中,物理层和逻辑层仅有一个;但视图可以有多个)
- 数据库实例:特定时刻数据库中信息的状态
- 数据库模式:数据库的总体设计称为模式,就好比 程序设计语言里的 变量们,它们的类型是确定的,但是某一时刻存储的值是变化的。
- 数据模型:描述数据,数据联系,数据语义的集合,可分为四类:关系模型/实体-联系模型/基于对象的数据模型/半结构化模型。
- SQL语言:专门用来定义和操纵数据库。
应用程序和数据库的关系:
数据库为应用程序提供了数据支撑,但是数据库中的sql语言只支持对数据库的操作,所以它经常以一种嵌入式的形式在形如 Java,Python这样的宿主语言中。
基于关系模型的关系数据库
- 关系数据库的结构:表的集合,每个表都有一个唯一的名字。
- 表中的联系体现在行数据上面。(表是某种关系的集合,也就是元组的集合)
- 在关系数据库中,关系就是表;元组代指行;属性代指列。
- 属性的域:就是属性所有取值的集合。
- 关系模式:用在关系数据库中:指一个表的属性字段。
- 码:一个关系(表)当中;没有两个元组在所有属性上的取值完全相同;为了区分不同的元组(行);我们定义超码
- 超码:一个或几个属性的集合,只要这些属性的集合能够唯一表示表中的元组,那就成这个属性集合叫做超码。
- 候选码:超码当中,超码的真子集(少了一个属性将不再是超码)就叫候选码。
- 主码:被设计者选中的候选码。
- 外码:在表1中,某个属性正好是表2的主码:在表1中这个属性就被 叫做是参照表2的外码
关系运算
- 在一个表中,指定某个属性满足的条件;把满足这个条件的所有元组挑出来组成一个新的表。
- 在一个表中,选择指定的属性;把这些指定的属性挑出来组成一个新表。
- 对连接两个表来说,分为自然连接和笛卡尔积连接:
笛卡尔积连接:对两个表中,忽略属性和属性值的关系,行(元组)表1的行和表2的行做笛卡尔运算(排列出所有可能组合)。
https://blog.youkuaiyun.com/whywww/article/details/80116352
笛卡尔积是数据库中最普世的表连接操作,当然应该学会理解,这里不多说。可以自行百度: 数据库 笛卡尔积。
自然连接:两个表中对 属性相同并且属性值也相同的行做笛卡尔积