软件开发技术应用基础_第1页
软件开发技术应用基础_第2页
软件开发技术应用基础_第3页
软件开发技术应用基础_第4页
软件开发技术应用基础_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

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

文档简介

1、软件开发技术应用基础软件开发技术基础软件开发技术基础计算机教学实验中心软件开发技术应用基础第第4 4章章 数据库及应用程序开发数据库及应用程序开发讲课讲课8 8学时学时 实验实验4 4学时学时软件开发技术应用基础案例1:雅虎网站 软件开发技术应用基础雅虎网站 267,000,000条条122,000,000条条93,500,000条条软件开发技术应用基础案例2:火车订票系统 全国各个地区火车车次信息,可以想象全国各个地区火车车次信息,可以想象数据量很大。假如西安火车站每天始发车次数据量很大。假如西安火车站每天始发车次200200列,每列火车列,每列火车1515120120,信息记录,信息记录3

2、600036000条。又假如全国有条。又假如全国有100100个像西安的城市,则个像西安的城市,则系统每天要处理的数据量达到系统每天要处理的数据量达到300300万条。万条。软件开发技术应用基础案例3:大学教学管理系统 某大学的全校性选修课门数有某大学的全校性选修课门数有180180多门,选多门,选修学生人次达到修学生人次达到1.51.5万万/ /每学期。假定每位学生每学期。假定每位学生最多允许选最多允许选3 3门,每门课最多允许门,每门课最多允许300300人选,全人选,全校现有学生校现有学生3 3万多,每位学生都有自己专业的若万多,每位学生都有自己专业的若干必修课。干必修课。软件开发技术应

3、用基础需要专门的管理平台去解决上面问题!需要专门的管理平台去解决上面问题!计算机怎样去组织、存储和管理这样海量的数据信息计算机怎样去组织、存储和管理这样海量的数据信息?数据库概念回顾 数据数据?数据处理?数据处理? ?数据库数据库? ?数据库管理系统数据库管理系统? ?数据库系统数据库系统? ?指描述客观事物的信息符号的总称,这些信息符号能输入到计算机中存储起来,又能被处理指描述客观事物的信息符号的总称,这些信息符号能输入到计算机中存储起来,又能被处理指指对数据进行收集、整理、组织、存储、加工(增删改)、传输、检索的各个过程总称对数据进行收集、整理、组织、存储、加工(增删改)、传输、检索的各个

4、过程总称指指对数据库进行管理(定义、增、删、改、查询等)的软件系统对数据库进行管理(定义、增、删、改、查询等)的软件系统DBMS指长期存储在计算机内的有组织的可共享的数据集合指长期存储在计算机内的有组织的可共享的数据集合由硬件、操作系统、数据库、数据库管理系统、应用程序、数据库管理员等部分组成由硬件、操作系统、数据库、数据库管理系统、应用程序、数据库管理员等部分组成软件开发技术应用基础数据库概念回顾 实体?属性?关键字(码)?关系?实体三种联系实体?属性?关键字(码)?关系?实体三种联系?客观世界存在的任何事物称为实体客观世界存在的任何事物称为实体指指一个实体的所有特征称为属性一个实体的所有特

5、征称为属性笛卡尔积笛卡尔积D D1 1D D2 2D Dn n的子集称为在的子集称为在N N个域个域D D1 1, D, D2 2, , D, Dn n上的一个关系,俗称二维表格为关系上的一个关系,俗称二维表格为关系指唯一能够标识实体的一个或一组属性称为关键字或码指唯一能够标识实体的一个或一组属性称为关键字或码一对一、一对多、多对多。分别举例?一对一、一对多、多对多。分别举例?软件开发技术应用基础数据库概念回顾 描述实体间联系的工具描述实体间联系的工具?三种数据模型?三种数据模型?实体实体联系联系属性属性层次模型、网状模型、关系模型。分别举例?层次模型、网状模型、关系模型。分别举例?软件开发技

6、术应用基础n现实世界:事物的客观存在,由事物及其性质反映现实世界:事物的客观存在,由事物及其性质反映n信息世界:是对现实世界的抽象,事物在信息世界信息世界:是对现实世界的抽象,事物在信息世界中称为实体。实体是由属性来描述的。反映事物及中称为实体。实体是由属性来描述的。反映事物及其之间联系的模型称为(实体)概念模型。其之间联系的模型称为(实体)概念模型。n数据世界:信息的数据化。用记录和数据项分别描数据世界:信息的数据化。用记录和数据项分别描述信息世界中的实体及属性。实体模型数据化后数述信息世界中的实体及属性。实体模型数据化后数据模型据模型数据库概念回顾 软件开发技术应用基础软件开发技术应用基础

