北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
,数据库设计与开发,
北京邮电大学软件学院
郭文明
(guolyz@sohu.com)
2003.06
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.前言
0.1 数据库发展与应用
0.2 本课程内容
0.3本课程学习方法
0.4本课程参考资料
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.1 数据库发展与应用
? 数据库定义:数据库是数据管理的技术,数据
管理是指对各种数据进行收集、存储、加工和
传播的一系列活动的总和。包括对数据的分类、
组织、编码、存储、检索和维护。
? 数据处理的发展:数据处理的发展过程经历了
手工管理、文件管理、数据库三个阶段。
? 数据模型:数据库是建立在数据模型基础上的
数据集合。数据模型有:层次模型、网状模型、
关系模型、面向对象模型。比较成熟完善、市
场占用率较大的是基于关系模型基础上的关系
数据库。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.1 数据库发展与应用
? 数据库管理系统:数据库管理系统是位于用户
与操作系统之间的一层数据管理软件,属系统
软件。
? 数据库管理系统的功能:数据定义 (create、
drop等 );数据操纵 (select,insert等 );数
据库运行 (安全性、完整性、并发控制、故障
恢复 );数据库建立与维护 (数据转储、数据恢
复、性能监视、重组织 )。
? 目前的一些数据库管理系统( DBMS),小型
桌面数据库系统 FoxPro,ACCESS,PRADOX
等,大型数据库系统 ORACLE,INFORMIX,
SYBASE,DB2,Microsoft SQLserver等 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.1 数据库发展与应用
? 数据库的应用已越来越广泛。从小型的单项事
务处理系统到大型复杂的信息系统大都用先进
的数据库技术来保持系统数据的整体性、完整
性和共享性。
– 1)电脑抽奖, 采用数据库技术,不必修改程序,只变
更奖项设置,即可应用于不同的抽奖活动 。
– 2)招生考试, 通过对数据库排序和索引,完成考生
按志愿从高分到低分排列,根据学校招生计划录取,
录满为止 。
– 3)银行储蓄, 为每个用户建立能够唯一识别的帐户,
同时记录用户的往来明细,做到存储量大,运算速度
快,准确程度高 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.1 数据库发展与应用
? 企业 (生产管理、质量管理、客户管理、财务管
理、电子商务等 );机关 (办公自动化 );金融 (银
行电子结算 );证券 (股票交易、行情分析 );通
讯 (话费查询、费用结算 );教育卫生 (网上录取、
学籍管理 );社会保障 (住房公积金、医疗保险、
养老保险 );政府 (电子政务 );交通 (道路信息系
统 )等。
? 国民经济各个领域都离不开数据库技术, 目前,
一个国家的数据库建设规模 (指数据库的个数,
种类 ),数据库信息量的大小和使用频度已成为
衡量这个国家信息化程度的重要标志之一 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.1 数据库发展与应用
? 数据库系统:数据库系统是指在计算机系统中
引入数据库后的系统, 一般由数据库, 数据库
管理系统, 应用系统, DBA和用户构成 。
? 数据库设计是建立数据库及其应用系统的技术,
是信息系统开发和建设中的核心技术, 具体说,
数据库设计是指对于一个给定的应用环境, 构
造最优的数据库模式, 建立数据库及其应用系
统, 使之能够有效地存储数据, 满足各种用户
的应用需求 (信息要求和处理要求 )。 这个问题
是数据库在应用领域的主要研究课题 。
? 数据库技术研究领域,DBMS的研制、数据库设
计、数据库理论。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.2 本课程内容
? 1) 关系数据库与对象关系数据库:建立在关
系模型基础上的数据操纵, 融合了面向对象思
想的对象关系数据库和对象关系 SQL。
? 2) 数据存储和数据库管理:数据库常用的文
件存储, 索引技术, 散列技术和多键访问技术
等数据存储技术, 保证数据库正常运行的安全
性, 完整性控制和数据库恢复 。
? 3) 数据库应用程序体系结构:访问数据库的
程序, 事务处理技术, Client/Server体系结构,
多层体系结构, 分布式数据处理和中间件 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.2 本课程内容
? 4) ORACLE数据库,ORACLE数据库的体系
结构, 存储管理, 实例管理; ORACLE数据库
的规划与实施 。
? 5) 数据库设计:需求分析, 概念模型设计,
数据库逻辑设计和物理设计, 功能设计, 数据
库实施, CASE技术; ER模型, 规范化设计方
法 。
? 另外, 通过实验环节进一步理解所讲内容, 实
验即选择一 DBMS平台, 设计一实际的数据库应
用系统 。 完成实验需具备 DBMS知识, 程序设计
开发能力, 适当的专业领域知识 。 ( 实验要求
另发 ) 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.3本课程学习方法
? 数据库设计与开发这一门课集理论性, 技术性,
艺术性为一体, 学习过程中应根据这一些特点,
针对性的采取一些措施 。
? 1) 从学习一个具体的数据库管理系统 ( DBMS)
开始 。 理解数据管理的含义, 理解数据库原理
中的理论和方法 。 ——离开具体的 DBMS进行
数据库设计是不完整的设计 。
? 2) 从熟悉一个具体的数据库应用系统开始 。
了解具体应用的领域知识和背景, 结合 DBMS
的功能, 探索利用 DBMS为实际解决问题的过
程 。 ——离开深厚的领域知识, 不可能设计出
用户满意的数据库 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.3本课程学习方法
? 3) 从使用一个具体的编成语言开始 。 明确理
解在数据库设计和开发过程中, 哪些功能由
DBMS完成, 哪些由程序完成 。 ——没有编程
经验, 不可能设计出编程人员满意的数据库 。
? 4) 从 DBA的角度学 。 数据库应用系统的运行
离不开 DBA的大力支持, 数据库设计开发除满
足一般用户要求之外, 还应方便 DBA的数据管
理 。 ——数据库系统的运行没有 DBA的参与,
数据库系统的设计开发可能会感觉特别费劲 。
? 5) 多学习, 多实践, 多思考才能集理论性,
技术性, 艺术性为一体 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
0.4本课程参考资料
? 1.数据库 — 原理, 编程与性能,Patrick O’Neil著,
周傲英等译,机械工业出版社, 2002.01
(DATABASE Principles,Programming,and Performance.
Patrick O’Neil Elizabeth O’neil,高等教育出版社,2001.05)
? 2.数据库设计教程,Thomas M.Connolly著,何玉
洁等译,机械工业出版社,2003.06
? 3.Unix 和 Linux 下的 Oracle数据库管理,Michael
Wesster 著,王华驹等译,人民邮电出版社,2002.8
? 4.Oracle9i DBA Fundamentals I,ORACLE University
? 5.数据库实用教程,丁宝康 董健全,清华大学出
版社,2001.09
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.关系数据库与对象关系数据库
? 关系数据库管理系统 ( RDBMS) 使用灵
活, 即使用户不是程序员, 也可轻松快
捷地写出一般的查询语句 。 关系数据库
管理系统建立在关系模型基础之上 。 最
近几年, 一种更新的数据模型 ——对象 -
关系模型在许多产品中正逐渐取代关系
模型 。 建立在对象 —关系模型基础之上
的数据库管理系统称为对象 -关系数据库
管理系统 ( ORDBMS) 。 对象 -关系数据
库管理系统也支持关系数据库管理系统
中的数据 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.关系数据库与对象关系数据库
? 本章将介绍多年来支配数据表达方式的
关系模型的概念和规则, 从关系代数固
有的查询能力方面介绍关系模型的特性,
还要深入介绍工业标准 SQL( SQL-99)
语言 。 本章还将介绍对象 -关系模型的特
性和对象 -关系 SQL语法 。
1.1关系模型
1.2关系代数
1.3 SQL
1.4对象关系数据库
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1关系模型
? 1.1.1关系数据库举例
? 1.1.2关系数据模型
– 1.1.2.1域和数据类型
– 1.1.2.2表和关系
– 1.1.2.3关系规则
? 1.1.3数据模型
? 1.1.4最常用的数据模型
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.1 关系数据库举例
? 数据库是为了特殊目的存储在一起的相
关数据记录的集合 。 关系数据库是按照
关系模型组织存放数据的数据库 。 我们
给出几个关系数据库的例子 。
– 1) 产品 —代理 —销售数据库 (CAP)
顾客从代理商那里批发大量商品然后自己转
销, 顾客其实是零售商 。 顾客向代理商要求
购买商品, 每次订货要求有完整的记录 。
– 2) 网上录取数据库 (SCT)
– 3) 房屋销售数据库 (HEC)
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1) 产品 -代理 -销售数据库 (CAP)
CUSTOMERS顾客信息表
cid 顾客 ID
cname 顾客姓名
city 顾客所在城市
discnt 顾客可能会有的折扣
AGENTS 代理商信息表
aid 代理商 ID
aname 代理商名称
city 代理商所在城市
percent 代理商每笔交易所能
获得的佣金百分比
PRODUCTS 商品信息表
pid 商品 ID
pname 商品名称
city 商品库存所在城市
quantity 商品库存数量
price 商品批发价
ORDERS 订单信息表
ordno 订单 ID
Month 订单月份
cid 顾客 ID
aid 代理商 ID
pid 商品 ID
qty 数量
dollars 商品总价
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
2) 网上录取数据库 (SCT)
STUDENTS 学生信息表
Skh 考号 Sxm 姓名
Sxb 性别 Scsny 出生年月
Sdw 生源地 Syw 语文
Ssx 数学 Swy 外语
Sx X Szof 文化总分
Szg 照顾加分 Szgf 投档分
Szy1 一批志愿 Scy1 一批参志愿
Szy2 二批志愿 Scy2 二批参志愿
Sbz 标志 (已投 |在阅 |录取 |退档 |
死档等 )
Syx 院校码
Ssj 时间
COLLEGE 院校信息表
Cno 院校码
Cname 院校名称
Clb 院校类别
Cjh 院校计划数
Clq 院校录取数
Czy 院校在阅数
Ctd 院校投档数
TRACK 投档轨迹表
Skh 考号
Cno 院校码
Tbz 标志
Tsj 时间
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
2) 网上录取数据库 (SCT)运行机制
? 投档程序将考生按志愿从高分到低分排列, 根
据院校计划数和统一划定的重点院校, 普通院
校分数线进行投档:满足条件的考生其标志字
段 ( Sbz) 改为已投, 其院校码字段 (Syx)改为
投档院校的编码;
? 院校根据投挡结果下载已投档到本学校的考生
信息, 此时考生其标志字段 ( Sbz) 改为在阅;
? 院校通过阅读学生信息决定每一考生命运 ( 录
取, 退档 ) ;
? 考生标志字段 ( Sbz) 的每一次修改, 都会相
应修改 COLLEGE中的相关字段值, 并且在 TRACK
中留下痕迹 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
3)房屋销售数据库 (HEC)问题
? 假设某房地产公司聘用多名业务员负责房地产
的销售业务, 每名客户可以多次或一次购买多
套住房, 每套住房有唯一的标识 ( 房间号 ),
每套房产交易都要签定合同, 合同事例如下图
所示:
? 试为该房地产公司设计一个关系数据库 。
合同号, 01409090 日期, 02/02/03 付款方式,一次性 总金额, 495000.00元
客户身份证号, 110102701104271 客户姓名,王刚 联系电话, 88626868
地址,北京市白石桥路 188号 邮政编码, 100081
房间号 居室数 建筑面积 (m2) 使用面积 (m2) 单价 (元 /m2) 金额 ( 元 )
102 3 110 90 3300.00 297000.00
103 2 78 60 3300.00 198000.00
务员代码, 23 业务员姓名,李平 电话号码, 84128996
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
3)房屋销售数据库 (HEC)问题
HOUSES 房屋表
房间号
居室数
使用面积
单价
销售合同号
EMPLOYEES 雇员表
业务员代号
业务员姓名
电话号码
CUSTOMERS 客户信息表
客户身份证号
客户姓名
客户住址
客户电话号码
ORDERS 合同表
合同号
日期
客户身份证号
业务员代码
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2关系数据模型
? 单一的数据结构 ———关系
关系模型的数据结构非常单一 。 在关系模型中, 现实
世界的实体以及实体间的各种联系均用关系来表示 。 在
用户看来, 关系模型中数据的逻辑结构是一张二维表 。
? 关系操作
关系模型给出了关系操作的能力, 但不对 RDBMS语言给
出具体的语法要求 。 关系模型中常用的关系操作包括:
选择 (Select), 投影 (Project),连接 (Join), 除
(Divide), 并 (Union), 交 (Intersection), 差
(Difference)等查询 (Query)操作和增加 (Insert),删
除 (Delete),修改 (Update)操作两大部分 。 查询的表达
能力是其中最主要的部分 。
关系操作的特点是集合操作方式, 即操作的对象和结
果都是集合 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2关系数据模型
? 关系的三类完整性约束
关系模型允许定义三类完整性约束:实体完整性, 参
照完整性和用户定义的完整性 。 其中实体完整性和参照
完整性是关系模型必须满足的完整性约束条件, 应该由
关系型数据库管理系统自动支持 。 用户定义的完整性是
应用领域需要遵循的约束条件, 体现了具体领域中的语
义约束 。
? 关系模型与以往的模型 (层次模型, 网状模型 )不同, 它
是建立在严格的数学概念的基础上的 。 在用户观点下,
关系模型中数据的逻辑结构是一张二维表, 它由行和列
组成 。 关系模型中称为关系, 属性, 元组 。 数据库中有
两套术语:表, 列, 行;关系, 属性, 元组 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.1域和数据类型
? 在目前的 DBMS产品中 ( ACCESS,FOX,ORACLE、
DB2 UDB,INFORMIX), 创建数据库首先确定该
数据库有多少表, 每一表的名称是什么, 表中
包含哪些列, 表的列必须确定类型 。 比如说,
表 CUSTOMERS中的 discnt列的类型是 real(实型 ),
city列的类型为 char(20)( 字符串 ) 。
? 为什么在定义表的时候, 必须给表的列加一个
特定的类型呢? 我们知道, 在 C或者 Java等编程
语言中, 对于程序中使用的变量或常量等数据,
事先应当申明其类型, 具有相同类型的数据才
可以进行一系列的比较和运算 。 数据库中给表
的列加一个特定类型的原因也在于此 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.1域和数据类型
? 在数据库原理或理论性文献中, 一般地说,
一个表的列的取值范围是在一集合 D上,
我们称 D为域 (Domain)。
? 定义 1.1.1域 (Domain) 域是一组具有相同
数据类型的值的集合 。
例如:自然数, 整数, 实数, 字符串,
日期, 时间, {0,1},{‘男 ’, ‘ 女 ’ }、
{民族名 |中国 56个民族的名字 }等等, 都
可以是域 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.2表和关系
? 定义 1.1.2笛卡尔积 (Cartesian Product)
给定一组域 D1,D2,…,Dn,这些域中可以有
相同的 。 D1,D2,…,Dn 的笛卡尔积为:
D1× D2× …× Dn= {(dl,d2,…,dn)| di∈Di,i= 1,2,…,n}
其中每一个元素 (dl,d2,…,dn)叫作一个 n元组
(n-tuple)或简称元组 (Tuple)。 元素中的每一
个值 di叫作一个分量 (Component)。
若 Di(i=1,2,…,n) 为有限集, 其基数为
mi(i=1,2,…,n),则 D1× D2× …× Dn的基数 M为:
m1× m2× …× mn
? 笛卡尔积可表示为一个二维表 。 表中的每行对
应一个元组, 表中的每列对应一个域 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.2表和关系
? 定义 1.1.3关系 (Relation) D1× D2× …× Dn的子
集叫作在域 D1,D2,…,Dn 的关系, 表示为
R(D1,D2,…,Dn)
R这里只表示关系的名字, n是关系的目或度
(Degree)。
? 关系是笛卡尔积的有限子集, 所以关系也是一
个二维表, 表的每行对应一个元组, 表的每列
对应一个域 。 由于域可以相同, 为了加以区分,
必须对每列起一个名字, 称为属性 (Attribute)。 n
目关系必有 n个属性 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.2表和关系
? 若关系中的某一属性组的值能唯一地标识一个
元组, 则称该属性组为候选码 (Candidate key)。
若一个关系有多个候选码, 则选定其中一个为
主码 (Primary key)。 主码的诸属性称为主属性
(Prime attribute)。 不包含在任何侯选码中的属性
称为非码属性 (Non-key attribute)。
? 笛卡尔积中的许多元组是 无实际意义的, 从中
取出有 实际意义 的元组来构造关系 。 在域的笛
卡儿积中, 我们称那些符合条件的元素为相关
的, 由此得到数学上的术语 ——关系 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.2表和关系
? 表的列相对是稳定的, 它描述表的结构 。 增加
或删除列都不是常见的, 我们也不希望在日常
业务中这样 。 设计表的列布局就是数据库的逻
辑设计 。 另一方面, 表的内容是经常变化的,
新的行被添加或被删除在日常业务中随时可能
发生 。 数据库是关系的集合 。 组成关系的属性
(列 )的集合称为关系模式 。 数据库所有关系模
式的集合构成数据库模式 。
? 关系可以有三种类型:基本关系 (基本表或基表 )、
查询表和视图表 。 基本表是实际存在的表, 它
是实际存储数据的逻辑表示 。 查询表是查询结
果对应的表 。 视图表是由基本表或其他视图表
导出的表, 是虚表, 不对应实际存储的数据 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.2.3关系规则
? 基于笛卡尔积的子集的关系定义, 在各种不同
的商业数据库产品中又有一些规则, 这些规则
告诉我们在表结构中哪些变化是允许的, 哪些
检索操作是受限的, 这些规则也是我们在进行
数据库设计时需要充分考虑的 。
? 关系规则是在关系模型的发明者 E.F.Codd的一
系列论文中提出, 这些规则反映了特定的数学
假设, 目的是为了建立一个良好的关系结构 。
? 出现新的对象 -关系模型是因为人们认为从数学
出发的关系规则有点太严格, 无法容纳一些有
价值的思想, 特别是面向对象的系统分析思想
出现之后 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 1 列是同质的
? 每一列中的分量是同一类型的数据, 来自同一个
域 。 每一列为一个属性, 要给予不同的属性名 。
该规则对应:设计表时, 确定了表名之后, 给每
一个字段命名, 并确定字段类型, 长度 。
? 注:不同的 DBMS所支持的数据类型, 能够处理的
数据长度不一定相同 。 不同的 DBMS当字段类型发
生变化时, 对已有数据的处理规则也不相同 。 例
如:字段学号原来是字符型, 现在该为数值型,
那末已存在的字符型学号是否直接变成数值型 。
不同 DBMS下的数据进行移动交换时, 处理规则也
不相同, 数据导入导出时要特别注意此问题 。 对
于来自于枚举型数值域的列, 可通过参照表和被
参照表的方式实现 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 2 第一泛式规则
? 关系模型要求关系必须是规范化的, 即要求关系
中不允许含有多值属性和含有内部结构, 遵守这
样规则的表称为第一范式 。 关系的每一个分量必
须是一个不可分的的数据项, 不允许表中还有表 。
? 第一范式规则是关系模型的基本规则, 但在对象
-关系数据库系统中, 这一规则将不在是数据库
设计的一个约束 。 以后我们会讨论对象 -关系模
型时知道, 打破第一范式规则的途径是该模型中
允许表中对象列的值是包含复杂类型的集合 。 用
户可以自定义数据类型, 某一字段可以是用户定
义的复杂类型 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 2 第一泛式规则
? 该规则表明重复字段在关系中是不允许的, 这是
关系数据库设计过程中的一个最基本的约束 。 例
如, 人事管理中常见的职工登记表有简历这一列,
如果我们将简历这一列设计为备注型字段, 则对
曾经学习工作过的单位的查询基本不能完成, 但
如果将该列放入职工表的行中, 则我们需要给表
建立一定数目的列, 这个数目要达到某一职工可
能有的最多的学习工作单位数, 但是这是不切实
际的 。 一个有效的方法是将职工表分解成两部分,
建立单独的职工表和简历表, 职工表包括职工号
等基本信息, 简历表包括职工号, 起始年月, 终
止年月, 单位 4个字段 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 3 只能基于内容存取行规则
? 行的顺序可以任意交换, 或者说, 行是没有次序
的, 我们只可以通过行的内容即每一行中所存在
的属性值来检索 。 因为关系是元组的集合, 元组
没有第一行, 第二行之分 。 实际中, 查询职工号
为 10001号职工的信息, 没有查询第一行职工的
信息 。 值得注意的是, 关系模型要求关系中列也
是没有次序的, 列的顺序可以任意交换 。 这一点
在, 只能基于内容存取行, 规则中已体现 。
? 有些商业数据库系统打破了第三项规则, 通过行
标识 ( row identification,ROWID) 提供一种
用户检索表中行的方法 。 但其主要目的是帮助
DBA检查在什么地方表中的行记录没有按正确方
式存放 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 4 行唯一性规则
? 任意两个元组不能完全相同, 关系模型中
关系是元组的集合, 集合中完全相同的两
元素只能被看作一个元素, 集合不可以包
含相同的元素 。 而且, 规则 3只能按列值存
取要求元组必须唯一 。
? 商业数据库系统中, 很多并不是自动维护
规则 4的 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
规则 5 实体完整性规则
? 任意行在主键列上的取值都不允许为空值
( NULL Value) 。 空值解释为未知的或者
尚未定义的, 当以后知道的情况下会重新
填写该值 。 空值不同于数字 0和空串 。 表的
主键是用来唯一区分表的行的, 不难想象,
未知的或者尚未定义的实体我们是无法区
分他们的 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.3数据模型
? 数据模型是数据库的框架, 这个框架表示了信息
及其联系的组织方式和表达方式, 同时反映了存
取路径 。 数据模型是数据库管理系统分类的原因 。
一般的讲, 任何一种数据模型都是严格定义的概
念的集合 。 这些概念必须能够精确地描述系统的
静态特性, 动态特性和完整性约束条件 。
? 1)数据结构:数据结构用于描述系统的静态特性 。
数据结构是所研究的对象类型的集合,是指对实
体类型和实体间联系的表达和实现 。 通常按照数
据结构的类型来命名数据模型 。 层次结构, 网状
结构和关系结构对应层次模型, 网状模型和关系
模型 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.3数据模型
? 2)数据操作:数据操作是对系统动态特性的描述 。
数据操作是指对数据库中各种对象 (型 )的实例
(值 )允许执行的操作的集合 。 数据模型必须定义
这些操作的确切含义, 操作符号, 操作规则 (如
优先级 )以及实现操作的语言 。
? 3)数据的约束条件:数据的约束条件是一组完整
性规则的集合 。 是给定的数据模型中数据及其联
系所具有的制约和依赖规则, 用以限定符合数据
模型的数据库状态以及状态的变化, 以保证数据
的正确, 有效, 相容 。 此外, 数据模型还应该提
供定义完整性约束条件的机制 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.4最常用的数据模型
? 目前, 数据库领域中最常用的数据模型有四种:
– 层次模型 (Hierarchical Model)
– 网状模型 (Network Model)
– 关系模型 (Relational Model)
– 面向对象模型 (Object Oriented Model)
层次模型和网状模型统称为非关系模型 。 非关
系模型的数据库系统在 20世纪 70年代至 80年代初
非常流行, 在当时的数据库系统产品中占据了主
导地位 。 关系模型的数据库系统在 70年代开始出
现, 且发展迅速, 并已逐渐取代了非关系模型的
数据库系统的统治地位, 现在流行的数据库系统
大都是基于关系模型的 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
1.1.4最常用的数据模型
? 20世纪 80年代以来, 面向对象的方法和技
术在计算机各个领域, 包括程序设计语言,
软件工程, 信息系统设计, 计算机硬件设
计等各方面都产生了深远的影响, 也促进
数据库中新一代数据模型 ——面向对象数
据模型的研究和发展 。 目前没有实现 。
? 在面向对象数据模型的启发下, 目前许多
关系型数据库管理系统扩展了部分对象模
型功能 ——对象关系数据库 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
作业:
1.试述数据库系统的组成和 DBA的职责,
2,a)找出下面表的三个候选键,
b)给出一个四行四列的表,要求只有一个由前三列
组成的候选键,
3.根据您的认识设计一个人事管理数据库,要求说明
设计的背景及理由,
A B C D
a1 b1 c1 d1
a2 b3 c1 d2
a3 b4 c2 d2
a4 b2 c2 d1