数据库设计与开发北京邮电大学 邓芳
Dengfang@bupt.edu.cn
2006,10
前言
课程目标
课程内容
学习方法
教学参考书课程目标:
掌握数据库的概念、理论和技术;
熟悉数据库设计与开发的过程和方法;
理解学会一个具体的 DBMS数据库的使用和管理;
利用这些知识能够设计和开发一个实际的数据库应用系统。
课程内容:
数据库系统相关基本概念;
关系数据库与对象关系数据库:数据模型、数据操作、
数据约束;
DBMS功能及策略:存储、查询处理、并发控制、恢复
数据库设计:需求分析,概念模型设计,数据库逻辑设计和物理设计,数据库实施; ER模型,规范化设计方法 。
具体数据库系统介绍,ORACLE
实验学习方法:
理论实践教学参考书:
数据库系统设计、实现与管理(第三版) Thomas
Connolly,Carolyn Begg 著,宁洪等译,电子工业出版社
数据库系统概念(原书第五版),Abraham
Silberschatz,etc.,杨冬清、唐世渭等译,机械工业出版社
ORACLE DBA基础教程,丁国良编著,科学出版社第一章 概述
数据管理
数据库系统
数据模型
数据库语言
数据库用户
数据库管理员 DBA
数据库管理系统 DBMS
系统总体结构
1.1 数据管理应用程序 1 数据组 1
应用程序 2 数据组 2
应用程序 n 数据组 n
… …
手工管理阶段( 50年代中期以前)
应用程序 1 数据组 1
应用程序 2 数据组 2
应用程序 n 数据组 n



