Database system concept笔记(1)

(好长时间没看过数据库了,重拾当年的课本,感觉都是干货,为什么以前没发现呢。)

首先,数据库的出现,源于文件系统的不足:
  1. 数据冗余及不一致
  2. 访问数据困难(访问机制由程序控制)
  3. 数据完整性问题(程序部分约束完整性)
  4. update时的完整性(由于update失败导致的数据一致性问题)
  5. 并行访问问题(also一致性问题)
  6. 安全问题(用户访问权限无法控制)
下面是数据库的一些基本概念:

View——logical——physical:所有database的概念都是基于三种层次的抽象(封装)上定义的。
schema和instance的关系类似于类型和数据的关系。
Data Model就是用来描述数据、数据间的关系、数据语义、数据约束的工具。(什么关系模型,实体关系模型等等)
DML(Data Manipulation Language)用来访问和操作数据,也被称作query language,主要分为两类:过程式(用户指定需要的数据以及怎样得到数据)、声明式(用户只需要指定需要的数据)。而其中,SQL也是最广泛的语言。
DDL(Data Definition Language)用来定义:数据库schema的符号。用它定义的table存储在数据字典中,data dictionary包含着元数据,包括:database schema、数据存储及定义语言、完整性约束、授权。

所谓数据库设计又是建立在两个层次上的过程,分别是logical design和physical design。前者指的是我们要决定哪些是我们需要的relation schema,这既取决于我们的业务流程也取决于一定的理论基础;后者则指的是要决定数据库的物理布局。

下面介绍几个数据库中重点关注的模块:

1、storage management
这个程序模块连接应用程序和数据库底层存储,主要负责:存储访问,文件组织,indexing和hashing
2、query processing
顾名思义负责对查询进行解析,优化,求值(evaluation)。
3、trasaction management
事务这个概念比较抽象,是指完成一个逻辑功能的一组运算(我始终不明白这个“一组”是怎么划分的),事务管理必须保证数据库状态的一致性,即使是发生了系统错误或是事务失败。要保证一致性需要注意很多方面,其中最重要的一方面是对并行处理的控制。

这些都是数据库的common sense啦,没什么技术含量,不喜勿喷。

你可能感兴趣的:(stuffs,database,数据存储,事务,文件系统)