第六章数据库技术基础_第1页
第六章数据库技术基础_第2页
第六章数据库技术基础_第3页
第六章数据库技术基础_第4页
第六章数据库技术基础_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

1、.本章主要介绍如下知识: 数据库系统的基本知识 对数据模型进行阐述,特别是其中的E-R模型和关系模型 着重介绍关系型数据库及其设计理论 数据库的设计过程 简单介绍面向对象数据库系统.6.1 6.1 数据库系统的基础知识数据库系统的基础知识 6.1.1数据库系统的产生与发展 6.1.2 数据库的基本术语 6.1.3 数据库系统结构体系.6.1.16.1.1数据库系统的产生与发展数据库系统的产生与发展 数据管理技术经历以下三个阶段:人工管理阶段(50年代中期以前);文件系统阶段(50年代后期到60年代中期);数据库系统阶段(60年代后期以来)。 .1.人工管理阶段当时外存没有磁盘等直接存取的存储设

2、备;软件没有操作系统,数据的处理是批处理。 人 工 管 理 数 据 具 有 如 下 特 点 : 1)数据不保存。 2)数据需要由应用程序自己管理,没有相应的软件来处理数据。 3)数据不共享。 4)数据不具有独立性。 .2.文件系统阶段 50年代后期到60年代中期,在操作系统中有专门的数据管理软件,一般称为文件系统。文件系统是数据库系统发展的初级阶段。 用 文 件 系 统 管 理 数 据 具 有 如 下 特 点 : 1)数据可长期保存。2)简单的数据管理功能 3)数据共享性差。 4)数据的独立性差。.3.数据库系统阶段 60年代末期,人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式

3、,才出现了真正的数据库系统。 数 据 库 系 统 的 基 本 特 点 如 下 : 1)数据的集成性。2)数据的高度共享性与低冗余性。3)数据独立性高。数据的独立性包括:.物理独立性:是指数据的物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的改变。逻辑独立性:是指数据的总体逻辑结构改变时,如修改数据模式、改变数据间的联系等,不需要修改相应的应用程序。(4)数据的管理和控制能力。 数据管理发展的三个阶段的软硬件背景及其特点的比较见下表 。.人工管理阶段人工管理阶段文件系统阶段文件系统阶段数据库系统阶段数据库系统阶段背背景景应用背景应用

4、背景科学计算科学计算科学计算、管理科学计算、管理大规模管理大规模管理硬件背景硬件背景无直接存取存储设无直接存取存储设备备磁盘、磁鼓磁盘、磁鼓大容量磁备盘大容量磁备盘软件背景软件背景没有操作系统没有操作系统有文件系统有文件系统有数据库管理系统有数据库管理系统处理方式处理方式批处理批处理联机实时处理、批处理联机实时处理、批处理联机实时处理、分布处理、联机实时处理、分布处理、批处理批处理特特点点数据的管理者数据的管理者用户用户( (程序员程序员) )文件系统文件系统数据库管理系统数据库管理系统数据面向的对象数据面向的对象某一应用程序某一应用程序某一应用某一应用现实世界现实世界数据共享程度数据共享程度

5、无共享,冗余度极无共享,冗余度极大大共享性差,冗余度大共享性差,冗余度大共享性高,冗余度小共享性高,冗余度小数据的独立性数据的独立性不独立,完全依赖不独立,完全依赖于程序于程序独立性差独立性差具有高度的物理独立性和一具有高度的物理独立性和一定的逻辑独立性定的逻辑独立性数据的结构化数据的结构化无结构无结构记录内有结构,整体无记录内有结构,整体无结构结构整体结构化,用数据模型描整体结构化,用数据模型描述述数据控制能力数据控制能力应用程序自己控制应用程序自己控制应用程序自己控制应用程序自己控制由数据库管理系统提供数据由数据库管理系统提供数据安全性、完整性、并发控制安全性、完整性、并发控制和恢复能力和

6、恢复能力.6.1.2 6.1.2 数据库的基本术语数据库的基本术语1. 数据(Data)定义:数据是描述事物的符号记录。 数据的表现形式不仅是数字,还包括字符(文字和符号)、图表(图形、图像和表格)及声音、语言等 。 信息是从原始数据中经过筛选、提炼等加工后,产生的对决策有影响的数据。 .2. 数据库(Database)定义:数据库(DB)是长期储存在计算机内的、有组织的、可共享的数据的集合。 数据库有以下特点:1)数据结构化。 2)实现数据共享。 3)减少数据的冗余。 4)数据独立。 .3.数据库管理系统(Databbase Management System简称DBMS)定义:数据库管理系

