第一讲 初步认识数据库
1、为什么要学习数据库系统
(1)everything over DB
(2)信息积累与运用的基础——数据库
数据库是一种技术,更是一种思维
(3)基于数据库的应用——大数据
Farecast:飞机票价格预测
(4)数据自有黄金屋
2、什么是数据库
(1)数据库与信息管理
数据库是电子化信息的集合
(2)数据库与“表”
数据库起源于规范化“表(Table)”的处理
Table:以按行按列形式组织及展现的数据
(3)基于“表”的数据库的影响
E.F.Codd(图灵奖获得者),基于对“表(Table)“的理解:
- 提出了“关系”及关系模型
- 提出了关系数据库理论
- 开创了数据库时代
- 当前普遍应用的数据库管理系统的奠基者
- 获得了计算机领域最高级“图灵奖”
(4)对“表”的抽象:理解-区分-命名-表达
Table中描述了一批相互有关联关系的数据 ——> 关系
Table的构成暨关于Table的常用术语
(5)数据库与“表”的关系
Database:相互之间有关联关系的Table的集合
(6)由表形式的数据库到各式各样的数据库
结构化数据库:关系数据库
非结构化数据库:图像数据库、工程数据库
3、什么是数据库系统
(1)数据库系统的构成——概念层次
数据库系统(工作环境)
- 数据库(DB):Database
- 数据库管理系统(DBMS):Database Management System
- 数据库应用(DBAP):DataBase Application
- 数据库管理员(DBA):DataBase Administrator
- 计算机基本系统
数据库管理系统只是管理数据库的一种系统软件,而数据库系统是一个大的环境
(2)数据库系统构成——实例层次
数据库系统(工作环境):图书管理数据库系统
数据库应用程序是基于数据库管理系统之上所开发的应用程序
(3)实例化和概念化理解数据库系统
对比:实例化与抽象化(概念化)
4、什么是数据库管理系统
(1)从用户角度看数据库管理系统的功能
数据库定义:定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等
- DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户
- 用户使用DDL描述其所要建立的表的格式
- DBMS依照用户的定义,创建数据库及其中的Table
数据库操纵:向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等
- DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户
- 用户使用DML描述其所要进行的增、删、改、查等操作
- DBMS依照用户的操作描述,实际执行这些操作
数据库控制:控制数据库中数据的使用——哪些用户可以使用,哪些不可以
- DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
- 用户使用DCL描述其对数据库所要实施的控制
- DBMS依照用户的描述,实际进行控制
数据库维护:转储/恢复/重组/性能监测/分析
- DBMS提供一系列程序(实用程序/例行程序)给用户
- 在这些程序中提供了对数据库维护的各种功能
- 用户使用这些程序进行各种数据库维护操作
数据库维护的实用程序,一般都是由数据库管理员(DBA)来使用和掌握的
(2)数据库语言
数据库语言:使用者通过数据库语言利用DBMS操纵数据库
数据定义语言(DDL):
——DBMS提供给用户,以便用户定义数据格式
用户使用DDL:
定义表名、表标题、列名及其结构形式
数据操纵语言(DML):
——DBMS提供给用户,以便用户对数据进行操作
用户使用DML:
增加、删除、修改数据
查询数据、检索数据、统计数据
数据控制语言(DCL):
——DBMS提供给用户,以便用户对数据进行控制
用户使用DCL:
定义对不同操作的约束、对不同操作者(用户)的约束
数据库各种操作的执行:
——DBMS按用户要求进行定义、操纵、控制和维护
DDL、DML、DCL ——SQL语言:结构化的数据库语言
数据库语言与高级语言:
一条数据库语言语句相当于高级语言的一个或多个循环程序
数据库语言可以嵌入到高级语言(宿主语言)中使用
交互式数据库语言(标准的:SQL语言)
嵌入式数据库语言(SQL语句嵌入到某一种高级语言中)
5、什么是数据库管理系统
(1)从系统实现角度看DBMS的功能
”形式 —> 构造 —> 自动化 —>” ——数据库管理系统的实现
解析语言并执行的系统——数据库管理系统
数据库管理系统(系统软件):从系统角度看DBMS的功能
DBMS为完成DB管理,在后台运行着一系列程序
- 语言编译器:将数据库语言书写的内容,翻译成DBMS可执行的任务。例如:DDL编译器、DML编译器、DCL编译器等;
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
- 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器、缓冲器管理器、索引/文件和记录管理器等;
- 通信控制:提供网络环境下数据库操作与数据传输的手段
- 事务管理:提供提高可靠性并避免并发操作错误的手段
- 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等实用程序
- 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段
- 完整性控制:提供数据及数据操作正确性检查的手段
- 数据字典管理:管理用户已经定义的信息
- 应用程序接口(API):提供应用程序使用DBMS特定功能的手段
- 数据库数据装载、重组等实用程序
- 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行
- …
编译与执行控制、查询优化实现、存储与索引、事务处理、(各种)控制程序
(2)典型的数据库管理系统(DBMA)
Oracle、DB 2(IBM)、Sybase、MS SQL Server等等