一. 数据库系统课程简介
关系数据库关注: 数据库设计
其他数据库(以关系数据库为基础):面向对象数据库、XML数据库、NoSQL数据库,等等
- 概念区分:数据库、数据库系统、数据库管理系统
- 熟悉“表”的相关要求及术语
- 熟悉数据库系统的构成(工作环境)
- 了解数据库管理系统的功能:从用户和系统角度
二. 为什么学习数据库系统
传统社会:业务工作
数据库是一种技术也是一种思维
三. 数据库
1. 数据库的概念
简单来讲,数据库就是相互有关联关系的数据的集合,从计算机的角度一是要考虑如何存储数据,二是检索、查询以及获取有用的信息。
数据库是电子化信息的集合,将信息规范化并使之电子化,形成电子信息“库”,以便利用计算机对这些信息进行快速有效的存储、检索、统计与管理。
数据库起源于规范化“表 table(以按行按列形式组织及展现的数据)”的处理。
2. 表——开始“抽象”:理解-区分-命名-表达
表的常用术语: 表名、表标题(格式)、表内容(值)、行/元组/记录(row/tuple/record)、列/字段/属性/数据项(column/field/attribute/data item)、列名、列值
- 表名+表标题
(关系)模式 - 表名+表标题+表内容
表/关系
Table中描述了一批相互有关联关系的数据
Database:相互之间有关联关系的Table的集合。
四. 数据库系统
数据库系统(工作环境)
- 数据库DB: Database
- 数据库管理系统DBMS: Database Management System,管理数据库的一种系统软件
- 数据库应用DBAP: Database Application,为用户更好使用数据库开发的应用程序,不同用户开发不同程序,提供不同功能,这些应用是通过数据库管理系统来使用数据库
- 数据库管理员DBA: Database Administrator
- 计算机基本系统:计算机、网络、输入输出设备等
五. 数据库管理系统
1. 从用户角度看数据库管理系统
1.1 数据库管理系统功能
- 数据库定义: 定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等
- DBMS提供 数据定义语言DDL (Data Definition Language)
- 用户使用DDL描述建立表的格式,DBMS按照定义创建数据库及其中的Table
- 数据库操纵: 向数据库Table中增加、删除、更改数据及对数据进行查询、检索、统计等
- DBMS提供 数据操纵语言DML (Data Manipulation Language)
- 用户使用DML描述要进行的操纵,DBMS按照操作描述实际执行操作
- 数据库控制: 控制数据库中数据的使用,访问权限等
- DBMS提供 数据控制语言DCL (Data Control Language)
- 数据库管理员DBA使用DCL定义控制信息,控制信息告诉DBMS访问权限
- DBAP访问数据库时,DBMS对用户身份进行检测
- 数据库维护: 转储、恢复、重组、性能监测、分析……
- 一般由数据库管理员DBA来使用和掌握
1.2 数据库语言
数据库语言与高级语言差别:一条数据库语言相当于高级语言的一个或多个循环程序
数据库语言可以嵌入到高级语言(宿主语言)中使用
2. 从系统角度看数据库管理系统
“形式
2.1 数据库管理系统功能
解析语言并执行的系统——数据库管理系统
DBMS为完成DB管理,在后台运行一系列程序 。注意划分数据库管理系统和操作系统的管理范畴,有一些DBMS也可以越过操作系统智能,直接对磁盘、内存进行管理。
- 语言编译器:将数据库语言书写的内容,翻译成DBMS可执行的命令,如:DDL编译器、DML编译器等;
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段,例如贯穿于数据存取各个阶段的优化程序;
- 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段,例如:存储管理器、缓冲区管理器、索引/文件和记录管理器等;
- 通信控制:提供网络环境下数据库操作与数据传输的手段;
- 事物管理:提供提高1可靠性并避免并发操作错误的手段;
- 故障恢复
- 安全性控制
- 完整性控制
- 数据字典管理
- 应用程序接口(API)
- 数据库数据装载、重组等实用程序
- 数据库性能分析
典型的数据库管理系统:Oracle、DB 2 (IBM)、Sybase、MS SQL Server、MS Access、MS Foxpro等
3. 小结
$$ 课程内容{. $$
3. 概念区分
- 数据库
- 数据库系统
- 数据库管理系统
六. 学什么、学到什么程度
1. 数据库相关岗位及素质要求
- End Users
- naive users
- casual users —— interactive SQL
- Application Programmers —— Procedural SQL, Concept about Transaction (应用程序员)
- Database analyzer and designer —— Data modeling, Concept about Normalization (数据库分析师、设计师)
- Database Administrators, DBA —— Database maintainance, Security, Integrity, Recovery (数据库管理员)
- Database Management System designer and implementor —— implementation technique of above (数据库管理系统的设计开发人员)
- Techniques for Special and New Database Management System (新型数据库开发人员)