7、统它是位于用户和操作系统(OS)之间的一层数据管理软件,负责数据库中数据组织、数据操纵、数据维护、数据控制及保护和数据接口等。 .4.数据库管理员(Database Adminstrator简称DBA)定义:由专职人员对数据库进行规划、设计、维护、监视等,称这些专职人员为数据库管理员。 数 据 库 管 理 员 的 具 体 职 责 包 括 : 1)数据库定义与设计。 2)数据库运行与维护。 3)数据库的改进和重组重构。 .5.数据库系统(Database System简称DBS)定义:数据库系统一般由数据库、数据库管理系统(及其开发软件)、系统平台、应用系统和人员构成。 数据库系统在整个计算机系

8、统中的地位如下图所示。 .DBOSDBMS应用程序应用程序.6.1.3 6.1.3 数据库系统结构体系数据库系统结构体系 数据库系统的结构可以有多种不同的层次。 从数据库管理系统角度看,数据库系统通常采用三级模式结构,这是数据库系统的内部系统结构。 从数据库最终用户角度看,数据库系统分为单用户数据库系统、主从式数据库系统、分布式数据库系统和客户/服务器数据库系统。.1. 数据库系统的模式结构 模式是数据库中全体数据的逻辑结构和特征的描述。 数据库系统在其内部具有三级模式和二级映像。三级模式分别为外模式、模式与内模式;二级映像则是外模式/模式映像和模式/内模式映像。 三级模式与二级映像构成数据库

9、系统的内部的抽象结构体系,如下图所示。.应 用 程应 用 程序序A应 用 程应 用 程序序B应 用 程应 用 程序序n外模式外模式1外模式外模式n模式模式(概念数据库概念数据库)内模式内模式(物理数据库物理数据库)数据库数据库外模式外模式/模式模式映像映像模式模式/内模式内模式映像映像.(1)数据库系统的三级模式。 外模式也称子模式或用户模式,还称为用户级模式。它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。 模式也称逻辑模式,还称概念模式。是数据库中全体数据的逻辑结构和特征的描述。 内模式也称存储模式,还称物理模式。它是数据物理结构和存储方式的描述。.(

10、2)数据库系统的二级映像。 外模式模式映像:它使数据具有较高的逻辑独立性。它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。当模式改变时,DBA要对相关的外模式模式映像作相应的改变,以使外模式保持不变。应用程序是依据数据的外模式编写的,外模式不变,应用程序就没必要修改。所以外模式模式映像功能保证了数据与程序的逻辑独立性。. 模式内模式映像:它使数据具有较高的物理独立性。它定义了数据库全局逻辑结构与存储结构之间的对应关系。该映像定义通常包含在模式描述中。当数据库的存储结构了,DBA要对模式内模式映像作相应的改变,以使模式保持不变。模式不变,与模式没有直接联系的应用程

11、序也不会改变,所以模式内模式映像功能保证了数据与程序的物理独立性。.2. 数据库系统的体系结构(1)单用户数据库系统。 DBDB.(2)主从式数据库系统。DB主机主机.(3)分布式数据库系统。主主机机DBDBDB主主机机主主机机网网络络.(4)客户/服务器数据库系统。客户机客户机客户机客户机客户机客户机客户机客户机服务器服务器.6.2 6.2 数据模型数据模型 6.2.1 数据模型的基本概念 6.2.2 概念模型 6.2.3 数据模型.6.2.1 6.2.1 数据模型的基本概念数据模型的基本概念 数据模型根据不同的应用层次划分为三种类型:1、概念模型:也称信息模型。它是按用户观点来对数据和信息

