1、1第第1章章 数据库基本原理数据库基本原理1.1 数据库应用系统的典型应用数据库应用系统的典型应用1.2 相关术语和基本概念相关术语和基本概念1.3 数据管理技术的发展进程数据管理技术的发展进程1.4 数据库模型数据库模型1.5 数据库系统结构数据库系统结构21.1、典型的数据库应用系统、典型的数据库应用系统 1.Mary Richards房屋粉刷 单用户数据库系统单用户数据库系统 Mary Richards是一个专业的房屋粉刷匠,她拥有并管理一家小公司。该公司包括她自己和另一个专业粉刷匠,在需要的时候还雇佣一些兼职的粉刷匠。Mary的业务已经进行了10年,她收费合理(既不便宜也不昂贵),并赢
2、得了高质量的粉刷匠的美誉;Mary的业务大部分来自请她粉刷房屋的客户的重复业务,而且总是从他们那里得到口头参照意见。另外,Mary也有一部分业务来自建筑承包商和专业的室内设计公司3 2.Treble Clef Music商店 Treble Clef Music商店利用数据库应用程序来记录它所出租的乐器。因为在高峰期几个销售员可能同时出租乐器,所以这需要一个多用户数据库应用程序。商店经理也需要访问租赁数据库来决定什么时间采购更多的给定型号的乐器。她在做这件事情时并不想打乱租赁过程。多用户数据库系统(局域网)多用户数据库系统(局域网)43.州执照颁发和汽车登记局 州执照颁发和汽车登记局的,有52个
3、进行驾驶员考试、颁发与更新驾驶员执照的中心,37个销售汽车牌照的办公室。办公室的人在办理和更新驾驶员执照前,通过数据库中驾驶员的记录查询他们交通违章、事故或被逮捕的情况。这些数据用来决定驾驶执照是否可以更新,若可以更新,是否应该有所限制。类似地,汽车登记部门的工作人员通过访问数据库来确定一个汽车以前是否登记过,若登记过,是登记给谁的,是否有重大问题不能进行这次登记。州税务部门和执法部门的工作人员;因此该数据库庞大而且复杂,加有40多个数据表、并且其中的某些表包括数十万行数据。大型局域网数据库应用系统大型局域网数据库应用系统 54.Calvert岛预订中心 Calvert岛是加拿大西海岸上一个鲜
4、为人知的美丽岛屿。为了把旅游业扩展到世界市场,Calvert岛商业厅开发了具有三种功能的站点;宣传岛上的特色和娱乐机会 为后续的邮件宣传而索取并保存站点访问者的姓名和地址 索取并保存对旅馆、住房及旅游服务的要求,然后把这些要求通报给相应的商家 Internet数据库应用系统数据库应用系统6不同类型数据库系统的特点不同类型数据库系统的特点 71.2 相关术语和基本概念相关术语和基本概念数据(Data)数据库(Database,简称DB)数据库管理系统(Database Management System,简称DBMS)数据库系统(Database System,简称DBS)8数据数据(Data)
5、数据是数据库中存储的基本对象。描述事物的符号记录。数据的种类文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等例如:(李明,男,李明,男,22,1982,浙江,计算机,浙江,计算机,1999)语义:李明是个大学生,李明是个大学生,1982年出生,今年年出生,今年22岁,男性,浙江岁,男性,浙江人,人,1999年考入计算机系年考入计算机系数据的形式还不能完全表达其内容,需要经过解释。9数据库数据库(DataBase)长期储存在计算机内,有组织的、可共享的数据集合。数据库中的数据不是孤立的,数据与数据之间是相互关联的。数据库中的数据具有较小的冗余度、较高的数据独立性和易扩展性。1.2
6、相关术语和基本概念相关术语和基本概念10数据库管理系统数据库管理系统(DBMS)数据管理系统软件。管理、控制数据库的建立、运行和维护。位于操作系统和用户应用之间总是基于某种数据模型数据库厂商的产品通常指DBMS,如Oracle8i、SQL Server 2000、DB2、Informix等目的提供一个可以方便地、有效地存取数据库信息的环境。提供一个可以方便地、有效地存取数据库信息的环境。1.2 相关术语和基本概念相关术语和基本概念11数据库管理系统数据库管理系统(DBMS)的功能的功能数据库定义数据库对象定义:表、索引、约束、用户等数据库操纵实现对数据库的基本操作:增、删、改、查数据库保护恢复
7、、并发控制、完整性控制、安全性控制数据库的建立和维护初始数据的转换和装入、数据备份、数据库的重组织、性能监控和分析等通常由一些实用程序完成1.2 相关术语和基本概念相关术语和基本概念12数据库系统(数据库系统(DBS)数据库引入到计算机系统中的系统构成:数据库 DBMS开发工具 应用软件系统 人员(数据库管理员DBA、应用程序员、最终用户)1.2 相关术语和基本概念相关术语和基本概念13数据库数据库最终用户最终用户应用系统应用系统应用开发工具应用开发工具DBMS操作系统操作系统数据库管理员数据库管理员DBA数据库系统构成数据库系统构成应用程序员应用程序员14DBA(DataBase Admin
8、istrator)协调用户和开发人员的工作参与数据库设计创建用户和授权保证数据库的正常运行维护工作151.3 数据管理技术的发展进程数据管理技术的发展进程人工管理人工管理特点:特点:1)数据不保存在机)数据不保存在机器中;器中;2)没有管理数据的)没有管理数据的软件;软件;3)数据无共享;)数据无共享;4)数据不具有独立)数据不具有独立性。性。文件系统文件系统特点:特点:1)数据可以长期保存)数据可以长期保存在磁盘上;在磁盘上;2)文件系统管理数据)文件系统管理数据;3)数据共享性差,冗)数据共享性差,冗余大;余大;4)数据独立性差。)数据独立性差。数据库数据库特点:特点:1)数据结构化;)数
9、据结构化;2)高共享,低冗余;)高共享,低冗余;3)数据独立性高;)数据独立性高;4)数据由)数据由DBMS统一控统一控制。制。16人工管理阶段人工管理阶段1)数据不保存在机器中;2)应用程序自己管理数据;3)数据无共享;4)数据不具有独立性。数据组数据组1用户用户1用户用户2应用程序应用程序2应用程序应用程序1应用程序应用程序3应用程序应用程序n用户用户m数据组数据组2数据组数据组3数据组数据组n17文件系统阶段文件系统阶段1)数据可以长期保存在磁盘上;2)文件系统管理数据;3)数据共享性差,冗余大:冗余时必须建立不同的文件以满 足不同的应用;4)数据独立性差:程序通过文件名即可访问数据,但
10、文件结构改变时必须修改程序。用户用户1用户用户2应用程序应用程序2应用程序应用程序1应用程序应用程序3应用程序应用程序n用户用户m数据文件数据文件2数据文件数据文件1数据文件数据文件3数据文件数据文件n文文件件系系统统18数据库系统阶段数据库系统阶段1)数据结构化:采用复杂数据模型,不仅可以表示数据,还可以表示数据间的联系;2)高共享,低冗余;3)数据独立性高;4)数据由DBMS统一控制。用户用户1用户用户2应用程序应用程序2应用程序应用程序1应用程序应用程序3应用程序应用程序n用户用户m数数据据库库管管理理系系统统DB19 人工管理 文件系统 数据库系统 背 时间 50 年代中 50 年代后
11、60 年代中 60 年代后 应用 科学计算 科学计算、管理 事务处理 硬件 无存储设备 磁盘、磁鼓 大容量硬盘 景 软件 无 OS 有 OS、管理数据的文件系统 DBMS 数据处理 批处理 批处理 联机实时处理 联机实时处理 批处理、分布 数据管理者 人 文件系统 DBMS 数据面向对象 某一应用程序 某一应用程序 整个组织 特 数据共享程度 无共享 及其冗余 共享差 冗余度大 共享性高 冗余度小 数据独立性 无独立,完全依赖应用程序 独立性差 高度物理独立一定逻辑独立 点 数据结构化 无结构 记录内有结构 整体无结构 整体结构化 数据模型描述 数据控制能力 应用程序控制 应用程序控制 DBM
12、S 提供:安全、完整、并发、恢复 201.4 数据库模型数据库模型1.4.1 数据模型的构成1.4.2 数据模型的分类1.4.3 概念模型1.4.4 实体/联系图 1.4.5 常用的结构数据模型21数据库模型数据库模型为什么要建立数据模型(Data Model)?象盖大楼的设计图一样,DM可使所有的 项目参与者都有一个共同的数据标准避免出现问题再解决(边干边改的方式)可及早发现问题加快应用开发速度1.4.1 数据模型的构成数据模型的构成22数据模型的构成数据模型的构成数据模型的三要素数据结构 数据的表示方法(数据的组织形式),是一种静态特征的描述数据操作 数据操作是指对数据库的查询、修改、删除
13、和插入等操作,是一种动态特征的描述完整性约束 数据及数据间联系应具有的制约和依赖规则如:一个系可有多个学生,一个学生只能属于一个系1.4.1 数据模型的构成数据模型的构成231.4 数据库模型数据库模型1.4.1 数据模型的构成1.4.2 数据模型的分类1.4.3 概念模型1.4.4 实体/联系图 1.4.5 常用的结构数据模型24数据数据模型的分类模型的分类n根据模型应用的不同目的根据模型应用的不同目的l概念数据模型概念数据模型(概念模型)(概念模型)按用户的观点对数据进行建模,强调语义表达功能按用户的观点对数据进行建模,强调语义表达功能独立于计算机系统和独立于计算机系统和DBMSDBMS主
14、要用于数据库的概念设计主要用于数据库的概念设计l结构数据模型结构数据模型(数据模型)(数据模型)按计算机系统的观点对数据进行建模,直接面向数据库按计算机系统的观点对数据进行建模,直接面向数据库的逻辑结构的逻辑结构与计算机系统和与计算机系统和DBMSDBMS相关(相关(DBMSDBMS支持某种数据模型)支持某种数据模型)有严格的形式化定义,以便于在计算机系统中实现有严格的形式化定义,以便于在计算机系统中实现1.4.2 数据模型的分类数据模型的分类25数据数据抽象的层次抽象的层次现实世界信息世界 概念模型机器世界 数据模型认识抽象转换如如E-R模型模型如关系模型、层次模如关系模型、层次模型、网状模
15、型、面向型、网状模型、面向对象模型对象模型26数据模型的例子数据模型的例子n现实世界现实世界l客户存款客户存款n信息世界信息世界l概念模型(概念模型(E-R模型)模型)MN27数据模型的例子数据模型的例子n机器世界机器世界l数据模型数据模型(关系模型(关系模型)281.4 数据库模型数据库模型1.4.1 数据模型的构成1.4.2 数据模型的分类1.4.3 概念模型1.4.4 实体/联系图 1.4.5 常用的结构数据模型29概念模型概念模型数据库设计最抽象的一层 对问题空间的概念性描述,是以实体、属性和实体之间的联系等形式来表达的。实体属性域联系1.4.3 概念模型概念模型30实体实体 实体及其
16、相应属性是关系设计的基础实体是客观存在又可以相互区分的事物。实实体是客观存在又可以相互区分的事物。实体可以是具体存在的人、物、事件,也可以是抽体可以是具体存在的人、物、事件,也可以是抽象的概念或联系。象的概念或联系。实体可以是任何人、地点、事物,或定义的要收集和存储的数据实体是一个名词实体的实例是存储在表中的行1.4.3 概念模型概念模型31实体实体(续续)定义实体实体代表了现实世界中需要存储信息的对象定义实体时,在分析中使用名词数据库表中的行示例MOE的工作人员MOE的实用软件工程方法 1.4.3 概念模型概念模型32属性属性定义属性在系统中,需要跟踪每个实体的某些事实。这在系统中,需要跟踪
17、每个实体的某些事实。这些事实被称为实体的属性。些事实被称为实体的属性。属性进一步定义和描述实体实例的特性属性和最接近其描述的实体有关定义数据库表中的列 属性示例:车的属性颜色制造商车型出厂年份 1.4.3 概念模型概念模型33域域域域是一个属性可以包含的有效的值的集合。域是一个属性可以包含的有效的值的集合。区别于数据类型数据类型是物理的 分析域有助于对数据类型的设计示例:DegreeAwarded,它表示大学授予的学位:它表示大学授予的学位:BA,BS,MA,MS,PhD,LLD,MD 1.4.3 概念模型概念模型34联系联系表示实体间的联系一对一 一对多多对多根据一定规则在实体间实现绑定表示
18、现实世界中的数据间的联系使用可以将实体联系起来的动词1.4.3 概念模型概念模型351.4 数据库模型数据库模型1.4.1 数据模型的构成1.4.2 数据模型的分类1.4.3 概念模型1.4.4 实体/联系图 1.4.5 常用的结构数据模型36概念模型的表示方法概念模型的表示方法实体实体/联系图联系图 语法 创建概念模型1.4.4概念模型概念模型的的表示表示方法方法实体实体/联系联系图图37实体-联系(E-R)图使用通用的语法来表示组成概念模型的实体、属性、联系、基数和存在。实体在 E-R 图中用矩形来表示,矩形内部列出实体的属性 关系用实体间的线段来表示 基数通常用注释在关系线段两个端点上的
19、数字来表示 用不同风格的线段来表示关系语法语法1.4.4概念模型概念模型的的表示表示方法方法实体实体/联系联系图图38创建概念模型创建概念模型1.4.4概念模型概念模型的的表示表示方法方法实体实体/联系联系图图39示例示例1 一般的联系一般的联系班级班级-班长班长11班级组成学生1n1:1课程选修学生mn1:nm:n40示例示例2 特殊的联系特殊的联系课程讲授教师1m参考书n三个实体间的联系职工经理1n实体内部的联系41示例示例3 E-R图图课程讲授教师1m参考书n选修学生mn班级组成1n小组长n1成绩421.4 数据库模型数据库模型1.4.1 数据模型的构成1.4.2 数据模型的分类1.4.
20、3 概念模型1.4.4 实体/联系图 1.4.5 常用的结构数据模型43常用的数据模型常用的数据模型基于树的层次模型(hierarchical model)20世纪60年代末到70年代初基于图的网状模型(network model)20世纪70年代基于表的关系模型(relational model)20世纪80年代至今基于对象的面向对象模型(Object Oriented Model)研究开发中1.3.3 常用的数据模型常用的数据模型44层次模型层次模型20世纪世纪60年代末到年代末到70年代初年代初有且仅有一个根节点;其它节点有且仅有一个父节点有且仅有一个根节点;其它节点有且仅有一个父节点4
21、5网状模型网状模型20世纪世纪70年代年代允许一个以上节点无父节点允许一个以上节点无父节点一个节点可以有多于一个父节点一个节点可以有多于一个父节点46关系模型关系模型20世纪世纪80年代年代源于数学,把数据看成是二维表(关系)中的元素源于数学,把数据看成是二维表(关系)中的元素用关系表示实体和实体之间联系的模型称为关系模型用关系表示实体和实体之间联系的模型称为关系模型SnoSnameSsexSagesdept95001张三男25CS95002李四女24CS96101王五男23MA96001赵六男23CS47实现实体的联系实现实体的联系键 主键 外键 主键和外键的示例48键用来在数据模型中标识实
22、体的每个实例的值 优点惟一地标识数据模型中实体的每个实例 有助于从数据逻辑设计阶段过渡到物理设计阶段将实体联系在一起形成关系键键2.2.1 实现实体的联系实现实体的联系49主键是任何可以用来惟一地标识所有实体实例的字段 必须是惟一的主键通常有以下类型 智能键与键和实体相关联 代理键仅作为惟一标识符与实体相关联组合键包含多个值主键主键2.2.1 实现实体的联系实现实体的联系50外键外键外键是子实体中用来与相应的父实体建立关系的值 子实体的外键通常是父实体的主键 子实体的外键不能用做子实体的全部主键,子实体的实例具有相同的外键值 在很多情况下,外键很可能是子实体组合键的一部分2.2.1 实现实体的
23、联系实现实体的联系51主主键键和外和外键键的示例的示例2.2.1 实现实体的联系实现实体的联系52规范化的基础规范化的基础规范化 创建第一范式数据模型 转换为第二范式数据模型 创建第三范式数据模型 2.2.2 规范化的基础规范化的基础53规范化规范化规范化数据库就是要完成以下任务:尽可能减少重复信息减少数据的不一致性加快数据修改(插入、更新和删除)范式第一范式第二范式第三范式经过规范化的数据库通常包括多个表,而每个表又包括较少的列 2.2.2.1 规范化规范化54创建第一范式数据模型创建第一范式数据模型第一范式 的条件:表必须是二维的(用行和列表示)每个数据库单元只包含一个值每列必须具有单独的
24、含义在一个关系模式中,如果R的每一个属性对应的域值都是不可再分的,(即每一个分量必须是不可分的数据项),则称R属于第一范式,即R1NF。2.2.2.1 规范化规范化55第一范式的示例第一范式的示例2.2.2.1 规范化规范化56第一范式的示例第一范式的示例合同号产品号产品名单价数量供货日期购买单位地址电话号码C1P1P2黄瓜鸡蛋1.83.720030007.3新河公司北京82345545C2P1P3黄瓜萝卜1.82.010010007.4东风公司上海3509554257第一范式的示例第一范式的示例合同号产品号产品名单价数量供货日期购买单位地址电话号码C1P1黄瓜1.820007.3新河公司北京
25、82345545C1P2鸡蛋3.730007.3新河公司北京82345545C2P1黄瓜1.810007.4东风公司上海35095542C2P3萝卜2.010007.4东风公司上海3509554258第二范式第二范式第二范式:如果一个关系属于第一范式,而且其中的各个非主属性都完全函数依赖于它的每一个候选键,则这个关系属于第二范式。在上图所表示的销售合同关系中,其关键字为合同号+产品号,是一个联合键。关系中的其余属性:产品名和单价仅与产品号有关,而供货日期,购买单位,地址和电话与合同号有关,他们都是局部函数依赖于关键字合同号+产品号的,需要对该关系进行分解。如下图所示。59第二范式例子第二范式例
26、子合同号产品号数量C1P1200C1P2300C2P1100C2P3100产品号产品名单价P1黄瓜1.8P2鸡蛋3.7P3萝卜2.0合同号购买单位地址电话供货日期C1新河公司北京8234554507.3C2东风公司上海3509554207.460转换为第二范式数据模型转换为第二范式数据模型消除实体中的冗余信息将只依赖于一部分多值主键的属性移到另一个表中使存储的信息更一致2.2.2.1 规范化规范化61第三范式第三范式第三范式:如果一个关系模式属于第二范式,且其中的任何非主属性都不传递函数依赖于它的每一个候选键,则这个关系属于第三范式。如下图所示。在关系CD中,还是存在着存储异常。这是由于在关系
27、CD中还存在着传递函数依赖。在CD中,DNAME函数依赖于合同号CNO,而ADDR和TEL却直接函数依赖于DNAME,因此CNO与ADDR和TEL间存在着传递函数依赖。62 合同号购买单位供货日期C1新河公司07.3C2东风公司07.4购买单位地址电话新河公司北京82345545东风公司上海3509554263创建第三范式数据模型创建第三范式数据模型除去所有不依赖某个键值而存在的列避免信息的更新异常和删除异常确保不含冗余信息创建第三范式的步骤:用适当的方法将数据模型规范化为第一和第二范式。确定不依赖键值而存在的所有属性。将这些独立的属性移到各个单独的表中,并为每个表确定主键。将这些主键作为外键
28、连接到父实体中。2.2.2.1 规范化规范化64第三范式示例第三范式示例2.2.2.1 规范化规范化65数据库系统结构数据库系统结构数据库的三级模式数据库的二级映象1.4 数据库系统结构数据库系统结构66数据库的三级模式数据库的三级模式外模式(子模式、用户模式)模式(Schema)/逻辑模式内模式(存储模式)1.4.1 数据库的三级模式数据库的三级模式67数据库的三级模式数据库的三级模式外模式用户模式(视图)是模式的子集或变形,是与某一应用有关的数据的逻辑表示不同用户需求不同,看待数据的方式也可以不同,对数据保密的要求也可以不同,使用的程序设计语言也可以不同,因此不同用户的外模式的描述可以使不
29、同的。1.4.1 数据库的三级模式数据库的三级模式68数据库的三级模式数据库的三级模式模式逻辑模式是数据库中全体数据的逻辑结构和特性的描述,是所有用户的公共数据视图DBMS提供数据定义语言DDL来描述逻辑模式,严格定义数据的名称、特征、相互关系、约束等1.4.1 数据库的三级模式数据库的三级模式69数据库的三级模式数据库的三级模式内模式存储模式是数据在数据库系统的内部表示,即对数据的物理结构/存储方式的描述,是低级描述,一般由DBMS提供的语言或工具完成1.4.1 数据库的三级模式数据库的三级模式注:一个数据库只有一个模式,一个注:一个数据库只有一个模式,一个内模式,但可以有多个外模式。内模式
30、,但可以有多个外模式。70数据库的二级映数据库的二级映象象外模式外模式/模式映象模式映象 数据的逻辑独立性数据的逻辑独立性 数据库系统投入使用后,可能有必要修改模式(如增加新关系、属性、改变类型),这时:重新定义外模式/模式映象=现存外模式不变=应用程序不变模式模式/内模式映象内模式映象数据的物理独立性数据的物理独立性当内模式发生变化时:重新定义模式/内模式映象=模式保持不变=外模式保持不变=建立在外模式上的应用程序保持不变1.4.2 数据库的二级映象数据库的二级映象 DBA职责职责71数据库系统结构数据库系统结构数据库数据库内模式内模式模模 式式外模式外模式2 2外模式外模式3 3外模式外模式1 1应用应用A A应用应用B B应用应用C C应用应用D D应用应用E E外模式外模式/模式映象模式映象模式模式/内模式映象内模式映象72回回 顾顾数据、数据库、数据库管理系统、数据库系统模型和模式