…文件系统文件系统阶段 ( 50年代末~ 60年代末)
数据库系统阶段( 60年代末~至今)
数据库管理系统应用程序 1
应用程序 2
应用程序 n
数据库特点:
1.面向全组织的复杂的数据结构
2.数据冗余小,易扩充
3.具有较高的数据和程序的独立性
4.统一的数据控制功能
5.数据的最小存取单位是数据项
File system
Data Management
App,App.
File System
App.
Data
Management
App.
Data
Management
数据库系统与文件系统数据库系统数据库管理系统,DBMS
数据库,DB
数据库系统,DBS--Database System
“数据库系统,在大多数时候都是指 DBMS。 但是严格地来说,数据库系统 --DBS是指在计算机系统中引入数据库之后的系统,一般由数据库,数据库管理系统 ( 及其开发工具 ),应用系统,数据库管理员 ( DBA--Database
Administrator) 和用户构成 。 即:
DBS = DB + DBMS + APPLICATION + DBA + USER
1.3 数据模型一组描述数据库的概念,在数据库系统的形式化结构中对数据和信息进行抽象表示和处理的方式。
三要素数据结构:信息,数据对象的类型及之间的关系;
数据操作:对各种数据类型的实例所允许执行的操作集合;
数据约束条件:完整性规则集合,确保数据正确、有效和一致。
概念模型 /信息模型按用户的观点进行建模,不依赖于具体的 DBMS,独立于任何计算机系统实现的信息结构 。
实体 _关系模型 ( E_R模型 )
数据模型 /逻辑模型面向数据库中数据逻辑结构进行建模 。
关系,网状,层次基于记录的数据模型面向对象数据模型基于 对象 的逻辑模型数据模型 基于 记录 的逻辑模型 网状模型层次模型关系模型面向对象模型实体联系模型
(逻辑层和概念层)逻辑数据模型物理数据模型(物理层)
模式 – 数据库的逻辑结构例如,数据库包含客户与账户信息,以及它们之间的联系类似于程序变量的类型信息物理模式,物理层数据库设计逻辑模式,逻辑层数据库设计
实例 – 数据库在特定时刻的实际内容数据库模式与实例
1.4 数据库语言数据定义语言 DDL
数据库模式定义及数据库存储结构与存取方法定义。
数据操作子语言 DML
查询、增加、修改、删除数据控制语言 DCL
安全性、完整性控制
End Users:
naive Users
casual users -----Interactive SQL
Application Programmers-----Procedural SQL,Transaction
Database analyzer and designer -----Data modeling,
Normalization theory,
Database Administrators,DBA -----Database maintenance,
Security,Integrity,Recovery
Database Management System designer and implementer -----
Implementation technique of above techniques for Special
and New Database Management System
1.5 数据库用户数据库系统中对数据进行管理的软件,是数据库系统的核心组成部分 。
数据库定义:
DBMS提供数据库定义语言定义数据库结构,包括外模式,模式,内模式及相互之间的映射,定义完整性约束,安全限制等;
数据操纵:
提供数据库操作语言实现对数据库的操纵;
数据库运行控制:
数据安全性控制;
数据完整性控制;
并发控制;
数据库恢复机制;
数据库维护:
数据的载入,转储,数据库的重组织,性能监视及分析等 。
1.7 数据库管理系统 DBMS
1.8 数据库系统结构数据库系统内部的模式结构从数据库管理系统角度看数据库系统外部的体系结构从数据库最终用户角度看
describes how a
record is physically
stored.
describes logical
data stored in
database,and
the relationships
among the data,
Community user
view
Part of entire database
Individual user views
Physical
abstraction
Logical
abstraction
View
abstraction
主语言
+DML
用户 A1
主语言
+DML
用户 A2
主语言
+DML
用户 B1
主语言
+DML
用户 B2
主语言
+DML
用户 B3
外模式 A 外模式 B
概念模式外模式 /模式映象 A 外模式 /模式映象 B
模式 /内模式映象内模式数据库由数据库管理员建立和维护
OS
DBMS
数据库系统的体系结构数据独立性
物理数据独立性:
内模式发生改变时,数据的逻辑结构不变,修改内模式和概念模式之间的映射;
逻辑数据独立性:
概念模式发生改变时,数据库的外模式不变,建立在外模式上的应用程序不需要改变,修改外模式和概念模式之间的映射。
DBMS
操作系统数据库系统缓冲区模式外模式应用程序用户工作区物理模式
11
2
3
567
8
9
10
1
4
应用访问数据库数据的过程
(1)应用程序 A向 DBMS发出读取记录的命令,应用程序在命令中给出所读记录的条件;
(2) DBMS分析用户命令,调用应用程序 A对应的外模式,从子模式中找到对应记录的数据描述,把对应的数据记录描述先读到系统缓冲区中;
(3) DBMS调用概念模式,根据所读记录的外模式 /模式的映射关系,决定读入模式中的哪些记录;
(4)DBMS首先在缓冲区中查找记录,如果找到,转 (9);
(5) DBMS调用物理存储模式,依据模式 /物理模式映射关系,
决定从哪台设备、用何种存取方式读取哪些记录;
(6)DBMS向操作系统发出读取所需物理记录的命令;
(7)操作系统向有关的物理设备发出调出物理记录 (物理存储页 )
的命令;
(8)相关的物理记录从数据库(硬盘)读到系统缓冲区。
(9)DBMS根据子模式 /模式映射关系,导出应用程序 A要读取的逻辑记录;
(10)DBMS把数据从系统缓冲区填写到应用程序 A的用户工作区;
(11)DBMS向应用程序 A返回操作命令执行正确与否的信息。
数据库系统外部的体系结构
单用户结构
主从式结构
客户 /服务器结构
浏览器 /应用服务器 /数据库服务器结构
分布式结构主机终端主从式结构的数据库系统
一个主机带多个终端的多用户结构
– 数据库系统,包括应用程序,DBMS,数据,
都集中存放在主机上,所有处理任务都由主机来完成
– 各个用户通过主机的终端并发地存取数据库,
共享数据资源
优点
– 易于管理,控制与维护 。
缺点
– 当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降 。
– 系统的可靠性依赖主机,当主机出现故障时,
整个系统都不能使用 。
客户 /服务器结构
两层体系结构,E.g,客户端程序通过 ODBC/JDBC 与数据库交互
三层体系结构,E.g,基于 web的应用,通过中间件构建应用
– 把一个应用系统按照逻辑功能分成用户界面、应用表示逻辑、事务逻辑、数据管理等,按照其相对角色的不同区分为客户端和服务器端软件。
– 客户软件能够请求服务器软件的服务。客户软件和服务器软件可以分布在网络中不同的计算机节点上,
也可以放置在同一台计算机上。
– 两层结构、三层结构、多层结构客户机 /服务器结构应用程序数据库 API
网络 /通信接口 网络 /通信接口数据管理 客户管理
DBMS
存储文件客户端 服务器数据 /网络协议
两层 C/S结构 的基本工作方式:
客户程序运行用户的应用程序,向数据库服务器发送
SQL请求,数据库服务器接受客户机的请求,并将处理结果返回客户端 。
一个客户应用开发语言和一个多用途的用于传送客户请求到服务器的机构是整个两层结构的核心 。
把 SQL语言从客户机传送到服务器上必须能识别服务的标识符或由一个应用程序接口来完成,还必须知道服务器的位置,数据组织形式以及数据如何定义 。 在服务器中,请求将得到存储逻辑和处理的进一步优化,
例如使用权限,完整性,并发控制等 。
客户 PC运行数据库应用 (界面处理 ),数据库服务器运行全部或大部分 DBMS(数据处理 )。 服务器运行 SQL,将查询结果传送到客户端,减少了网络信息的传输,系统采用数据锁定,事务技术,存储过程等数据库技术保证数据完整一致准确 。
三层 C/S结构,
数据库应用的三层 C/S结构将应用分成表示部分,
应用逻辑 (或称商业逻辑 ),数据访问部分 。 三层
C/S结构使各部分相互独立并单独实现,分别称为客户,应用服务器和数据库服务器 。
三层 C/S结构中数据在发送到网络之前由功能服务器加以过滤,网络流量会减少,另外客户端并不是直接同数据库打交道,而是通过中间层的统一调用来实现,在灵活性和独立性方面较好,适合于不同数据库的互联 。
Web浏览器 Web浏览器 Web浏览器
Web服务器数据库应用 文件系统 数据库应用数据库服务器 数据库服务器 数据库服务器客户层
Web服务层数据库层
浏览器 /服务器的几种工作方式,
– 简单式,Web浏览器需要一个 HTML页面时就提交一个 URL地址到 Web服务器,Web服务器从 Internet上检索到所需的本地或远程的网页,并将页面返回到浏览器。也可使用 Java Applet,ActiveX和 Java
Bean来加强表达。
该模型只限于使用 HTTP协议进行通信。
– 交互式:在打开与服务器连接及传输数据以前,
HTML获取用户输入的表单、文本域、按钮,通过这些内容取得与用户的交互。 HTTP服务器将输入信息传递服务器程序或某个脚本进行处理,Web服务器再从 DBMS服务器中检索数据,然后返回浏览器,最后中断浏览器和服务器连接。
– 分布 式:客户程序是由可下载的 Java编写,当 HTTP服务器将含有 Java小应用程序 (Java Applet)的页面下载到浏览器时,小应用程序在浏览器中运行并通过构件与传输服务器上的小服务程序 (Servlet)通信会话,
小服务程序收到信息后,经过 JDBC,ODBC或本地方法向数据库服务器发出请求,数据库服务器接到命令后,
再将结果传给 Servlet,最后送至浏览器。
Web数据库
DB1
DB1 DB1
计算机 1
计算机 1 计算机 1
通讯网络
A
C B
银行系统
背景:数据库系统 +计算机网络分布式数据库体系结构
基本特性
– 分布性:数据存储在不同场地上。与集中式数据库不同。
– 逻辑整体性:数据逻辑上是相互联系的一个整体。
与分散在计算机网络不同站点上的一组没有相互联系的本地数据库区别开来。
定义
– DDBS(Distributed Data Base)是一个数据集合,这些数据,分布在计算机网络的不同计算机上,网络中每个结点具有独立处理的能力,可以执行局部应用,
同时每个结点也能通过网络通讯支持全局应用。
分布式数据库强调场地自治性(局部应用)以及自治场地之间的协作性(全局应用) 。
“在自治的结点之间协同工作”
体系结构
– G-概念模式:定义 DDBS中数据的整体逻辑结构,
数据如同没有分布一样。
– 分片模式:每一个关系可以分为若干互不相交的部分,每一部分称为一个片段。
– 分布模式:定义片段的存放地点。
G-外模式 G-外模式
G-概念模式分片模式分布模式
L-概念模式 L-概念模式
L-内模式 L-内模式
L-DB L-DB
数据在分布式数据库的存储途径
– 复制系统维护关系的几个完全相同的副本,这些副本存储在不同的结点上。
– 分片关系被划分为几个片段,各个片段存储在不同的结点上。分片方式
水平分片,将关系 r按行分为若干子集 r1,r2,…,rn,每个子集 ri称为一个水平片段。一个水平片段可以看成是关系上的一个选择。
垂直分片,将关系 r按列分为若干属性子集 r1,r2,…,rn,
每个子集 ri称为一个垂直片段。一个垂直片段可以看成是关系上的一个投影。
导出分片,导出水平分片,分片的条件不是关系本身属性条件,而是其它关系的属性条件。
混合分片,关系按某种方式分片后,得到的片段再按另一种方式继续分片。
– 复制 +分片关系被划分为几个片段,系统为每个片段维护几个副本。
数据项的命名每个数据项(关系、副本、片段)必须有唯一的名字,在分布式数据库系统中必须保证在不同的结点上不会用同一个名字来代表不同的数据项。
分布(网络)透明性
– 分片透明性,用户或应用程序只对全局关系进行操作而不必考虑关系的分片。如果分片模式改变了,通过调整全局模式与分片模式之间的映象关系来保持全局模式不变。
– 位置透明性,用户或应用程序不必了解片段的存储位置。
– 局部数据模型透明性,用户或应用程序不必了解局部场地上使用的是哪种数据模型。
分布式 数据库系统 (DDBS)的组成,全局用户、
局部用户;全局数据库 (GDB)、局部数据库
(LDB);全局数据库管理系统 (GDBMS)、局部数据库管理系统 (LDBMS);全局数据分配 (GDD)、
局部数据分配 (LDD)。
思考题:
1,试述数据管理的发展阶段。
2,试述数据库系统的三级模式、数据库系统的组成和
DBA的职责。
3,试描述客户 /服务器数据库应用系统典型的两种体系结构和工作方式。
4,分布式数据库的数据存储方式?