《数据库》教案(总145页)

上传人:29 文档编号:33786159 上传时间:2021-10-19 格式:DOC 页数:149 大小:478KB
收藏 版权申诉 举报 下载
《数据库》教案(总145页)_第1页
第1页 / 共149页
《数据库》教案(总145页)_第2页
第2页 / 共149页
《数据库》教案(总145页)_第3页
第3页 / 共149页
资源描述:

《《数据库》教案(总145页)》由会员分享,可在线阅读,更多相关《《数据库》教案(总145页)(149页珍藏版)》请在装配图网上搜索。

1、数据库教案数据库系统概论教案及讲义授课老师:XXX第一章 绪 论教学目标:1、结合具体的例子讲述数据库的设计步骤,通过此例子让同学们对本教材各章节所要学习的内容有一个初步的整体了解;2、对照文件系统的数据管理过程,讲述数据库管理系统的数据管理过程,让同学们对数据库管理系统的功能、组成、工作过程有个初步了解,并对数据库的数据模型(主要是关系模型)有比较深入的理解。3、课外布置学生完成一个小的数据库设计课程设计题目,要求学生分组寻找题目并完成设计过程。教学重点:1、举简单例子说明数据库设计过程。2、数据库技术的产生发展过程的文件系统阶段与数据库系统阶段。3、概念模型、数据模型及三要素、数据库系统结

2、构教学难点:数据库系统的三级模式结构;数据库的二级映象功能与数据独立性。教学过程:本章分3次讲述,每次2课时,主要讲述以下内容介绍如下:1、举简单例子说明需求分析及表达、概念结构设计、逻辑结构设计过程。第六章的不少内容前到此处讲述(实际教学过程中本章的学时数增加2学时左右)。对照文件系统的数据管理过程,讲述数据库管理系统的数据管理过程,及相关概念。2、讲述数据、数据库、数据库管理系统、数据库系统的基本概念;数据库模型(主要是关系模型);数据库系统结构。1.1 引言1.1.1 数据、数据库、数据库管理系统、数据库系统1、 数据(data)* 高级语言的数据,如PASCAL语言中各种类型数据(常量

3、、变量):integer,real,char,record,file, (着重文件类型数据说明)* 定义:1)数据是描述事物的符号记录,2)数据与其语义是不可分的,需要经过语义解释。2、 数据库(database,简称DB)*定义:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并为各种用户共享。(P1)*目前流行数据库的数据模型:关系模型,数据结构为表。*数据库的存储:若干表一个库,一张表一个库(文件系统为一个文件一个库)*对数据库的操作:在数据库管理系统的支持下,可进行数据查询(selec

4、t)、数据定义(create drop alter)、数据操纵(insert update delete)、数据控制(grant revoke)3) 从定义上数据库与文件比较: 对照数据库说明:长期存储在计算机内、有组织的(组织简单)、可共享(共享性差)的数据集合。冗余度大,数据独立性低。3、 数据库管理系统(database management system ,简称DBMS)(P7)*定义(功能解释):DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。*对照文件系统:提供的操作简单,主要包

5、括:建立文件、删除文件、读元素、写元素、打开文件、关闭文件等。*用户与文件系统及数据库的接口: 文件系统:系统调用 数据库管理系统:SQL(数据查询、数据定义、数据操纵、数据控制)。4、 数据库系统:*是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其应用开发工具)、应用系统、数据库管理员和用户构成。5、 本课程的主要研究内容、意义及学习方法*主要内容 关系数据库及SQL、关系数据库设计(设计理论、具体设计)、数据保护。*意义:非常实用*学习方法:大量的上机实践是学好本课程的先决条件。1.1.2 数据管理的技术的发展(*数据库技术产生:是应数据管理管理任务的需要而产生

6、的。)*数据管理:是指如何对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。*随着计算机硬件和软件的发展,数据管理技术经历了三个发展阶段:人工管理、文件系统、数据库管理系统。1、 人工管理阶段的特点:(背景:硬件,没有直接存取的存储设备;软件,没有操作系统及管理数据的软件;数据处理方式为批处理)1) 数据不保存2) 数据需要由应用程序自己管理,没有相应的软件负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构(包括存储结构、存取方法、输入方式等)。(PASCAL语言文件处理:应用程序中只考虑逻辑结构)3) 数据不共享:数据面向应用,一组数据只能对应一个程