7、现实世界中万物之间必然存在多种联系现实世界中万物之间必然存在多种联系或者是实体内部的联系,或者是实体之间的联系或者是实体内部的联系,或者是实体之间的联系实体之间各种各样的联系归纳起来有三种方式:实体之间各种各样的联系归纳起来有三种方式: 一对一一对一(1:1)(1:1) 一对多一对多(1:(1:n)n) 多对多多对多( (m:n)m:n)注意指不同类实体之间的联系注意指不同类实体之间的联系数据库概念回顾 软件开发技术应用基础 “一对一一对一”联系是最常见、最简单的联系联系是最常见、最简单的联系例如:实体集例如:实体集“本市房屋本市房屋”中的实体中的实体“房屋房屋” 实体集实体集“本市居民家庭本

8、市居民家庭”中的实体中的实体“家庭家庭”一般来说,每个家庭只住一套房屋、一套房屋住一户家庭一般来说,每个家庭只住一套房屋、一套房屋住一户家庭但要注意的是但要注意的是“一对一一对一”联系不一定是联系不一定是“一一对应一一对应”联系,前者联系,前者不排除如新造的房屋尚没分配或刚组建的家庭还未分配到房子等情不排除如新造的房屋尚没分配或刚组建的家庭还未分配到房子等情况况“一对一”联系软件开发技术应用基础“一对多一对多”联系也是最常见的。联系也是最常见的。例如实体学校和实体学生之间的联系。一个学校有许多学生,例如实体学校和实体学生之间的联系。一个学校有许多学生,但一个学生只就读于一所学校。但一个学生只就

9、读于一所学校。实体E11实体E12实体E13实体E14实体E15实体E21实体E22实体E23实体E24实体E25实体E26实体E27实体E28实体E29“一对多”联系软件开发技术应用基础“多对多多对多”联系是一种较为复杂的联系。联系是一种较为复杂的联系。实体集实体集E1E1中的实体可以和实体集中的实体可以和实体集E2E2中的任意多个实体间有联系,中的任意多个实体间有联系,反之亦然。反之亦然。例如在学校中教师和学生之间的联系:一个教师给多个学生上课例如在学校中教师和学生之间的联系:一个教师给多个学生上课,而一个学生可以同时选修几个教师的课。,而一个学生可以同时选修几个教师的课。“多对多”联系软

