210 likes | 384 Views
第 1 章: 绪论. 数据库系统的目的 对数据的观察角度 数据模型 数据定义语言 DDL 数据操纵语言 DML 事务管理 存储管理 数据库管理员 DBA 数据库用户 系统总体结构. 数据库管理系统 (DBMS). 一个相互关联的数据的集合 一个存取数据的程序的集合 特定企业的信息 DBMS 提供对数据进行 方便 和 高效 的使用的环境 . 数据库应用 : 银行 : 各种交易 航空公司 : 订座 , 时刻表 大学 : 注册 , 分数 销售 : 客户 , 产品 , 购买 制造业 : 生产 , 库存 , 订货 , 供应链
E N D
第1章: 绪论 • 数据库系统的目的 • 对数据的观察角度 • 数据模型 • 数据定义语言DDL • 数据操纵语言DML • 事务管理 • 存储管理 • 数据库管理员DBA • 数据库用户 • 系统总体结构
数据库管理系统(DBMS) • 一个相互关联的数据的集合 • 一个存取数据的程序的集合 • 特定企业的信息 • DBMS 提供对数据进行方便和高效的使用的环境. • 数据库应用: • 银行: 各种交易 • 航空公司: 订座, 时刻表 • 大学: 注册, 分数 • 销售: 客户, 产品, 购买 • 制造业: 生产, 库存, 订货, 供应链 • 人力资源: 雇员记录, 工资, 扣税 • 数据库涉及我们生活的所有方面
数据库系统的目的 • 早期的数据库应用建立在文件系统之上 • 使用文件系统存储数据的缺点: • 数据冗余与不一致性 • 多种文件格式, 信息在不同文件中重复 • 存取数据困难 • 对每个新任务必须写新程序 • 数据隔离 — 多种文件及格式 • 完整性问题 • 完整性约束(e.g. account balance > 0)嵌在程序代码中 • 难以加入新约束或改变已有约束
数据库系统的目的 (续) • 文件系统的缺点 (续) • 更新的原子性 • 故障可能导致更新只执行一部分,从而使数据库处于一个不一致的状态 • 例如:账户之间的转账必须全部完成或完全不做 • 多用户并发存取 • 并发存取有利于提高性能 • 并发存取若不加控制可能导致不一致性 • 例如:两个人同时修改账户余额 • 安全问题 • 数据库系统提供对以上所有问题的解决方法
抽象层次 • 物理层: 描述记录 (e.g., customer)如何存储. • 逻辑层: 描述存储在数据库中的数据及数据之间的联系. type customer = recordname : string;street : string;city : integer;end; • 视图层: 应用程序隐蔽了数据类型的细节. 视图还能为安全目的隐蔽信息 (e.g., salary).
对数据的观察层次 数据库系统的体系结构
实例与模式 • 类似程序设计语言中的类型与变量 • 模式 – 数据库的逻辑结构 • 例如, 数据库包含客户与账户信息,以及它们之间的联系 • 类似于程序变量的类型信息 • 物理模式: 物理层数据库设计 • 逻辑模式: 逻辑层数据库设计 • 实例 – 数据库在特定时刻的实际内容 • 类似于变量的值 • 物理数据独立性 – 修改物理模式而不需改变逻辑模式的能力 • 应用依赖于逻辑模式 • 一般地, 不同层次与部分之间的界面应该良定义,使得一部分的改变不会严重影响其他部分.
数据模型 • 一个概念工具集合,用于描述 • 数据 • 数据联系 • 数据语义 • 数据约束 • 实体-联系模型 • 关系模型 • 其他模型: • 面向对象模型 • 半结构化数据模型 • 旧式模型: 网状模型和层次模型
实体-联系模型 实体-联系模型建立的模式例
实体-联系模型 (续) • 现实世界的 E-R 模型 • 实体 (对象) • E.g. 客户, 账户, 银行分行 • 实体之间的联系 • E.g. 账户 A-101 为客户 Johnson 所拥有 • 联系集depositor将客户与账户相关联 • 广泛用于数据库设计 • 用 E-R 模型做的数据库设计再转换成用关系模型做的设计,后者用于存储和处理
关系模型 属性 • 关系模型中的表式数据例 customer- street customer- city account- number Customer-id customer- name Johnson Smith Johnson Jones Smith 192-83-7465 019-28-3746 192-83-7465 321-12-3123 019-28-3746 Alma North Alma Main North A-101 A-215 A-201 A-217 A-201 Palo Alto Rye Palo Alto Harrison Rye
数据定义语言 (DDL) • 定义数据库模式 • E.g. create tableaccount (account-numberchar(10),balanceinteger) • DDL 编译器生成数据字典中的信息 • 数据字典包含元数据 (i.e., 关于数据的数据) • 数据库模式 • 数据存储与定义语言 • 可用于说明数据库系统使用的存储结构和存取方法的语言 • 通常是数据定义语言的扩展
数据操纵语言 (DML) • 用于存取和操作按特定数据模型组织起来的数据的语言 • DML 也称为查询语言 • 两种类型的语言 • 过程式的 – 用户指明需要什么数据以及如何得到那些数据 • 非过程式的 – 用户指明需要什么数据但不说明如何得到那些数据 • SQL 是最广泛使用的查询语言
SQL • SQL: 广泛使用的非过程式语言 • E.g. 求客户号为 192-83-7465 的客户的姓名selectcustomer.customer-namefromcustomerwherecustomer.customer-id = ‘192-83-7465’ • E.g. 求客户号为 192-83-7465 的客户所拥有的所有账户的余额selectaccount.balancefromdepositor, accountwheredepositor.customer-id = ‘192-83-7465’ anddepositor.account-number = account.account-number • 应用程序存取数据库一般是通过 • 嵌入式 SQL • 应用编程界面 (e.g. ODBC/JDBC)
数据库用户 • 根据与数据库系统交互的方式来区分不同用户 • 应用程序员 – 通过 DML 调用与系统交互 • 高级用户 – 使用数据库查询语言表达请求 • 专业用户 – 写专门的数据库应用 • 初级用户 – 调用别人开发好的应用程序 • E.g. 通过web访问数据库的人, 银行出纳, 办事员
数据库管理员 • 协调数据库系统中的所有活动 • 数据库管理员完全了解企业的信息资源和需求 • 数据库管理员的职责包括: • 模式定义 • 存储结构与存取方法定义 • 模式与物理组织修改 • 给用户授予存取数据库的权限 • 声明完整性约束 • 负责与用户的联络 • 监控性能 • 对需求的改变进行反应
事务管理 • 事务是一个操作集合,完成数据库应用中的单个逻辑功能 • 事务管理部件确保数据库在即使发生了系统故障(e.g., 电源故障和操作系统崩溃)或事务故障的情况下仍处于一致(正确)状态. • 并发控制管理器控制并发事务之间的交互, 以确保数据库的一致性.
存储管理 • 存储管理器提供存储在数据库中的底层数据与应用程序和提交给系统的查询之间的界面. • 存储管理器负责下列任务: • 与文件管理器的交互 • 高效地存储, 获取和修改数据
应用体系结构 • 两层体系结构: E.g. 客户端程序通过 ODBC/JDBC 与数据库交互 • 三层体系结构: E.g. 基于web的应用, 通过中间件构建应用