本节内容

第一部分:基本概念

教材 Chapter 1: Introduction

数据库管理系统(DBMS)

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

DBMS 的目标:方便、高效地存储、检索数据。

DBMS 的功能:定义存储结构、提供操纵数据的方法、保证数据的安全性、并发控制。

信息:经过处理和加工提炼而用于决策或其他应用活动的数据

区别 DB DBMS DBS

  • 数据库(Database,简称DB)是指:长期储存在计算机内的、有组织的、可共享的大量数据集合。一个应用系统通常包含多个数据库。
  • 数据库管理系统(核心)(Database Management System,简称DBMS)是位于用户(应用程序)与操作系统之间的一层数据库管理软件,DBMS是独立、开放的数据库管理软件(提供多种外部接口,管理的数据可以被其它外部应用程序调用),用于科学地组织和存储数据以及高效地获取和维护数据。
  • 数据库系统(Database System,简称DBS)是指在计算机应用系统中引入数据库后的系统构成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。

DBS包含DB和DBMS;DBS的核心是DBMS,对于程序员来讲,DBMS提供了很大的便利,可以更加专注程序本身。DBS与普通软件系统的最大区别在于:普通软件自己管理数据及数据安全,DBS由DBMS帮我们管理数据和安全性。

使用数据库系统的目的

解决使用文件处理系统存储数据的不足:

  1. 数据冗余和不一致
  2. 数据访问困难
  3. 数据孤立
  4. 完整性问题
  5. 原子性问题
  6. 并发访问问题:购票系统中,同一张票多人同一时间购买,只能有一个人购买成功
  7. 安全性问题:权限控制

数据视图

  • 物理层(physical level):硬盘上的记录如何存储
  • 逻辑层(logical level):数据的逻辑结构,实现了物理数据独立性
  • 视图层(view level,逻辑层的子集):隐藏了数据和类型 安全性、独立性

优点:逻辑层和视图层具有独立性

  • 物理独立性:物理结构改变,逻辑结构不受影响
  • 逻辑独立性:逻辑结构改变不影响视图层

实例和模式

模式(Schemas):数据库的逻辑结构以及之间的联系。

实例(Instances):特定时刻在数据库中的信息的集合。

数据模型

数据模型:(对现实世界数据特征的抽象)描述数据、数据联系】数据语义、一致性约束的概念工具的集合。

分级数据抽象

  • 一级:概念模型(E-R 模型 (实体-联系模型))按用户的观点来对数据和信息建模。
  • 二级:逻辑模型(关系模型、网状、层次、面向对象……)按计算机实现的观点来对数据建模。

数据库语言

SQL:结构化查询语言(声明式)

  • DDL:数据定义语言,定义表的结构(创建表、视图、索引……)
  • DML:数据操纵语言(更删改查)

数据库设计

需求分析 -> 概念设计 -> 逻辑设计 -> 物理设计

E-R 模型(概念设计)

  • 实体:现实世界中可区别于其他对象的一件“事情”或一个“物体”。数据库中的实体通过属性来描述。
  • 联系:几个实体间的关联。

规范化

减少冗余 -> 减少操作异常

数据的存储和查询

存储管理器

查询管理器

事务管理

事务:数据库应用中完成单一逻辑功能的操作集合。

原子性问题:多件事情同时发生,它们同时成功或同时失败。 All or nothing.

经典例子:银行转账,转出账户扣款和转入账户到账应同时成功或失败,即是一个事务。

  • 恢复管理器:确保数据库所有事务均能够成功完成。
  • 并发控制管理器:控制并发事务间的相互影响,保证一致性。

数据库体系结构

  • 两层:B/S (Browser/Server)、C/S (Client/Server)
  • 三层:客户机 - 应用服务器(实现业务逻辑) - 数据库