7、序。因此程序与程序之间有大量的冗余数据。4) 数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。2、 文件系统阶段的特点:(背景:硬件,已有直接存取的存储设备;软件,操作系统中已经有了专门的数据管理软件,一般成为文件系统;数据处理方式,不仅有了批处理而且能够联机实时处理)1) 数据可以长期保存。2) 由专门的软件即文件系统进行数据管理。应用程序按名存取数据,大大节省了程序的编写与维护工作量。3) 数据共享性差。一个文件基本上对应于一个应用程序。不同应用程序具有部分相同数据时也必许建立各自的文件,不能共享相同的数据,数据冗余度大。相同数据重复存储、各自管理,给数据

8、的修改与维护带来了困难,容易造成数据的不一致性。4) 数据的独立性低。数据与程序间缺乏独立性:一旦数据的逻辑结构改变,必须修改应用程序修改文件结构定义。而应用程序的改变(应用程序改用不同的高级语言)也将引起文件数据结构的改变。3、 数据库系统阶段产生背景:以文件系统作为数据管理手段已经不能满足应用的需要(多用户、多应用共享数据),于是出现了数据库技术及统一管理数据的专门软件数据库管理系统。 特点:1) 数据结构化,存取方式灵活 数据库系统实现了整体数据的结构化:在描述数据时不仅要描述数据本身,还要描述数据之间的联系。文件系统尽管其记录内部有某种结构,但记录之间没有联系。2) 数据共享性好,冗余

9、度低数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统。这样既可以大大减少数据冗余,节约存储空间,又能避免数据之间不相容与不一致性。3) 数据独立性高数据库系统提供了两方面的映象功能,从而使数据既具有物理独立性又具有逻辑独立性。数据与程序间的逻辑独立性:数据的总体逻辑结构与某类应用所涉及的局部逻辑结构之间的映象或转换功能,保证了当数据的总体逻辑结构改变时,通过对映象的相应改变可以保持数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改。数据与程序间的物理独立性:数据的存储结构与逻辑结构之间的映象或转换功能,保证了当数据的存储结构(或物理

10、结构)改变时,通过对映象的相应修改可以保持数据的逻辑结构不变,从而应用程序也不必修改。4) 数据由DBMS统一管理和控制*统一管理有结构的数据,使数据可以有灵活的使用方式。数据库系统弹性大,易于扩充。*有以下几方面的控制功能:1) 数据的安全性:指保护数据,防止不合法使用数据造成数据的泄密和破坏,使每个用户只能按规定对某些数据以某种方式进行访问和处理。2) 数据的完整性:指数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据间满足一定的关系。3) 并发控制:当多个用户的并发进程同时存取、修改数据时,可能会相互干扰而得到错误的结构,并使数据的完整性遭到破坏,因此对多用户并发操作加

11、以控制和协调。4) 数据库恢复:硬件、软件、操作员失误、故意破坏等造成的故障,DBMS必须将数据库从错误状态恢复到某一已知的正确状态。12 数据模型121数据模型的作用、组成要素、概念1、数据模型的作用:通俗地说是计算机世界对现实世界信息处理的模拟。具体为抽象、表示和处理现实世界的数据和信息。2、数据模型的组成要素:数据结构、数据操作、数据的约束条件。1)数据结构:*现实世界的信息抽象、表示为计算机世界的数据结构。*数据结构:为所研究对象类型的集合。一类对象与数据类型、内容、性质有关,另一类对象与数据间的联系有关。*例 现实世界的“学生选修课程处理”涉及的信息,抽象、表示为计算机世界的数据结构

