一、背景 1. 为什么学习数据库? 计算机其实就是存储/IO/CPU三大件
计算包含两个东西:数据与算法
database=SQL?
2. 数据库历史 IMS层次数据库
网状数据库:不适合集合查询
关系型数据库(主要介绍)
二、引言 1. 什么是数据库? 数据(Data) 数据库(DB) 数据库管理系统(DBMS) 数据库管理系统(DataBase-Management System, DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库(database),其中包含了关于某个企业的信息。 DBMS的主要目标是要提供一种可以方便、高效地存取数据库信息的途径。
数据库系统(DBS) 2. 数据库存在的价值? Data redundancy and inconsistency(冗余与不一致性) Difficulty in accessing data (获取数据困难) 对于每个任务需要编写新的程序 Data isolation (数据孤岛) 数据与数据间不互通 Integrity problems (完整性问题) 某些数据天然有限制条件(如,银行卡余额大于0),这些限定应该加到数据本身,而使用文件管理系统只能用代码进行约束
3.使用文件系统存储数据的缺点 更新原子性
多用户并发访问
多个用户同时访问相同数据项资源时,用户不应该感受到其他用户也在访问 安全问题
让用户访问数据,但并不是访问所有数据,(例如,查询成绩只能查询自己的) 4. 抽象(三层) (由下至上)
物理层(Physical level) 最低层次的抽象,描述数据实际上是怎样存储的。物理层详细描述复杂的底层数据结构。
链式存储,线性存储
逻辑层(Logical level) 比物理层层次稍高的抽象,描述数据库中存储什么数据及这些数据间存在什么关系。这样逻辑层就通过少量相对简单的结构描述了整个数据库。虽然逻辑层的简单结构的实现可能涉及复杂的物理层结构,但逻辑层的用户不必知道这样的复杂性。这称作物理数据独立性( physical data independence)。数据库管理员(DBA)使用抽象的逻辑层,他必须确定数据库中应该保存哪些信息
视图层(View level) 视图层(view level)。最高层次的抽象,只描述整个数据库的某个部分。尽管在逻辑层使用了比较简单的结构,但由于一个大型数据库中所存信息的多样性,仍存在一定程度的复杂性。数据库系统的很多用户并不需要关心所有的信息,而只需要访问数据库的一部分。视图层抽象的定义正是为了使这样的用户与系统的交互更简单。系统可以为同一数据库提供多个视图。
提供窗口,每个用户通过视图访问对应数据
5. 实例与模式 实例(Instances):指特定时刻存储在数据库中的信息的集合
模式(Schemas):指数据库的总体设计
模式相当于编程语言中的变量,int i;i=5;
物理模式(physical schemas):在物理层描述数据库的设计
逻辑模式(logical schemas):在逻辑层描述数据库的设计。程序员使用逻辑模式来构造数据库应用程序
子模式(subschemas):描述了数据库的不同视图
物理数据的独立性
6. 数据模型 定义 :描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。常用的数据模型 :关系模型、E-R模型、半结构化数据模型、基于对象数据模型是主要的常用的数据模型关系模型 在关系模型中,数据以表的形式表示。每个表有多个列,每个列有唯一的名字,表的每一行表示一条信息。
实体-联系(E-R)模型 半结构化数据模型 基于对象数据模型 层次模型 网状模型 7 数据库语言 数据定义语言DDL 数据操作语言DML 8 关系数据库 关系数据库的结构