12、建模,主要用于数据库设计。它与具体数据库管理系统无关,与具体的计算机平台无关。目前,较为流行的概念模型有E-R模型、扩充的E-R模型、面向对象模型等。.2、逻辑模型:又称数据模型。它是按计算机系统观点对数据建模,主要用于DBMS的实现。目前数据模式有很多种,包括层次模型、网状模型和关系模型、面向对象模型等。3、物理模型:它是一中面向计算机物理表示的模型,此模型给出了数据模型在计算机上的物理结构的表示。. 数据模型的三要素:1、数据结构。数据结构用来描述系统的静态特征。它主要描述数据的类型、内容性质以及数据间的联系等。 2、数据操作。数据操作用于描述系统的动态特征。它主要描述在相应数据结构上的操

13、作类型与操作方式。数据库主要有检索和更新(包括插入、删除和修改)两类操作。.3、数据约束条件。 数据约束条件是一组完整型规则的集合,它描述了数据及其联系应具有的制约和依赖规则。.6.2.2 6.2.2 概念模型概念模型 概念模型是现实世界到机器世界的一个中间层次。 概念模型的表示方法很多,其中最常用的是实体联系模型,简称为E-R模型。该模型将现实世界中需要的信息,以及它们之间的基本联接关系转化成图,比较直观的反映了现实世界。.1. 概念模型涉及的基本概念(1)实体:客观存在的并可相互区别的事物称为实体。可以是具体的人、事、物,比如小赵、信息学院、教材等;也可以是抽象的概念或联系,比如领导与职工

14、的领导关系。实体是概念世界中的基本单位。.(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。如学生实体可以由学号、姓名、性别等属性组成。(3)联系:现实世界中的事物间的关联称为联系。如教师与学生的授课关系等。这些联系反映为实体内部的联系和实体之间的联系。.两个实体集间的联系可以分为以下几种:一对一联系(1 :1):对于实体集A中的每一个实体,实体集B中有且只能有一个实体与之联系,反之亦然。如学校与校长之间的联系 。一对多联系(1 :n)或多对一联系(n :1):对于实体集A中的每一个实体,实体集B中有n (n1)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A

15、中有且只能有一个实体与之联系。如一个学院由多个班级。 . 多对多联系(m :n): 这是一种复杂的联系,对于实体集A中的每一个实体,实体集B中有n (n1)个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中有n (n1)实体与之联系。如一门课同时有若干个学生选修,而一个学生可以同时选修多门课。.2. 概念模型基本概念之间的关系(1)实体集(联系)与属性间的关系。 一个实体可以有若干个属性,实体以及它的所有属性构成了实体的一个完整描述,因此实体与属性间有一定的联系。如在学生基本情况信息表中每一个人(实体)可以有:编号、姓名、性别、系别、年龄、籍贯、政治面貌等属性,它们组成了一个有关学生

16、实体的完整描述。. 联系也可以附有属性,联系和它的所有的属性构成了联系的一个完整描述,因此,联系与属性间也有联接关系。(2)实体集与联系。 实体集间可通过联系建立联接关系。 概念模型中的基本关系的结构如下图所示。 .学学生生信信息息表表关关系系关系名关系名主码主码(男,女男,女)信息信息,材料材料北京北京,上海上海团员团员,党员党员域域属性属性(列列)元元组组行行属性名属性名.3. 概念模型的表示方法(1)实体集的表示方法:在E-R图中用矩形表示实体集,在矩形内写上该实体集的名字。(2)属性的表示方法:在E-R图中用椭圆表示属性,在椭圆内写上该属性的名称。并用无向边将其与相应的实体连接起来。.

17、(3)联系的表示方法:在E-R图中用菱形表示联系,菱形框内写明联系名,并用无向边分别与有关的实体连接起来,同时在无向边旁标上联系的类型,如1 :1,1 :n,n :m等。如下图所示。.班级班级领导领导班长班长11(a)两个实体集间的两个实体集间的1:1联系联系班级班级组成组成学生学生1n(b)两个实体集间的两个实体集间的1:n联系联系. 联系本身也是一种实体型,也有属性,如果一个联系具有属性,则将这些属性用无向边与该联系连接起来。课程课程选修选修学生学生nm(c)两个实体集间的两个实体集间的n: m联系联系. 例例6.1 6.1 有三个实体集及它们的属性,它们分别是:学生(Student):学

18、号(Xh)、姓名(Xm)、性别(Xb)、年龄(Nl)班级(Class):班号(Bh)、专业(Zy)课程(Course):课程号(Kh)、课程名(Km)、学分(Xf) 由这三个实体集构成的概念模型,可用E-R图来表示,如图所示。.ClassStudentCourseXh组成组成选修选修KmXfXhXmXbNlBh成绩成绩学生学生1nnmZy.6.2.3 6.2.3 数据模型数据模型在数据库领域中最常用的数据模型有层次模型、网状模型、关系模型三种模型。1. 层次模型层次模型是最早发展起来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织结构等。. 在图论中,

19、我们学过树的定义,任一树结构均有以下特性:1)棵树有且仅有一个无双亲结点,称为根结点。2)除根结点以外其他的结点有且仅有一个双亲,无子女的结点称为叶结点。 层次模型的示例如下图所示。 .院院 系系学学 校校研究所研究所机机 关关教研室教研室班班 级级科研室科研室科室科室教师教师学生学生科研人员科研人员工作人员工作人员领导领导领导领导领导领导领导领导领导领导领导领导领导领导组成组成组成组成组成组成组成组成.2.网状模型 网状模型是一种更具有普遍性的结构,从图论的角度讲,网状模型是一个不加任何条件限制的无向图。网状模型是以记录为结点的网状结构,它满足以下条件:(1)可以有任意个结点无双亲。(2)允