12、 *涉及的对象有 与数据本身有关对象:学生、课程 与数据间联系有关对象:选课 *数据结构(关系数据模型为表,数据及其联系都用表表示)学生(学号、姓名、性别、系别、年龄、籍贯)(加属性类型说明)课程(课程号、课程名、学分)(加属性类型说明)选课(学号、课程号、成绩)(加属性类型说明)*数据结构在数据模型中的地位:数据模型中的数据结构是刻画一个数据模型性质的最重要方面,人们通常按数据结构类型来命名数据模型。数据库中的数据结构有三种:关系结构、层次结构、网状结构。关系模型的重要性。2)数据操作*现实世界的信息对应计算机世界的数据结构,现实世界信息的处理对应计算机世界的数据操作。主要有检索和更新(包括

13、插入、删除、修改)两大操作。*数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关操作规则。*关系模型数据库操作语言为SQL,主要功能:数据查询(SELECT),数据定义(CREATE,DROP,ALTER),数据操纵(INSERT,UPDATE,DELETE),数据控制(GRANT,REVOTE)。3)数据的约束条件*是一组完整性规则的集合,用以限定符合数据模型的数据库状态,以保证数据的正确、有效和相容。*关系模型完整性约束:实体完整性、参照完整性、用户自定义完整性。3、文件管理系统支持一种简单(或简陋)的数据模型 (通过文件系统支持的简单数据模型来理解数据库

14、系统支持的数据模型,仅仅为了说明问题,通常不称文件系统支持数据模型)*文件数据结构及对文件这种数据结构所进行操作集合是文件管理系统所支持的一种简单数据模型。*将现实世界的信息抽象为文件,对信息的处理通过文件操作实现。*例 学生选课程文件结构(学号、姓名、性别、系别、年龄、籍贯,课程号、课程名、学分,成绩)*文件系统不提供完整性约束功能,由应用程序实现。数据结构及对数据的操作与数据库中的数据模型相比显得落后。4、数据模型的概念任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。5、任何一种数据库管理系统(DBMS)都基于某种数据模型(或支

15、持某种数据模型) 122现实世界的信息抽象表示为计算机世界某个数据模型数据结构的桥梁- 概念模型1、 现实世界的信息转换到机器世界信息的处理过程:1) 现时世界到信息世界(概念模型):*常用ER图来描述现实世界的概念模型2) 信息世界转换为机器世界(概念模型到数据模型的数据结构)2、 信息世界的基本概念(结合关系模型考虑)例子:1) 学生:学号、姓名、性别、系别、年龄、籍贯学号姓名性别系别年龄籍贯970501王五男机械19北京970606李六男化工18天津971060张三男信电20浙江2) 病人:病历号、病人姓名、年龄、性别病历号病人姓名年龄性别100001李勇60男100010刘醇50男11

16、1001许春30男1) 实体:客观存在并可相互区别的事物。可以是具体的人、事、物,也可以是抽象的概念或联系(如学生的一次选课)。2) 属性:实体所具有的某一特性。一个实体由若干个属性来刻画。3) 码:唯一标识实体的属性集。4) 域:属性的取值范围称为该属性的域。5) 实体型:用实体名及其属性名集合来抽象和刻划同类实体。学生:学号、姓名、性别、系别、年龄、籍贯病人:病历号、病人姓名、年龄、性别6) 实体集:同型实体的集合7) 联系:实体内部(实体的各属性间)的联系和实体之间的联系。*两实体型间的联系可以分三类:*一对一联系(1:1),班级与班长:一个班级只有一个班长,一个班长只在一个班级任职。*

17、一对多联系(1:n),班级与学生:一个班级有若干名学生,每个学生只在一个班级中学习。* 多对多联系(m:n)学生与课程:一个学生选修了多门课程,一门课程为多个学生选修*同一实体集内的各实体之间也可以存在三类联系如学生实体集内部:学生的领导被领导关系3、 概念模型的表示方法(最常用ER法)*ER图提供了表示实体型、属性和联系的方法实体及其属性图实体及其联系图成绩概念模型:实体、属性、联系合一图(涉及实体及属性较多时,为清晰起见两图分开)课程选课课程学生 1 m n讲授 m n参考书教师班级 1组成 学生人员 n学生*同一实体型的联系学生 1 n领导*总体实体及其联系图班级成绩学生人员组成选课学生

18、课程 m n领导 1 1 n讲授 m n教师参考书*E一R图123关系数据模型1、 关系数据模型的数据结构*关系模式的数据结构是一张二维表,它由行和列组成。*一些概念:关系:表元组:表行属性:表列主码:某个属性组,它可以唯一确定一个元组。域:属性的取值范围分量:元组的一个属性值关系模式:对关系的描述,一般表示为:关系名(属性1、属性2、属性n)*关系模型中实体与实体间的联系都是用表(关系)来表示的 (与概念模型的实体型及联系对应)学生()课程()学生选课()*关系模型要求关系必须是规范化的,即关系模式必须满足一定的规范条件。最基本一条为每个分量必须是不可分的数据项2、 关系数据模型的操纵与完整

19、性约束3、 关系数据模型的存储结构*一个表对应一个DBF文件(DBASE,Foxpro等)*多个表放在一个DB文件中(SYBASE SQL Anywhere,SQL Server等)1.3数据库系统结构1、关系数据库系统的模式结构SQL视图2视图1外模式基表4基表3基表2基表1模式存储文件2存储文件1存储模式模式:也称逻辑模式,是数据库中全体逻辑结构和特征的描述,是所有用户的公共数据视图。外模式:也称子模式或用户模式,他是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述内模式:内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。数