10、件开发技术应用基础用用E-RE-R图(图(ENTITY-RELATIONSHIPENTITY-RELATIONSHIP)来来描述实体、属性及实体之间的联系。描述实体、属性及实体之间的联系。实体实体 联系联系 属性属性概念模型的表示方法软件开发技术应用基础学生学生选选修修学学号号姓姓名名性性别别年年龄龄课程课程课课程程号号课课程程名名学学分分成成绩绩mnE-R图举例1软件开发技术应用基础E-R图举例2供应商供应商项目项目企业企业零件零件供应供应项目名项目名负责人负责人工期工期零件号零件号零件名零件名库存量库存量企业名企业名法人名法人名地址地址电话电话产品名产品名资产资产软件开发技术应用基础课程课

11、程教师教师学生学生教学教学E-R图举例3姓名姓名学号学号成绩成绩姓名姓名职称职称学科学科课程实体集与教师实体集课程实体集与教师实体集 多对多联系多对多联系课程实体集与学生实体集课程实体集与学生实体集 多对多联系多对多联系软件开发技术应用基础 在数据库中,由于采用的数据模型不同,相应的在数据库中,由于采用的数据模型不同,相应的DBMSDBMS也就也就完全不同,目前常用的三种数据模型是:层次模型、网状模型、完全不同,目前常用的三种数据模型是:层次模型、网状模型、关系模型。因此目前流行的三种主要类型数据库系统分别是层次关系模型。因此目前流行的三种主要类型数据库系统分别是层次、网状和关系型数据库管理系

12、统。、网状和关系型数据库管理系统。三种数据模型软件开发技术应用基础“一对多一对多”、“一对一一对一”联系可以直接用层次模型来描述,但联系可以直接用层次模型来描述,但“多对多多对多”联系不能直接用层次模型来表示,必须通过一些数学变换把联系不能直接用层次模型来表示,必须通过一些数学变换把“多对多多对多”联系联系拆成几个拆成几个“一对多一对多”联系后再用层次模型表示。虽然层次模型有一定局限性联系后再用层次模型表示。虽然层次模型有一定局限性,但由于其简单、清晰,还是有许多数据库管理系统根据层次模型来设计,但由于其简单、清晰,还是有许多数据库管理系统根据层次模型来设计,这样一来的这样一来的DBMSDBM

13、S称为层次型数据库管理系统。在现实世界中有大量实体间联称为层次型数据库管理系统。在现实世界中有大量实体间联系可以用层次模型来描述。系可以用层次模型来描述。 层次模型软件开发技术应用基础 在网状模型中各实体之间的联系用有向图表示。由于树在网状模型中各实体之间的联系用有向图表示。由于树型结构可以看成是有向图的特例,所以网状模型要比层次模型结构可以看成是有向图的特例,所以网状模型要比层次模型复杂,但它可以直接用于表示型复杂,但它可以直接用于表示“多对多联系多对多联系”。然而由于。然而由于技术上的困难,一些已实现的网状数据库管理系统技术上的困难,一些已实现的网状数据库管理系统( (如如DBTG)DBT

14、G)中仍然只允许处理中仍然只允许处理“一对多一对多”联系。联系。教师教师班级班级学生学生课程课程网状模型软件开发技术应用基础 在手工处理在手工处理( (没有使用计算机以前没有使用计算机以前) )的实际工作中。人们经常使的实际工作中。人们经常使用表格进行业务管理。也就是说把实体之间的联系绘制成表格。用表格进行业务管理。也就是说把实体之间的联系绘制成表格。 例如旅馆管理,除了旅客登记表以外,旅馆本身最重要的资源例如旅馆管理,除了旅客登记表以外,旅馆本身最重要的资源:客房的有关数据也可以制成如下一张表格。:客房的有关数据也可以制成如下一张表格。关系模型软件开发技术应用基础 实体集实体集“旅客旅客”和

15、和“房间房间”之间的联系,即住宿关系也可使之间的联系,即住宿关系也可使用表格来表示。可以看出用表格能够表示用表格来表示。可以看出用表格能够表示“一对一一对一”、“一对多一对多”的实体联系。实际上用表格也可以表示的实体联系。实际上用表格也可以表示“多对多多对多”的实体间联系。的实体间联系。关系模型-表格描述软件开发技术应用基础目前实际使用的数据库系统大多是关系数据库目前实际使用的数据库系统大多是关系数据库, ,下面重点讨论下面重点讨论域(域(DomainDomain):):相同类型数据元素值的集合。相同类型数据元素值的集合。 比如自然数集合、小写字母集合比如自然数集合、小写字母集合笛卡尔积:设有

16、一组域笛卡尔积:设有一组域D D1 1, D, D2 2, , D, Dn n , ,则笛卡尔乘积为则笛卡尔乘积为 D D1 1D D2 2D Dn n =( d=( d1 1, d, d2 2, , d, dn n)| d)| di i D Di i,i=1,2,i=1,2,n,n元组(元组(TupleTuple): :笛卡尔乘积中每一个元素笛卡尔乘积中每一个元素( ( d d1 1, d, d2 2, , d, dn n) )称为称为 一个元组(一个元组(n n元组)元组) 关系数据库系统软件开发技术应用基础 域域 D D1 1= =学生集合学生集合( (Student)=Student)

17、=张宁,李健,王鹏张宁,李健,王鹏, 域域 D D2 2= =计算机语言课程集合计算机语言课程集合( (Language)=C+Language)=C+,OPOP,JAVA,JAVA, 域域 D D3 3= =修课类别修课类别( (Lesson)=Lesson)=必修课,选修课必修课,选修课, 笛卡尔积笛卡尔积 D D1 1 D D2 2 D D3 3 = = ( (张宁,张宁,C+C+,必修课必修课) ), ( (张宁,张宁,C+C+,选修课选修课) ), ( (张宁,张宁,OPOP,必修课必修课) ), ( (张宁,张宁,OPOP,选修课选修课) ), ( (张宁,张宁,JAVAJAVA,

18、必修课必修课) ),( (张宁,张宁,JAVAJAVA,选修课选修课) ), ( (李健,李健,C+C+,必修课必修课) ), ( (李健,李健,C+C+,选修课选修课) ), ( (李健,李健,OPOP,必修课必修课) ), ( (李健,李健,OPOP,选修课选修课) ), ( (李健,李健,JAVAJAVA,必修课必修课) ),( (李健,李健,JAVAJAVA,选修课选修课) ), ( (王鹏,王鹏,C+C+,必修课必修课) ), ( (王鹏,王鹏,C+C+,选修课选修课) ), ( (王鹏,王鹏,OPOP,必修课必修课) ), ( (王鹏,王鹏,OPOP,选修课选修课) ), ( (王

19、鹏,王鹏,JAVAJAVA,必修课必修课) ),( (王鹏,王鹏,JAVAJAVA,选修课选修课) ) 。笛卡尔积实例软件开发技术应用基础软件开发技术应用基础通常用关系来表示实体及其之间的联系。通常用关系来表示实体及其之间的联系。关系可以用二维表来表示。每一行为一个元组,每一列为一个域,每一列也可以称为一个关系可以用二维表来表示。每一行为一个元组,每一列为一个域,每一列也可以称为一个属性,属性具有对应的名称,称为属性名。属性,属性具有对应的名称,称为属性名。比如在比如在D D1 1 D D2 2 D D3 3中只选出与学生张宁有关的内容就构成一个关系中只选出与学生张宁有关的内容就构成一个关系R

20、(DR(D1 1, D, D2 2, D, D3 3) )关系:关系:D D1 1D D2 2D Dn n的子集称为域的子集称为域D D1 1, D, D2 2, , D, Dn n上的一个关上的一个关 系,记作系,记作 R(DR(D1 1, D, D2 2, , D, Dn n) ),或简记为或简记为R R。笛卡尔积子集软件开发技术应用基础关系模式关系模式-指一个关系中的所有属性名。指一个关系中的所有属性名。 记为:关系名(属性名记为:关系名(属性名1 1,属性名,属性名2 2, 属性名属性名N N)例:例: SLL(Student,Language,Lesson)SLL(Student,L

21、anguage,Lesson) shop( shop(店名,地址,法人名,经营者名,电话店名,地址,法人名,经营者名,电话) ) fruit(fruit(水果名,价格,库存量,质量等级水果名,价格,库存量,质量等级) ) book(book(书名,著者名,出版地,出版社,价格,页数,开本,书名,著者名,出版地,出版社,价格,页数,开本, ISBNISBN,分类号,版本分类号,版本) ) student(student(姓名,学号,性别,宿舍,电话姓名,学号,性别,宿舍,电话) ) 电话号码簿(电话号码,姓名)电话号码簿(电话号码,姓名) 注意上述关系模式中,哪些是关键字、哪些是外码?注意上述关

22、系模式中,哪些是关键字、哪些是外码?数据库概念回顾 软件开发技术应用基础数据库概念回顾 数据模型是概念模型(实体模型)的数据化,关系模型是数据模型是概念模型(实体模型)的数据化,关系模型是三种数据模型之一,也是目前最为流行的数据模型三种数据模型之一,也是目前最为流行的数据模型关系模型关系模型= =关系模式(数据结构)关系模式(数据结构)+ +数据操纵数据操纵+ +完整性约束完整性约束关系模式指一个关系中的所有属性名关系模式指一个关系中的所有属性名数据操纵数据操纵= =查询操作查询操作+ +更新操作更新操作 查询操作:选择、投影、连接、并、交、差查询操作:选择、投影、连接、并、交、差 更新操作:

23、增、删、改更新操作:增、删、改完整性约束完整性约束= =实体完整性实体完整性+ +参照完整性参照完整性+ +用户定义完整性用户定义完整性 实体完整性指关系中关键字不为空且唯一,见表实体完整性指关系中关键字不为空且唯一,见表4-14-1 参照完整性指外码的删除,出现数据不完整性,见表参照完整性指外码的删除,出现数据不完整性,见表4-24-2软件开发技术应用基础将图书馆大量图书数据和大量读者数据建立关系模型数据库,将图书馆大量图书数据和大量读者数据建立关系模型数据库,假设我们设计的一个关系模式如下表所示:假设我们设计的一个关系模式如下表所示:图书馆如何建数据库读者读者 单位单位证号证号书名书名价格

24、价格 出版社出版社 日期日期张三张三 电气学院电气学院07320732C#C#29.829.8人民教育人民教育2002-3-132002-3-13张三张三电气学院电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13张三张三电气学院电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13李四李四电信学院电信学院08010801JAVAJAVA31.931.9机械工业机械工业2003-1-52003-1-5李四李四电信学院电信学院08010801红楼梦红楼梦18.518.5人

25、民教育人民教育2003-1-82003-1-8对于这样的关系表,如果具体分析可以发现如下问题:对于这样的关系表,如果具体分析可以发现如下问题: 1 1、数据的冗余度大:重复数据太多,占用较多存储空间、数据的冗余度大:重复数据太多,占用较多存储空间 2 2、插入异常:新购图书,如果无读者借,就无法登记该书的信息、插入异常:新购图书,如果无读者借,就无法登记该书的信息 3 3、删除异常:当读者还某书时,该书的信息也删除掉了;、删除异常:当读者还某书时,该书的信息也删除掉了; 4 4、更新异常:当某读者单位变更时,需修改数据,如果改错,找不到读者、更新异常:当某读者单位变更时,需修改数据,如果改错,

26、找不到读者注意注意: :上表中的关键字是证号和书名两个属性组成上表中的关键字是证号和书名两个属性组成软件开发技术应用基础实际上我们所建立关系的二维表一般具有如下特性:实际上我们所建立关系的二维表一般具有如下特性:1 1、每一列中的属性值是同类型的数据,即来自同一个域;、每一列中的属性值是同类型的数据,即来自同一个域;2 2、不同的列要给予不同的属性名,但可以出自同一个域;、不同的列要给予不同的属性名,但可以出自同一个域;3 3、任意两个元组在各属性值上不能完全相同;、任意两个元组在各属性值上不能完全相同;4 4、每一个属性必须是不可再分的数据项;、每一个属性必须是不可再分的数据项;5 5、行、

27、列次序是无关紧要的。、行、列次序是无关紧要的。 但是一个关系的二维表仅具有这些特性是不够的。需要对关系但是一个关系的二维表仅具有这些特性是不够的。需要对关系再增加一些条件限制,使其避免出现数据冗余、插入异常、删除异再增加一些条件限制,使其避免出现数据冗余、插入异常、删除异常和修改异常等问题。常和修改异常等问题。分析图书馆的数据表软件开发技术应用基础 通常称存在问题的关系为不规范关系,所以要将关系模式规范通常称存在问题的关系为不规范关系,所以要将关系模式规范化。我们要优化关系模式,从而使关系模式越来越合理。在此先搞化。我们要优化关系模式,从而使关系模式越来越合理。在此先搞清楚范式的概念。清楚范式

28、的概念。 范式(范式(Normal FormNormal Form)是满足某种条件的关系模式的集合。是满足某种条件的关系模式的集合。 关系模式根据要求的不同,或者说规范化的程度的不同关系模式根据要求的不同,或者说规范化的程度的不同, ,可以可以进一步划分为一范式、二范式、三范式、进一步划分为一范式、二范式、三范式、Boyce-CoddBoyce-Codd范式、四范式范式、四范式和五范式,分别记为和五范式,分别记为1 1NFNF、2NF2NF、3NF3NF、BCNFBCNF、4NF4NF和和5 5NFNF。 当我们说当我们说“关系关系R R是是3 3NFNF”时,就表示为时,就表示为R3NFR3

29、NF。 各种范式之间存在以下包含关系:各种范式之间存在以下包含关系: 1 1NFNF 2NF2NF 3NF3NF BCNFBCNF 4NF4NF 5NF5NF数据库规范化理论软件开发技术应用基础数据依赖学号学号姓名姓名学院学院院地址院地址课程号课程号课程名课程名成绩成绩970001张丽张丽管理管理管院楼管院楼C001高等数学高等数学90970001张丽张丽管理管理管院楼管院楼C002英语英语87970002王峰涛王峰涛电信电信西一楼西一楼C001高等数学高等数学95970002王峰涛王峰涛电信电信西一楼西一楼C002英语英语95970003李一凡李一凡能动能动动三楼动三楼C004法律法律70学

30、号学号姓名姓名 课程号课程号课程名课程名 (学号,课程号)(学号,课程号)成绩成绩 还有吗?还有吗? 一个学号只对应一个学生,换句话说知道学号就知道姓名,反之不然。因此称姓名一个学号只对应一个学生,换句话说知道学号就知道姓名,反之不然。因此称姓名函数依赖于学号;或者说学号函数决定姓名。记作函数依赖于学号;或者说学号函数决定姓名。记作学号学号姓名姓名 一个关系中属性值之间存在的互相依赖和互相制约的条件一个关系中属性值之间存在的互相依赖和互相制约的条件或因素,或者说一个关系中属性之间存在着相互联系,我们或因素,或者说一个关系中属性之间存在着相互联系,我们称之为数据依赖。属性之间依赖关系类似于数学中

31、的函数。称之为数据依赖。属性之间依赖关系类似于数学中的函数。软件开发技术应用基础函数依赖定义 设在关系设在关系R R中,中,X X和和Y Y为为R R中的两个属性,如果每个中的两个属性,如果每个X X值只值只有一个有一个Y Y值与之对应,则称属性值与之对应,则称属性Y Y函数依赖于属性函数依赖于属性X X;或称属或称属性性X X(函数)决定属性函数)决定属性Y Y,记作记作XYXY。学号学号姓名姓名性别性别年龄年龄系别系别党员否党员否00010001张强张强男男3838计算机科学计算机科学是是00050005 王建设王建设男男4848信息管理信息管理否否00100010 赵红香赵红香女女323

32、2材料科学材料科学否否上表中学号决定其它上表中学号决定其它5 5个属性个属性软件开发技术应用基础函数依赖再定义设有关系模式设有关系模式R R(A A1 1,A A2 2,A A3 3, A AK K),),X X和和Y Y均为均为 A A1 1,A A2 2,A A3 3, A AK K 的子集,的子集,r r 是是R R 的任意具体关系,的任意具体关系,u u 、v v 是是r r 中的任意两个元组。中的任意两个元组。u (X)u (X)、v v(X X)分别表示元组分别表示元组u u 、v v 在在X X上的属性值。上的属性值。u (Y)u (Y)、v v(Y Y)分别表示元组分别表示元组

33、u u 、v v 在在Y Y上的属性值。如果存在上的属性值。如果存在u(X)=v(X)u(X)=v(X),则有则有u(Y)=v(Y)u(Y)=v(Y),那么那么称称X X函数决定函数决定Y Y,或称或称Y Y函数依赖于函数依赖于X X,记为记为X X Y Y。读者读者 单位单位证号证号书名书名价格价格 出版社出版社 借书日期借书日期张三张三 电气学院电气学院07320732C#C#29.829.8人民教育人民教育2002-3-132002-3-13张三张三电气学院电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13张三张三电气学院

34、电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13李四李四电信学院电信学院08010801JAVAJAVA31.931.9机械工业机械工业2003-1-52003-1-5李四李四电信学院电信学院08010801红楼梦红楼梦18.518.5人民教育人民教育2003-1-82003-1-8分析下表中的属性依赖?分析下表中的属性依赖?软件开发技术应用基础学号学号姓名姓名学院学院院地址院地址课程号课程号课程名课程名成绩成绩970001张丽张丽管理管理管院楼管院楼C001高等数学高等数学90970001张丽张丽管理管理管院楼管院楼C002

35、英语英语87970002王峰涛王峰涛电信电信西一楼西一楼C001高等数学高等数学95970002王峰涛王峰涛电信电信西一楼西一楼C002英语英语95970003李一凡李一凡能动能动动三楼动三楼C004法律法律70学号学号姓名姓名 课程号课程号课程名课程名 (学号,课程号)(学号,课程号)成绩成绩 还有吗?还有吗?软件开发技术应用基础(证号,书名)(证号,书名) 日期日期 完全完全OROR部分?部分?(证号,书名)(证号,书名) 单位单位 完全完全OROR部分?部分? 在关系模式在关系模式R R中,如果中,如果X XY Y,并且对于并且对于X X的任何一个真的任何一个真子集子集X X,都有都有X

36、 XY Y不成立,则称不成立,则称Y Y完全函数依赖于完全函数依赖于X X。否否则称则称Y Y部分函数依赖于部分函数依赖于X X。完全函数依赖读者读者 单位单位证号证号书名书名价格价格 出版社出版社 借书日期借书日期张三张三 电气学院电气学院07320732C#C#29.829.8人民教育人民教育2002-3-132002-3-13张三张三电气学院电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13张三张三电气学院电气学院07320732ORACLEORACLE39.839.8电子工业电子工业2002-5-132002-5-13李

37、四李四电信学院电信学院08010801JAVAJAVA31.931.9机械工业机械工业2003-1-52003-1-5李四李四电信学院电信学院08010801红楼梦红楼梦18.518.5人民教育人民教育2003-1-82003-1-8软件开发技术应用基础分析下表传递依赖情况:分析下表传递依赖情况:学号学号学院学院院地址院地址学号学号姓名姓名学院学院院地址院地址课程号课程号课程名课程名成绩成绩970001张丽张丽管理管理管院楼管院楼C001高等数学高等数学90970001张丽张丽管理管理管院楼管院楼C002英语英语87970002王峰涛王峰涛电信电信西一楼西一楼C001高等数学高等数学95970

38、002王峰涛王峰涛电信电信西一楼西一楼C002英语英语95970003李一凡李一凡能动能动动三楼动三楼C004法律法律70在关系模式在关系模式R R中,如果中,如果X XY Y,Y XY X,Y YZ Z,则称则称Z Z对对X X传递传递函数依赖。函数依赖。传递函数依赖软件开发技术应用基础1NF的定义:如果关系模式的定义:如果关系模式R的每个属性值都是基本数据项,的每个属性值都是基本数据项, 即为不可再分的数据项,则称即为不可再分的数据项,则称R为第一范式(为第一范式(1NF)。)。 分析书分析书215页例子,见表页例子,见表7-18不是不是1NF 解决办法:元组重复就拆开。属性可拆开就拆开;

39、使生成的关系解决办法:元组重复就拆开。属性可拆开就拆开;使生成的关系 模式满足模式满足1NF。 2NF的定义:如果关系模式的定义:如果关系模式R为第一范式(即为第一范式(即R 1NF),),并且并且 任意一个非主属性都完全函数依赖于任意一个非主属性都完全函数依赖于R的任一候选码,的任一候选码, 则称则称R为第二范式(为第二范式(2NF)。)。 分析书分析书216页例子,见表页例子,见表7-19不是不是2NF 注意:只要使关系模式满足注意:只要使关系模式满足2NF,就可以避免就可以避免1NF中由于存在中由于存在 非主属性对候选码的部分函数依赖而产生的插入异常和非主属性对候选码的部分函数依赖而产生

40、的插入异常和 删除异常的问题。删除异常的问题。 解决办法:利用投影运算把解决办法:利用投影运算把1NF分解成若干新的关系模式。使其分解成若干新的关系模式。使其 满足满足2NF。软件开发技术应用基础3NF的定义:如果关系模式的定义:如果关系模式R 2NF2NF,且它的任何一个非主属性都且它的任何一个非主属性都 不传递函数依赖于不传递函数依赖于R R的候选码,则称的候选码,则称R R为第三范式为第三范式 (3NF)。)。 分析书分析书217页例子,见表页例子,见表7-21是是2NF,但不满足但不满足3NF。 注意:注意:2NF仍然存在插入异常和删除异常仍然存在插入异常和删除异常 解决办法:利用投影

41、运算把解决办法:利用投影运算把2NF分解成若干新的关系模式,分解成若干新的关系模式, 使其满足使其满足3NF。BCNF的定义:当关系模式的定义:当关系模式R 1NF1NF,且对于且对于R R的每个函数依赖的每个函数依赖 X X Y Y,且且X X不包含不包含Y Y时,都有时,都有X X比含有比含有R R的候选码,的候选码, 则称则称R R为为BC范式(范式(BCNF)。)。 注意:满足注意:满足BCNF的关系模式具有下述特点:的关系模式具有下述特点: 1)所有非主属性对每一个候选码都是完全函数依赖)所有非主属性对每一个候选码都是完全函数依赖 2)所有非主属性对每一个不包含它的码也是完全函数依赖

