第1节 数据库如何描述客观世界
- 数据库用来存放客观世界的大量数据信息
- 在(关系)数据库中用二维表来描述客观世界
- 内涵:列(列即属性,多寡取决应用需要)
- 外延:行(满足上述内涵特征的所有个体的集合)
数据库中存放的是“谁”的数据?
- 谁:一个应用系统(企业)需要的客观数据
- 涉及到数据对象的结构、范围和使用权限
客观世界
- 是由事(注册,选课)或物(学生,课程)及相互联系构成
描述方法
-
通常地,最直接和有效的方法是:用概念来描述事或物及相互联系
-
事物是所有概念的统称
概念包含内涵和外延
- 内涵:是概念的性质和特征
- 外延:是满足上述性质及特征的所有客观个体的集合
例如学生的内涵和外延:(物)
- 学号,姓名,性别,籍贯,民族,…等属性 (内涵)
- 张三;李四;王麻子;…同类型的不同客观个体 (外延)
选课的内涵和外延:(事)
- 选课注册表:学号,课程号,选课日期,课程成绩,…(内涵)
- 注册表上的各个行…(外延)
数据库与客观世界的关系
- 数据库是数据化的客观世界
- 数据库设计是对客观世界的数据化
第2节 数据库的发展过程
-
手工阶段(最早期的银行业务管理)
-
程序阶段
早期的应程序处理和管理数据(解释应用需求是如何从数据计算过渡到数据管理)
- 该阶段的基本特点:(主要任务是完成自动计算)
- 数据的管理者:应用程序,数据不保存。
- 数据面向的对象:某一应用程序
- 数据的共享程度:无共享、冗余度极大
- 数据的独立性:不独立,完全依赖于程序
- 数据的结构化:无结构
- 数据控制能力:应用程序自己控制#
-
文件阶段
基于文件系统的数据管理程序的数据管理特点:- 数据的管理者:文件系统
- 数据面向的对象:某一(或极少数)应用程序
- 数据的共享程度:共享性差、冗余度大
- 数据的结构化:记录内有结构,整体无结构
- 数据的独立性:独立性差,数据的存储方式以及逻辑结构改变必须大幅度修改应用程序
- 数据控制能力:应用程序自己控制
-
数据库阶段
- 数据库管理阶段的基本特点:
- 数据的管理者:DBMS
- 数据面向的对象:现实世界
- 数据的共享程度:共享性高
好处: 1. 减少数据冗余,节约存储空间。2. 避免数据之间的不相容性与不一致性。 3. 使系统易于扩充 - 数据的独立性:高度的物理独立性和一定的逻辑独立性
- 数据的结构化:整体结构化
- 数据控制能力:由DBMS统一管理和控制
第3节 数据模型的概念
数据模型
数据模型是一种用来抽象、表示和处理客观世界数据对象结构的描述方式,是对客观世界的模拟(一种主观建模)
数据模型应满足:
- 形式化
- 能够尽可能真实的反映客观世界
- 容易人所理解
- 便于在计算机上实现
数据模型又可分为逻辑模型和物理模型
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等。是按计算机系统的观点对数据建模(面向计算机实现建模)
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法。
概念模型
- 也称信息模型, 是按照用户的观点来对数据和信息建模,几乎不涉及计算机专业技术知识。(面向客观世界建模) 与DBMS无关
- 因此概念模型一方面应该具有较强的语义表达能力,另一方面还应该简单、清晰、易于用户理解。
数据库建模的两大阶段
- 客观对象的抽象过程–两步抽象:
- 现实世界中的客观对象抽象为概念模型;
- 把概念模型转换为某一DBMS支持的数据模型。
- 概念模型的重要作用
- 是现实世界到机器世界的一个中间层次;
- 可将业务模型与计算机实现工作隔离开;
- 复杂性减少,便于分工,成功性增大
第4节 数据库系统的概述
数据
- 数据是数据库中存储和管理的基本对象,是描述事物的符号记录
- 数据的种类:数字、文字、图形、图像、声音
- 数据库中的数据与其语义是不可分的(通常需要满足一定的语义约束,否则就毫无意义)
数据库
- 定义:长期存储在计算机内的、有组织的、可共享的大量数据集合。
数据库的特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户(应用程序)共享使用
- 冗余度较小
- 数据独立性较高(逻辑独立性和物理独立性)
- 易于扩展
相对于文件:强制约束、可扩展(大数据)、查询便利、结构无关、安全(视图)、并发、崩溃恢复
数据库管理系统DBMS
- 数据库管理系统是位于用户(应用程序)与操作系统之间的一层数据库管理软件。
- 用途: 1. 科学地组织和存储数据 2. 高效地获取和维护数据
- 主要功能: 数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能
数据库系统DBS
- 是指计算机系统中引入数据库后的系统构成。(常简称为数据库)
由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
第5节 数据库技术在应用开发中的作用
应用开发需要解决的主要问题:
- 数据如何存放? 建立数据模型,逻辑结构设计,物理结构设计
- 数据如何访问? 数据库语言SQL
- 数据如何适应应用需求变化? 三层模式结构
- 如何保证数据正确性? 完整性约束
- 如何限制非法访问? 授权管理
- 如何保证并发访问同一数据的有效性? 事务管理
- 如何防范故障? 数据备份与恢复
- 如何提高查询效率? 查询优化、索引
第7节 数据库的开发运行环节
数据库系统开发的主要过程
Step1:需求分析
- 功能需求(功能需求说明书)
- 数据需求(数据需求说明书)
(编写数据流程图+含数据字典];或者采用统一建模语言UML:用例图+时序图+类图等)
Step2:系统设计
- 系统功能设计(总统设计,详细设计,界面设计,…)
- 数据结构设计(概念结构设计 & 逻辑结构设计 & 物理结构设计)
Step3:系统实现
- 数据库实现 (实际建立数据结构)
- 应用功能实现[程序代码,程序检测]
Step4:系统运行与维护
- 运行系统与维护
- 数据运行与维护
- 数据分析
数据库开发的主要过程
数据需求->(概念设计->逻辑设计->物理设计)->数据库实现->数据维护->数据分析
第8节 数据库设计过程
数据结构设计的主要任务
-
分析数据对象特征和使用需求
-
建立数据模型(对象内部结构和外部关联)
-
概念设计(建立客观世界的抽象结构)
-
逻辑设计(建立便于计算机实现的逻辑结构-与DBMS密切相关)
还应包括:
- 数据结构优化设计(建立良好的结构)
- 数据完整性设计(建立完整性约束)
- 数据安全设计(用户访问授权)
-
物理设计(建立物理存储模型)
-
相关数据库技术
- E-R模型(7章),UML(6章) —面向客观世界描述!
- 关系模型( 2章,7章)
- 视图+完整性约束+授权(4章)
- 关系数据库设计与优化(8章) —面向计算机实现!
- 对象数据模型(22章)
- XML数据模型(23章)
数据存储设计(物理设计)
- 分析数据需求和使用需要
- 对关联数据的使用要求
- 访问效率要求
- 安全性要求
- 设计数据物理存储模式
- 如何存放数据
- 如何支持快速访问
- 如何保证数据安全*
相关数据库技术
- 存储和文件结构*(10章)、索引与散列(11章)
数据访问设计的任务?
- 分析数据查询要求
- 设计数据访问方法
相关数据库技术:
- SQL(3章)、中级SQL(4章)、高级SQL(5章)、查询处理(12章)、查询优化(13章)、信息检索(21章*)
数据控制设计的任务是什么?
- 如何控制数据处理过程(系统架构)
- 如何支持多用户并发访问
数据维护的任务
- 数据录入与更新
- 更改数据结构
- 更改用户访问权限
- 备份和恢复数据
应用开发的任务
- 算法与程序实现
- 如何提高开发效率
- 如何高效访问数据
- 数据分析
数据库设计的基础条件是什么?
- 设计数据库系统的目的是用于管理企业的大量信息,这些信息是企业行为的一部分。企业的终端产品可以从数据库得到信息或服务,数据库对他们提供支撑。
必须清楚一个应用系统的功能需求与数据需求
关键阶段
-
数据库建模阶段(概念设计)
-
建模,根据数据需求,建立概念模型,便于面向用户交互
-
概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体的DBMS的概念模型。
-
-
数据库逻辑结构设计阶段(逻辑设计)
-
基于概念模型,形成商业产品支持的逻辑模型,面向计算机逻辑实现
-
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化
-
-
数据库物理组织设计阶段(物理设计)
根据逻辑模型,确定适合应用要求的物理模型面向计算机物理实现