20、据库系统的模式结构:数据库系统是由外模式、模式、内模式三级构成第二章 关系数据库教学目标:介绍关系模型的基本概念,即关系模型的数据结构、关系操作和关系完整性。结合第三章的数据定义介绍数据结构与数据完整性。关系操作主要介绍关系代数。教学重点:1、数据结构:笛卡儿积、关系、关系模式、关系数据库。2、关系完整性:实体、参照、用户自定义。3、关系操作:关系代数,重点是投影、选择、连接、除法操作。教学难点:关系数据库的型和值;关系代数的除法运算。教学过程:本章分3次讲述,每次2学时,每次主要讲述以下内容介绍如下:第一次:介绍数据结构(笛卡儿积、关系、关系模式、关系数据库)。关系完整性(实体、参照、用户自

21、定义)(实际教学过程中将第三章的表定义及对数据库的插入操作部分提前到这里,相当于第三章有2学时多调整到了这里)。第二次:介绍举例关系操作的语义(关系代数,重点是投影、选择、连接、除法操作),并介绍相应的SQL语句表达式(实际教学过程相当于将第三章的相关内容调整到了此处介绍)。关系操作举例,关系数据库管理系统(重点讲述各类系统支持模型的程度)。21 关系数据库概述1、 关系数据库系统:支持关系模型的数据库系统。2、 关系模型的组成:关系数据结构、关系操作集合、完整性约束条件三部分。3、 关系数据结构表,特点:简单的数据结构表达丰富的语义,描述现实世界的实体以及实体间的联系(例)4、 关系操作*采

22、用集合操作:操作对象与操作结果为集合,*常用的操作*查询:选择、投影、连接、除、并、交、差等;更新:增、删、改*查询的表达能力是关系操作中的最主要部分*关系模型中关系操作能力的早期抽象表示(即抽象查询语言,领会语言的含义):1) 关系代数语言:用代数方式表示,即用关系的运算来表达查询要求的方式。2) 关系演算语言:用逻辑方式表示,即用谓词来表达查询要求的方式。元组关系演算:谓词变元的基本对象是元组变量。域关系演算:谓词变元的基本对象为域变量。3) 关系代数、关系演算(元组关系演算、域关系演算)三种语言在表达能力上是等价的。*早期抽象查询语言(关系代数、关系演算语言)的作用作为评估实际系统中查询

23、语言能力的标准。与具体DBMS实现的实际语言不完全一样(提供许多附加功能,如集函数、关系赋值、算术运算等)*关系数据库的标准语言(SQLstructured query language结构化查询语言)是集数据查询、DDL数据定义、DML数据操纵、DCL数据控制于一体的语言。具有关系代数与关系演算双重特点的语言。5、 完整性约束*允许定义三类完整性:实体完整性、参照完整性、用户自定义完整性。*关系系统自动支持的完整性:实体完整性、参照完整性。22关系数据结构(关系、关系模式、关系数据库)1、 关系例1:有表结构(关系模式):学生(学号、性别) 如果,学号为子界类型 D1=1.100, 性别为枚

24、举类型D2=(男,女), 学生表的最大取值(最大表):100*2=200个元组例2:有表结构:学生(学号、姓名、性别、系别、年龄、籍贯) 每个列的类型:integer,char(8),bolean,char(8),integer,char(10)最大表元组数:实际应用中的具体表:最大表的有意义的子集1) 域:是一组具有相同数据类型值的集合。表中的每列都与一域(表的数据类型)相关连2) 笛卡儿积(本质上为最大元组表)*定义:给定一组域D1,D2,.,Dn,这些域可以完全不同,也可以部分或全部相同。D1,D2,.,Dn的笛卡儿积为:D1D2. Dn=(d1,d2,dn)diDi,i=1,2,n其中

25、每一个元素(d1,d2,dn)叫作一个n元组,或简称为元组。元素中的每一个值di叫作一个分量。*若Di(i=1,2,n)为有限集,其基数为mi(i=1,2,n),则D1D2. Dn的基数为m1*m2*mn3) 关系*定义:D1D2. Dn的子集叫作在域D1,D2,.,Dn上的关系,用R(D1,D2,.,Dn)表示。R表示关系的名字,n是关系的目或度n=1单元关系n=2二元关系关系为笛卡儿积的子集,表行元组,表列属性(n目关系有n个属性)。*侯选码:若关系中某一属性组的值能唯一标识一个元组,则称该属性组为侯选码*主码:若一个关系中有多个侯选码,则选其中一个作为主码。*主属性:主码的诸属性*非码属