42、)所有非主属性对每一个不包含它的码也是完全函数依赖 软件开发技术应用基础关系模式关系模式S S(no, department,dean,course, gradeno, department,dean,course, grade),),观察下面观察下面关系表格,是否为关系表格,是否为1 1NFNF?nonodepartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统数据库数据库系统工程系统工程编译原理编译原理757578789090676791039103数学数学李力量李力量高等数学高等数学经济学经济学

43、87879494在关系模式在关系模式R R中,如果所有属性都是基本数据项,则称中,如果所有属性都是基本数据项,则称1 1NFNF。范式范式(Normal FormNormal Form)是满足某种条件的关系模式的集合。是满足某种条件的关系模式的集合。一范式1NF定义软件开发技术应用基础将一个元组拆开为多个元组将一个元组拆开为多个元组 nonodepartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统

44、工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数学李力量李力量高等数学高等数学878791039103数学数学李力量李力量经济学经济学94941 1NFNF存在数据冗余、插入、删除异常现象。存在数据冗余、插入、删除异常现象。 软件开发技术应用基础二范式二范式2 2NFNF定义定义 分析上表(分析上表(no, courseno, course)是关键字是关键字 (no, courseno, course)部分决定部分决定deandean和和departmentdepartment 拆分为拆分为N_C(no,course,grade)N_C(n

45、o,course,grade)和和N_D (no,department, dean)N_D (no,department, dean)如果如果R R是是1 1NFNF,且每个非主属性都完全函数依赖于关且每个非主属性都完全函数依赖于关键字,则键字,则R R是是2 2NFNF。nonodepartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原

46、理编译原理676791039103数学数学李力量李力量高等数学高等数学878791039103数学数学李力量李力量经济学经济学9494软件开发技术应用基础nonocoursecoursegradegrade91019101操作系统操作系统757591019101数据库数据库787891019101系统工程系统工程909091019101编译原理编译原理676791039103高等数学高等数学878791039103经济学经济学9494在在N_CN_C中,(中,(no, courseno, course)是主关键字。(是主关键字。(no, courseno, course)完全决定完全决定gra

47、de grade 设计符合二范式设计符合二范式在在N_DN_D中,中,nono是主关键字,是主关键字,nono完全决定完全决定department department 和和deandeannonodepartmentdepartmentdeandean91019101计算机计算机张强张强91039103数学数学李力量李力量软件开发技术应用基础三范式三范式3 3NFNF定义定义 如果如果R R是是2 2NFNF,并且每个非主属性都不传递函数依赖于关键字,则并且每个非主属性都不传递函数依赖于关键字,则R R是是3 3NFNF根据定义根据定义N_C(no,course,grade)N_C(no,c

48、ourse,grade)是是3 3NFNFnonodepartmentdepartmentdeandean91019101计算机计算机张强张强91039103数学数学李力量李力量nonocoursecoursegradegrade91019101操作系统操作系统757591019101数据库数据库787891019101系统工程系统工程909091019101编译原理编译原理676791039103高等数学高等数学878791039103经济学经济学9494根据定义根据定义N_D(no,department, dean)N_D(no,department, dean)不是不是3 3NFNF软件

49、开发技术应用基础departmentdepartmentdeandean计算机计算机张强张强数学数学李力量李力量nonodepartmentdepartment91019101计算机计算机91039103数学数学N_D1D_D将将N_D(no,department, dean)N_D(no,department, dean)拆分为拆分为N_D_1(no,department)N_D_1(no,department)和和D_D(department, dean)D_D(department, dean)设计符合三范式设计符合三范式软件开发技术应用基础非规范化关系非规范化关系1 1NFNF2 2N

50、FNF3 3NFNFBCNFBCNF4 4NFNF5 5NFNF消去重复元组消去重复元组消除部分函数依赖消除部分函数依赖消除传递函数依赖消除传递函数依赖消除部分和传递函数依赖消除部分和传递函数依赖消除多值依赖消除多值依赖消除连接依赖消除连接依赖软件开发技术应用基础关系数据库标准语言关系数据库标准语言SQL SQL(structured query language)SQL(structured query language)结构化查询语言结构化查询语言结构化查询语言包括三部分:结构化查询语言包括三部分:数据定义语言数据定义语言DDLDDL数据操纵语言数据操纵语言DMLDML数据控制语言数据控制

51、语言DCLDCL软件开发技术应用基础DDLDDL用来定义数据库的结构(即各种各样的表)用来定义数据库的结构(即各种各样的表) 1 1、定义各种表(关系模式)、定义各种表(关系模式) 每个表的列属性名称及类型的定义每个表的列属性名称及类型的定义 2 2、输入数据,修改数据、输入数据,修改数据 3 3、修改表的结构,如增加列、修改表的结构,如增加列 4 4、定义候选码,建立索引、定义候选码,建立索引软件开发技术应用基础DMLDML用来维护数据库中的数据,即对表中数据进行各种处理用来维护数据库中的数据,即对表中数据进行各种处理 1 1、表中数据查询、表中数据查询 selectselect 2 2、在

52、表中插入一行数据(一条记录、一个元组)在表中插入一行数据(一条记录、一个元组)insertinsert 3 3、在表中删除一行数据(一条记录、一个元组)在表中删除一行数据(一条记录、一个元组)deletedelete 4 4、在表中更改一行数据(一条记录、一个元组)在表中更改一行数据(一条记录、一个元组)updateupdate软件开发技术应用基础DCLDCL用来保护数据库的安全操作用来保护数据库的安全操作 1 1、授权给用户、授权给用户 grantgrant 2 2、回收授权回收授权 revokerevoke软件开发技术应用基础SQL视图1基本表2基本表1视图2基本表3基本表4存储文件1存储

53、文件2外模式模式内模式SQL三级模式结构 软件开发技术应用基础建立表定义表的语句格式为:定义表的语句格式为: CREATE TABLE CREATE TABLE ( (1NOT NULLUNIQUENOT NULLUNIQUE , 2NOT NULLUNIQUENOT NULLUNIQUE,) ); CREATE TABLE employee(eid CHAR(6) NOT NULL PRIMARY KEY,name VARCHAR(8) NOT NULL),age NUMERIC(3,0),country VARCHAR(10) NULL)参见例参见例4-14-1、4-24-2软件开发技术应

54、用基础插入记录 INSERT INTO employee(eid, name, age, country) VALUES (3018, zhang, 28, China) INSERT INTO employee VALUES (3056, wang, 35, USA) INSERT INTO employee(eid, name, country) VALUES (4025, li, Russia)插入记录的语句格式为:插入记录的语句格式为: INSERT INTO INSERT INTO 表名表名 ( 列名表列名表 ) VALUES VALUES (值表)值表)参见例参见例4-294-29

55、软件开发技术应用基础修改记录UPDATE employee SET name=Li MingWHERE eid=4025UPDATE employee SET name=Zhang Li,age=36,country=USAWHERE eid=3056可以修改多个字段的值。如果不带WHERE修改所有的记录修改记录的语句格式为:修改记录的语句格式为: UPDATE UPDATE SET SET =1, =2 WHERE WHERE 参见例参见例4-334-33、4-344-34软件开发技术应用基础删除记录DELETE employee WHERE eid=3018删除记录的语句格式为:删除记录的

56、语句格式为: DELETE FROM DELETE FROM WHERE WHERE ; 参见例参见例4-314-31、4-324-32软件开发技术应用基础查询记录查询记录的语句格式为:查询记录的语句格式为: SELECT ALL | DISTINCT SELECT ALL | DISTINCT FROM FROM WHEREWHERE GROUP BY GROUP BY 1 HAVING HAVING ORDER BY ORDER BY 2 ASC | DESCASC | DESC; 语句第一部分指明要选取的列。各列由逗号分开,他们之间的顺序可以与语句第一部分指明要选取的列。各列由逗号分开,

57、他们之间的顺序可以与表中的顺序不一致。表中的顺序不一致。 FROMFROM子句指明要从哪个子句指明要从哪个( (些些) )表中查询数据。表中查询数据。 WHEREWHERE子句指明要选择满足什么条件的记录。子句指明要选择满足什么条件的记录。 GROUPGROUP子句将结果按子句将结果按“列名列名1 1”的值进行分组,该属性列值相等的元组分为的值进行分组,该属性列值相等的元组分为一个组,每个组产生结果中的一条记录。如果带有一个组,每个组产生结果中的一条记录。如果带有HAVINGHAVING短语,则只有满足指定短语,则只有满足指定条件的组才输出。条件的组才输出。 ORDERORDER子句将结果按子

58、句将结果按“列名列名2 2”的值升序的值升序( (降序降序) )排序。排序。 软件开发技术应用基础查询举例 SELECT pub_id, pub_name, country FROM publishers SELECT * FROM publishers参见例参见例4-114-11、4-124-12软件开发技术应用基础SELECT city, state FROM authersSELECT DISTICT city, state FROM authers 查询举例删除表格中重复的行(元组)删除表格中重复的行(元组)DISTICTDISTICT参见例参见例4-144-14、4-154-15软件

59、开发技术应用基础 SELECT title_id, type, price, price-price*0.3 FROM title SELECT au_lname+.+au_fname, city+.+state FROM authors查询举例计算表达式的查询计算表达式的查询参见例参见例4-134-13软件开发技术应用基础条件:= = != price45.3country=China NOT AND OR Country=China AND age35 查询举例带有筛选条件的查询带有筛选条件的查询软件开发技术应用基础 SELECT title_id, type, price, price

60、- price*0.3 FROM titles WHERE price - price*0.318 SELECT pub_id, pub_name FROM publishers WHERE country=USA AND state=CA查询举例参见例参见例4-154-15到到4-224-22软件开发技术应用基础字符串中%表示匹配任意字符串 字符串中_表示匹配任意一个字符SELECT au_lname+.+au_fname, city+.+stateFROM authorsWHERE au_fname LIKE D%SELECT au_lname+.+au_fname, city+.+sta

温馨提示

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

评论

0/150

提交评论