1、SQLserver2005数据库应用数据库应用与开发教程与开发教程n教材教材qSQL Server 2008数据库技术实用教程,清华大学出版数据库技术实用教程,清华大学出版社,高云主编社,高云主编n参考书参考书qSQL Server 2008数据库应用与开发教程,清华大学出数据库应用与开发教程,清华大学出版社,卫琳主编版社,卫琳主编q数据库应用技术(数据库应用技术( SQL Server 2005 ),中国铁道出),中国铁道出版社,申时凯版社,申时凯 李海雁主编李海雁主编q数据库应用技术(数据库应用技术( SQL Server 2005 ),人民邮电出),人民邮电出版社,周慧主编版社,周慧主编
2、n授课环节授课环节 教学:教学:32学时学时 实验:实验:32学时学时考核:平时考核:平时10%,实验,实验20%,期末考试,期末考试70%n答疑答疑 邮箱:邮箱:n要求要求q掌握数据库的基本理论掌握数据库的基本理论q熟练操纵熟练操纵SQL Server数据库数据库q了解相关的数据库开发工具了解相关的数据库开发工具q能够开发出一个小型的基于能够开发出一个小型的基于SQL Server的信息管理系统的信息管理系统第一讲第一讲 数据库技术基础数据库技术基础准备知识准备知识1.1 数据库基础知识数据库基础知识1.2 关系数据库关系数据库1.3 数据库设计数据库设计能力目标:能力目标:n认识数据库系统
3、的组成和认识数据库系统的组成和C/S、B/S结构。结构。n认识各种数据库管理系统、开发工具及其特点。认识各种数据库管理系统、开发工具及其特点。n明确与数据库技术相关的职业技术岗位。明确与数据库技术相关的职业技术岗位。n能够根据项目需求分析报告进行数据库的概念模型设计。能够根据项目需求分析报告进行数据库的概念模型设计。n通过项目需求分析,培养与客户沟通的能力。通过项目需求分析,培养与客户沟通的能力。 任务设计:任务设计:n阅读管理信息系统的项目需求分析报告。阅读管理信息系统的项目需求分析报告。n根据项目需求分析建立概念(根据项目需求分析建立概念(E-R)数据模型。)数据模型。知识要求:知识要求:
4、n数据管理技术的产生和发展。数据管理技术的产生和发展。n数据库系统概述。数据库系统概述。n数据库三级模式结构的重要概念。数据库三级模式结构的重要概念。nDBMS的主要功能。的主要功能。n数据模型概述。数据模型概述。n数据库概念设计。数据库概念设计。为何要学习数据库?为何要学习数据库?数据库服务器应用程序q数据库数据库q作用:作用:q要求:要求:q应用程序应用程序q作用:作用:q要求:要求:数据库能够做什么?数据库能够做什么?存储数据、检索数据、生成新的数据存储数据、检索数据、生成新的数据统一、安全、性能等统一、安全、性能等响应操作并显示结果、向数据库请求数据响应操作并显示结果、向数据库请求数据
5、美观、操作简单方便美观、操作简单方便q存储数据的方法存储数据的方法q第一种方法:用大脑来记住数据第一种方法:用大脑来记住数据q第二种方法:写在纸上第二种方法:写在纸上q第三种方法:写在计算机的内存中第三种方法:写在计算机的内存中q第四种方法:写成磁盘文件第四种方法:写成磁盘文件qq存储大量数据,方便检索和访问存储大量数据,方便检索和访问q保持数据信息的一致、完整保持数据信息的一致、完整q共享和安全共享和安全q通过组合分析,产生新的有用信息通过组合分析,产生新的有用信息 1.1 数据库基础知识数据库基础知识数据数据(Data):是信息的载体;是描述事物的符号记录,信息是数据的内是信息的载体;是描
6、述事物的符号记录,信息是数据的内容。容。符号:数字、文字、图形、声音、语音等符号:数字、文字、图形、声音、语音等 在计算机中,为了处理现实世界中的事物,可以抽象出人在计算机中,为了处理现实世界中的事物,可以抽象出人们们感兴趣感兴趣的事物特征,组成一个记录来描述该事物。的事物特征,组成一个记录来描述该事物。1.1.1 信息、数据与数据管理信息、数据与数据管理D文字、数字、图形、文字、数字、图形、图像、声音等图像、声音等数字、文字数字、文字数据库文件数据库文件PIWordExcelPowerPointFrontPagePhotoshopC,VB.NETAccess,VFPSQL Server文档(
7、文档(.doc.doc)工作簿(工作簿(.xls.xls)文稿(文稿(.ppt).ppt)网页(网页(.html).html)图片(图片(.bmp).bmp)数字、文字数字、文字查询结果或报表查询结果或报表DataInformation Processing 数据数据人:人:(李四,男,(李四,男,1988,2008,计算机系),计算机系)(李四,男,(李四,男,1988,180,75,80,120)n数据管理数据管理 数据的处理是指对各种数据进行收集、存储、加工和传数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的集合。而播的一系列活动的集合。而数据管理数据管理是指对数据进行分
8、类、是指对数据进行分类、组织、编码、存储、检索和维护等操作。它是数据处理的中组织、编码、存储、检索和维护等操作。它是数据处理的中心问题。心问题。1.1.2 数据管理技术的发展数据管理技术的发展人工管理阶段人工管理阶段文件系统阶段文件系统阶段数据库系统阶段数据库系统阶段背背景景应用背景应用背景科学计算科学计算科学计算、管理科学计算、管理大规模管理大规模管理硬件背景硬件背景无直接存取存储设无直接存取存储设备备磁盘、磁鼓磁盘、磁鼓大容量磁盘大容量磁盘软件背景软件背景没有操作系统没有操作系统有文件系统有文件系统有数据库管理系统有数据库管理系统处理方式处理方式批处理批处理联机实时处理、批处联机实时处理、
9、批处理理联机实时处理、分布处联机实时处理、分布处理、批处理理、批处理特特点点数据的管理者数据的管理者用户用户(程序员程序员)文件系统文件系统数据库管理系统数据库管理系统数据面向的对数据面向的对象象某一应用程序某一应用程序某一应用某一应用现实世界现实世界数据的共享程数据的共享程度度无共享,冗余度极无共享,冗余度极大大共享性差,冗余度大共享性差,冗余度大共享性高,冗余度小共享性高,冗余度小数据的独立性数据的独立性不独立,完全依赖不独立,完全依赖于程序于程序独立性差独立性差具有高度的物理独立性具有高度的物理独立性和一定的逻辑独立性和一定的逻辑独立性数据的结构化数据的结构化无结构无结构记录内有结构、整
10、体记录内有结构、整体无结构无结构整体结构化,用数据模整体结构化,用数据模型描述型描述数据控制能力数据控制能力应用程序自己控制应用程序自己控制应用程序自己控制应用程序自己控制由由DBMS提供数据安全提供数据安全性、完整性、并发控制性、完整性、并发控制和恢复能力和恢复能力数据管理三阶段的比较数据管理三阶段的比较数据库的发展史数据库的发展史q萌芽阶段文件系统q使用磁盘文件来存储数据q初级阶段第一代数据库q出现了网状模型、层次模型的数据库q中级阶段第二代数据库q关系型数据库和结构化查询语言q高级阶段新一代数据库q“关系-对象”型数据库qOracleqOracle公司的产品q“关系-对象”型数据库q产品
11、免费、服务收费qSQL Serverq针对不同用户群体的五个特殊的版本q易用性好qDB2qIBM公司的产品q支持多操作系统、多种类型的硬件和设备时下流行的数据库时下流行的数据库1.1.3 数据库、数据库管理系统、数据库、数据库管理系统、 数据库系统数据库系统数据库数据库(DataBase,简称,简称DB) :长期存放在计算机内的、有组织的、可共享的数据集长期存放在计算机内的、有组织的、可共享的数据集合。合。n特点特点q数据库中的数据按一定的数据模型组织、描述和存储数据库中的数据按一定的数据模型组织、描述和存储q较小的冗余度较小的冗余度q较高的数据独立性和易扩充性较高的数据独立性和易扩充性q为各
12、种用户共享为各种用户共享 数据库管理系统数据库管理系统n概念概念q数据库中的数据按一定的数据模型组织、描述和存储数据库中的数据按一定的数据模型组织、描述和存储数据库管理系统数据库管理系统(DataBase Management System,简称,简称DBMS)q位于用户与操作系统之间的数据管理软件,是帮助用户创建、维护和位于用户与操作系统之间的数据管理软件,是帮助用户创建、维护和使用数据库的软件系统。使用数据库的软件系统。n功能:功能:q数据定义数据定义数据定义语言数据定义语言(Data DefinitionLanguage,DDL)q数据操纵数据操纵数据操纵语言数据操纵语言(Data Ma
13、nipulation Language,DML)q数据库的运行与管理数据库的运行与管理 数据库系统数据库系统n概念概念q数据库系统数据库系统(DataBase System,简称,简称DBS):计算机系统中引入数据库技术后的系统。计算机系统中引入数据库技术后的系统。n组成:组成:q数据库数据库q数据库管理系统(开发工具)数据库管理系统(开发工具)q应用系统应用系统q数据库管理员数据库管理员 (DataBase Administrator,DBA)q用户用户 数据库系统构成数据库系统构成数据库数据库操作系统操作系统数据库管理员数据库管理员数据库管理系统数据库管理系统应用开发工具应用开发工具应用系
14、统应用系统用户用户用户用户用户用户 数据库在计算机系统中的地位数据库在计算机系统中的地位 1.1.4 数据模型数据模型n概念概念q模型是现实世界特征的模拟和抽象。模型是现实世界特征的模拟和抽象。 q数据模型数据模型(Data Model) 是现实世界数据特征的抽象,是对现是现实世界数据特征的抽象,是对现实世界的模拟。实世界的模拟。n数据模型应满足三方面的要求数据模型应满足三方面的要求:q能比较真实地模拟现实世界能比较真实地模拟现实世界q容易为人所理解容易为人所理解q便于在计算机世界实现便于在计算机世界实现数据模型可以分为两类:数据模型可以分为两类:概念模型概念模型按用户的观点来对数据和信息进行
15、抽按用户的观点来对数据和信息进行抽象象结构数据模型结构数据模型按计算机系统的观点对数据建模按计算机系统的观点对数据建模 信息世界的基本概念信息世界的基本概念(1)实体()实体(Entity):客观存在并且可以相互区别的事物客观存在并且可以相互区别的事物现实世界中客观存在的、可以被描述事物都是现实世界中客观存在的、可以被描述事物都是“实体实体” 信息世界的基本概念信息世界的基本概念(2)属性()属性(Attribute):):实体所具有的某一特性称为实体的属性实体所具有的某一特性称为实体的属性(3)关键字()关键字(Key):唯一标识实体的属性集称为关键字。唯一标识实体的属性集称为关键字。码码(
16、4)域()域(Domain):属性的取值范围称为该属性的域属性的取值范围称为该属性的域 信息世界的基本概念信息世界的基本概念(5)实体型()实体型(Entity Type):具有相同属性的实体称为同型实体,用实体名及其属具有相同属性的实体称为同型实体,用实体名及其属性名的集合来抽象和刻画同类实体,称为实体型。性名的集合来抽象和刻画同类实体,称为实体型。职工(职工编号,姓名,性别,职称,学历,工作时间)职工(职工编号,姓名,性别,职称,学历,工作时间)(6)实体集()实体集(Entity Set):同型实体的集合称为实体集同型实体的集合称为实体集 信息世界的基本概念信息世界的基本概念(7)联系(
17、)联系(Relationship): 实体型内部各属性之间的联系以及实体型之间的联实体型内部各属性之间的联系以及实体型之间的联系系. 一对一联系(一对一联系(1 : 1) 一对多联系(一对多联系(1 : m) 多对多联系(多对多联系(m : n) 概念模型的表示方法概念模型的表示方法实体实体-联系方法(联系方法(Entity-Relationship):该方法用该方法用E-R图来描述现实世界的概念模型图来描述现实世界的概念模型p 实体型:实体型:用矩形表示,矩形框内写实体名用矩形表示,矩形框内写实体名p 属性:属性:用椭圆形表示,框内写属性名,用无向边将属性用椭圆形表示,框内写属性名,用无向边
18、将属性与实体连起来与实体连起来p 联系:联系:用菱形表示,框内写联系名,用无向边与有关实用菱形表示,框内写联系名,用无向边与有关实体连接起来,同时在无向边上注明联系类型。联系的属性体连接起来,同时在无向边上注明联系类型。联系的属性也要用无向边与联系连接起来。也要用无向边与联系连接起来。 E-R图举例:图举例:学生选课管理学生选课管理E-R图图性别性别教材编号教材编号主编主编教材教材课程课程学生学生选用选用选课选课教材名教材名出版社出版社单价单价课程号课程号课程名课程名学时数学时数学分学分课程性质课程性质课程成绩课程成绩学号学号姓名姓名出生年月出生年月入学时间入学时间班级班级11mn 常见的数据
19、模型常见的数据模型 层次模型(层次模型(Hierarchical Model) 网状模型(网状模型(Network Model) 关系模型(关系模型(Relational Model) 面向对象模型(面向对象模型(Object Oriented Model)关系模型的优点:关系模型的优点: 建立在严格的建立在严格的数学概念数学概念基础上基础上 概念概念单一单一 存取路径对用户透明存取路径对用户透明1层次模型层次模型 层次模型(层次模型(Hierarchical ModelHierarchical Model)是一种以记录)是一种以记录某一事物的类型为根节点的有向树。某一事物的类型为根节点的有向
20、树。优点:优点: 不同层次之间的关联性直接而且简单。不同层次之间的关联性直接而且简单。缺点:缺点: 由于数据纵向发展,横向关系难以建立,数据可能会重由于数据纵向发展,横向关系难以建立,数据可能会重复出现,造成管理维护的不便。复出现,造成管理维护的不便。网状模型是层次模型的扩展,表示多个从属关系的层网状模型是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系的网状结构。次结构,呈现一种交叉关系的网状结构。2网状模型网状模型 特点:特点:可以有多个根记录,一个子记录可以有多个父记录。可以有多个根记录,一个子记录可以有多个父记录。可以表示横向复杂的联系。可以表示横向复杂的联系。n优点:优点
21、: 很容易反映实体之间的关联,同时还避免了数据的重很容易反映实体之间的关联,同时还避免了数据的重复性;复性;n缺点:缺点: 关联错综复杂,当数据库逐渐增多时,将很难对结构关联错综复杂,当数据库逐渐增多时,将很难对结构中的关联性进行维护,尤其是数据库越来越大时。中的关联性进行维护,尤其是数据库越来越大时。3关系模型关系模型 目前关系模型是目前关系模型是最重要最重要的一种数据模型。关系数据系统采的一种数据模型。关系数据系统采用关系模型为数据的组织方式,用关系模型为数据的组织方式,SQLServer 2005数据库就是数据库就是基于关系模型建立的。基于关系模型建立的。关系模型具有如下优点:关系模型具
22、有如下优点: 关系模型建立在严格的数学概念基础上。关系模型的概念关系模型建立在严格的数学概念基础上。关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,对数据的单一,无论实体还是实体之间的联系都用关系表示,对数据的检索结果也是关系。检索结果也是关系。关系模型的存取路径对用户透明。关系模型的存取路径对用户透明。 1.1.5 数据库系统的体系结构数据库系统的体系结构数据库的三级模式两级映像结构数据库的三级模式两级映像结构p 模式(模式(Schema): 也称也称逻辑模式逻辑模式,是数据库中全体数据的逻辑结构,是数据库中全体数据的逻辑结构 和特征的描述和特征的描述p 外模式(外模式(Exte
23、rnal Schema):): 又称又称子模式子模式或或用户模式用户模式, 是模式的子集,是数据是模式的子集,是数据的局部逻辑结构,也是数据库用户看到的数据视图的局部逻辑结构,也是数据库用户看到的数据视图p 内模式(内模式(Internal Schema): 也称也称存储模式存储模式,是数据在数据库中的内部表示,是数据在数据库中的内部表示,即数据的物理结构和存储方式描述即数据的物理结构和存储方式描述 数据库的三级模式两级映像结构数据库的三级模式两级映像结构数据库数据库内模式内模式模式模式外模式外模式A外模式外模式B应用应用1应用应用2应用应用3应用应用4应用应用5由数据库管理员建立和维护由数据
24、库管理员建立和维护模式模式/内模式映像内模式映像外模式外模式/模式映像模式映像外模式外模式/模式映像模式映像数据库数据库管理系统管理系统操作操作系统系统数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性n两级映像:两级映像:q外模式外模式/模式映像模式映像n存在外模式与模式之间的某种对应关系存在外模式与模式之间的某种对应关系q模式模式/内模式映像内模式映像n全局逻辑结构与存储结构之间的对应关系全局逻辑结构与存储结构之间的对应关系n数据的物理独立性和逻辑独立性数据的物理独立性和逻辑独立性1.2 关系数据库关系数据库1.2.1 关系模型关系模型1970年由美国年由美国IBM公司公司S
25、an Jose研究室的研究员研究室的研究员E.F. Codd首次提出了数据库系统的关系模型首次提出了数据库系统的关系模型1981年年ACM图灵奖图灵奖组成:组成:数据结构数据结构、关系操作关系操作、关系的完整性关系的完整性 关系模型的基本术语关系模型的基本术语(1)关系模型()关系模型(Relational Model): 用二维表格结构来表示实体及实体间联系的模型用二维表格结构来表示实体及实体间联系的模型(2)属性()属性(Attribute)和值域()和值域(Domain):在二维表中的列称为属性,列值称为属性值,属性值的在二维表中的列称为属性,列值称为属性值,属性值的取值范围称为值域取值
26、范围称为值域(3)关系模式()关系模式(Relational Schema):在二维表格中行的定义(记录的型)在二维表格中行的定义(记录的型) 关系模型的基本术语关系模型的基本术语(4)元组()元组(Tuple)与关系:)与关系:二维表格中的行称为元组,元组的集合称为关系二维表格中的行称为元组,元组的集合称为关系(5)关键字()关键字(Key)或码:)或码:能够用来能够用来唯一标识唯一标识元组的属性(或属性组合)称为关键元组的属性(或属性组合)称为关键字或码。字或码。(6)候选关键字或候选码()候选关键字或候选码(Candidate Key):):如果在一个关系中,存在着如果在一个关系中,存在
27、着多个多个属性(或属性组合)都属性(或属性组合)都能用来唯一标识该关系的元组,这些属性或属性的组合都称为能用来唯一标识该关系的元组,这些属性或属性的组合都称为该关系的候选关键字或候选码。该关系的候选关键字或候选码。主关键字或主码(主关键字或主码(Primary Key) 关系模型的基本术语关系模型的基本术语(7)主关键字或主码()主关键字或主码(Primary Key)主属性()主属性(Prime Attribute): 包含在包含在任何任何一个候选码中的属性一个候选码中的属性(8)非主属性或非关键字属性()非主属性或非关键字属性(Non Prime Attribute): 关系中不能组成关键
28、字的属性关系中不能组成关键字的属性 关系模型的基本术语关系模型的基本术语(9)外部关键字或外键()外部关键字或外键(Foreign Key): 当关系中的某个属性或属性组合虽不是该关系的关键字当关系中的某个属性或属性组合虽不是该关系的关键字或只是关键字的一部分,但却是另一个关系的关键字时,称或只是关键字的一部分,但却是另一个关系的关键字时,称该属性或属性组合为这个关系的外部关键字或外键。该属性或属性组合为这个关系的外部关键字或外键。两个关系:两个关系:选课(选课(学号,课程号学号,课程号,成绩),成绩)学生(学生(学号学号,姓名,性别,出生日期),姓名,性别,出生日期) 关系模型的基本术语关系
29、模型的基本术语(10)从表与主表)从表与主表:以某属性为主键的表称为主表,以以某属性为主键的表称为主表,以此此属性为外键的表属性为外键的表称为从表。称为从表。两个表:两个表:学生(学生(学号学号,姓名,性别,出生日期),姓名,性别,出生日期)选课(选课(学号学号,课程号,课程号,成绩),成绩) 关系模型的数据结构关系模型的数据结构-二维表格二维表格学生表学生表学号学号姓名姓名性别性别出生日期出生日期系部系部代码代码入学时间入学时间010101001001张斌张斌男男1970-5-4012001-9-18010102002001周红瑜周红瑜女女1972-7-8012001-9-180102010
30、01001贾凌云贾凌云男男1974-9-1022002-9-18关系关系属性(列)属性(列)关系名关系名关系模式关系模式主码主码编号姓名奖惩类型奖惩情况备注1曹操奖励三好学生德智体全面发展2司马懿奖励三好学生班级管理出色班级管理出色11司马懿2德智体全面发展11曹操1备注奖惩情况奖惩类型姓名编号处分2奖励1奖惩类型奖惩类型编码优秀学生干部2三好学生1班级奖励情况编码存在冗余存在冗余为减少数据查找的麻烦,允许数据有一定的冗余为减少数据查找的麻烦,允许数据有一定的冗余数据完整性数据完整性序号序号姓名姓名家庭住址家庭住址班级班级12张三张三12 北京新村北京新村高一(二)高一(二)13李四李四123
31、, 华龙小区华龙小区.高一(三)高一(三)15王五王五32, 前进大厦前进大厦高三(四)高三(四)12钱六钱六42, 和平花苑和平花苑高二(五)高二(五)13赵七赵七12, 新风小区新风小区高二(六)高二(六)15王五王五33, 金光大道金光大道高一(四)高一(四)不同的地址不同的地址! !存在不正确、不准确的数据,数据库存在不正确、不准确的数据,数据库“失去了完整性失去了完整性”姓名姓名数据完整性数据完整性 关系模型的数据完整性关系模型的数据完整性数据完整性指关系模型中数据的数据完整性指关系模型中数据的正确性正确性和和一致性一致性 实体完整性(实体完整性(Entity Integrity)要
32、求关系中的元组在组成主键的属性列上的值不能为空要求关系中的元组在组成主键的属性列上的值不能为空 参照完整性(参照完整性(Reference Integrity)要求不能在从表中引用主表中不存在的元组要求不能在从表中引用主表中不存在的元组 用户自定义完整性(用户自定义完整性(User-defined Integrity) 根据应用领域的需要,由用户定义的约束条件,体现了根据应用领域的需要,由用户定义的约束条件,体现了具体应用领域的语义约束具体应用领域的语义约束 关系操作关系操作关系操作的基础是关系操作的基础是关系代数关系代数关系代数是一种抽象的查询语言,与具体的关系代数是一种抽象的查询语言,与具
33、体的DBMS中实现语中实现语言并不完全一致言并不完全一致关系操作的特点关系操作的特点-集合操作集合操作操作的操作的对象对象和和结果结果都是都是集合集合,称为一次一个集合的方,称为一次一个集合的方式(式(set-at-a-time)非关系数据模型:非关系数据模型:一次一记录(一次一记录(record-at-a-time) 关系操作关系操作n查询操作(查询操作(query)q选择(选择(Select)q投影(投影(Project)q连接(连接(Join)q除(除(Divide)q并(并(Union)q交(交(Intersection)q差(差(Difference)n更新操作(更新操作(updat
34、e)q增加(增加(Insert)q删除(删除(Delete)q修改(修改(Update)SQL(Structured Query Language)SQL 是关系数据库的标准语言,它提供了是关系数据库的标准语言,它提供了数据定义数据定义、数据查询数据查询和和访问控制访问控制功能:功能:数据定义:数据定义:定义定义基本表基本表:CREATE TABLE, DROP TABLE, ALTER TABLE定义定义视图视图:CREATE VIEW,DROP VIEW定义定义索引索引:CREATE INDEX, DROP INDEXSQL(Structured Query Language)数据数据查询
35、查询功能:功能:SELECT数据数据更新更新功能:功能:INSERT, DELETE, UPDATE 访问控制访问控制功能:功能:GRANT, REVOKE嵌入式嵌入式使用方式:使用方式: 1.2.2 关系数据理论关系数据理论1971年由年由E.F. Codd提出了规范化理论提出了规范化理论关系数据理论就是指导产生一个具体确定的、好的数关系数据理论就是指导产生一个具体确定的、好的数据库模式的理论体系据库模式的理论体系针对一个具体的数据库应用问题,应该构造几个关系针对一个具体的数据库应用问题,应该构造几个关系模式?模式?每个关系由哪些属性组成?即如何构造适合于它的数每个关系由哪些属性组成?即如何
36、构造适合于它的数据模式?据模式?数据库逻辑设计问题数据库逻辑设计问题 问题的提出问题的提出:学生关系:学生关系:学生(学生(学号学号,姓名,性别,出生日期,入学时间,系部代码),姓名,性别,出生日期,入学时间,系部代码)课程关系:课程关系:课程(课程(课程号课程号,课程名,学时数,学分),课程名,学时数,学分)选课关系:选课关系:选课(选课(学号,课程号学号,课程号,成绩),成绩)只有一个关系模式:只有一个关系模式:学生学生选课选课 课程课程(学号学号,姓名,性别,出生日期,入学时,姓名,性别,出生日期,入学时间,系部代码,间,系部代码,课程号课程号,课程名,学时数,学分,成绩),课程名,学时
37、数,学分,成绩)有三个关系模式:有三个关系模式:学生学生(学号学号,姓名,性别,出生日期,入学时间,系部代码),姓名,性别,出生日期,入学时间,系部代码) 课程课程(课程号课程号,课程名,学时数,学分),课程名,学时数,学分)选课选课(学号,课程号学号,课程号,成绩),成绩) 第一种设计可能存在的问题第一种设计可能存在的问题:数据冗余数据冗余,修改异常修改异常,插入异常插入异常,删除异常删除异常学号学号姓名姓名性性别别.课程号课程号课程名课程名学时数学时数学分学分成绩成绩2004001张斌张斌男男0001数学数学804892004002周红瑜周红瑜女女0001数学数学804912004003贾
38、凌云贾凌云男男0001数学数学804762004001张斌张斌男男0002外语外语 753902004002周红瑜周红瑜女女0002外语外语 753782004003贾凌云贾凌云男男0002外语外语 753702004001张斌张斌男男0003数据库数据库602772004002周红瑜周红瑜女女0003数据库数据库602842004003贾凌云贾凌云男男0003数据库数据库60279 关系模式的规范化关系模式的规范化(1)第一范式)第一范式 如果关系模式如果关系模式 R 的每一个属性都是不可再分的,的每一个属性都是不可再分的,则称则称R为第一范式,记为:为第一范式,记为:NF1R学号学号姓名姓
39、名性别性别出生日期出生日期家庭成员家庭成员父亲父亲母亲母亲母亲母亲父亲父亲出生日期出生日期性别性别姓名姓名学号学号 第二范式第二范式 (2)第二范式)第二范式 如果关系模式如果关系模式 R 是第一范式,且每个是第一范式,且每个非主属性都完非主属性都完全函数依赖于关键字全函数依赖于关键字,则称,则称 R 为满足第二范式的模式为满足第二范式的模式 记为:记为:NF2R选课(选课(学号,课程号学号,课程号,系部代码,出生日期,成绩),系部代码,出生日期,成绩)成绩成绩学号学号课程号课程号系名系名出生日期出生日期成绩成绩学号学号课程号课程号学号学号系名系名出生日期出生日期第三范式第三范式 (3)第三范
40、式)第三范式 如果关系模式如果关系模式 R 是第二范式,且是第二范式,且没有一个非关键没有一个非关键字属性是传递函数依赖于字属性是传递函数依赖于候选关键字属性,则称候选关键字属性,则称 R 为满为满足第三范式的模式。记为:足第三范式的模式。记为:NF3R学号学号系名系名系宿舍楼系宿舍楼学生(学生(学号学号,姓名,性别,出生日期,入学时间,姓名,性别,出生日期,入学时间,系名,系宿舍楼)系名,系宿舍楼)学号学号系名系名系名系名系宿舍楼系宿舍楼 关系规范化小节关系规范化小节 2 NF3 NFBCNF4 NF1 NF消除决定因消除决定因素非关键字素非关键字的非平凡函的非平凡函数依赖数依赖消除非主属性
41、对关键字的部分函数依赖消除非主属性对关键字的部分函数依赖消除非主属性对关键字的传递函数依赖消除非主属性对关键字的传递函数依赖消除主属性对关键字的部分和传递函数依赖消除主属性对关键字的部分和传递函数依赖消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖需求分析需求分析概念设计概念设计逻辑设计逻辑设计物理设计物理设计应用开发应用开发系统维护系统维护系统综述系统综述设计基础设计基础数据数据模型模型概念概念模型模型关系模关系模型型系统安全系统安全数据维护数据维护概念模型概念模型转换关系转换关系模型模型关系规范关系规范化化创建数创建数据库据库创建基创建基本表本表创建索创建索引引数据查数据查
42、询询创建视创建视图图程序设程序设计计SQL Server2008平台平台T-SQL语语言查询编言查询编辑器辑器学习内容在数据库系统开发中的位置图学习内容在数据库系统开发中的位置图 1.3 数据库设计数据库设计1.3.1 数据库设计的任务、特点和步骤数据库设计的任务、特点和步骤(1)数据库设计的任务)数据库设计的任务 针对一个给定的应用环境,构造针对一个给定的应用环境,构造最优的数据库模式最优的数据库模式,建立数据库及其应用系统,使之能有效地收集、存储、操建立数据库及其应用系统,使之能有效地收集、存储、操作和管理数据,满足用户的各种需求作和管理数据,满足用户的各种需求(2)数据库设计的特点)数据
43、库设计的特点 数据库设计既是一项涉及多学科的综合性技术,数据库设计既是一项涉及多学科的综合性技术,又是一项庞大的工程项目。又是一项庞大的工程项目。 数据库建设是硬件、软件和技术与管理的界面的数据库建设是硬件、软件和技术与管理的界面的结合;整个设计过程要把结构(数据)设计和行为(处结合;整个设计过程要把结构(数据)设计和行为(处理)设计密切结合起来。理)设计密切结合起来。(3)数据库设计的步骤)数据库设计的步骤n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计n数据库实施数据库实施n数据库运行和维护数据库运行和维护 数据库设计的基本步骤数据库设计的基
44、本步骤概念设计概念设计逻辑设计逻辑设计物理设计物理设计系统实施系统实施试运行试运行运行和维护运行和维护需求收集和分析需求收集和分析应用需求应用需求(数据、处理)(数据、处理)转换规则转换规则DBMS功能功能优化方法优化方法DBMS的的详细功能书详细功能书(数据、处理)(数据、处理)不满意不满意不满意不满意需求分析需求分析概念设计概念设计逻辑设计逻辑设计物理设计物理设计实施实施运行和维护运行和维护 1.3.2 需求分析的任务需求分析的任务基本任务:准确地回答基本任务:准确地回答”系统必须做什么系统必须做什么”分析人员分析人员 用户用户简单地说:分析用户的要求简单地说:分析用户的要求确定用户的最终
45、需求是一件很困难的事确定用户的最终需求是一件很困难的事 可行性研究可行性研究 需求分析需求分析本阶段结束后得出的文档应该包括:本阶段结束后得出的文档应该包括:详细的数据流图,数据字典,简明的算法描述详细的数据流图,数据字典,简明的算法描述可行性研究阶段产生的文档,特别是可行性研究阶段产生的文档,特别是数据流图数据流图,是需,是需求分析的出发点。数据流图中已经划分出系统必须完求分析的出发点。数据流图中已经划分出系统必须完成的许多基本功能成的许多基本功能需求分析的结果是系统开发的基础,关系到工程的成需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量败和软件产品的质量 需求分析各阶段的
46、具体任务需求分析各阶段的具体任务(2)分析系统的数据要求)分析系统的数据要求任何一个软件系统都是一个信息处理系统,系统必须处任何一个软件系统都是一个信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系理的信息和系统应该产生的信息在很大程度上决定了系统的面貌统的面貌(1)确定对系统的综合要求)确定对系统的综合要求系统功能、系统性能、运行要求、将来可能提出的要求系统功能、系统性能、运行要求、将来可能提出的要求 需求分析各阶段的具体任务需求分析各阶段的具体任务(3)导出系统的逻辑模型)导出系统的逻辑模型 综合上述两项的分析结果可导出系统详细的逻辑模综合上述两项的分析结果可导出系统
47、详细的逻辑模型。型。 通常用数据流图,数据字典和主要的处理算法描通常用数据流图,数据字典和主要的处理算法描述这个模型。述这个模型。 需求分析各阶段的具体任务需求分析各阶段的具体任务(4)修正系统的开发计划)修正系统的开发计划 根据在分析过程中获得的对系统的更深入,更具体根据在分析过程中获得的对系统的更深入,更具体的了解,可以比较准确地估算出系统开发的进度和成本,的了解,可以比较准确地估算出系统开发的进度和成本,修正以前的开发计划。修正以前的开发计划。(5)开发原型系统)开发原型系统 需求分析的方法需求分析的方法进行需求分析首先要调查清楚用户的实际要求,与用户进行需求分析首先要调查清楚用户的实际
48、要求,与用户达成共识,然后分析与表达这些要求调查用户需求的基达成共识,然后分析与表达这些要求调查用户需求的基本步骤:本步骤:(1)调查组织机构情况)调查组织机构情况(2)熟悉业务活动)熟悉业务活动(3)明确用户要求)明确用户要求(4)确定系统边界)确定系统边界 需求分析中不同的调查方法需求分析中不同的调查方法(1)跟班作业)跟班作业(2)开调查会)开调查会(3)请专人介绍)请专人介绍(4)询问)询问(5)设计调查表格来让用户填写)设计调查表格来让用户填写(6)查阅记录)查阅记录 1.3.3 概念结构设计概念结构设计将需求分析阶段将需求分析阶段简单地说:分析用户的要求简单地说:分析用户的要求1.
49、3.5 1.3.5 数据库设计案例数据库设计案例以高校学分制选课管理信息系统的数据库设计为例,重点介绍数据库以高校学分制选课管理信息系统的数据库设计为例,重点介绍数据库设计中的概念设计与逻辑设计部分。为了便于读者理解,对选课管理设计中的概念设计与逻辑设计部分。为了便于读者理解,对选课管理信息系统做了一些简化处理。信息系统做了一些简化处理。高校学分制选课管理信息系统要求:高校学分制选课管理信息系统要求: 学生根据开课目录填写选课单进行选课;学生根据开课目录填写选课单进行选课;系统根据教学计划检查应修的必修课及其他课程并自动选系统根据教学计划检查应修的必修课及其他课程并自动选择;择;检查是否存在未
50、取得学分的必修课,如果存在,则提示重检查是否存在未取得学分的必修课,如果存在,则提示重选;选;学生按学分制选课规则选修课程;学生按学分制选课规则选修课程;查询学生的各门课程的成绩、学分及绩点。查询学生的各门课程的成绩、学分及绩点。1 1选课管理信息系统数据流图选课管理信息系统数据流图选课管理信息系统数据流图如图选课管理信息系统数据流图如图1-11和图和图1-12所示。所示。学生学生学生学生学生选课系统学生选课系统选课单选课单成绩单成绩单图图1 选课管理信息系统的顶层数据流图选课管理信息系统的顶层数据流图学生学生学生学生学生选课学生选课课程注册课程注册打打 印印课程初选表课程初选表课程注册表课程