数据(Data):是数据库中存储的基本对象,是描述事物的符号记录。
数据库发展历史
1.手工管理
2.文件系统(filesystem)
共享文件,当两个程序同时访问一个文件数据时存在安全问题
3. 数据库管理系统(DBMS):
将不同用户的数据以统一的结构进行组织存储
那么如何组织这一结构呢?
- 基于网状结构,采用图结构存储数据
缺点:访问效率低,修改更新困难 - 基于树结构,采用层次化结构存储数据
缺点:对于特殊情况的数据,采用层次化结构表示困难 - 基于关系模型,表示数据与数据之间的联系
关系(离散数学概念)
数据库(Database):
| 大量的、共享的、有组织的、结构化的、相关的、长时间保存的数据集合。 |
数据库系统(DBS):
| 应用系统(程序)、数据库管理系统、数据库和数据库管理员组成数据库系统。 |
数据库特点:
数据抽象
可靠
高效
数据库管理系统(DBMS):
| 位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。 |
数据模型:
用来抽象、表示和处理现实世界中数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;由数据结构、数据操作和完整性约束条件组成。常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。
概念模型:
也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型:
按计算机系统的观点对数据建模,用于DBMS实现。
物理模型:
对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
实体和属性:
客观存在并可相互区别的事物称为实体。实体所具有的某一特征称为属性。
E-R图:
即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具。分为一对一、一对多和多对多类型。
关系模式:
从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。
型/值:
型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。
数据库模式:
对数据库中全体数据的逻辑结构(数据项名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
数据库的三级系统结构:
外模式、模式(概念模式)、内模式。
数据库内模式:
又称存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式。
数据库外模式:
又称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
数据库的二级映像:
外模式/模式映像、模式/内模式映像。
关系模型特点:
| 1. 关系模型与格式化模型不同,他是建立在严格的数学概念的基础上的。 |
| 2. 关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系。所以其数据结构简单、清晰、用户易懂易用。 |
| 3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。 |
| 4. 由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。不过用户不必考虑这些系统内部的优化技术细节。 |
事务的ACID特性:
A:原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做
C:一致性(Consistency)
事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态。例如,转账两个事务进行后账号上的钱总和不能变。
I:隔离性(Isolation)
一个事务的执行不能被其它事务干扰。并发时一个事务的执行就好像只有它自己在执行一样。
D:持续性(Durability)/永久性
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其它操作或者故障不应该对其执行结果有任何影响。
视图:
| 视图是从一个或几个基本表/视图导出的表。它是个虚表,数据库只存放视图的定义,不存放视图对应的数据,这些数据仍然存放在原来的表中。所以一旦基本表中的数据发生变化,从视图中查询到的数据就会随之变化。视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。 |
视图优缺点:
|
1. 视图能够简化用户的操作 2. 视图使用户能以多种角度看待同一数据 3. 视图对重构数据库提供一定程度的逻辑独立性 4. 视图能够对机密数据提供安全保护 5. 适当利用视图可以更清晰地表达查询 6. 通过视图对数据库进行修改可能产生不利的后果 |
JDBC方式连接数据库的过程:
|
1. 加载JDBC驱动程序 2. 向java.sql.DriverManager请求并获得Connection对象 3. 创建一个Statement 4. 执行SQL 5. 处理结果 6. 处理异常,关闭JDBC对象资源 |
数据库系统生存周期:
|
1. 数据库规划 2. 系统定义 3. 需求收集分析 4. 数据库设计 5. 应用程序设计 6. DBMS选择 7. 建立原型 8. 实现 9. 数据转换和加载 10. 测试 11. 运行维护 |