20、许结点有一个以上的双亲。(3)允许两个结点之间有一种或两种以上的联系。. 网状模型的示例如下图所示。工厂工厂市场部市场部生产部生产部产品产品管理管理管理管理推销推销生产生产.3.关系模型 目前,关系模型是数据库领域中目前最重要的一种数据模型。关系模型的本质是一张二维表,关系模型中,一张二维表就称为一个关系。(1)关系模型的数据结构。关系模型采用二维表来表示,简称表。如下表是一张学生登记表,它由行(元组)和列(属性)组成。.学号学号姓名姓名性别性别年龄年龄系号系号年级年级950104950104王小明王小明女女191901019595950206950206黄大鹏黄大鹏男男20200202959

21、5950508950508张文斌张文斌女女181805059595. 关系二维表一般具有下面几个性质: 1) 元组个数有限性。2) 元组的唯一性。 3)元组次序的无关性。4)元组分量的原子性5)属性名的唯一性。6)属性的次序无关性。7) 分量值域的同一性。. 需要注意的是:关系必须满足一定的规范条件,其中最基本的一条是:关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。 外键:二维表中某个属性或属性组合虽不是该表的关键字或只是关键字的一部分,但却是另外一个表的关键字时,称该属性或属性组合为这个表的外部关键字或外键。.(2)关系模型的操作。一般有以下四种操作:1)数据查询。数据查询是

22、数据库的核心操作。它包括单表查询和多表查询。 单表查询:是指仅在一个数据库表进行的查询。 多表查询:是指同时涉及两个以上的表的查询。首先将相关的关系合并成一个关系,再对合并后的关系作横向或纵向的定位。确定要查询的数据,之后进行操作。.2)数据插入。数据插入仅对一个关系而言,在指定的关系中插入一个或多个元组。3)数据删除。数据删除的基本单位是一个表中元组,它将满足条件元组从表中删除。4)数据修改。数据修改又称更新操作。它可以分解为删除和插入两个基本操作。 以上四种操作的对象都是关系(表),而操作的结果也是关系(表)。.(3)关系模型的约束条件。关系模型定义三种数据约束条件:1)实体完整性约束条件

23、。实体完整性约束要求关系中主码的任何属性都不能为空。这是数据库完整性的最基本的要求,因为主码唯一标识元组,如为空则不能为主码。.2)参照完整性约束条件。参照完整性约束是对关系间引用数据的一种限制。即在关系中的外键要么是所关联关系中的实际存在的元组,要么就为空值。比如在下面关系中:职工关系(职工编号,姓名,性别,部门编号)部门关系(部门编号,部门名称,部门经理) 职工编号是职工关系的主码,而外码为部门编号,职工关系与部门关系通过部门编号关联,参照完整性要求职工关系中的部门编号的值在部门关系中必有相应元组。.3)用户定义的完整性约束条件。用户定义的完整性约束条件是某一具体数据库的约束条件,是用户自