26、性:不包含在任何侯选码中的属性*全码:侯选码为关系的所有属性组*关系的三种类型:基本表(实际存在表)、查询表(查询结果)、视图表(虚表由基本表与其他试图表导出)*基本关系具有6条性质:(见书P40)2、 关系模式*定义:关系的描述称为关系模式。它可形式化地表示为R(U,D,DOM,F)。R为关系名U组成该关系的属性名集合D属性组所来自的域DOM属性向域的映象集合F属性间数据的依赖关系集合(第四章专门讨论)*关系模式通常简记为R(U)或R(A1,A2,An),域名及属性向域的映象常常直接说明为属性的类型、长度*型与值:模式是型,关系(表)是模式的值3、 关系数据库含义:在一个给定的现实世界的领域

27、中,相应于所有实体及实体之间的联系的关系的集合构成一个关系数据库。关系数据库的型和值:型即关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系模式的值也称为关系数据库,是这些关系模式在某一时刻对应的关系的集合。关系数据库模式与关系数据库通常称为关系数据库。23关系完整性1、 实体完整性要点:主属性不能取空值。现实世界的语义要求:一个基本关系通常对应现实世界的一个实体集,现实世界的实体是可以区分的,即它们具有某种唯一标识,在关系模型中以主码作为唯一标识。2、 参照完整性*关系与关系之间存在着引用关系:因为现实世界的实体之间存在某种联系,而关系模型中实体及

28、实体间的联系都是用关系来描述的。*举例:* 要点:*外码基本关系R的非码属性(组)F与基本关系S的主码Ks相对应,则属性(组)F为R的外码。*参照关系R*被参照关系S*参照完整性规则基本关系R的外码F与基本关系S的主码Ks相对应,则R上的每个元组在F上的取值要求:或者取空值;或者等于S中的某个元组的主码值。3、 用户自定义完整性 *反映某一具体应用所涉及的数据必须满足的语义要求。 *通常有三类:非空约束(not null)、唯一约束(unique)、检查约束(check)*24如何实现完整性约束规则(作问题处理)1、 在表中定义完整性规则2、 在对表中的数据进行更新操作时,数据库管理系统自动的

29、检查完整性规则,将表中的数据约束在用户期望的范围中。*PB提供了一定的前端约束检查功能*在前端定义约束规则(相当check功能),在前端进行合法性检查。即在输入数据时一定程度上过滤了不合法的数据。相同的检查在数据库表中可以不需要再定义。*在前端一已经实现的完整性约束,在数据库表中是否可以不需要再定义?回答否,因为,如不通过应用程序直接通过工具操作数据库表时,就没有了相应的完整性检查。24 关系代数1、 何为关系代数:是抽象的查询语言,它用关系运算来表达查询。主要研究关系(表)运算,运算对象是关系,运算结果也是关系。2、 关系运算分两类:1) 传统的集合运算:并、交、差、广义笛卡尔积。运算只涉及

30、行,将关系看成是行(元组)的集合,。2) 专门的关系运算:选择、投影、连接、除。运算既涉及行也涉及列。3、 传统的集合运算(着重掌握语义)设关系R、SRABa1b1a1b2 SABa1b2a2b21) 并(U)R S= t | tR tS 并由属于R或属于S的元组组成。两集合元组并在一起,去掉重复元组。 关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)2) 差()R S= t | tR tS 差由属于R并不属于S的元组组成。 关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)3) 交()R S= t | tR tS 由属于R

31、且属于S的元组组成。 关系R、S要求具有相同的目n(都具有n个属性),相应的属性取自同一个域(同类型数据)4) 广义笛卡尔积R S=trts | trR tsS *关系R、S分别为m、n目k1、k2个元组,结果为m+n目,元组个数为k1*k2个。例:R学号姓名1A2BS课 程数据库操作系统R S学号姓名课程1A数据库1A操作系统2B数据库2B操作系统(广义笛卡儿积与笛卡儿积的比较:)4、 专门关系运算(运算结果着重掌握语义)1) 选择F(R)=t| tR F(t)=“T” 选择关系R中满足逻辑表达式F为真的元组。P48 例1、查询信息系的全体学生 例2、查询年龄小于20的元组 例1: sdep

32、t=is(student) 例2:sage20(student) 逻辑表达式F的基本形式为:X1 Y1 X2 Y2 比较运算符,逻辑运算符,Xi、Yi属性名或常量名或简单函数。2) 投影A(R)=tA| tR A为R中的属性列例3:学生关系在姓名和系两个属性上的投影。例4:在学生关系中有那些系表见P48 例3:sname,sdept(student) 例4:sdept(student)注:投影后的重复行应该消除 3) 连接R S=trts | trR tsS trA tsB AB从广义笛卡尔积R S中选择满足比较运算表达式AB的元组,A、B分别为R、S上度数相等且可比的属性组。例(P50):R

