[心得]数据库系统概念知识整理

前言

来自机工出版社,数据库领域的殿堂级作品,夯实数据库理论基础,增强数据库技术内功的必备之选,对深入理解数据库,深入研究数据库,深入操作数据库都具有极强的指导作用!最新版是第6版,我看的是第5版。

笔记

数据库系统是对数据进行存储,管理,处理和维护的软件系统。

数据库管理系统DBMS由一个互相关联的数据集合和一组用以访问这些数据的程序组成,这个数据集合称作数据库。

在文件处理系统中存储和组织数据的主要弊端:

  1. 数据冗余和不一致
  2. 数据访问困难
  3. 数据孤立
  4. 完整性问题
  5. 原子性问题
  6. 并发访问异常
  7. 安全性问题

数据库分为3层:
物理层描述底层数据结构
逻辑层描述存储数据类型以及这些数据间的关系
视图层描述整个数据库的某个部分

特定时刻存储在数据库中的信息集合称作数据库的一个实例。而数据库总体设计称作数据库模式(scheme)。

数据库结构的基础是数据模型,数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。

数据模型主要包括:
R关系模型:用表的集合来表示数据和数据间的联系。
ER实体-联系模型:
基于对象的数据模型:
半结构化数据模型:

DML:数据操纵语言,增删查改,分过程化和声明式两种。
DDL:数据定义语言

关系代数定义了一套在表上运算,且输出结果也是表的代数运算。

SQL语言有以下几个部分:

  1. DDL
  2. DML
  3. 完整性
  4. 视图定义
  5. 事务控制
  6. 嵌入式SQL和动态SQL
  7. 授权

元组变量通过在from子句中使用as来定义。
字符串运算使用一对单引号来标示字符串,最常见的字符串运算是使用like,
百分号表示匹配任意子串,下划线表示匹配任意一个字符
not like将过滤掉匹配的项

排序显示用order by子句,默认为升序,desc表示降序,asc表示升序
聚集函数以值的一个集合为输入,返回单个值的函数:主要有5个:avg,min,max,sum,count
有时希望聚集函数作用在一组元组集上,可以用group by
如果想删除重复元组,在聚集表达式中使用distinct
如果在同一个查询中同时存在where子句和having子句,那么SQL首先应用where子句中的谓词,满足where谓词的元组通过group by子句形成分组,having子句若存在,就将用于每一个分组,不符合having子句谓词的分组将被抛弃,剩余的组被select子句用来产生查询结果元组。

SQL允许使用null值表示关于某属性值的信息缺失。
一般子查询的使用是为了对集合的成员资格、集合的比较以及集合的基数进行检查。
连接词in测试元组是否是集合中的成员
exists测试一个子查询结果中是否有元组
unique测试一个子查询结果中是否有重复的元组

with子句提供定义临时视图的方法

ODBC(开发数据库互连)标准定义了一种应用程序和数据库服务器通信的方法。

QBE基于例子的查询,既指一种DML,也指一种早期包含QBE的数据库系统。

如果一个关系模式R的所有属性域都是原子的,称为符合第一范式1NF
如果一个关系模式符合1NF,并且:1,表都有一个主键,2其余列完全依赖主键,称为符合第二范式2NF,该范式只有历史意义。
如果一个关系模式符合2NF,并且:非主键列直接依赖主键,则称为符合第三范式3NF

触发器是一条语句,当对数据库修改时,它自动被系统执行。

XML文档中基本结构是元素。一个元素就是一对互相匹配的开始和结束标签以及它们之间的所有文本。
DTD:文档类型定义

B+树广泛用于数据库的索引结构。

查询优化一方面在关系代数级发生;另一方面是为处理查询选择一个较优的策略:尽早执行选择,尽早执行投影,避开笛卡尔积操作。

你可能感兴趣的:(技术笔记)