24、己定义的某一具体数据必须满足的语义要求。 其中前两者约束条件由关系数据库系统自动支持。对后者,则由关系数据库系统提供完整性约束语言,用户利用该语言定义出约束条件。.6.3 6.3 关系数据库关系数据库 6.3.1 关系模型的特点 6.3.2 关系代数 6.3.3 结构化查询语言SQL.6.3.1 6.3.1 关系模型的特点关系模型的特点1.单一的数据结构关系 关系模型的数据结构是单一的。现实世界的实体以及实体之间的各种联系均用关系来表示,从用户角度来看,关系模型中数据的逻辑结构是一张二维表。2.关系操作 关系操作采用集合操作方式。即操作对象和结果都是集合。其中查询是最基本的操作。.3.关系的三

25、类完整性规则 关系模型的完整性规则是对数据的约束。关系模型提供了三类完整性规则:实体完整性规则、参照完整性规则和用户自定义完整性规则。.6.3.2 6.3.2 关系代数关系代数 关系模型中的关系操作通常用关系代数和关系演算来表示的。关系代数是一种抽象的查询语言,它是用对关系的运算来表达查询的。关系演算是用谓词来表达查询要求的方式。二者是等价的。在这里我们着重介绍关系代数。.1. 关系代数的相关概念(1)笛卡尔积:令A和B是任意两个集合,若有序对的第一个成员是A的元素,第二个成员是B的元素,所有这样的有序对的集合,称为集合A和B的笛卡尔积或直积。记作AB。 AB=|(xA)(yB) 笛卡尔积可表

26、示为一个二维表,表中的每一行对应一个元组,表中的每一列对应一个域(同一属性的集合)。. 我们看一个例子:例如:A=a,b, B=0,1,2则: AB=a,0,a,1, a,2, b,0, b,1, b,2 BA=0,a,0,b, 1,a, 1,b, 2,a, 2,b.(2)关系:令A和B是任意两个集合,笛卡尔积AB的子集R称作A到B的关系。简单的说:关系是笛卡尔积的子集。(3)关系模型:关系的描述称为关系模型。它可以形象化地表示为一个五元组: R(U,D,DOM,F)。其中R为关系名,U为组成该关系的属性名的集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据依赖关系

27、。.2.传统的集合运算(1)并:设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义如下: RS = t | tR tS , t是元组变量,R和S都有n个属性。 并运算可以实现插入若干元组的操作。如对关系R插入R,则可用并运算表示为:RR。.(2)差:设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为RS。形式定义如下: RS = t | tR tS , R和S都有n个属性。 差运算可实现删除操作。如对关系R删除R,则可用差运算表示为:RR。 对关系的修改可分两步进行,先做删除操作,再做插入操作,即先做差运算再做并运

28、算。.(3)交:设关系R和S具有相同的关系模式,关系R和S的交是由既属于R又属于S的元组构成的集合,记为RS,这里要求R和S定义在相同的关系模式上。形式定义如下: RS = ttR tS, R和S都有n个属性。.(4)广义笛卡尔积:设关系R和S的元数分别为r和s,则R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为:RS。形式定义如下: RS = t | t= tr R ts S 下面举例说明上述的四种传统集合运算。. 例R R 关系关系R R1 1R R2 2R R3 31 12 23 32 25 57 7S S关系关系R R

29、1 1R R2 2R R3 34 42 23 31 12 23 3R RS (RS (R和和S S 的并的并) )R R1 1R R2 2R R3 31 12 23 32 25 57 74 42 23 3RS (RRS (R和和S S 的交的交) )R R1 1R R2 2R R3 31 12 23 3R RS (RS (R和和S S 的差的差) )R R1 1R R2 2R R3 32 25 57 7R RS(RS(R和和S S的广义笛卡尔积的广义笛卡尔积) )R R1 1R R2 2R R3 3R R1 1R R2 2R R3 31 12 23 34 42 23 31 12 23 31 1

30、2 23 32 25 57 74 42 23 32 25 57 71 12 23 3.3.专门的关系运算专门的关系运算包括选择、投影、连接、除。(1)选择:选择运算是根据某些条件对关系做水平分割,即选取符合条件的元组。形式定义如下:F(R) t | tR F(t)= true 其中为选择运算符,F(R)表示从R中挑选满足公式F为真的元组所构成的关系。这是从行的角度进行的运算。 例如, 23 (R)表示从R中挑选第2个分量值大于3的元组所构成的关系。.(2)投影:投影运算是从关系内选择出若干属性列组成新的关系。形式定义如下:A(R) t A| tR 其中A为R的属性列。投影操作是从列的角度进行的