33、 S cd 等值连接:上述连接的特例,取=自然连接:书写格式在连接符下不加比较表达式,比较分量必须是相同的属性组,连接结果去掉重复列。4) 除()例6:设关系R(A,B,C),S(B,C,D),求RS,RS为新关系P(A),P是R中满足下列条件的元组在A属性列上的投影:元组在A上分量值a的象集BCa包含S在BC上投影的集合。见书P51 *象集:关系R(X,Z),X和Z为属性组。我们定义,当tX=x时,x在R中的象集为:Zx=tZ| tR ,tX=x表示R中属性组X上值为x的诸元素在Z 上分量的集合。*RS:R(X,Y),S(Y,Z),其中X,Y,Z为属性组R(X,Y)X=A,Y=BCS(Y,Z

34、)Y=BC,Z=DRS的结果为新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。 R S = trX| trR y(S) 包含于trX的象集例:至少选修了课程表中所有课程的学生sno,cno(student_course) cno(course)例:P51 例7例10假设学生课程数据库中有表:(理解含义) Student(Sno学号,sname姓名,sex性别,age年龄,sdept所在系), Course(Cno,Cname,Cpno,Ccredit), SC(Sno,Cno,Grade)例9:查询至少选修了一门其直接先行课为6

35、号课程的学生姓名1、 先行课为6号的课程,涉及课程表。P1=cpno=6(coruse)2、 选了上述课程的学生学号P2:P1SC 或sno(P1SC )3、 根据学号求姓名:P2Sno,Sname(Student),投影出Sname例10:查询选修了全部课程的学生号码和姓名1、 所有课程的课程号P1:cno(Course )2、 选修了所有课程的学生号P2:Sno,Cno(SC)P13、 学生姓名、学生号:P2Sno,Sname(Student)2.6关系数据库管理系统(简称关系系统)1、关系系统:为支持关系模型的系统,各种实际应用的关系系统对关系模型的支持程度不同(数据结构、数据操纵、完整

36、性约束)。2、各类关系系统的分类与定义:1) 表式系统:仅支持关系数据结构,不支持集合级操作,实际上不能算关系系统。2) (最小)关系系统:支持关系数据结构和选择、投影、连接三种操作。(FoxBASE,FoxPro等)3) 关系完备系统:支持关系数据结构和支持关系代数操作(功能上与关系代数等价)。(DB2,ORACLE等)4) 全关系系统:支持关系模型的所有特征。到目前为止尚没有一个系统是全关系系统。DB2,ORACLE接近全关系目标。3、关系系统的体系结构*不同关系系统的体系结构都符合三级模式结构。*三级模式:模式表,外模式视图,内模式物理存储文件*两级映象:模式与外模式,模式与内模式。映象

37、由关系系统自动提供与维护。第三章 关系数据库标准语言SQL教学目标:介绍目前已经成为关系数据库标准语言的结构化查询语言(SQL)。此内容是数据库应用的基础,学生需要熟练掌握之。教学重点:1.数据定义(表、视图、索引的定义)。表定义与完成性约束定义,数据定义与数据字典,索引能加快查询速度的原因,对视图操作与对基本表操作,视图及外模式。2.数据更新操作与数据完整性维护,数据更新操作与数据库一致性维护问题。3.SQL查询(单表查询、连接查询、嵌套查询、集合查询)相关关系代数表达。4.嵌入式SQL。教学难点:涉及多表的连接查询。教学过程:本章分6次讲述,每次2学时,每次主要讲述以下内容介绍如下:第一次

38、:介绍数据结构及完整性约束条件定义,数据更新操作与完整性维护问题。索引及其作用。单表查询(若干列、若干元组、对查询结果排序、使用集函数、对查询结果分组)。第二次:连接查询(等值与非等值连接查询、自身连接查询、外连接查询、复合条件连接)。第三次:嵌套查询(带IN谓词查询、带比较运算符查询)。嵌套查询(带ANY或ALL谓词查询、带EXISTS谓词子查询),集合查询。第四次:数据更新,更新操作与数据库的一致性问题(通过数据库管理系统的事务功能解决,以及程序员如何编程解决)。第五次:视图。31 标准SQL语言核心功能的9个动词SQL功能动词数据定义CREATE,DROP,ALTER数据查询SELECT

