本节内容
第一部分:基本概念
教材 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帮我们管理数据和安全性。
使用数据库系统的目的
解决使用文件处理系统存储数据的不足:
- 数据冗余和不一致
- 数据访问困难
- 数据孤立
- 完整性问题
- 原子性问题
- 并发访问问题:购票系统中,同一张票多人同一时间购买,只能有一个人购买成功
- 安全性问题:权限控制
数据视图
- 物理层(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)
- 三层:客户机 - 应用服务器(实现业务逻辑) - 数据库
About this Post
This post is written by Holger, licensed under CC BY-NC 4.0.