31、运算。 投影之后不仅取消了原关系中的某些列,而且取消完全相同的元组。 例如, 3,1 (R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。.(3)连接:连接也称为联接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组组成新的关系。关系R和S的连接运算形式定义如下:R S tt = trR tsS AB trA tsB . 连接运算中有两种最为常用的连接:1) 等值连接:将连接中的换成“=”,功能是从关系R和S的笛卡尔积中选取A,B属性值相等的那些元组。它的形式定义为: R S tt = trR tsS A=B trA tsB .2)自然连

32、接:是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中将重复的属性去掉。它的形式定义为:R S tt = trR tsS trBtsB 连接运算一般是从行的角度进行的操作,但自然连接是同时从行和列的角度进行的操作。.我们举例说明连接运算:R R关系关系A AB BC CD Da1a1b1b1c1c14 4a2a2b2b2c2c27 7a2a2b3b3c1c15 5a1a1b4b4c2c21 1S S关系关系B BE Eb1b12 2b2b26 6b2b28 8b3b31111选择连接选择连接A AR.BR.BC CD DS.BS.BE Ea1a1b1b1c1

33、c14 4b1b12 2a2a2b2b2c2c27 7b1b12 2a2a2b2b2c2c27 7b2b26 6a1a1b3b3c1c15 5b2b22 2R S DE .自然连接自然连接R R S SA AB BC CD DE Ea1a1b1b1c1c14 42 2a2a2b2b2c2c27 76 6a2a2b2b2c2c27 78 8a2a2b3b3c1c15 51111A AR.BR.BC CD DS.BS.BE Ea1a1b1b1c1c14 4b1b12 2a2a2b2b2c2c27 7b2b26 6a2a2b2b2c2c27 7b2b28 8a2a2b3b3c1c15 5b3b311

34、11等值连接等值连接 R SR.B=S.B .(4)除:设R(x)和S(y)是两个关系,并且y是x的子集即x中的每一个属性都在y中,关系RS是模式xy上的关系,也就是说,RS包含所有在x中而不在y中的属性。它形式定义为: RS = trX| trR yx y(S) 其中yx为x在R中的像集。. 我们举例说明除运算:R R关系关系A AB BC CD D2 24 43 34 44 45 56 67 74 45 53 34 42 24 46 67 72 24 43 38 8S S关系关系C CD D3 34 46 67 73 38 8R RS SA AB B2 24 4. 根据上述的关系运算完成下