39、数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOTE各个DBMS产品在实现标准SQL语言时各有差别,一般都作了某些扩充32数据定义数据定义的基本对象为表、索引、视图(导出表)操作对象操作方式创建删除修改表CREATE TABLEDROP TABLEALTER TABLE索引CREATE INDEXDROP INDEX视图CREATE VIEWDROP VIEW*基本表独立存在,不同的RDBMS产品,表的物理存储会有不同的方式:若干基本表存储于一个文件;一个表存储与一个文件。(小型DBMS如DBASE,一个基本表对应一个存储文件)*索引依附于基本表。其作用是为了加快数

40、据的访问速度。两类:聚簇索引与非聚簇索引*视图为导出表(基于基本表的虚表),只存储视图定义,不存放视图对应的数据,数据存放在导出视图的基本表中。(对视图操作最终通过视图的定义变为对基本表操作)*SQL数据定义语句3.2.1 定义、删除、修改基本表4、 举例例1:从以下3方面理清定义表的条件a 名、属性: student(no,name,sex,age,dept)b属性的域(即属性的数据类型)c 约束1) 主键(no)2) 参照(无)3) 自定义(由实际需要定)name( unique not null)sex(not null)age(10age10 and age150),dept char

41、(8)/ primary key(no) /表级约束);5、 一般格式1) 表定义内容(关系模式、完整性约束)*关系模式R(U,D,DOM,F)。F没有直接体现。*完整性约束结合前例进一步说明。2) 定义基本表的一般格式 CREATE TABLE (列名数据类型列级完整性约束条件 ,列名数据类型列级完整性约束条件 , );*格式说明:create table为关键字,表名由用户自定义,属性由逗号分割,结束符为;3) 最常用的数据类型(域)不同数据库系统支持的数据类型不完全相同(实际使用时需要查阅相关资料)。最常用的数据类型有:integer,float,date,char(n)等SQL SER

42、VER 支持以下数据类型二进制 binary(n) varbinary(n)字符型 char(n),varchar(n)日期及时间型 data datetime, 精确数值型 decimal(p,s), numeric(p,s) p表示整数位与小数位之和,s表示小数位近视数值型 float,real整形 int(integer)4字节 smallint 2字节 tinyint 1字节货币 money文本和图象 text image4) 完整性规则(1) 实体完整性不可少(NOT NULL UNIQUE)(2) 列级约束与表级约束的区别如果完整性约束涉及到该表的多个属性列,必须定义在表级上,否则

43、既可以定义在列级也可以定义在表级用SC表说明create table student_course( sno char(6) , cno char(6), grade int, primary key(sno,cno);(3) 自定义*非空约束(not null),*唯一约束(unique),(可NULL)(与primary key 的区别)*检查约束(check)*缺省约束DEFAULT。(4) 约束的定义的形式 在不同的数据库管理系统产品上某些地方有所不同,需要查相关产品的资料。(5) 外键约束student(no, name, sex , age , dept) /外码 deptdepa

44、rtment(dept, dept_name, location) /主码create table student(no char(6) primary key,name char(6),sex char(1),age integer,dept char(8) references department,/(dept),/列级约束/ constraint f_k foreign key (dept) references department,/(dept_code), / 表级约束);create table department( dept char(8) primary key, dep

45、t_name char(20), location char(20),);(6) 完整性检查过程*建表时完整性约束条件被存入系统的数据字典中*用户操作表中的数据时,由DBMS自动检查该操作是否违背所定义的完整性约束条件。5) 表(数据定义)内容的存储执行建表语句后,关系模式与完整性约束条件被存入系统的数据字典中6) 修改基本表*增加新列*删除完整性约束*修改列其一般格式为: ALTER TABLE ADD 完整性约束DROP MODIFY 列名数据类型;举例: drop table student; create table student ( dept_code char(8) primar

46、y key, name char(20) unique, sex char(1) );/增加新列alter table student add age integer not null;alter table student add age integer not null unique;/删除约束alter table student drop unique(name);/修改已经存在的列alter table student modify sex char(2) not null;/char(1)改为char(2),并加上约束7) 删除基本表(一般用得不多)drop table;drop

47、table student;3.2.2建立与删除索引(11_29)1、 索引的作用*建立索引是加快表查询速度的有效手段。*原理示例图:student(no,name,sex,age)*索引中记录索引项与其记录实际存放地址。*在查找某一记录(004号吕红)时,DBMS先通过索引文件找到相应记录的物理地址,通过物理地址找到记录内容。*实际的索引结构往往采用B+树结构。*索引依附于基本表*索引的使用,通过查询过程说明 select no,name,age from student where no=006;2、 索引的类别:唯一索引、非唯一索引、复合、和聚簇索引。1) 唯一索引、非唯一索引*唯一索引

