目录
2. 网络和层次数据库模型时代(1960s - 1970s)
4. 面向对象和后关系数据库模型时代(1980s - 1990s)
5. Internet和NoSQL数据库时代(2000s - 2010s)
引言
1.基本概念
数据库管理系统(DBMS)由一个 互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库。
2.数据库系统常见应用
- 企业信息
- 银行和金融
- 大学:用于存储学生信息、课程注册和成绩
- 航空业:用于储存订票和航班信息
- 电信业
3.文件处理系统主要弊端
- 数据的冗余和不一致
- 数据访问困难
- 数据孤立
- 完整性问题
- 原子性问题
- 并发访问异常
- 安全性问题
4.数据视图
-
数据抽象
物理层、逻辑层、视图层
-
实例和模式
实例 :特定 时刻存储在数据库中的信息的集合。
模式:数据库的总体设计
5.数据模型
-
关系模型
关系模型用表的集合来表示数据和数据间的联系
-
实体—联系模型
实体—联系(E-R)数据模型基于对现实世界的认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。
-
基于对象的数据模型
-
半结构化数据模型
6.数据库语言
1.数据操纵语言(DML)
功能:增删改查
过程化 DML:要求用户指定需要什么数据以及如何获得这些数据
声明式DML:只要求用户指定需要什么数据,而不指明如何获得这些数据
例如:找出数学系的所有教员的名字
select instructor.name from instructor where instructor.dept_name = 'Math';
2.数据定义语言(DDL)
域约束:表中字段的取值范围
参照完整性:一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现(参照完整性)
断言:数据库需要时刻满足的条件
授权:对于不同的用户在数据库的不同数据值上允许不同的访问类型
权限:读、插入、更新和删除
元数据:指描述数据的数据,主要用于描述数据属性和信息,以便支持数据的管理、检索和其他用途
数据字典:描述数据的信息集合,是对系统中使用的所有数据元素的定义的集合 例如:DDL语句定义了 film 表:
create table film
(
name varchar(255),
director varchar(255),
actor varchar(255),
style varchar(255),
country varchar(255),
release_time varchar(255),
time varchar(255),
score varchar(255)
);
上述DDL语句执行的结果就是创建了 film 表,该表有8个列:name, director, actor, style, country, release_time, time和score
7.数据库设计
- 概念设计
- 功能需求说明
- 逻辑设计
- 物理设计
8.数据存储和查询
数据库系统的功能部件:存储管理器和查询处理部件
1.存储管理器
部件:权限及完整性管理器、事务管理器、文本管理器和缓冲区管理器。
存储管理器实现了几种数据结构,作为系统物理实现的一部分:
数据文件:存储数据库自身
数据字典:存储关于数据库结构的元数据,尤其是数据库模式
索引 :提供对数据项快速访问
2.查询处理器
组件:
DDL解释器:解释DDL语句并将这些定义记录在数据字典中
DML编译器:将查询语言中的DML语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令
查询执行引擎:执行由DML编译器产生的低级指令
9.事物管理
事物:数据库应用中完成单一逻辑功能的操作集合。
10.数据库结构体系
远程数据库用户工作用的客户机和运行数据库系统的服务器
11.数据库系统的历史
1. 文件系统时代(1940s - 1960s)
在数据库管理系统(DBMS)出现之前,数据通常通过文件系统进行管理。数据存储在不同的文件中,且每个应用程序都有其专用的文件,这导致了数据冗余和一致性问题。
2. 网络和层次数据库模型时代(1960s - 1970s)
- **层次数据库模型**:IBM在1960年代开发了第一个广泛应用的数据库管理系统,名为**IMS (Information Management System)**。IMS基于层次数据库模型,其中数据被组织成树状结构。
- **网络数据库模型**:CODASYL(Conference on Data Systems Languages)委员会定义了网络数据库模型,是对层次模型的扩展,支持更复杂的多对多关系。
3. 关系数据库模型时代(1970s - 1980s)
- **关系数据库模型**:1970年,埃德加·科德(Edgar F. Codd)在IBM发布了一个划时代的论文,提出了关系模型的概念。这促使了关系数据库管理系统(RDBMS)的发展。
- **SQL语言**:结构化查询语言(SQL),最初被称为SEQUEL,是一种特定于数据库的编程语言,用于管理关系数据库中的数据。
- **商业RDBMS的发展**:第一个商业RDBMS是1979年由Relational Software, Inc(后来的Oracle)发布的。紧随其后的是IBM的DB2, 和其他竞争者如Sybase、Informix和后来的Microsoft SQL Server。
4. 面向对象和后关系数据库模型时代(1980s - 1990s)
- **面向对象数据库管理系统(OODBMS)**:随着面向对象编程的流行,出现了面向对象的数据库系统,以满足存储更复杂数据的需要。
- **后关系数据库管理系统(Post-relational DBMS)**:包括提高性能、增强它们的可伸缩性和处理更复杂数据类型的需求的各种数据库系统。
- **多维数据库**:特别适用于在线分析处理(OLAP)和数据仓库。
5. Internet和NoSQL数据库时代(2000s - 2010s)
- **XML数据库**:随着XML成为数据交换的标准格式,出现了专门用于存储XML数据的数据库。
- **NoSQL数据库**:为了解决大规模分布式数据集的需求,诸如Google和Amazon这样的公司开始开发自己的数据库系统。这些系统被设计为高可用性、大规模水平扩展和灵活的数据模型,如键值存储、文档存储、宽列存储和图数据库。
6. 大数据和云数据库时代(2010s - 现在)
- **大数据技术**:如Hadoop和Spark应对大量数据的处理需要。
- **云数据库服务**:Amazon Web Services(AWS), Microsoft Azure 和 Google Cloud 等提供数据库即服务(DBaaS)解决方案。
- **开源数据库系统**:例如 MySQL, PostgreSQL 和 MongoDB 等享受了广泛的普及和社区支持。
- **自动化和智能化管理**:利用人工智能和机器学习技术实现数据库的自我维护和优化。
12.数据挖掘和信息检索
数据挖掘:从大量数据中提取(或“挖掘”)潜在有用信息和知识的过程
信息检索:查询非结构化的文本数据