1.1 数据库系统的基本概念
1.1.1 课程介绍
学习数据库系统的三个目的:
- 数据库系统的知识对于计算机学者至关重要。
- 涉及的到领域多。
- 能够找到一个好工作。
从三个方面学习数据库相关知识:
- (基础)数据库模型与设计:从现实中抽象出数据模型再将其转换为适合数据库管理系统(DBMS)的形式:表、视图。
- (重点)编程:使用数据库查询、更新数据(SQL)。
- (进阶)数据库管理系统实现。
1.1.2 数据库管理系统
数据库的访问方法:
- 利用数据库管理系统提供的交互工具访问数据库(如:MySQL WorkBench等)。
- 利用开发工具设计界面、处理数据,调用ODBC等接口访问数据库(如:JSP,VC++等)。
数据库(DB)与数据库管理系统(DBMS)的区别:
- 数据库:数据集。
- 数据库管理系统:数据库 + 一组用于访问、更新和管理这些数据的程序。
DBMS的五个特性:
- 数据访问的高效性和可扩展性。
- 缩短应用时间。
- 数据独立性(物理独立性/逻辑数据独立性)。
- 数据完整性和安全性。
- 并发访问和鲁棒性(恢复性)。
DBMS的发展历史:
![](https://i-blog.csdnimg.cn/blog_migrate/f2d18443b6bfde6e928892f1ea3ebba5.png)
一句话总结:三十年河东,三十年河西。
1.1.3 数据库管理系统与文件系统的对比
文件处理系统的优点:
- 被传统操作系统支持(无需安装其他)。
- 有一定的文件独立性。
文件系统的七个主要缺点:
- 数据的冗余和不一致(多种文件格式和信息重复存储)。
- 数据访问困难(需要较复杂的访问程序设计)。
- 数据孤立(多格式检索和共享困难)。
- 完整性问题(完整性约束)。
- 原子性问题(两个同属一个原子的操作被分割打断便难以复原)。
- 并发访问异常(系统允许并发,但在不受控制的情况下有可能导致数据不一致)。
- 安全性问题(并非所有用户都可以访问所有数据)。
1.2 数据库模式及数据类型
1.2.1 模式
关系数据库管理系统的公司:
- 传统关系数据库管理系统的公司面临“面向对象DB”公司的挑战。
- “对象-关系”系统,保留了核心的关系模型,同时允许类型扩展为面向对象的系统。
- 其他数据库产品:Ingres,Paradox,Foxbase…
开源数据库系统:
- MySQL:网站上小型系统最流行的开源数据库。
- PostgreSQL:高度可扩展的,开放源码的对象关系型数据库管理系统。
数据库系统三层数据抽象结构:
![](https://i-blog.csdnimg.cn/blog_migrate/b7a38a49d813c74be6e0a03fba46064f.png)
- 物理层
- 逻辑层:描述数据间关系
如:type instruct = record ID : char(5); name : char(20); dept_name : char(20); salary : numeric(8,2); end;
- 视图层:应用程序能够隐藏数据类型的详细信息。
模式与实例:
数据库管理系统的模式结构:
- 修改下层结构定义不影响上层解雇定义。
- 修改物理结构不需要改变逻辑结构(使用DBMS最重要的好处)。
- 修改逻辑结构不影响应用程序。
- 应用程序依赖于逻辑结构但独立于数据的结构和存储。
1.2.2 数据模型
数据模型用于描述:
- 数据结构
- 数据关系
- 数据语义
- 数据约束
数据库设计过程:
![](https://i-blog.csdnimg.cn/blog_migrate/93e84453ae2b0578a7a7d25b6b700fc2.png)
不同层次需要不同的数据模型来描述。
E-R(Entity - Relationship)模型:
- 实体(E):由属性描述的对象。
- 联系(R):实体间的关联。
- 应用:通常用于将数据库设计转化为关系模型的设计。
1.3 数据库语言、用户及体系结构
1.3.1 数据库语言
SQL的组成:![组成](https://i-blog.csdnimg.cn/blog_migrate/93182b84d51b783b21852be0f5df6cff.png)
SQL的三种用法:
- 直接使用:
①SQL Server(查询分析器)
②Oracle(SQL*Plus、Work Sheet)
③MySQL(命令行客户端)- 通过ODBC、JDBC在宿主语言中使用
- 在宿主语言中使用嵌入式SQL
数据库使用图示:
1.3.2 数据库用户
四种用户:
- 普通用户:依赖应用程序与系统交互。
- 应用程序员:调用SQL与系统交互。
- 富有经验的用户:利用查询语言或数据分析软件表达要求。
- 特殊用户:编写脱离传统数据处理框架的数据库应用。(如CAD等)。
数据库管理员(DBA):对数据库系统进行集中控制。
事务管理:
- 事务要求:ACID(原子性/一致性/隔离性/持久性)。
- 事务管理组件:保证在断电宕机下的数据正确性。
- 并发控制管理器:控制并发事务间的交互。
1.3.3 数据库体系结构
体系结构图:
![](https://i-blog.csdnimg.cn/blog_migrate/5e57440a4d4a91d029f76466a80c83bf.png)
两种结构:
- 两层体系结构(早先的):像通过ODBC和JDBC这样的应用程序接口标准与客户端和服务器交互。
- 三层体系结构(现在大多数):如基于web的应用程序及采用“中间件”的构建的应用程序。
(完)