48、:每个索引值只对应唯一的数据记录*非唯一索引:索引列存在重复值的索引(在建索引语句中不加UNIQUE,缺省情况)例CREATE UNIQUE INDEX in_name ON student(name);*SQL SERVER在带PRIMARY KEY约束或UNIQUE约束时自动创建一个唯一索引2) 复合索引:在几个字段上建立索引CREATE UNIQUE INDEX in_snocno ON sc(sno ASC,cno DESC);/升序,降序3) 聚簇索引:索引项的顺序与表中记录的物理顺序一致的索引组织。*显然,一个基本表上最多只能建立一个聚簇索引。(因物理顺序只有一个)*经常更新的列不

49、宜建立聚簇索引:导致记录物理顺序的变更,代价较大。3、 建立索引的一般格式CREATE UNIQUECLUSTERINDEX ON (,);4、 索引一经建立,就由系统使用和维护,不需要用户干预。如:Select from student where sno=98001;系统自动根据索引优化查找。5、 是否需要创建索引的考虑索引是有用的(可以加速数据访问速度。如没有索引,在查找一个主题的信息时,必须一次一页地扫描整个文本),但索引要耗用磁盘空间,并引起系统开销和增加维护的费用。在使用索引时要考虑以下事实和要点:*修改一个索引列上的数据时,要更新相关的索引*维护索引需要时间和资源,所以不要创建不

50、经常使用的索引*小表上的索引没有多少好处。6、 删除索引如果数据增加、删除、修改频繁,系统需要花费许多时间来维护索引,这时需要删除一些不必要的索引。DROP INDEX ;34 数据更新部分功能举例1、 表中插数据1) 插入整个元组:insert into b values(97006,mm,f,21,信电系);insert into b values(97007,nn,m,22,信电系);2) 插入部分属性insert into b(no,name) values(97006,mm,f,21,信电系);/ 出错(与前面元组主码同)3) 插入操作时的完整性检查(1)主键约束:不能插入主键属性值

51、相同的元组,主键属性值不能为空。 insert into b values(97006,mm,f,21,信电系); insert into b values(97007,nn,m,22,信电系); insert into b(no,dept) values(97006,信电系);/因为主键值相同不能插入 insert into b(name,sex,age,dept) values(nn,f,22,信电系);/主键属性为空,不能插入。(2)外键约束student(no, name, sex , age , dept) /外码 deptdepartment(dept, dept_name, lo

52、cation) /主码*被引用关系元组 insert into department values(1,信电系,教二楼); insert into department values(2,化工系,教二楼); select * from department;*外键取值 insert into s. values(97001,aa,f,21,null);/空值 insert into s. values(97002,aa,f,21,1);/被引用关系元组主属性值 insert into s. values(97003,aa,f,21,2); insert into s. values(97004

53、,aa,f,21,5);/出错(3) 检查约束drop table student;create table student(no char(6) primary key, name char(6), sex char(1), age integer check(age10), dept char(8) check(dept like %系),);insert into b values(97002,aa,m,27,信电系);/正确insert into b values(97002,aa,m,30,信电系);/错insert into b values(97002,aa,m,26,信电);/

54、错4) 插入操作中的索引维护2、 删除元组delete from b where ;3、 查看表中数据select * from b; 3.3 查 询330 查询实例数据库的建立1、 实例数据库的建立本节通过“学生课程”数据库实例说明SELECT语句的各种用法1) 本实例包括以下三个表:(注意关系模式与关系的区别)*学生表:Student(Sno,Sname,Ssex,Sage,Sdept);*课程表:Course(Cno,Cname,Cpno,Ccredit) *学生选课:SC(Sno,Cno,Grade) (1) 在DBMS管理下创建存放表的数据库文件。不同的DBMS创建文件的方法有所不同

55、。(2) 创建表drop table student;/删除,第一次建表时不需要。后同。create table student(sno int primary key, sname char(20), ssex char(1), sage int, sdept char(20);drop table course;create table course(cno int primary key, cname char(40), cpno int, ccredit int);drop table sc;create table sc(sno int, cno int, grade int, pr

56、imary key(sno,cno);2) 往表中插入元组insert into student values(97001,aa,f,22,信电系);insert into student values(97002,bb,f,21,信电系);insert into student values(97003,cc,f,20,信电系);insert into student values(97004,dd,m,22,信电系);insert into student values(97005,ee,m,21,信电系);insert into student values(97101,ee,m,18,化工系);insert into course values(1,计算机语言_pascal,6,null);insert into course values(2,操作系统_dos,6,1);insert into course values(3,数据库原理,6,2)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!