第8章-数据库设计基础课件

上传人:沈*** 文档编号:241647770 上传时间:2024-07-12 格式:PPT 页数:85 大小:2.22MB
返回 下载 相关 举报
第8章-数据库设计基础课件_第1页
第1页 / 共85页
第8章-数据库设计基础课件_第2页
第2页 / 共85页
第8章-数据库设计基础课件_第3页
第3页 / 共85页
点击查看更多>>
资源描述
苏州大学计算机科学与技术学院苏州大学计算机科学与技术学院第第8章章 数据库设计基础数据库设计基础苏州大学苏州大学目录目录数据库系统概述数据模型关系代数123关系数据库语言SQL4苏州大学苏州大学目录目录*数据库设计与管理*数据库安全技术56苏州大学苏州大学8.1数据库系统概述数据库系统概述苏州大学苏州大学1人工管理阶段人工管理阶段*8.1.1数据库系统的发展数据库系统的发展到8.1.2苏州大学苏州大学2文件系统阶段文件系统阶段*8.1.1数据库系统的发展数据库系统的发展到8.1.2苏州大学苏州大学3数据库系统阶段数据库系统阶段*8.1.1数据库系统的发展数据库系统的发展到8.1.2苏州大学苏州大学8.1.2数据库系统的组成数据库系统的组成1应用程序应用程序应用程序是利用数据库系统资源开发的、解决管理与决策问题的各种应用程序是利用数据库系统资源开发的、解决管理与决策问题的各种应用软件。应用软件。2计算机支持系统计算机支持系统计算机支持系统是指用于数据库管理的硬件和软件支持平台。计算机支持系统是指用于数据库管理的硬件和软件支持平台。3数据库数据库数据库(数据库(Database,简称,简称DB)是数据的集合,它具有统一的结构形)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集合,并可被各个式并存放于统一的存储介质内,是多种应用数据的集合,并可被各个应用程序所共享。应用程序所共享。苏州大学苏州大学8.1.2数据库系统的组成数据库系统的组成4数据库管理系统数据库管理系统数据库管理系统(数据库管理系统(Database Management System,简称,简称DBMS)是数据库的管理机构,是一种系统软件,负责数据库中的数据组织、是数据库的管理机构,是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据操纵、数据维护、控制及保护和数据服务等。5人员人员包括设计、开发、维护和使用数据库系统的各类人员。包括设计、开发、维护和使用数据库系统的各类人员。苏州大学苏州大学*8.1.3 数据库系统的特点数据库系统的特点1数据的集成性数据的集成性2数据的高共享性与低冗余性数据的高共享性与低冗余性 3数据独立性数据独立性4数据统一管理与控制数据统一管理与控制苏州大学苏州大学*8.1.4数据库系统的内部体系结构数据库系统的内部体系结构1数据库系统模式的概念数据库系统模式的概念2数据库系统的三级模式结构数据库系统的三级模式结构3数据库系统的二级映像功能数据库系统的二级映像功能苏州大学苏州大学8.2数据模型数据模型苏州大学苏州大学8.2.1数据模型的基本概念数据模型的基本概念l数据模型是现实世界的模拟。数据模型是现实世界的模拟。l数据模型应满足数据模型应满足3个方面的要求:一是能比较真实地模拟现实世界;二个方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。是容易为人所理解;三是便于在计算机上实现。l一种数据模型要很好地满足这一种数据模型要很好地满足这3方面的要求,在目前尚很困难。方面的要求,在目前尚很困难。l在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。数据模型是数据库系统的核心和基础。型。数据模型是数据库系统的核心和基础。l数据模型通常由数据结构、数据操作和完整性约束数据模型通常由数据结构、数据操作和完整性约束3个要素组成。个要素组成。8.2.5关系模型苏州大学苏州大学*8.2.2 E-R模型模型概念模型是面向现实世界的,它的出发点是有效和自然地模拟现实世界,给出数据的概念化结构。长期以来被广泛使用的概念模型是E-R模型(Entity-Relationship model),也称为实体联系模型,在1976年由Peter Chen首先提出。该模型将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们间的两种基本联接关系,并且可以用图直观地表示出来。苏州大学苏州大学*8.2.2 E-R模型模型1E-R模型的基本概念模型的基本概念(1)实体(Entity)客观存在并能够相互区别的事物称为实体。例如,一个职工、一个学生、一个部门、一门课、学生的一次选课、老师与系的工作关系等都是实体。(2)属性(Attribute)实体所具有的某一特性称为属性。(3)联系(Relationship)l联系在信息世界中反映为实体内部的联系和实体之间的联系。l实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。苏州大学苏州大学*8.2.2 E-R模型模型2E-R模型三个基本概念之间的联接关系模型三个基本概念之间的联接关系(1)实体集(联系)与属性间的联接关系)实体集(联系)与属性间的联接关系l实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单位。位。l属性有属性域,每个实体可取属性域内的值,一个实体的所有属性取值组属性有属性域,每个实体可取属性域内的值,一个实体的所有属性取值组成了一个值集叫元组(成了一个值集叫元组(tuple)。)。l实体有型与值之别。一个实体的所有属性构成了这个实体的型,如学生档实体有型与值之别。一个实体的所有属性构成了这个实体的型,如学生档案中的实体,它的型是由学号、姓名、性别、出生日期、籍贯等属性组成,案中的实体,它的型是由学号、姓名、性别、出生日期、籍贯等属性组成,而实体中属性值的集合(即元组)则构成了这个实体的值。而实体中属性值的集合(即元组)则构成了这个实体的值。苏州大学苏州大学*8.2.2 E-R模型模型2E-R模型三个基本概念之间的联接关系模型三个基本概念之间的联接关系(2)实体(集)与联系)实体(集)与联系l实体集间可通过联系建立联系关系。一般而言,实体集间无法建立直实体集间可通过联系建立联系关系。一般而言,实体集间无法建立直接关系,只能通过联系才能建立联系关系。接关系,只能通过联系才能建立联系关系。l如教师与学生之间无法直接建立关系,只有通过如教师与学生之间无法直接建立关系,只有通过“教与学教与学”的联系才的联系才能在相互之间建立关系。能在相互之间建立关系。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型的图示方法模型的图示方法(1)实体集表示法在E-R图中用矩形表示实体集,在矩形内写上该实体集的名字。如实体集学生(student)、课程(course)可用图8-8表示。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型模型(2)属性表示法在E-R图中用椭圆形表示属性,在椭圆内写上该属性的名称。如学生有属性:学号(S#)、姓名(Sn)及年龄(Sa),它们可以用图8-9表示。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型的图示方法模型的图示方法在在E-R 图中用菱形(里面写上联系名)表示联系。如学生与课程间的图中用菱形(里面写上联系名)表示联系。如学生与课程间的联系联系SC。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型的图示方法模型的图示方法(4)实体集(联系)与属性间的联接关系)实体集(联系)与属性间的联接关系属性依附于实体集,因此,它们之间有联接关系。在属性依附于实体集,因此,它们之间有联接关系。在E-R图中这种关系可图中这种关系可用联接这两个图形间的无向线段表示(一般情况下可用直线)。用联接这两个图形间的无向线段表示(一般情况下可用直线)。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型的图示方法模型的图示方法属性也依附于联系,它们之间也有联接关系,因此也可用无向线段表示。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型的图示方法模型的图示方法(5)实体集与联系间的联接关系)实体集与联系间的联接关系在在E-R图中实体集与联系间的联接关系可用联接这两个图形间的无向线图中实体集与联系间的联接关系可用联接这两个图形间的无向线段来表示。段来表示。苏州大学苏州大学*8.2.2 E-R模型模型3E-R模型模型【例例8-1】由前面所述的实体集由前面所述的实体集 student,course 以及附属于它们的以及附属于它们的属性和它们间的联系属性和它们间的联系SC以及附属于以及附属于SC的属性的属性G构成了一个学生课构成了一个学生课程联系的概念模型,可用如下程联系的概念模型,可用如下E-R图表示。图表示。苏州大学苏州大学*8.2.3层次模型层次模型层次模型(层次模型(Hierarchical model)是最早发展起来的数据库模型。层次)是最早发展起来的数据库模型。层次模型的基本构造是树形结构,这种结构方式在现实世界中很普遍,如模型的基本构造是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。家族结构、行政组织机构,它们自顶向下、层次分明。苏州大学苏州大学*8.2.4网状模型网状模型l网状模型(网状模型(Network model)的出现略晚于层次模型。从图论观点看,)的出现略晚于层次模型。从图论观点看,网状模型是一个不加任何条件限制的无向图。网状模型在结构上比层网状模型是一个不加任何条件限制的无向图。网状模型在结构上比层次模型好,不像层次模型那样要满足严格的条件。次模型好,不像层次模型那样要满足严格的条件。l在实现中,网状模型将通用的网络拓扑结构分成一些基本结构。一般在实现中,网状模型将通用的网络拓扑结构分成一些基本结构。一般采用的分解方法是将一个网络分成若干个二级树,即只有两个层次的采用的分解方法是将一个网络分成若干个二级树,即只有两个层次的树。树。l在网状模型的在网状模型的DBTG(Data base task group)标准中,基本结构简)标准中,基本结构简单的二级树叫系(单的二级树叫系(Set),系的基本数据单位是记录(),系的基本数据单位是记录(Record),相),相当于当于E-R模型中的实体(集);记录又可由若干数据项组成,相当于模型中的实体(集);记录又可由若干数据项组成,相当于E-R模型中的属性。模型中的属性。苏州大学苏州大学*8.2.4网状模型网状模型一个系的实例。一个系的实例。苏州大学苏州大学8.2.5关系模型关系模型1关系的数据结构关系的数据结构l关系模型采用二维表来表示,简称表。二维表由表框架(关系模型采用二维表来表示,简称表。二维表由表框架(Frame)及)及表的元组(表的元组(Tuple)组成。)组成。l一个一个n元表框架及框架内元表框架及框架内m个元组构成了一个完整的二维表。个元组构成了一个完整的二维表。l关系模型(二维表)对一个具体单位中客观对象所进行的结构描述,关系模型(二维表)对一个具体单位中客观对象所进行的结构描述,称为关系数据模式(简称关系模式)。关系模式的一般描述形式为:称为关系数据模式(简称关系模式)。关系模式的一般描述形式为:R(A1,A2,Ai,An)其中其中R为关系模式名,即二维表名,为关系模式名,即二维表名,Ai(1in)是属性名。是属性名。苏州大学苏州大学8.2.5关系模型关系模型1关系的数据结构关系的数据结构学生登记表(S)课程开设表(C)选课成绩表(SC)CNOCNAMELHOURSEMESTERCC112软件工程60春CS202数 据 库45秋EE103控制工程60春ME234数学分析40秋MS211人工智能60秋SNOSNAMEDEPARTSEXBDATEHEIGHTA041司亚琦自动控制男1986/8/101.7C005赵书林计算机男1987/6/301.75C008陈丽红计算机女1986/8/201.62C011陈璐计算机女1987/5/171.62M038梁梅霞应用数学女1988/10/201.65R098陈思思管理工程男1986/5/161.8SNOCNOGRADEA041CC11281A041ME23478A041MS21195C005CC11279C005CS20262M038ME23473R098CS20266R098MS21182苏州大学苏州大学8.2.5关系模型关系模型1关系的数据结构关系的数据结构三个表的逻辑结构都是二维表,每一张具体的二维表就是一个具体的关三个表的逻辑结构都是二维表,每一张具体的二维表就是一个具体的关系模式。其关系模式可分别表示为:系模式。其关系模式可分别表示为:S(SNO,SNAME,DEPART,SEX,BDATE,HEIGHT)C(CNO,CNAME,LHOUR,SEMESTER)SC(SNO,CNO,GRADE)在二维表中能唯一标识元组的最小属性集称为该表的候选码或候选键在二维表中能唯一标识元组的最小属性集称为该表的候选码或候选键(Candidate key)。)。从二维表的所有候选键中选取一个作为用户使用的键称为主键从二维表的所有候选键中选取一个作为用户使用的键称为主键(Primary key)或主码,一般主键也简称键或码。)或主码,一般主键也简称键或码。苏州大学苏州大学8.2.5关系模型关系模型1关系的数据结构关系的数据结构二维表一般满足下面7个性质:(1)元组个数有限性:二维表中元组个数是有限的;(2)元组的唯一性:二维表中元组均不相同;(3)元组的次序无关性:二维表中元组的次序可以任意交换;(4)元组分量的原子性:二维表中元组的分量是不可分割的基本数据项;(5)属性名唯一性:二维表中属性名各不相同;(6)属性的次序无关性:二维表中属性与次序无关,可任意交换;(7)分量值域的同一性:二维表属性的分量具有与该属性相同的值域。8.3关系代数苏州大学苏州大学8.2.5关系模型关系模型*2关系操纵关系操纵(1)数据查询用户可以查询关系数据库中的数据,包括一个关系内的查询及关系间的查询。(2)数据删除数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。(3)数据插入数据插入仅对一个关系而言,在指定关系中插入一个或多个元组。(4)数据修改数据修改是在一个关系中修改指定的元组与属性。苏州大学苏州大学8.2.5关系模型关系模型*3关系中的数据约束关系中的数据约束(1)实体完整性约束()实体完整性约束(Entity Integrity Constraint)该约束要求关系的主键中属性值不能为空值,这是数据库完整性的基本该约束要求关系的主键中属性值不能为空值,这是数据库完整性的基本要求。要求。(2)参照完整性约束()参照完整性约束(Reference Integrity Constraint)该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组,该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组,即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。(3)用户定义的完整性约束()用户定义的完整性约束(User defined Integrity Constraint)这是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具这是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。体应用中数据的语义要求。苏州大学苏州大学8.3关系代数关系代数苏州大学苏州大学8.3关系代数关系代数关系代数的运算可分为两类:(1)传统的集合运算:并、差、交和乘积。(2)专门的关系运算,即专门针对关系数据库设计的运算:投影、选择、连接和除。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。如表8-5所示。苏州大学苏州大学8.3关系代数关系代数 *1传统的集合运算传统的集合运算(1)并设关系R和S是同一关系模式下的关系,则R和S的并是由属于R或属于S的元组组成的集合。记作:如果和S有重复的元组,则只保留一个。苏州大学苏州大学8.3关系代数关系代数 *1传统的集合运算传统的集合运算(2)交设关系R和S是同一关系模式下的关系,则R和S的交是由既属于R又属于S的元组组成的集合。记作:(3)差设关系R和S是同一关系模式下的关系,则R和S的差是由属于R但不属于S的元组组成的集合。记作苏州大学苏州大学8.3关系代数关系代数 *1传统的集合运算传统的集合运算(4)笛卡尔积设关系R有m个属性、i个元组;关系S有n个属性、j个元组,则关系R和S的乘积是个有(m+n)个属性的元组集合。每个元组的前m个分量来自关系R的一个元组,后n个分量来自S的一个元组,且元组的数目有ij个。笛卡尔积运算又叫乘积。记作:其中,表示乘积运算所得到的新关系的元组由两部分组成的有序结构;由含有关系R的属性的元组构成;由含有关系S的属性的元组构成。苏州大学苏州大学8.3关系代数关系代数 *1传统的集合运算传统的集合运算苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算(1)选择选择运算是在关系R中选择满足条件F的所有元组组成的一个关系。记作:其中,F表示选择条件,它是一个逻辑表达式,取值为“true”或“false”。选择运算就是从R中提取能够使F条件成立的元组,是从行的角度进行的运算。苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算【例【例8-6】给定给定student关系如下左表所示,查询所有女生的基本情况关系如下左表所示,查询所有女生的基本情况如下右表所示。如下右表所示。SnoSnameSexageplace02001王明男21广东02005黄小英女女22湖北03035张小倩女20江西03061李刚男21湖北04009张珊女18浙江04027肖文男19福建SnoSnameSexageplace02005黄小英女22湖北03035张小倩女20江西04009张珊女18浙江苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算(2)投影)投影l投影运算是从一个关系中选取某些属性(列),并对这些属性重新排投影运算是从一个关系中选取某些属性(列),并对这些属性重新排列,最后从得出的结果中删除重复的行,从而得到一个新的关系。列,最后从得出的结果中删除重复的行,从而得到一个新的关系。l设设R是是n元关系,元关系,R在其分量在其分量(为为1到到m之间的整数,可不连续之间的整数,可不连续)上的投上的投影操作定义为:影操作定义为:即取出所有元组在特定分量上的值。即取出所有元组在特定分量上的值。苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算【例【例8-7】给定给定student关系如下左表所示,查询所有学生的学号、姓关系如下左表所示,查询所有学生的学号、姓名和年龄,查询结果如下右表所示。名和年龄,查询结果如下右表所示。SnoSnameSexageplace02001王明男21广东02005黄小英女22湖北03035张小倩女20江西03061李刚男21湖北04009张珊女18浙江04027肖文男19福建SnoSnameage02001王明2102005黄小英2203035张小倩2003061李刚2104009张珊1804027肖文198.4关系数据库语言苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算*(3)连接与自然连接()连接与自然连接(natural join)运算)运算连接运算也称为连接运算也称为 连接运算,这是一种二元运算,通过它可以将两个连接运算,这是一种二元运算,通过它可以将两个关系合并成一个大关系。设有关系关系合并成一个大关系。设有关系 R、S 以及比较式以及比较式 i j,其中其中i为为R中的中的域,域,j为为S中的域,中的域,含义同前。则可以将含义同前。则可以将R、S在域在域i,j上的上的连接记为:连接记为:它的含义可以用下式定义:它的含义可以用下式定义:苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算【例8-8】设有关系R、S分别如图表8-24(a),(b)所示,则 为图8-24(c)所示的关系,为如图8-24(d)所示的关系。苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算在实际应用中最常用的连接是一个叫自然连接的特例。它满足下面的条件:(1)两关系间有公共域;(2)通过公共域的相等值进行连接。设有关系R、S,R有域 ,S有域 ,并且,,与 分别为相同域,此时它们的自然连接可记为:苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算例【8-9】设关系R,S如图8-25(a)、(b)所示,则T=,如图8-25(c)所示。ABCD1234158324261147DE51647368ABCDE242642426811473(a)R(b)S(c)T苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算*(4)除运算)除运算如果将笛卡尔积运算看作乘运算的话,那么除运算就是它的逆运算。当关如果将笛卡尔积运算看作乘运算的话,那么除运算就是它的逆运算。当关系系R=ST时,可将除运算写成为:时,可将除运算写成为:RS=T或或R/S=T称称T为为R除以除以S的商(的商(quotient)。)。除法的定义虽然较复杂,但在实际中,除法的意义还是比较容易理解的。除法的定义虽然较复杂,但在实际中,除法的意义还是比较容易理解的。苏州大学苏州大学8.3关系代数关系代数2专门的关系运算专门的关系运算*(4)除运算)除运算【例例8-10】设关系设关系R、S和和Q如图如图8-26(a)、(b)、(c)所示,计算所示,计算RS的结果的结果如图如图8-26(d)所示,所示,RQ的结果如图的结果如图8-26(e)所示。所示。苏州大学苏州大学8.4关系数据库语言关系数据库语言SQL苏州大学苏州大学8.4关系数据库语言关系数据库语言SQL在关系数据库中普遍使用一种介于关系代数和关系演算之间的数据库操作语言SQL(Structured Query Language),即结构化查询语言。SQL不仅具有丰富的查询功能还具有数据定义和数据控制功能,是集查询、DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言)于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。苏州大学苏州大学*8.4.1 SQL的特点的特点1综合统一综合统一2高度非过程化高度非过程化 3用同一种语法结构提供两种使用方式用同一种语法结构提供两种使用方式 4语言简洁,易学易用语言简洁,易学易用 苏州大学苏州大学8.4.2 SQL语言的基本概念语言的基本概念1基本表(基本表(Base Table)2视图(视图(View)3存储文件存储文件 苏州大学苏州大学*8.4.3 SQL数据定义数据定义lSQL提供数据定义语言提供数据定义语言(DDL)。可根据关系模式定义所需的基本表。可根据关系模式定义所需的基本表。lSQL语句表示为:语句表示为:CREATE TABLE(完整性约束条件完整性约束条件,)此处此处表示可含有该子句,也可为空,按实际定义要求而定。表示可含有该子句,也可为空,按实际定义要求而定。其中其中是所要定义的基本表名字,每个基本表可以由一个或多个列是所要定义的基本表名字,每个基本表可以由一个或多个列组成。组成。定义基本表时要指明每个列的类型和长度,同时还可以定义与该表有关定义基本表时要指明每个列的类型和长度,同时还可以定义与该表有关的完整性约束条件,这些完整性约束与基本表的定义内容一并被存入的完整性约束条件,这些完整性约束与基本表的定义内容一并被存入系统的数据字典中。系统的数据字典中。苏州大学苏州大学8.4.4 SQL数据查询数据查询SQL数据查询的一般格式为:数据查询的一般格式为:SELECT ALL|DISTINCT 别名别名1,别名别名2FROM 表别名表别名1,表别名表别名2WHERE GROUP BY HAVING ORDER BY ASC|DESC说明:从说明:从FROM子句指定的关系(基本表或视图)中,取出满足子句指定的关系(基本表或视图)中,取出满足WHERE子句条件的元组,最后按子句条件的元组,最后按SELECT的查询项形成结果表。若有的查询项形成结果表。若有ORDER BY子句,则结果按指定的列的次序排列。若有子句,则结果按指定的列的次序排列。若有GROUP BY子句,则将子句,则将指定的列中相同值的元组都分在一组,并且若有指定的列中相同值的元组都分在一组,并且若有HAVING子句,则将分子句,则将分组结果中去掉不满足组结果中去掉不满足HAVING条件的元组。条件的元组。苏州大学苏州大学8.4.4 SQL数据查询数据查询1单表查询单表查询(1)单表无条件查询)单表无条件查询SELECT ALL|DISTINCT 别名别名1,别名别名2FROM 表别名表别名1,表别名表别名2说明:说明:若从一个关系中查询出符合条件的元组,结果关系中就可能存在重复元若从一个关系中查询出符合条件的元组,结果关系中就可能存在重复元组。组。DISTINCT表示每组重复的元组只输出一条元组;表示每组重复的元组只输出一条元组;ALL表示将所表示将所有查询结果都输出。默认为有查询结果都输出。默认为ALL。每个目标列表达式本身将作为结果关系列名,表达式的值作为结果关系每个目标列表达式本身将作为结果关系列名,表达式的值作为结果关系中该列的值。中该列的值。苏州大学苏州大学8.4.4 SQL数据查询数据查询苏州大学苏州大学8.4.4 SQL数据查询数据查询【例例8-13】查询所有学生的学号、姓名和年龄。查询所有学生的学号、姓名和年龄。SELECT sno,sname,age FROM student;【例例8-14】查询所有课程的基本情况。查询所有课程的基本情况。SELECT cno,cname,credit FROM course说明:说明:当所查询的列是关系的所有属性时,可以使用当所查询的列是关系的所有属性时,可以使用*来表示所显示的列,因此来表示所显示的列,因此等价于:等价于:SELECT*FROM course苏州大学苏州大学8.4.4 SQL数据查询数据查询为了增强查询功能,查询列中可以含有集函数。为了增强查询功能,查询列中可以含有集函数。SQL提供了许多函数,提供了许多函数,这里列出几个常见的函数:这里列出几个常见的函数:COUNT(*)统计查询结果中的元组个数统计查询结果中的元组个数COUNT()统计查询结果中一个列上值的个数统计查询结果中一个列上值的个数MAX()计算查询结果中一个列上的最大值计算查询结果中一个列上的最大值MIN()计算查询结果中一个列上的最小值计算查询结果中一个列上的最小值SUM()计算查询结果中一个数值列上的总和计算查询结果中一个数值列上的总和AVG()计算查询结果中一个数值列上的平均值计算查询结果中一个数值列上的平均值苏州大学苏州大学8.4.4 SQL数据查询数据查询【例例8-15】COUNT函数的使用。函数的使用。SELECT COUNT(*)FROM student 统计学生表中的记录数。统计学生表中的记录数。SELECT COUNT(place)FROM student 统计学生的籍贯(去掉空值)。统计学生的籍贯(去掉空值)。SELECT COUNT(DISTINCT place)FROM student 统计学生的籍贯种类统计学生的籍贯种类数。数。【例例8-16】求图求图8-29(c)中)中study表中学生的平均成绩、最高分、最低分。表中学生的平均成绩、最高分、最低分。SELECT AVG(grade)平均成绩)平均成绩,MAX(grade)最高分)最高分,MIN(grade)最最低分低分FROM study。查询结果如下:查询结果如下:平均成平均成绩最高分最高分最低分最低分78.39752苏州大学苏州大学8.4.4 SQL数据查询数据查询(2)单表带条件查询)单表带条件查询【例例8-17】查询图查询图8-29(a)中)中student表中籍贯是湖北的学生信息。表中籍贯是湖北的学生信息。SELECT*FROM student WHERE place=湖北湖北查询结果如下:查询结果如下:SnoSnameSexageplace02005黄小英黄小英女女22湖北湖北03061李李刚男男21湖北湖北苏州大学苏州大学8.4.4 SQL数据查询数据查询*(3)分组查询)分组查询带带GROUP BY子句的查询称为分组查询。子句的查询称为分组查询。【例例8-20】查询每一门课程的平均得分。查询每一门课程的平均得分。SELECT cno,AVG(grade)FROM studyGROUP BY cno查询结果如右表所示:查询结果如右表所示:*(4)排序查询)排序查询cnoAVG(grade)C0175.5C0283C0375C0473.5C0597苏州大学苏州大学8.4.4 SQL数据查询数据查询2连接查询连接查询连接查询是指两个或两个以上的关系表或视图的连接操作来实现的查询。连接查询是指两个或两个以上的关系表或视图的连接操作来实现的查询。SQL提供了一种简单的方法把几个关系连接到一个关系中,即在提供了一种简单的方法把几个关系连接到一个关系中,即在FROM子句中列出每个关系,然后在子句中列出每个关系,然后在SELECT子句和子句和WHERE子句中子句中引用引用FROM子句中关系的属性,而子句中关系的属性,而WHERE子句中用来连接两个关系子句中用来连接两个关系的条件称为连接条件。的条件称为连接条件。苏州大学苏州大学8.4.4 SQL数据查询数据查询2连接查询连接查询【例例8-23】查询籍贯为湖北的学生的学号、选修的课程号和相应的考试查询籍贯为湖北的学生的学号、选修的课程号和相应的考试成绩。成绩。该查询需要同时从该查询需要同时从student表和表和study表中找出所需的数据,因此需要使表中找出所需的数据,因此需要使用连接查询实现用连接查询实现SELECT student.sno,cno,gradeFROM student,studyWHERE student.sno=study.sno AND place LIKE 湖北湖北苏州大学苏州大学8.4.4 SQL数据查询数据查询2连接查询连接查询查询结果如下:查询结果如下:Student.SnoCnograde02005C018102005C036603061C045203061C0184苏州大学苏州大学*8.4.5 SQL数据更新数据更新1插入语句插入语句插入语句插入语句INSERT可将一个记录插入到指定的表中。可将一个记录插入到指定的表中。语句格式为:语句格式为:INSERT INTO (,)VALUES(,)其中,其中,指定要插入元组的表的名字;指定要插入元组的表的名字;,为要添加列值的列名序列;为要添加列值的列名序列;VALUES后则一一对应要添加后则一一对应要添加列的输入值。若未指明列名(和对应表达式)的那些列,在对应的记列的输入值。若未指明列名(和对应表达式)的那些列,在对应的记录中取空值(即其值处于未知状态,记为录中取空值(即其值处于未知状态,记为Null)。)。苏州大学苏州大学*8.4.5 SQL数据更新数据更新1插入语句插入语句【例例8-24】在学生表中插入一个学生记录(在学生表中插入一个学生记录(04027,肖文,男,肖文,男,19,福建)。,福建)。INSERT INTO studentVALUES(04027,肖文肖文,男男,19,福建福建)【例例8-25】在学习表中插入一个学生选课记录(在学习表中插入一个学生选课记录(04027,05)INSERT INTO study(sno,cno)VALUES(04027,05)本例中新插入的记录在本例中新插入的记录在grade属性列上取空值。属性列上取空值。苏州大学苏州大学*8.4.5 SQL数据更新数据更新2修改语句修改语句SQL中修改数据使用中修改数据使用UPDATE语句,用以修改满足指定条件元组的指定语句,用以修改满足指定条件元组的指定列值。满足指定条件的元组可以是一个元组,也可以是多个元组。列值。满足指定条件的元组可以是一个元组,也可以是多个元组。UPDATE语句格式为:语句格式为:UPDATE SET =,=WHERE 对指定基本表中满足条件的元组,用表达式值作为对应列的新值。对指定基本表中满足条件的元组,用表达式值作为对应列的新值。WHERE是可选的,如不选,则更新指定表中所有元组的对应是可选的,如不选,则更新指定表中所有元组的对应列。列。苏州大学苏州大学*8.4.5 SQL数据更新数据更新2修改语句修改语句【例例8-26】将数据库原理的学分改为将数据库原理的学分改为3UPDATE courseSET credit=3WHERE cname LIKE 数据库原理数据库原理WHERE条件中同样可以是复杂的子查询。条件中同样可以是复杂的子查询。苏州大学苏州大学*8.4.5 SQL数据更新数据更新3删除数据删除数据SQL提供了提供了DELETE语句用于删除每一个表中的一行或多行记录语句用于删除每一个表中的一行或多行记录DELETE语句的一般格式:语句的一般格式:DELETE FROM WHERE 其中,其中,WHERE 是可选的,如不选,则删除表中所有元组。是可选的,如不选,则删除表中所有元组。【例例8-28】删除籍贯为湖北的学生基本信息删除籍贯为湖北的学生基本信息DELETE FROM studentWHERE place LIKE 湖北湖北此查询会将籍贯列上值为此查询会将籍贯列上值为“湖北湖北”的所有记录全部删除。的所有记录全部删除。苏州大学苏州大学*8.4.6 SQL视图视图视视图图是是虚虚表表,其其数数据据本本身身并并不不存存在在于于数数据据库库中中,数数据据库库只只存存储储视视图图的的定定义义。由由于于视视图图是是外外模模式式的的基基本本单单位位,从从用用户户观观点点来来看看,视视图图和和基基本本表表是是一一样样的的。实实际际上上视视图图是是从从若若干干个个基基本本表表或或视视图图导导出出来来的的表表,因因此此当当基本表的数据发生变化时,相应的视图数据也会随之改变。基本表的数据发生变化时,相应的视图数据也会随之改变。SQL语言用语言用CREATE VIEW命令建立视图,其一般格式为:命令建立视图,其一般格式为:CREATE VIEW(,)AS(子查询)(子查询)苏州大学苏州大学*8.5数据库设计与管理数据库设计与管理苏州大学苏州大学8.5.1数据库设计概述数据库设计概述数数据据库库设设计计目目前前一一般般采采用用生生命命周周期期(Life Cycle)法法,即即将将整整个个数数据据库应用系统的开发分解成目标独立的若干阶段。库应用系统的开发分解成目标独立的若干阶段。苏州大学苏州大学8.5.2数据库设计的需求分析数据库设计的需求分析l需需求求分分析析是是数数据据库库设设计计的的第第一一阶阶段段,这这一一阶阶段段收收集集到到的的基基础础数数据据和和一一组组数数据据流流图图(Data Flow Diagram,简简称称DFD)是是下下一一步步设设计计概概念念结结构的基础。构的基础。l需需求求分分析析阶阶段段的的任任务务是是通通过过详详细细调调查查现现实实世世界界要要处处理理的的对对象象(组组织织、部部门门、企企业业等等),充充分分了了解解原原系系统统的的工工作作概概况况,明明确确用用户户的的各各种种需需求求,然后在此基础上确定新系统的功能。然后在此基础上确定新系统的功能。l分分析析和和表表达达用用户户的的需需求求,经经常常采采用用的的方方法法有有结结构构化化分分析析方方法法和和面面向向对对象的方法。象的方法。l结结构构化化分分析析方方法法采采用用自自顶顶向向下下、逐逐层层分分解解的的方方式式分分析析系系统统,用用数数据据流流图图表表达达数数据据和和处处理理过过程程的的关关系系,数数据据字字典典对对系系统统中中数数据据的的详详尽尽描描述述,是是各各类类数数据据属属性性的的清清单单。对对数数据据库库设设计计来来讲讲,数数据据字字典典是是进进行行详详细细的的数据收集和数据分析所获得的主要结果。数据收集和数据分析所获得的主要结果。苏州大学苏州大学8.5.3数据库概念设计数据库概念设计1数据库概念设计概述数据库概念设计概述数据库概念设计的方法有以下两种:数据库概念设计的方法有以下两种:(1)集中式模式设计法)集中式模式设计法l这是一种统一的模式设计方法,它根据需求由一个统一机构或人员设这是一种统一的模式设计方法,它根据需求由一个统一机构或人员设计一个综合的全局模式。计一个综合的全局模式。l这种方法简单方便,适用于小型或并不复杂的部门或单位,而对大型这种方法简单方便,适用于小型或并不复杂的部门或单位,而对大型的或语义关联复杂的单位不太适合。的或语义关联复杂的单位不太适合。苏州大学苏州大学8.5.3数据库概念设计数据库概念设计1数据库概念设计概述数据库概念设计概述(2)视图集成设计法)视图集成设计法l这种方法是将一个单位分解成若干个部分,先对每个部分作局部模式这种方法是将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成。设计,建立各个部分的视图,然后以各视图为基础进行集成。l视图集成设计法是一种由分散到集中的方法,它的设计过程复杂但能视图集成设计法是一种由分散到集中的方法,它的设计过程复杂但能较好地反映需求,适合于大型与复杂的单位,避免设计的粗糙与不周较好地反映需求,适合于大型与复杂的单位,避免设计的粗糙与不周到。目前此种方法使用比较多。到。目前此种方法使用比较多。苏州大学苏州大学8.5.3数据库概念设计数据库概念设计2数据库概念设计的过程数据库概念设计的过程使用使用E-R模型与视图集成法进行设计时,需要按以下步骤进行:首先选模型与视图集成法进行设计时,需要按以下步骤进行:首先选择局部应用,然后再进行局部视图设计,最后对局部视图进行集成得到择局部应用,然后再进行局部视图设计,最后对局部视图进行集成得到概念模式。概念模式。(1)选择局部应用)选择局部应用(2)视图设计)视图设计(3)视图集成)视图集成苏州大学苏州大学8.5.4数据库的逻辑设计数据库的逻辑设计1从从E-R图向关系模式转换图向关系模式转换2逻辑模式规范化及调整、实现逻辑模式规范化及调整、实现3关系视图设计关系视图设计苏州大学苏州大学8.5.5数据库的物理设计数据库的物理设计数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效地利用存储空间。的存取路径,以提高数据库访问速度及有效地利用存储空间。在现代关系数据库中已大量屏蔽了内部物理结构,因此留给用户参与物在现代关系数据库中已大量屏蔽了内部物理结构,因此留给用户参与物理设计的余地并不多。理设计的余地并不多。苏州大学苏州大学8.5.6数据库管理数据库管理1数据库的建立数据库的建立 2数据库的调整数据库的调整 3数据库的重组数据库的重组4数据库安全性控制与完整性控制数据库安全性控制与完整性控制5数据库的故障恢复数据库的故障恢复6数据库监控数据库监控苏州大学苏州大学*8.6数据库安全技术数据库安全技术苏州大学苏州大学8.6.1数据库安全概述数据库安全概述安安全全问问题题是是所所有有计计算算机机系系统统共共有有的的问问题题,并并不不是是数数据据库库系系统统特特有有的的。但但由由于于数数据据库库系系统统数数据据量量庞庞大大且且由由多多用用户户存存取取,安安全全问问题题就就显显得得尤尤为为突突出出。数数据据库库安安全全是是指指保保护护数数据据库库以以防防止止非非法法使使用用造造成成信信息息泄泄露露、更更改改或或破破坏坏。数数据据库库安安全全包包含含系系统统运运行行安安全全和和系系统统信信息息安安全全两两层层含含义义。系系统统运运行行安安全全包包括括用用户户是是否否具具有有合合法法权权利利、物物理理控控制制安安全全、硬硬件件运运行行安安全全、操操作作系系统统安安全全、灾灾害害及及故故障障恢恢复复、电电磁磁信信息息泄泄漏漏的的预预防防等等;系系统统信信息息安安全全包包括括用用户户口口令令鉴鉴别别、用用户户存存取取权权限限控控制制、数数据据存存取取权权限限控控制、方式控制、审计跟踪和数据加密等。制、方式控制、审计跟踪和数据加密等。苏州大学苏州大学8.6.2数据库的安全策略数据库的安全策略1数据保护数据保护(1)用户标识和鉴定)用户标识和鉴定(2)存取控制)存取控制(3)数据分级)数据分级(4)数据加密)数据加密苏州大学苏州大学8.6.2数据库的安全策略数据库的安全策略2数据的完整性数据的完整性3数据库并发控制数据库并发控制4数据库备份数据库备份5数据库恢复数据库恢复谢谢!Thanks!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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