sqlserver2005数据库应用与开发教学课件作者李新德1
第一章 数据库基础,2,4,项目一 需求分析与数据库设计,任务一 针对“学生成绩管理系统” 进行需求分析和数据库的概念设计,任务二 针对“学生成绩管理系统” 进行数据库的逻辑设计,项目二 数据库应用程序与数据库管理系统的安装,任务 学会SQL Server 2005的安装、 配置与简单使用,返回,项目一 需求分析与数据库设计,【项目需求】 数据库是应用软件存放数据的地方,若要开发数据库应用程序,必须首先设计好数据库。 某学校有众多学生,划分若干专业,开设有许多课程,每一学生可选修多门课程。现需开发应用程序“学生成绩管理系统”,请进行需求分析,并完成数据库的设计。 【完成项目的条件】 (1)学会数据库需求分析的方法,能够准确找出实体及其属性。 (2)掌握数据库的概念设计方法,能够画实体联系E-R 图。 (3)掌握数据库设计规范的三个范式。 (4)掌握数据库的逻辑设计方法,正确处理实体之间的关系。,下一页,返回,项目一 需求分析与数据库设计,【方案设计】 要完成“学生成绩管理系统”的数据库设计,首先需要对该系统进行详细的需求分析,针对客户提出的需求和需求调查的结果,将所涉及的各种信息进行归纳和分类,以确定这些信息名词中哪些可以作为实体,哪些作为实体的属性;其次,进行概念设计,将实体和属性用图形画出来,并加入必要的元素构成E-R 图,继而确定实体之间的关系,再利用数据库设计的三个范式来检验概念设计是否合理。最后,运用数据库逻辑设计的方法将概念设计的结果转化为逻辑设计的结果,即关系表。完整的数据库设计还包含数据库的物理设计,由于需要用到后面的知识,本项目先不涉及,留待后面补充。 【相关知识和技能】 一、数据库技术概述,上一页,下一页,返回,项目一 需求分析与数据库设计,随着社会生产技术的不断发展,人类所面对的信息量越来越大,如何快速高效地处理数据信息是摆在人们面前的一项重要课题。伴随着计算机技术快速发展起来的数据库技术已经成为数据处理的有力工具,成为信息技术中的一个重要支撑。 数据处理技术经历了人工管理文件系统数据库系统的历程。早期的数据处理是依靠手工或算盘来进行的。以后逐步代之以计算器、手摇计算机和电动计算机,数据存储形式也从手写和纸质打孔,逐渐发展到数据文件系统。20 世纪60 年代后,随着数据库技术的出现,数据存储采用了规范高效的数据库形式。高效率存储设备的广泛使用,使数据处理工作发生了革命性的改变,计算机应用也从科学研究部门逐渐渗透到了各行各业。,上一页,下一页,返回,项目一 需求分析与数据库设计,数据库技术主要用于各种数据处理,即对各种形式的数据进行收集、组织、加工、存储、抽取和传播等工作。其主要目的是从大量的、杂乱无章的甚至是难以理解的数据中抽取,并加工推导出具有特定价值的数据,从而为进一步的活动提供决策依据。可以这样认为:没有数据库技术,人们在浩瀚的信息世界中将显得手足无措。 至21 世纪的今天,利用数据库技术开发的数据库应用程序(人们常称为应用软件)已经无处不在。哪里有大量的数据信息处理的需要,哪里就会出现数据库技术的身影。现在的数据库技术已经发展成为一门以数据库管理系统为核心,内容丰富、领域宽广的新学科。它广泛地渗透到了社会方方面面的应用领域当中,正发挥着巨大的数据处理和组织决策作用。数据库应用程序的开发,更带动了一个巨大的软件产业的发展。,上一页,下一页,返回,项目一 需求分析与数据库设计,掌握了数据库技术以及开发方法,我们不仅可以利用数据库管理系统方便地操作数据,实现数据和使用者的有效管理,胜任作为一名合格的数据库管理员的职责,而且,还可以在广泛的领域就业,从事数据的信息化开发和管理工作,如为企业开发、维护数据库应用程序;帮助企业挖掘信息,实现信息的有效利用并辅助决策;解决企业的信息孤岛问题,实现数据接口间相互转换的难题,等等。 二、数据库与数据库管理系统 数据库技术的基础是数据库(DataBase,DB)和数据库管理系统(DataBase ManagementSystem,DBMS)。 数据库是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。数据库中的数据不仅包含数字和文字,还可以包含图像、时间、音频及视频等。例如,把一个学校的学生、课程及学生成绩等数据,按照一定的关系,一定的格式组织在一起,存放在计算机内,就可以构成一个数据库。,上一页,下一页,返回,项目一 需求分析与数据库设计,因此,数据库(DB)是长期存储在计算机内有结构的共享数据的集合。这些数据存储在计算机的存储介质中,不会随计算机关机或死机而丢失,它可以由各种用户共享,并具有较小的冗余度和较高的数据独立性。 数据库管理系统(DBMS)是位于用户与操作系统之间的一个以统一的方式管理和维护数据库(DB)中数据的一系列软件的集合。 数据库与数据库管理系统的关系如图1-1 所示。 数据库管理系统提供以下功能: 数据定义功能:可定义数据库中的数据对象。 数据操纵功能:可对数据库表进行基本操作,如插入、删除、修改、查询等。 数据的完整性检查功能:保证用户输入的数据满足相应的约束条件。,上一页,下一页,返回,项目一 需求分析与数据库设计, 数据库的安全保护功能:保证只有赋予权限的用户才能访问数据库中的数据。 数据的并发控制功能:使多个应用程序可在同一时刻同时访问数据库中的数据。 数据库系统的故障恢复功能:使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行。 在网络环境下访问数据库的功能。 方便有效地存取数据库信息的接口和工具。编程人员使用软件开发工具与数据库的接口编写数据库应用程序,数据库系统管理员(DBA,DataBase Administrator)通过提供的工具对数据库进行管理。,上一页,下一页,返回,项目一 需求分析与数据库设计,自20 世纪70 年代提出数据的关系模型后,商用数据库系统迅速采用了这种模型,涌现出了很多优良的关系数据库管理系统(Relational DataBase Management System,RDBMS),并成为市场上的主导产品,主流的大型关系型数据库管理系统包括Oracle、Sybase、SQLServer、DB2、Informix、Ingres 等,小型的关系型数据库管理系统包括MySQL、Access、VisualFoxPro、Adaptive server anywhere 等。 三、数据模型 数据库管理系统根据数据模型对数据进行存储和管理。数据库管理系统采用的数据模型主要有层次模型、网状模型和关系模型。 1. 层次模型 层次模型是指以树形层次结构组织数据,它属于格式化数据模型。图1-2 所示为某学校层次模型组织的数据。,上一页,下一页,返回,项目一 需求分析与数据库设计,2. 网状模型 网状模型又叫网络模型,它也属于格式化数据模型。每一个数据用一个节点表示,每个节点与其他节点都有联系。这样的数据库中的所有数据节点就构成了一个复杂的网络。图1-3所示为按网状模型组织的数据,每个部门都销售所有5 种产品。 3. 关系模型 关系模型是指以二维表格(关系表)的形式组织数据库中的数据,它不同于格式化模型的风格和理论基础,是一种数学化的模型。关系模型的基本组成是关系。按关系模型组织的数据示例见表1-1。 这张二维表显示了每个学生的情况。表的每一行是一个记录,也称为一个元组。每一列是记录中的一个字段,表示其中的一个属性。 四、数据库设计,上一页,下一页,返回,项目一 需求分析与数据库设计,数据库的设计建立在详细的需求分析基础上,随后还必须经过三个过程,即概念设计、逻辑设计和物理设计。 1. 需求分析 需求分析是指根据对客户的需求调查和客户提供的需求说明书进行判断和分析,确定客户需要利用何种信息达成何种功能,以及从哪里取得数据,经过怎样的处理,最后以怎样的形式反映出来等。开始数据库设计前,需要先进行需求分析。针对客户提出的需求和需调查的结果,将所涉及的各种信息进行归纳和分类,以确定这些信息名词中哪些可以作为实体,哪些作为实体的属性。一开始应先设计出主要的几个数据库表,而后随着需求分析的深入,再将一些辅助性的数据库表设计出来。 2. 数据库的概念设计,上一页,下一页,返回,项目一 需求分析与数据库设计,概念设计的任务是在客户需求说明书的基础上,按照特定的方法将客户的需求抽象为一个不依赖于任何具体计算机和软件系统的数据概念模型。进行数据库的概念设计需要了解以下知识。 1)实体、属性和实体集 实体是指独立存在并且可以相互区别的事物。属性是从属于实体的、用于描述实体特性的信息。实体的具体个体集合称为实体集。 在现实中有时是很难区分哪个是实体哪个是属性的。一个概念名词可能是实体也可能只作为属性,这取决于它是否是重点关注的对象。比如,医院的病房,对于病人这个实体来说,它是病人的属性(尽管病房这个属性还能再分,不符合下文中提到的第一范式)。,上一页,下一页,返回,项目一 需求分析与数据库设计,但如果要对病房进行专门的管理,则变成了重点关注的对象,就应当分解开来把它作为实体,而将病房专业、地址、联系电话等作为病房的属性。若病房的地址也需要详细管理起来,则病房地址也应变成实体,再将病房所处的建筑物名、联系电话、值班人员等作为属性。 判断一个事物或信息到底作为实体还是作为属性,可以通过这样的原则:凡是需求分析中需要重点关心的独立事物,就可以直接把它作为实体,而某种单纯的特性,如时间、地点、数量、大小、长度等,则通常只作为属性。 2)实体间的三种关系 一对一关系,是指一个具体的实体只对应另一个具体的实体。如:某丈夫只对应某妻子;某班级只对应一个班长。,上一页,下一页,返回,项目一 需求分析与数据库设计,一对多关系,是指一个具体的实体对应(或属于)多个其他具体的实体。如:某工厂包含多个车间;某班级有很多学生。 多对多关系,是指多个具体的实体对应多个其他具体的实体。如:学生与选修课程的关系;多个连锁店与众多销售商品的关系。在本例子中,我们确认学生实体与课程实体的关系是多对多的关系,因为一个学生可以选修多门课程,而一门课程也可以被多个学生选修。 3)E-R 图和主键 E-R 图即实体(Entity)-联系(Relational)图,其画法是:将实体用矩形框画出来,属性用圆角矩形表示,实体和其属性用线段连接起来,实体间关系则用菱形来连接。,上一页,下一页,返回,项目一 需求分析与数据库设计,在实体的所有对应属性中,如果某属性的值或最小属性组合的值能唯一标识(即唯一区分)该实体,则将该属性或属性组合称为键,对于每一个实体集,可指定其中一个键为主键。 4)规范数据库概念设计的三个范式 第一范式:每个实体的元组中每一个属性都不可再分。 如: 由于教室这个属性可以再分,不符合第一范式的规范,因此应分解为: 教室变成单独的实体,两元组都符合。 第二范式:每个实体的元组中不能存在与主关键字无关的属性。 如:,上一页,下一页,返回,项目一 需求分析与数据库设计,由于读者部门与书名无关,不符合第二范式的规范,因此应分解为: 第三范式:每个实体的元组中非关键字属性间不存在依赖关系。 如: 由于店名和店址均是CD 的提供来源,店名和店址之间存在依赖关系,不符合第三范式的规范,因此应分解为: 5)数据库概念设计的方法 数据库概念设计的方法可以归纳为: 从需求分析中提取出所有的实体和属性。 分析每个实体,确定实体间是否存在关系。有关系的话,判断是属于一对一关系,还是一对多关系,还是多对多关系。 将实体、属性及实体之间的关系按照规范画出E-R 图。,上一页,下一页,返回,项目一 需求分析与数据库设计, 在E-R 图中为实体添加主键标识。 按照三个范式对概念设计进行校验修正。 3. 数据库的逻辑设计 数据库的逻辑设计,是以E-R 图为基础,根据实体与属性的联系或实体与实体之间的关系,实现概念模型向逻辑模型的转换。具体地讲,是要确定数据库中应包含哪些表,每个表又有怎样的结构。