35、面例题学生选课数据库的关系模式为:Student(Sno,Sname,Sdept,Sage);Course(Cno,Cname,Pno);SC(Sno,Cno,Grade)。其中Sno,Sname,Sdept,Sage表示学号、学生姓名、学生系别、学生年龄;Cno,Cname,Pno表示课程号、课程名、预修课程号;Grade表示成绩。.写出对关系模型Student、Course、SC中的下述查询表达式:(1)检索学生年龄小于19的学生的姓名。 Sname(Sage85 (Student SC) (5)求选修了全部课程的学生学号。 Sno,Cno(SC) Cno(Course) .6.3.3 6

36、.3.3 结构化查询语言结构化查询语言SQLSQL SQL:是Structured Query Language的缩写,是一种结构化查询语言。是1974年由Boyce和Chamberlin提出来的。 由于SQL使用方便、功能丰富、语言简单易学,现已成为关系数据库领域中的一个主流语言。.1.SQL数据库结构 SQL数据库的结构如图所示。SQL用户用户SQL用户用户视图视图1视图视图2基本表基本表1基本表基本表2基本表基本表3基本表基本表4存储文件存储文件1存储文件存储文件1存储文件存储文件1. 它基本上是三级结构,它支持关系数据库三级模式结构,但在SQL数据库中,模式被称为基本表,内模式称为存储

37、文件,外模式称为视图或部分基本表,元组称为行,属性称为列。.2.结构化查询语言SQL的组成 SQL语言包括数据定义、数据查询、数据操纵、数据控制4个方面。 数据定义包括定义基本表、定义视图、定义索引3部分。 数据查询是建立数据库的主要目的,SQL语言提供了SELECT语句进行查询。 数据操纵包括数据检索和更新两部分功能。 数据控制是指控制用户对数据的存储权力。.3. SQL数据库的查询 数据库的查询的基本格式为:SELECTALL/DISTINCTFROM WHEREGROUP BYORDER BY ASC/DESC;在语句中,凡是在中的项是不可缺的, 中的项可根据需要省略。. 整个查询语句的

38、含义是: 根据WHERE子句中的条件,从FROM子句指定的表中找出满足条件的元组,再按SELECT子句中的目标列或目标列表达式选出元组中的属性值形成结果表。如果有GROUP子句,则按列名1的值进行分组。如果有ORDER子句,则在结果表中按照列名2的值进行升序(ASC)和降序(DESC)排序。.我们举例说明如何用SQL语言进行查询。例:学生选课数据库的关系模式为: Student(Sno,Sname,Sdept,Sage); Course(Cno,Cname,Pno); SC(Sno,Cno,Grade)。(1)查询全体学生的姓名、学号。 SELECT Sno, Sname FROM Stude

39、nt;.(2)查询所有选修过课的学生的学号。 SELECT DISTINCT Sno FROM SC;(3)查询年龄在19到22之间的学生姓名、系别和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 19 AND 23; 谓词BETWEENAND 和NOT BETWEEN AND可以查找属性值在(或不在)指定范围内的元组。.(4)查询出成绩为80、85、87的记录。 SELECT * FROM SC WHERE Grade IN(80,85,87);谓词IN用来查找属性值属于指定集合的元组。(5)查询第二个字为“艳”的学

40、生的姓名和系别。 SELECT Sname, Sdept FROM Student WHERE Sname LIKE - -_艳%; 谓词LIKE可以用来进行字符串的匹配。其中%代表任意长的的字符串,- 代表任意单个字符。一个汉字占两个字符。.(6)查询选修“数据库系统原理”课程的学生姓名。 SELECT Sname FROM Student WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM Course WHERE Cname=数据库系统原理); 此查询为嵌套查询。 .6.4 6.4 数据库的设计数据库的设计 6.

41、4.1 6.4.1 数据库设计的步骤数据库设计的步骤 6.4.2 6.4.2 数据库设计的需求分析数据库设计的需求分析 6.4.3 6.4.3 数据库的概念结构设计数据库的概念结构设计 6.4.4 6.4.4 逻辑结构设计逻辑结构设计 6.4.56.4.5 物理结构设计物理结构设计. 数据库设计是数据库应用的核心。数据库设计是指利用现有的数据库管理系统,针对具体的应用对象,构造合适的数据库模式,建立基于数据库的应用系统或信息系统。.6.4.1 6.4.1 数据库设计的步骤数据库设计的步骤 在数据库设计中有两种方法: 一种是以信息需求为主,兼顾处理需求,称为面向数据的方法。 另一种方法是以处理需

42、求为主,兼顾信息需求,称为面向过程的方法。 这两种方法现在都有使用,但面向数据方法已成为主流方法。. 数据库设计一般分为以下六个阶段:1.需求分析阶段 进行数据库设计首先必须准确分析用户的需求,按需求合理的设计系统。2.概念设计阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。.3.逻辑设计阶段 该阶段是将概念结构转化为某个DBMS所支持的数据模型,并对其进行优化,得到数据库的逻辑模型。4.物理设计阶段 数据库物理设计是为逻辑数据模型选取一个最合适应用环境的物理结构(包括存储结构和存取方法)。.5.实现阶段 在数据库实施阶段,

43、设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6.运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在其运行过程中必须不断对其进行评价、调整与修改。. 数据库设计的步骤如图所示需求分析需求分析概念设计概念设计逻辑设计逻辑设计物理设计物理设计系统实施系统实施运行与维护运行与维护需求说明需求说明信息结构信息结构逻辑结构逻辑结构物理数据库结构物理数据库结构数据库实施数据库实施总体信息需求总体信息需求处理需求处理需求.6.4.2 6.4.2 数据库设计的需求分析数据库设计的需求分析 分析和表达用户的需求

