数据库

数据模型

  1. 概念模型

实体 属性 码 实体型 实体集 域 联系

实体-联系方法(E-R)

组成要素:数据结构,数据操作,完整约束性条件

  1. 物理和逻辑模型

常见逻辑数据模型:层次模型 网状模型 关系模型 面向对象数据模型 对象关系模型 半结构化数据模型

关系模型

关系(二维表) 元组 属性 码 域(属性的取值集) 分量 关系模式

数据操纵和完整性约束

数据库系统结构

单用户结构,主从结构,分布式结构

C/S(客户-服务器),B/S(浏览器-应用服务器/数据库服务器)

型(对某一类数据结构和属性的说明) 值(型的一个具体赋值) 模式(数据库中全体数据的逻辑结构和特征的描述)

数据库系统的三层模式结构:模式 外模式 内模式

数据库模式是数据库的核心和关键

数据库的二级映像功能与数据独立性:

  • 外模式/模式映像

    数据的逻辑独立性

  • 模式/内模式映像

    数据的物理独立性


关系数据库

关系数据结构及形式化定义

从集合论的角度给出关系数据结构的形式化定义。

关系:

  1. 域(一组具有相同数据类型的值的集合)
  2. 笛卡尔积
  3. 关系

R(D1,D2,…,Dn):R表示关系的名字,n是关系的目或度(degree/arity)

候选码(Candidate Key):最小的超码(Super Key),唯一标识元组

主码(Primary Key)

码:唯一确定一个元组的属性。

主属性 非主属性/非码属性 全码

基本关系六性质(三列两行一分量):

  1. 列是同质的;
  2. 不同的列可能出自同一个域,每一列为一个属性,不同属性(列)给不同属性名;
  3. 列的顺序可以任意交换;
  4. 任意两个元组不能完全相同;
  5. 行的顺序可任意交换;
  6. 每一分量都是不可分的数据项。

关系模式是对关系的描述。
R(U,D,DOM,F):R为关系名,D为组成该关系属性名集合,DOM为属性向域的映像集合,F为属性间数据的依赖关系。

关系模式可以简记为R(U)或者R(A1,A2,…An)

关系数据库

基本关系操作

关系数据语言(关系代数语言,关系演算语言,SQL)

SQL:查询,DDL,DML,DCL

关系的完整性:

  1. 实体完整性

    每一关系必有一主码,构成主码的各个属性值均不能取空值。
    主码(Primary Key)和没有被选为主码的候选码(Unique)都不能取重复值。

  2. 参照完整性

    外码

    参照关系与被参照关系可能是相同的关系。

    参照完整性规则(参照关系的每个元组在外码上的取值必须为空值或者被参照关系的某个元组的主码)。

  1. 用户定义的完整性

    针对某一具体关系数据库的约束条件,反映某一具体应用所涉及到的数据的语义要求。


关系代数

运算对象是关系,对关系的运算来表示查询。

运算符:

  • 集合运算符

  • 关系运算符

  • 关系比较符

  • 逻辑运算符

关系代数:

  1. 传统的集合运算

    四种二目运算:并 交 差 笛卡儿积 (其中并/交/差要求参与运算的两个关系同构)。

  1. 专门的关系运算

    选择:又被成为“限制”,是在关系中选择满足条件的诸元组。

    投影:从关系中选择出若干属性列组成新的关系,投影操作是从列的角度进行的运算。

    连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

    • 等值连接
    • 自然连接
    • 外连接

    除运算:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须得自相同的域。R与S的除运算得到一个新关系P(x),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

关系演算


关系数据库标准语言SQL

SQL

SQL: 结构化查询语言(Structured Query Language),集数据查询,数据操纵,数据定义和数据控制功能于一体。

  • 综合统一

    • 集DDL,DML,DCL功能于一体。

    • SQL数据操作符的统一,查询/插入/删除。修改都只有一种操作符。

  • 高度非过程化

    • SQL进行数据操作,只要提出”what to do”,无需告诉系统”how to do”。
  • 面向集合的操作方式
  • 以一种语法结构提供多种实用方法

    • 既是自含式语言,又是嵌入式语言。
  • 语言简洁,易学易用

SQL对象与三级模式结构的对应关系

外模式:视图,部分基本表

模式:基本表

内模式: 存储文件

数据定义

模式的定义与删除

  • 数据库中可以创建多个模式,一个模式下包括多个表/视图和索引等数据库对象。

空值不违反约束条件,所以NULL不被拒绝。

表级约束 列级约束

DBMS自动为每个表的主码附加B+树的索引。(查重快)

建立和删除索引

  • 单一索引(UNIQUE)

  • 聚集索引(CLUSTERED)

  • 非聚集索引(NONCLUSTERED)


数据查询

  • 单表查询

  • 连接查询

  • 嵌套查询

  • 集合查询