数据库教程一(基础知识).doc_第1页
数据库教程一(基础知识).doc_第2页
数据库教程一(基础知识).doc_第3页
数据库教程一(基础知识).doc_第4页
数据库教程一(基础知识).doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一篇 数据库基础知识第一章 数据库的基本概念11.1 数据处理概念11.2计算机数据管理技术的发展11.3 计算模式简介31.4 数据库系统组成41.5 数据库描述7第二章 关系数据库的基本理论122.1 关系数据库的基本概念122.2 关系的完整性132.3 关系的数学定义132.4 关系代数142.5 关系的规范化15第三章 实体-联系模型193.1 ER模型193.2 ER图的设计方法203.3 ER模型到关系模型的转换22第四章 数据库设计234.1 数据库设计概述234.2 数据库逻辑设计254.3 数据库物理设计284.4 数据库的实现、运行与维护284.5 编写技术文档29第5章 Microsoft Access 2002305.1 Access 2002的功能特点305.2 Access 2002数据库的创建和使用305.3 Access 2002数据库表的创建和使用305.4 查询的作用与创建方法335.5 练习33数据库基础知识 第 34 页第一篇 数据库系统基础数据库技术是信息社会的重要基础技术之一,是计算机科学领域中发展最为迅速的分支。数据库技术是一门综合性技术,涉及到操作系统、数据结构、程序设计等知识。第一章 数据库的基本概念早期的计算机主要用于科学计算,当计算机应用于生产管理、商业财贸、情报检索等领域时,它面对的是数量惊人的各类数据。为了有效地管理和利用这些数据,就产生了计算机的数据管理技术。1.1 数据处理概念1数据数据是一种物理符号序列,用来记录事物的情况。数据用类型和值来表示。不同的数据类型记录的事物性质不一样。2信息信息是经过加工的数据。所有的信息都是数据,而只有经过提炼和抽象之后具有使用价值的数据才能成为信息。经过加工所得到的信息仍然以数据的形式出现,这时的数据是信息的载体,是人们认识信息的一种媒介。3数据处理与数据管理数据处理:从已知的、原始的或杂乱无章中的数据中推导出对人们有用的数据或信息的过程称为数据处理数据管理是指数据的收集、整理、组织、存储、查询和传送等各种操作,是数据处理的基本环节,是任何数据处理任务的共性部分。数据库技术就是一门数据管理技术。1.2计算机数据管理技术的发展1人工管理阶段50年代前。数据与程序绑在一起,每个应用程序单独管理自己的数据,主要用于科学计算。早期计算机数据处理应用没有专门管理数据的软件,程序自带数据。其特点是:l 数据独立性差,不能共享;l 数据冗余l 无法集中式管理2文件管理阶段6070年代。数据单独存放在数据文件中,通过文件管理系统进行管理,可供多个应用程序使用,但其结构与应用程序依然紧密联系。特点:数据以文件形式存放于外存;由文件管理系统管理;数据文件可重复利用。缺点:程序与文件相互依存,数据冗余度大,数据不一致及不能反映相互联系。3数据库管理阶段把一个组织中公用的数据综合在一起,放在一个公用的数据库中,并将各项数据按照一定的逻辑关系构造在一起,使数据不仅存在于数据库中,而且还能反映各类数据之间的复杂关系。与文件管理方式区别:一个面向系统,一个面向应用。 (1) 数据共享性数据共享允许多个用户同时存取数据而不相互影响,包括三个方面: 所有用户可以同时存取数据; 数据库不仅可以为当前的用户服务,也可以为将来的用户服务; 可以使用多种语言完成与数据库的接口。 (2) 数据独立性数据独立是指应用程序不必随数据储存结构的改变而变动。包括两个方面: 物理数据独立数据的储存格式和组织方法改变时,不影响数据库的逻辑结构,从而不影响应用程序。 逻辑数据独立指数据库逻辑结构的变化(如数据定义的修改,数据间联系的变更等)不会影响用户的应用程序,即用户应用程序无须修改。 (3) 改善了数据冗余及一致性用户的逻辑数据文件和具体的物理数据文件不必一一对应,存在着“多对一”的重叠关系,有效地节省了储存资源。由于数据只有一个版本,数据的访问不会出现不一致的情况。 (4) 数据的集中控制安全性控制:防止非法用户访问。使用存取权限来达到保护数据的目的;完整性控制:系统提供有效性验证功能以限制非法数据进入;并发性控制:自动协调和控制多用户同时操作数据。1.3 计算模式简介计算机应用技术日新月异的发展应归功于计算技术的发展。计算技术的发展经历了三个阶段:单主机计算(Mainframe Computing)分布式客户机/服务器计算(Distributed Client/Server Computing)网络计算(Network Computing)1 单主机计算模式(1955-1985)以单台主机(功能强大)为中心,以非智能终端构成的集中式计算环境。特点: 整个系统资源由单用户或多用户共享(分时技术),用户接口、I/O处理功能都集中在主机上。缺点:当处理负载过大时,主机性能就成为制约通信网络的“瓶颈”。解决方法:提高主机处理速度,增加主机数量。但成本高、管理复杂。因此限制了单主机模式的发展。单主机计算模式经历了30年的发展史,按应用方式可划分为三个时代:l 程序设计时代(1955-1965)程序设计重点是精选算法,语句精雕细琢,goto语句成了有力的武器,流程图成了程序设计的指南。由于汇编语言能够直接处理端口、中断、内存等实时操作,被认为是程序员应掌握的基本功。l 结构化程序设计时代(1965-1975)1962年美国金星探测器水手II号卫星失败,计算机界引起巨大震动。如何保证软件安全、可靠?由此带动了结构化技术及数据库技术的发展。l 软件工程时代(1975-1985)随着社会对软件需求的日益增长,软件的规模也越来越大(例如,美国1979年的哥伦比亚航天飞机系统4000万条指令),这与软件的生产方式落后、生产效率低形成尖锐的矛盾,由次产生“软件危机”。为研究、解决软件危机,诞生了“软件工程学”及面向对象设计技术。人们开始研究软件生产内部的规律,找出“软件生存周期”,用工程化的原理,科学地组织软件的生产,在一定程度上提高了软件的生产效率。软件生产开始步入软件工程时代。2 分布式客户机/服务器计算模式(80年代至今)C/S技术可以说是一种软件机制。它将程序分为客户端和服务器端两种类型;系统工作方式是“请求响应处理返还”。(1) 二层C/S结构n 特点:u 数据服务器管理数据和向客户机提供数据,由客户机显示、访问和更新数据;u 客户程序和服务程序在网络中不同机器上运行(也可同在一台机器上);u 应用程序和数据分离,可降低服务器工作量,具有较好的安全性和数据一致性;n 缺点:u 客户端越多,与服务器连接越多,影响服务器性能;u 客户端难以分发及维护;u 客户端必需安装应用程序和专用工具;u 服务器出问题,将影响所有客户端。(2) 三层C/S结构增加中间服务程序;减少同服务器连接;客户端安装、维护容易 。(3) 客户机/服务器方式的优、缺点n 优点u 减少了网络的流量和冲突的机率u 响应快、处理效率高u 真正体现了分布式处理环境、充分发挥了各地系统资源的作用u 在网上可以支持更多数量的用户n 缺点计算(处理)对于通信的依赖越来越大。因此,通信效率直接影响C/S方式的效率。3. 网络计算模式(90年代起)随着网络效率显著,网越联越大,开始出现广域网WAN。国际互联网Internet标志着网络时代到来。n 以WWW(World Wide Web环球网)、主页文档标准化(HTML)和Java语言三大技术成熟为标志n NC计算机问世,它带有各种多媒体的接口、高速CPU、大容量内存、高级显示器等n 软件服务众多 WWW、FTP、Telnet、E-mail、BBS等n 网上每个用户权力均等n 网上信息资源取之不尽用之不竭。1.4 数据库系统组成数据库系统是由计算机软、硬件资源组成的系统,它实现了有组织地、动态地存储大量关联数据,方便多用户访问。通俗地讲,数据库系统可把日常的一些表格、卡片等的数据有组织地集合在一起,输入到计算机,然后通过计算机处理,再按一定要求输出结果。所以,对于数据库来说,主要解决三个问题:l 有效地组织数据,即对数据进行合理设计,以便计算机存取;l 方便地将数据输入到计算机中;l 根据用户的要求将数据从计算机中抽取出来。数据库系统实际上是一个应用系统,它由储存在储存设备上的数据库、数据库管理系统、计算机软硬件环境、数据应用程序和用户组成。1数据库(Database)指数据库系统中储存的数据的集合,它是数据库系统操作的对象。数据库中的数据一般分为两种数据:一是有关应用的工作数据的集合,称为物理数据库;另一类是关于前述数据的描述数据,如表结构、数据类型描述等,称为描述数据库,通常用一个数据字典(Database Dictionary)来管理。 (1) 单机数据库所有数据均存贮于一台存贮设备上,由一台计算机负责管理。 (2) 分布式数据库分布式数据库DDBS(Distributed DBS)技术是DB技术和网络、通信技术的结晶产物。其主要特点:l 处理的数据分散在各个结点上,每个结点的数据由本地的DBMS管理,各结点间可以数据共享;l 充分利用、发挥各个结点的资源优势,减轻网络负担;2数据库管理系统(DBMS)数据库管理系统(DBMS)是用于描述、管理和维护数据库的程序系统,是数据库系统的核心组成部分。它建立在操作系统的基础上,对数据库中数据资源进行统一管理的控制,起到把用户程序和数据库数据隔离的作用。数据库管理系统是数据库系统的核心,其功能强弱体现了数据库系统的性能优劣。 (1) 数据库管理系统的功能由于缺乏统一的标准,即使是同一类型的DBMS,在不同的计算机系统中,它们在用户接口和其它系统性能方面也不尽相同,大型系统的功能较强较齐全,小型系统的功能较弱。一般说来,DBMS一般包括以下几个功能:a. 数据库定义功能包括全局逻辑数据结构定义、局部逻辑数据结构定义、储存结构定义、保密定义以及信息格式定义等。b. 数据库管理功能包括系统控制、数据储存及更新管理、数据完整性及完全性控制、并发控制等。c. 数据库建立和维护功能包括数据库的建立、更新、再组织,数据库结构维护,数据库恢复以及性能监视等。d. 通信功能具备与操作系统的联机处理、分时系统及远程作业输入的相应接口。 (2) 数据库管理系统的组成a. 定义和操作数据库的语言DBMS要提供数据库的定义功能,应具有一套数据定义语言DDL(Data Description Language)来正确地描述数据及数据之间的联系。DBMS根据这些数据定义从物理记录导出全局逻辑记录,又从全局逻辑记录导出应用程序所需的记录。数据操纵语言DML(Data Manipulation Language)也称为数据子语言(DSL),是DBMS提供给应用程序员或者用户使用的语言工具,它用于对数据库中的数据进行插入、查找、修改和删除等操作。b. 数据库管理程序数据库管理例行程序一般包括三个部分,即系统运行控制程序、语言翻译处理程序和DBMS的维护工具,它们完成DBMS的全部功能。c. 内含编程语言及开发接口提供给程序开发人员的数据库专用语言(如FoxPro,DBase等等),或者通过第三方开发语言访问数据库的接口程序(API)。用来生成数据库应用程序的语言(含数据库专用语言)主要分为三大类型: 过程化语言 标准的计算机程序设计语言如Pascal、Basic和C都是过程化语言,这些语言可以通过某种“应用程序接口”(API)来创建数据库应用程序。其优点是数据库访问速度快,缺点是与特定的数据库系统依赖性大,开发难度大,适应性差。 结构化查询语言(SQL) 结构化查询语言(Structure Query Language)是基于关系模型的数据库查询语言,它是一种非过程化的程序语言,没有必要写出将如何做某事情,只需写出做到什么就可以了。 把SQL描述为子语言更适当一些,因为它没有任何屏幕处理或用户输入/输出的能力。它的主要目的是为了提供访问数据库的标准方法,而不管数据库应用的其余部分是用什么语言编写的,它既是为数据库的交互式查询而设计的(因此被称为动态SQL), 同时也可在过程化语言编写的数据库应用程序中使用(因此被称为嵌入式SQL)。 OOP语言用于开发数据库应用程序的语言中,还可以使用目前数常见的“面向对象程序设计”(OOP)语言,如VB、C+、 Dephi等,OOP代表了一种完全不同的程序设计方法, 在这种程序设计方法中,活动被定义为在“对象”上发生的操作,而不是作为一系列过程来定义的。在数据库应用程序中使用OOP语言的情况正在不断增加。3计算机软硬件环境指储存数据库及运行DBMS的软硬件资源,如磁盘、操作系统、I/O信道等等。不同的数据库系统可运行在不同的操作系统,如Windows、UNIX等。4数据库应用程序为了完成特定功能,由编程人员编写的应用程序。按照系统的网络结构及实现方式,数据库应用程序大致可分如下二类: (1) 单机模式数据库应用程序数据库与应用程序均在同一机器上,同一时间一般只有一个用户访问数据库中的数据。 (2) C/S模式数据库应用程序数据库与应用程序分别安装在不同机器(地点)上。数据库程序及其数据一般存放在服务器上,DBMS在服务器端( Server)运行;应用程序则安装在客户机(Client)上运行,由用户操作。 两层结构C/S数据库应用程序特点:数据在服务器上,客户机仅显示和更新数据;服务器和客户端直接连接,适时性较强。缺点:同时连接客户机数量过多时,服务器性能下降;客户机程序维护困难。应用:中小规模的数据库程序。 多层结构C/S数据库应用程序在两层C/S基础是,针对专门的应用建立一个中间应用服务器,由应用服务器负责数据库与客户端的交互。优点:数据库服务器压力轻,稳定性好;客户机无需数据库环境支持,同时,与业务有关的处理可由应用服务器来处理,客户机易维护;客户机不与数据库直接连接,数据安全性较好控制。缺点:开发难度大;系统复杂后,稳定性、适时性降低。 (3) B/S结构数据库应用程序以因特网技术为基础,以WEB浏览器作为客户端程序的多层C/S数据库应用程序。此时,开发的主要内容即是针对具体业务,编制服务器端的应用服务器。5用户指使用数据库的人员。数据库系统中主要有终端用户、应用程序员和管理员三类用户。终端用户是指那些无太多计算机知识的工程技术人员及管理人员。他们通过数据库系统提供的命令语言、表格语言以及菜单等交互式对话手段使用数据库中的数据。应用程序员是为终端用户编写应用程序的软件人员,他们设计的应用程序主要用途是使用和维护数据库。数据库管理员(DBA)是指全面负责数据库系统正常运转的高级人员,他们负责对数据库系统本身的深入研究。1.5 数据库描述现实世界是存在于人脑之外的客观世界,事物及其相互联系就处于现实世界之中。事物可用“对象”和“性质”来描述,又有“共同事物”和“特殊事物”两个不同级别。信息世界是现实世界在人们头脑中的反映。客观事物在观念世界中称为实体,反映事物联系的是实体模型。实体用“对象”和“属性”来描述,又分为“个体实体”和“总体实体”两个级别。数据是信息世界中信息的数据化,现实世界中的事物及联系在这里用数据模型描述。数据模型反映的是数据间的联系。数据用“数据记录”和“数据项”来描述;又分为“数据类型”和“数据值”两个不同级别。1. 实体模型现实世界中的事物在人们头脑中反映的信息世界是用文字和符号记载下来的,描述事物用以下术语。(1) 实体(Entity)客观事物在信息世界中称为实体。实体可以是具体的,如一个学生,一本书,也可以是抽象的事件,如一些足球比赛。实体用类型(Type)和值(Value)表示,例如学生是一个实体,而具体的学生李明、王力是实体值。(2) 实体集(Entity Set)性质相同的同类实体的集合称为实体集。如一班学生,一批书籍。(3) 属性(Attribute)实体有许多特性,每一特性在信息世界中都称为属性。每个属性都有一个值,值的类型可以是整数、实数或字符型,例如学生的姓名、年龄都是学生这个实体的属性,姓名的类型为字符型,年龄的类型为整数。属性用类型和值表示,例如学号、姓名、年龄是属性的类型,而具体的数值870101、王小艳、19是属性值。(4) 实体联系 i. 一对一联系(1:1)如果A中的任一属性至多对应B中的一属性,且B中的任一属性至多对应A中的一属性,则称A与B是一对一联系,如图1-1所示。例如电影院中观众与座位之间、乘客旅客与车票之间、病人与病床之间都是一对一联系。 ii. 一对多联系(1:N)如果A中至少有一个属性对应B中一个以上属性,且B中任一属性至少对应A中一个属性,则称A与B是一对多联系,如图1-2所示。例如,学校对系,班级对学生等都是一对多联系。 iii. 多对多联系(M:N)如果A中至少有一个属性对应B中一个以上属性,且B中也至少有一个属性对应A中一个以上属性,则称A与B是多对多联系,如图1-3所示。例如,学生与课程、工厂与产品、商店与顾客都是多对多联系。(6) 实体模型(Entity Model)反映实体之间联系的模型称为实体模型。教学情况可由学生、课程、授课、成绩等方面情况组成。其中,学生具有属性学号、姓名、年龄、性别(当然还有其它属性,这里省略),课程具有属性课号、课程名称,授课具有属性教师姓名、课号、课时、班级,成绩具有属性学号、课号、分数。学生对课程是多对多联系,因为一个学生可以学习多门课程,而一门课程又有多个学生学习。教师对课程假设是一对多联系,即一个教师可以讲授多门课程,但一门课程只能由一个教师任教。教学情况的实体模型如下图所示。2. 数据模型描述数据有以下术语:(1) 字段(Field)对应于信息世界中的属性,也称数据项。字段的命名往往与属性名相同。(2) 记录(Record)字段的有序集合称为记录,它用来描述一个实体,是相应于这一实体的数据。例如,组成一个学生记录的字段(数据项)有学号、姓名、年龄和性别字段,这是记录的类型。而870101王小艳18女就是一个记录的值。(3) 表 (Table)同一类记录的集合,例如所有的学生记录的集合就是一个学生文件。(4) 数据模型(Data Model)实体模型的数据化。(5) 关键字(Key)标识表中每一个记录的一个或多个字段的组合称为关键字。数据模型的建立实际上是实体模型的数据化,为了使模型能清晰、准确地反映客观事物,并能用于数据库设计,一般应做如下工作:a.给数据模型命名,使不同模型得以区别;b.给每个数据项命名,以说明和区分每个记录类型具有的数据项,并确定作为记录类型主关键词的数据项;c.指出数据项牲,即类型、长度、值域。3. 常见数据模型常见的数据模型有三种:层次模型、网状模型和关系模型,根据这三种数据模型建立的数据库分别为层次数据库、网状数据库和关系数据库。l 层次模型描述层次(树形)结构的模型。n 每个模型中只有一个称为根的最高结点n 其它结点都只能和一个父结点相连接(1:M)n 查询、访问都必须从根结点开始最有影响的层次模型的DBS是60年代末,IBM公司推出的IMS层次模型数据库系统。l 网络模型图结构模型,其特点:n 可有0个或多个结点无双亲n 允许结点有多个双亲n 允许结点间有2种以上的关系n 存取、访问必须按事先定义好的路径进行(从指定出发点) 最有影响的网络模型是美国数据系统语言协会推出的DBTG系统,也称CODASYL(Conference On Data System Languige) l 关系模型自20世纪80年代以来,大多数数据库系统都是建立在关系模型之上。关系模型建立在严密的数学概念之上,它用“二维表格”来表示实体及实体之间的联系。n 数据是二维表中的元素,而二维表即表示关系。n 表格中的一行称为一个元组,相当于一个记录;n 表格中的一列称为一个属性,相当于记录中的一个字段。n 一个或若干个属性的集合称为关键词,它唯一标识一个元组。关系应满足:(1) 关系中不允许有相同的属性名;(2) 每一列中的元素是类型相同的数据;(3) 行和列的顺序可以任意;(4) 表中元素是不可再分的最小数据项(描述对象属性的数据);(5) 表中任意两行的记录不能完全相同,表中不允许有表。关系中的每个记录是唯一的,所有记录具有相同个数和类型的字段,即所有记录具有相同的固定长度和格式。表1-1 学生关系表学号姓名年龄性别班级870101王小艳18女微机871870201李 明18男微机872870102司马奋进19男微机871870202李 明18女微机872870103成 功18男微机871关系模型的最大优点是简单,一个关系就是一个数据表格,用户容易掌握,只需用简单的查询语句就能对数据库进行操作。用关系模型设计的数据库系统是用查表方法查找数据。典型的RDBMS有:XBASE、VFP、Oracle、Sybase、DB/2、Informix、Access。第二章 关系数据库的基本理论2.1 关系数据库的基本概念2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构关系来描述,关系型数据库都是由一张或多张相关联的表(关系)组成。对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。表示形式:R1(A1,A2,A3,AN)2.1.2 关系数据库与关系数据库模式 关系数据库模式中所有的关系模式的具体关系的集合称之为关系数据库,是数据的“值”的表示。2.1.3 视图 视图通常是由关系数据库模式的某个关系中满足用户给定条件的若干属性列或元组组成,也可以是对若干个不同关系进行关系运算的结果,它反映的是局部逻辑结构。 视图不存放数据,对视图的操作最终需转换为对表的操作。2.1.4 关键字 1超关键字 能够唯一地确定记录的列的组合称为“超关键字”。超关键字虽然能唯一确定记录,但可能包含多余的字段。2候选关键字 如果超关键字去掉其中任何一个字段后不再能唯一确定记录,则称它为候选关键字。3主关键字从候选关键字中,可选出一个能唯一确定记录的字段作为主关键字,主关键字不能为空。4外部关键字当T1表的主关键字被包含到另一表T2中时,它就称为T2表的外部关键字。5主属性和非主属性 包含在任一候选关键字中的属性称为主属性,不包含在任何候选关键字中的属性称为非主属性。2.2 关系的完整性 关系的完整性包括三类: (1)实体完整性实体完整性是指在关系中的任何一个元组,主关键字值的任一分量都不允许为空。 (2)参照完整性B中的外关键字F是A中的主关键字,则F要么取空值,要么等于A中某个元组的值。(3)用户定义完整性由用户针对数据的具体语义约束条件,来定义的完整性,称用户自定义完整性。如人的年龄可以规定在0150之间取值,考试成绩只能在0100之间等。2.3 关系的数学定义 2.3.1 一个日常生活中的关系 某小区有2名男同志和3名女同志,把男人看成一个集合M,把女人看成一个集合W,如下: M=赵和平, 李振华; W=李小丽, 张小琴, 王丽娅。若M集合和W集合存在着夫妻关系,则可能的夫妻关系如下: (赵和平,李小丽),(赵和平,张小琴),(赵和平,王丽娅),(李振华,李小丽),(李振华, 张小琴),(李振华,王丽娅)在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡尔积”,本题的“笛卡尔积”可记为:MW。2.3.2 关系的数学定义 1域域(Domain)是值的集合。如:1到100之间的整数,男,女,Mary,Tom等都是域。域中元素的个数称为域的基数,如有下列集合:D1=王小平, 张亚, 李军,表示单位人员的集合;D2=教授,副教授,讲师,助教,表示职称的集合;D3=35,27,18,表示工龄的集合。其中D1的基数是3,D2的基数是4,D3的基数是3。2笛卡尔积【例】教师关系例。有以下三个域:D1=张正义,姚小丽,教师姓名集合; D2=男,女,教师性别集合; D3=21,24,教师年龄集合。求D1 D2 D3 。解:笛卡尔的值可用左表表示:实际的教师信息可能如右表 3关系模型中的术语与数据世界中术语的对照2.4 关系代数 2.4.1 传统的集合运算 1并运算(UNION) 2交运算(INTERSECTION) 3差运算(DIFFERENCE) 4关系的笛卡尔积 2.4.2 专门的关系运算 (1)选择(SELECT):从数据库文件中挑选出满足指定条件或指定范围的那些记录,是在二维表的水平方向上选取一个子集。例如挑选出所有男生的记录。(2)投影(PROJECTION):从数据库文件中将指定的字段挑选出来,是在二维表的垂直方向上选取一个子集。例如挑选出学号、姓名字段。投影和选择常组合使用,以便从数据库中挑选出某些记录中的某些数据。例如,挑选出女生的学号、姓名。(3)连接(JOIN):按照某个条件将两个数据库文件连接生成一个新的数据库文件。a. 内部联接(Inner Join):连接条件为“=”,且联结属性为公共属性,联结结果不消除重复属性。b.自然联接运算(Natural join):R1、R2在同名属性上值相同,结果中只出现一次。c. 左外联接(Left outer join):在联结结果中保留左边关系与联结不匹配的元组。d. 右外联接(Right outer join):在联结结果中保留右边关系与联结不匹配的元组。e. 全外联接(Full outer join):左外联结与右外联结的组合。2.5 关系的规范化 2.5.1 函数依赖的基本概念 1函数依赖函数依赖根据其性质可分为完全函数依赖、部分函数依赖和传递函数依赖。2完全函数依赖设R为任一给定关系,X,Y为其属性或属性组,若X Y,且对X中的任何真子集X,都有 X Y,则称Y完全函数依赖于X。3部分函数依赖 设R为任一给定关系,X,Y为其属性或属性组,若XY,且在X中存在一个真子集X,满足 X Y,则称Y部分函数依赖于X。4传递函数依赖设R为任一给定关系,X,Y,Z为其不同属性子集,若XY,Y X,YZ,则称Z传递函数依赖于X。2.5.2 范式 关系的规范化用范式来描述。范式即为符合某一种级别标准的关系模式的集合。1第一范式任给关系R,如果R中每一属性的值域中的每一个值都是不可分解的,则R为第一范式,记作R1NF。 2第二范式任给关系R,若R1NF,且其所有非主属性都完全函数依赖于关键字,则R为第二范式,记作R2NF 。3第三范式任给关系R,若R2NF,且它的每一个非主属性都不传递依赖于主关键字,则R属性第三范式,记作R3NF。4BCNF范式 任给关系R,若R3NF,且它的每一个非主属性都不部分依赖于候选关键字。2.5.3 关系的规范化过程 2.5.4 关系的规范化示例 某图书订购记录表如下:1第一范式:消去重复组2第二范式:消去部分函数依赖3第三范式:消去传递函数依赖第三章 实体-联系模型3.1 ER模型 3.1.1 三个世界概念模型:现实世界信息世界:E-R模型实施模型:信息世界数据模型:关系模型、层次模型、网状模型3.1.2 E-R模型的组成要素及表示方法 1E-R图的组成要素及其画法2实体间不同联系情况的E-R图表示法1对1联系:系主任与系关系1对多:描述仓库和商品之间的E-R图可如下图所示:多对多:教师和课程之间的E-R图3.2 ER图的设计方法 E-R图通常都应经过以下两个阶段: (1)针对每一用户画出该用户信息的局部ER图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于ER图的简化。 (2)综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体ER图必须能导出原来的所有局部视图,包括实体、属性和联系。 【例 】某学校管理系统中有三个部门:后勤部、学生处和财务处。后勤部用来管理学生的住宿;教务处用来管理学生选课和教师任课;财务处用来管理发放教师的工资。(d) 全局E-R图3.3 ER模型到关系模型的转换 把E-R图转换为关系模型可遵循如下原则 :(1)对于ER图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。(2)对于ER图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。3.3.1 两实体集间1:n联系 两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。例:仓库(仓库号,地点,面积) 商品(商品号,商品名,价格,仓库号)3.3.2 两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。例:教师(教师号,教师名,职称)课程(课程号,课程名,班级)讲授(教师号,课程号,质量)3.3.3 两实体集间的1:1的联系 假设A实体集与B实体集是1:1的联系,联系的转换有三种方法: 把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入; 把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入; 建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。例:关系模式A:主任(编号,姓名,年龄,学历)系(系编号,系名,编号)关系模式B:主任(编号,姓名,年龄,学历,系编号)系(系编号,系名)关系模式C:主任(编号,姓名,年龄,学历)系(系编号,系名)管理(编号,系编号)第四章 数据库设计4.1 数据库设计概述 4.1.1 数据库设计的目标数据库设计有两个最重要的目标:满足应用功能需求和良好的数据库性能。满足应用功能需求,主要是指把用户当前应用以及可预知的将来应用所需要的数据及其联系能全部准确地存放于数据库之中,并能根据用户的需要对数据进行规定的合理的增、删、改、显示等操作。良好的数据库性能,主要是指数据库应具有良好的存储结构、良好的数据共享性、良好的数据完整性、良好的数据一致性及良好的安全保密性能等。 4.1.2 数据库体系结构SPARC结构对数据库的组织从内到外分三个层次描述,分别称为内模式、模式和外模式,三个模式反映了看待数据库的三种不同数据观点。SPARC结构如图:SPARC结构对数据库的组织从内到外分三个层次描述,分别称为 : (1)模式:概念模式,数据库的全局定义(总体概念级数据库),又称管理员视图; (2)内模式:内存模式,描述数据如何被组织并存放于外部存贮器上,程序员视图; (3)外模式:用户眼中的数据库,又称用户视图。 在三个模式之间存在着两种映射 :模式/外模式映射:存贮方式发生改变时,只需改变映射关系,保持模式不变,即保证物理数据独立性;模式/内模式映射:数据概念模式发生变化时,只需改变映射关系,保持外模式不变,即保证逻辑数据独立性。 模式映射采用映射技术还有以下好处: (1)保证了数据共享; (2)有利于数据的安全保密; (3)方便用户使用数据库。4.1.3 数据库设计的内容 1数据库的结构特性设计数据库的结构特性设计是确定数据库的框架和数据结构(逻辑结构特征)。 2数据库的行为特性设计数据库的行为特性设计是指确定数据库用户的行为和动作,并根据其行为特性设计出数据库的子模式。 3数据库的物理模式设计数据库的物理模式设计要求是:根据数据库结构的动态特性,在特定的RDBMS环境下,把数据库的逻辑结构模型加以物理实现,从而得出数据库的存储模式和存取方法。4.1.4 数据库设计的特点与过程 1数据库设计的特点:数据库设计是一种“反复探寻,逐步求精”的过程。 2数据库设计的过程:如图4-1所示。 图4-1 数据库设计过程4.2 数据库逻辑设计 4.2.1 数据库逻辑设计的步骤逻辑设计阶段的目标是产生合理的数据库模式,可分为三个阶段:分别是收集和分析用户需求、概念模式设计和逻辑模式设计。第一阶段主要分成四个步骤,分别如下: 第一步:分析用户活动,产生“用户活动图”。 第二步:确定系统范围,产生“系统范围图”。 第三步:分析用户活动所涉及到的数据,产生“数据流图”。 第四步:分析系统数据,产生数据字典。第二阶段可分为两个步骤,分别如下: 第一步:根据局部E-R模型,产生局部“E-R模型”。 第二步:对局部E-R模型进行综合,产生总体E-R模型,并建立“总体E-R图”。第三阶段也可分成两个步骤,分别如下: 第一步:把总体E-R图转换成模式。 第二步:对模式进行优化,产生符合要求的合理最优的模式。4.2.2 收集和分析用户需求 分为四个阶段来完成。通过一个医院信息管理系统来说明这四个步骤应完成的功能。 【例】某医院信息管理系统要完成以下功能: 办理病历(第一次来院治病时办理病历); 查询药品情况(根据要求查询某种类或全部药品信息); 病人项目入库(病人所用药、所做检查等治疗信息存入到指定的数据库中); 催交欠费(根据病人项目计算出总费用,减去预交费用,若超过某一限度则催交欠费)。 1分析用户活动:画用户活动图2确定系统范围 上图中虚线框内的部分属于系统范围,而框外部分则需人工处理。3分析用户活动所涉及到的数据 (1)数据流图(DFD)的概念数据流图是一种能全面描述系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出数据在系统中的流动、存储和处理情况。 (2)数据流图的特征 抽象性数据流图完全舍去了具体的物质,只剩下数据的流动、加工处理和存储。 概括性数据流图可以把系统中的不同业务处理过程联系起来,形成一个整体。 (3)数据流图的组成 数据流图由四个基本部分组成:数据流、加工、文件、源点及终点。画数据流图应注意以下几点: 数据流图中反映的是数据流而不是控制流,这是与一般程序流程图的最大不同之处; 在对数据流图中各个成份命名时,应该体现命名的含义; 流入文件或流出文件的数据流不必命名,因为文件名本身已经表示了数据内容; 源点和终点不是必须的,因为它们是属于系统之外的事物,但画出源点和终点有助于理解数据流的来龙去脉。 (4)数据流图的画法 一般地说,画数据流图应遵循“由外向内,逐步细化”的原则。逐步细化是指:逐一描述系统内部数据流,一般从每个业务的输入端开始向输出端推进,每当经过使数据流的组成或数值发生变化的地方,就用一个“加工”将其连接起来,这个“加工”正是实现这一数据变化的。注意,不要把相互无关的数据画成一个数据流,也不要把作为一个处理单位的数据画成二个数据流。如果牵涉到文件,则应表示出“文件”与“加工”的读写关系。4分析系统数据 (1)数据字典的概念数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行数据收集和数据分析所获得的结果。数据字典是关于数据库中数据的描述,通常称“元数据”,元数据不是数据本身。数据字典在数据库设计中占有非常重要的地位,是概念模式设计、逻辑模式设计和物理设计的主要依据。(2)通过数据流图构成数据字典数据字典是对数据流图中的四个成份进行描述的产物,它和数据流图共同构成“系统说明书”。 数据流的描述:定义数据流的组成,一般在数据流图的后面用说明来描述; 文件的描述:定义文件的组成和组织方式; 数据项的描述:对数据项进行定义,包括名称、类型、长度、取值范围等。 加工的描述:对实现加工处理的过程进行描述和定义,包括过程名、功能说明、输入输出接口等。主要是说明“做什么”而不是“如何做”。4.2.3 概念模型设计(E-R图设计)1局部E-R模型的设计局部E-R模型设计的任务是根据需求上一步骤产生的各个功能模块的数据流图和数据字典中的相关数据,设计出各个功能模块的局部ER图。2总体E-R模型的设计 局部E-R图之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。(1)属性冲突 属性域冲突,即属性值的类型、取值范围不同。 属性取值单位冲突。(2)命名冲突 同名异义冲突,即不同意义的对象在不同的部门的局部E-R图中具有相同的名字。 异名同义冲突,即意义相同的对象在不同的部门的局部E-R图中具有不同的名字。(3)结构冲突 同一对象在不同的应用中具有不同的抽象。 同一实体在不同的局部E-R图中的属性组成不一致,即包含的属性个数和属性排列次序不完全相同。 实体之间的联系在不同的局部ER图中呈现不同的类型。这类冲突的解决方法是根据应用的语义对实体联系的类型进行综合或调整。 4.2.4 逻辑模式设计 逻辑模式设计的实质是把E-R图转换为具体的DBMS支持的数据模型。把E-R图转换为关系模型的方法,通常分两步进行:初步设计和优化设计。1初步设计把E-R图转换为关系模型具体的转换方法请参见3.3节。2优化设计对模式进行调整和改善所谓优化,就是从提高效率的角度出发,对模式结构作进一步的凋整和改良。优化是在性能预测的基础上进行的,一般用三方面指标来衡量: (1)单位时间内所访问的逻辑记录个数要少; (2)单位时间内数据传送量要少; (3)系统占用的存储空间尽量要少。【例】要查询病人信息时,经常按住院病人和门诊病人分类查询,为改善性能,使得单位时间内访问逻辑记录的个数尽量少,请给出一种分解方法。 原来的病人关系为:病人(病历号、姓名、性别、年龄、职业、通信地址、电话号码、是否医保)可对其进行水平分解,使其成为两个关系住院病人(病历号、姓名、性别、年龄、职业、通信地址、电话号码、是否医保)门诊病人(病历号、姓名、性别、年龄、职业、通信地址、电话号码、是否医保)4.3 数据库物理设计 4.3.1 存储结构的选择选择何种存储结构,与选定的DBMS类型有关,对于层次式或网状式DBMS,存储结构的选择与应用有密切关系。对于关系式数据库,用户能够干预的事情很少,最多只能选定索引方法或给出辅助索引,以便在程序中可以按倒排文件方式查询数据,而存取路径是由系统安排的。4.3.2 属性的存储类型的确定不同DBMS系统的数据类型稍微有点区别,因此需要针对不同的DBMS来确定每个属性的存储类型。数据库管理系统提供的数据库设计工具就具有设计属性的存储类型的功能,如Visual FoxPro提供的“表设计器”,Visual Basic提供的“可视化数据管理器”,Delphi提供的“DataBase Desktop”等。4.3.3 表的索引结构的确定 4.3.4 存取路径的确定4.4 数据库的实现、运行与维护 4.4.1 数据库的实现 该阶段主要完成以下三项工作: (1)建立实际数据库结构。 (2)装入试验数据对应用程序进行调试。 (3)装入实际数据,进入试运行状态。 4.4.2 数据库的运行与维护 运行维护阶段的主要任务如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论