44、,通常采用结构化分析方法,这种方法用自顶向下,逐层分解的方式分析系统。并用数据流图和数据字典描述系统。.6.4.3 6.4.3 数据库的概念结构设计数据库的概念结构设计1.概念结构设计的目的 概念结构设计阶段的目标是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 概念结构的设计方法有两种:.(1)集中式模式设计法:根据需求由一个统一机构或人员设计一个综合的全局模式。该方法简单方便,适用于小型或不复杂的系统设计。(2)视图集成设计法:这种方法是将一个系统分解成若干个子系统,首先对每一个子系统进行模式设计,建立各个局部视图,然后将这些局部视图进行集成,最终形成整个系统的

45、全局模式。.2.概念结构设计的过程 数据库概念结构设计是使用E-R模型和视图集成设计法进行设计的。它的设计过程是:首先设计局部应用,再进行局部视图(局部E-R图)设计,然后进行视图集成得到概念模型(全局E-R图)。. 视图设计一般有三种方法:(1)自顶向下。这种方法是从总体概念结构开始逐层细化。如教师这个视图可以从一般教师开始,分解成高级教师、普通教师等。进一步再由高级教师细化为青年高级教师与中年高级教师等。(2)自底向上。这种方法是从具体的对象逐层抽象,最后形成总体概念结构。(3)由内向外。这种方法是从核心的对象着手,然后向四周逐步扩充,直到最终形成总体概念结构。. 在视图集成过程中最重要的

46、任务是解决各个E-R图设计中的冲突。常见的冲突有以下几类:(1)命名冲突。命名冲突有同名异义和同义异名两种。如教师属性何时参加工作与参加工作时间属于同义异名。(2)概念冲突。同一概念在一处为实体而在另一处为属性或联系。(3)域冲突。相同属性在不同视图中有不同的域。(4)约束冲突。不同的视图可能有不同的约束。. 我们举例说明数据库的概念设计过程:设计学生管理系统。包括学生的学籍管理子系统和课程管理子系统两个系统。(1)学籍管理子系统包括学生、宿舍、班级、教室、辅导员。这些实体之间的联系有: 一个班级有若干学生,一个学生只能属于一个班;一个宿舍可以住多个学生,一个学生只能住在一个宿舍中;一个辅导员

47、带若干个学生,一个学生只属于一个辅导员。一个辅导员带多个班级;一个班级在多个教室上课,一个教室有多个班级来上课。.(2)课程管理子系统包括学生、课程、教师、教室、教科书。这些实体之间的联系有: 一个学生选修多门课程,一门课程有若干学生选修;一个学生有多个教师授课,一个教师教授若干学生;一门课程由若干个教师讲授,一个教室只讲一门课程;一个教室开设多门课,一门课只能在一个教室上。. 针对两个子系统分别设计出它们的E-R图。在E-R图中省去属性。学籍管理子系统的E-R图如图所示。 辅导员辅导员班级班级教室教室学生学生宿舍宿舍组成组成指导指导管理管理上课上课住宿住宿1n11nn1nmn.对应各个实体的

48、属性分别为: 学生学号,姓名,性别,出生日期,系别,何时入校,平均成绩 班级班级号,学生人数 辅导员职工号,姓名,性别,工作时间 宿舍宿舍编号,地址,人数 教室教室编号,地址,容量 其中有下划线的属性为实体的码。. 课程管理子系统的E-R图如图所示。学生学生教师教师课程课程教科书教科书教室教室教教学学讲讲授授选选修修开开设设m111mnnnn.对应各个实体的属性分别为: 学生学号,姓名,性别,年龄,入学时间 课程课程号,课程名,学分 教科书书号,书名,作者,出版日期,关键字 教室教室编号,地址,容量 教师职工号,姓名,性别,职称 其中有下划线的属性为实体的码。.下面将学籍管理子系统E-R图和课

49、程管理子系统E-R图集成学生管理系统E-R图。集成过程如下:(1)消除冲突。这两个子E-R图存在着多方面的冲突: 辅导员属于教师,学籍管理中的辅导员与课程管理中的教师可以统一为教师。 将辅导员改为教师后,教师与学生之间有两种不同的联系:指导联系和教学联系,将两种联系综合为教学联系。 调整学生属性组成,调解结果为:学生学号,姓名,出生日期,年龄,系别,平均成绩.(2)消除冗余。 学生实体的属性中的年龄可由初涉概念日期计算出来,属于数据冗余。调整为:学生学号,姓名,出生日期,系别,平均成绩 教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于数据冗余,可以消去。 学

温馨提示

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

评论

0/150

提交评论