数据库系统的目的

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