数据库系统概念读书笔记(1)——引言

数据库管理系统:有一个互相关联的数据的集合和一组用以访问这些数据的程序组成,这个数据集合就叫做数据库。上来就先写上一个概念,作为这本书的主线。

1.数据库的出现的必要性和对数据库的要求

尽管文件系统可以解决不少问题,但是下面的问题是文件系统所无法解决的,如果给文件系统加上这些特性,那么文件系统也就成为了一个数据库(有点裸设备的味道)。

  1. 数据的冗余和不一致:重复数据多,而且对于分布式,有可能出现数据无法同步的问题。
  2. 数据访问困难。
  3. 数据孤立:说的是因为数据存储没有采取同样的格式,使得使用统一的接口访问数据变得不可能。
  4. 完整性问题:说的是实现数据约束比较困难,书中给的例子是比如说给某一个账户定一个最低存款额度。
  5. 原子性问题:说的就是事务处理了,如何保证一个操作的完整性。例如银行转账。
  6. 并发访问:这也是事务处理的一部分,数据库需要应对同时异地对同一个数据操作的可能。
  7. 安全性问题:主要是数据库访问权限问题。

数据库的概念分层

  1. 物理层:定义数据的存储格式。能够涉及者一层的人是数据库软件开发者。
  2. 逻辑层:定义数据以及数据之间的关系。能够涉及这一层的人是数据库的设计者。
  3. 视图层:定义最终展现在客户面前的数据的格式。涉及这一层的是数据库客户端的开发者,以及最终的用户。

这三层从上到下层层透明。用户不关心数据库结构,数据库设计开发者不关心存储结构。

2.数据模型

  1. 实体————联系模型
  2. 关系模型

这两个模型看起来很像,事实上是,首先用实体--联系模型做最初的定义,然后转化成关系模型。关系模型是目前使用最广泛的数据库模型。

3.数据库语言

数据库语言通常由两个部分组成,(1)DDL——数据定义语言。(2)DML——数据操纵语言。最常用的数据库语言就是SQL。

应用程序体系结构

有了数据库,如何高效安全的访问就成了问题,这需要开发人员作出客户端软件。而开发这种软件通常遵循的模式有两种。

  1. 两层模式 就是通常的数据库-客户端模式。这种模式的优点是高效,缺点是安全性,并发性和可分布性不好。比较适用于小型的数据库软件开发。
  2. 三层模式:就是 数据库——服务器——应用程序三层模式。这种模式的一个经典实例就是JSP/Servlet —— EJB —— DataBase 模型。这种模型的好处是,容易移植和维护,客户端不用关心后台的数据库,数据库不用关心外面的客户端,一些都由中间的服务器层来搞定。缺点就是效率不高。无法针对某种应用进行比较有针对性的优化和设计。

你可能感兴趣的:(数据库系统概念读书笔记)