版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理2024/3/92本章内容提要概述数据库的基本概念,阐述数据库技术产生和发展的背景,说明了数据库系统的优点。数据模型是数据库系统的核心和基础。本章介绍三种常用的数据模型。概念模型也称信息模型,用于信息世界的建模,E-R模型是这类模型的典型代表,E-R方法简单、清晰,应用十分广泛。数据库系统的三级模式和两层映象系统结构。2024/3/93本章重点:数据库的基本概念;数据库系统的特点;数据模型及其三要素;概念模型与E-R方法;数据库系统的三级模式结构本章难点:数据库系统的特点数据库系统的三级模式结构2024年3月9日4今天需要掌握的内容:数据,数据库,数据库管理系统,数据库系统的概念。文件系统和数据库系统有什么不同?什么是数据结构化、数据的冗余度、数据独立性、数据的完整性?2024/3/91.1.1数据、数据库、数据库管理系统、数据库系统一、数据(DATA)
数据:描述事物的符号记录。
数据的语义:数据的含义。
数据和关于数据的解释是不可分的。例:学生档案(姓名、性别、出生年月、籍贯、所在系别、入学时间)张强男1982/01重庆计算机20012024年3月9日61.1.1数据、数据库、数据库管理系统、数据库系统二、数据库(DATABASE,简称DB)
数据库是长期存放在计算机内的、有组织的、可共享的数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性、并可为各用户共享。2024/3/91.1.1数据、数据库、数据库管理系统、数据库系统三、数据库管理系统(DATABASEMANAGEMENTSYSTEM,简称DBMS)
数据库管理系统是位于用户和操作系统之间的一层管理软件。它为用户和应用程序提供访问数据库(DB)的方法。
数据库管理系统应有的功能:
1、数据定义功能
(数据定义语言DataDefinitionLanguageDDL)
2、数据操纵功能
(数据操纵语言DataManipulationLanguageDML)
3、
数据库运行管理
4、
数据库的建立和运行管理
2024/3/91.1.1数据、数据库、数据库管理系统、数据库系统
四、数据库系统(DATABASESYSTEM,简称DBS)
数据库系统是指在计算机系统中引入数据库后的系统。
数据库系统的组成:
数据库(DB)、
数据库管理系统(及其开发工具)(DBMS)
应用系统、
人员(数据库管理员DBA和用户)
2024年3月9日9相互有关联关系的数据的集合DBDBMS管理数据库的系统软件完成某一功能的应用程序1应用程序2应用程序nDBAP1DBAP2DBAPnComputerSystemDBA2024年3月9日10数据库系统示意图
2024年3月9日11硬件操作系统DBMS应工发开用具应用系统数据库系统在计算机系统中的地位2024/3/91.1.2数据管理技术的产生和发展
数据库技术是应数据管理任务的需要而产生的。
数据处理------是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
数据管理------是对数据的分类、组织、编码、储存、检索和维护。是数据处理的中心问题。数据管理随着计算机硬件和软件的发展而不断发展。2024/3/91.1.2数据管理技术的产生和发展数据管理技术经历了三个阶段:
人工管理阶段(20世纪50年代中期以前)文件系统阶段(20世纪50年代后期到60年代中期)数据库系统阶段(20世纪60年代后期以来)2024/3/91.1.2数据管理技术的产生和发展一、
人工管理阶段特点:(1)数据不保存
(2)应用程序管理数据(3)数据不共享--数据是面向应用的,有大量冗余数据
(4)数据不具独立性2024年3月9日15访问访问访问数据1数据2数据n程序1程序2程序n人工管理阶段2024年3月9日16
1.1.2数据管理技术的产生和发展二、文件系统阶段特点:(1)数据可以长期保存(2)由文件系统管理数据(3)数据共享性差,冗余度大—文件是面向应用的(4)数据独立性差—是不具有弹性的无结构的数据集合,文件之间是孤立的,不能反映事物间联系。2024年3月9日17数据1数据2数据n存取方式程序1程序2程序n文件系统阶段2024年3月9日18
三、数据库系统阶段数据1统一存取数据2数据n程序2程序1程序n数据库系统阶段2024年3月9日191.1.2数据管理技术的产生和发展三者在以下特点的比较数据结构化数据共享度数据独立性数据管理者人工管理阶段无结构无共享、冗余度极大不独立,完全依赖于程序用户(程序员)文件系统阶段记录内有结构、整体无结构共享性差,冗余度大独立性差文件系统数据库系统阶段整体结构化共享性高,冗余度小数据独立性高数据库管理系统2024/3/91.1.3数据库系统的特点一、
数据结构化数据是面向全组织的。
整体数据结构化是数据库与文件系统的根本区别二、
数据的共享性高,冗余度低,易扩充三、
数据的独立性高(数据的物理独立性和逻辑独立性)四、
数据由DBMS统一管理和控制
DBMS提供以下几个方面的数据控制功能:(1)
数据的安全性(Security)保护(2)
数据的完整性(Integrity)检查(3)
并发(Concurrency)控制(4)数据库恢复(Recovery)
2024年3月9日21学号姓名性别系别年龄家庭出身籍贯政治面貌日期地点学历名课程号学号学分日期奖惩条目姓名与本人关系详细情况课程号课程
学生基本记录学生人事记录学生学籍记录学生选课记录奖惩情况记录家庭成员记录课程记录学生数据的组织2024年3月9日22今天需要掌握的内容:实体间联系的种类?数据模型的三要素概念模型及E-R表示方法2024年3月9日23模型:是现实世界特征的模拟和抽象。数据模型(DataModel):是一种模型,它是现实世界数据特征的抽象。数据模型的作用: 在数据库中用这个工具来抽象、表示和处理现实世界中的数据和信息。
数据模型是现实世界的模拟。2024年3月9日24数据模型应满足的要求:
一是能较真实地模拟现实世界;二是容易为人理解;三是便于在计算机上实现。
两类(两层)模型:
概念模型(信息模型):是按用户的观点对数据和信息建模,主要用于数据库设计。数据模型:是按计算机的观点对数据建模,主要用于DBMS的实现。
2024年3月9日25信息世界计算机世界现实世界问题概念模型数据模型抽象转换注意相应世界的术语现实世界中客观对象的抽象过程2024年3月9日261.2.1数据模型的组成要素一般讲数据模型是严格的一组概念的集合。这些概念精确地描述了: 系统的静态特征 系统的动态特性 完整性约束条件
数据模型的组成要素:数据结构数据操作数据的完整性约束
2024年3月9日271.2.1数据模型的组成要素一、数据结构 数据结构是所研究的对象类型的集合。这些对象是数据库的组成部分,一般可分为两类: 与数据类型、内容、性质有关的对象; 与数据之间联系有关的对象。
数据结构是对系统静态特性的描述。在数据库系统中通常按照数据结构的类型来命名数据模型。2024年3月9日28二、数据操作数据操作是对数据库中各种对象的实例允许的操作的集合,包括操作及有关的操作规则。
数据库主要有检索和更新(包括插入、修改删除)两大类操作。
数据操作是对系统动态性特性的描述。2024年3月9日29三、数据的约束条件数据的约束条件是一组完整性规则的集合。
l
完整性规则是给定的数据模型及其联系所具有的制约和依存法则,用以限定符合数据模型的数据库状态及状态的变化,以确保数据的正确、有效、相容。
l
数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。(通用) l
数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
(专用)2024年3月9日301.2.2概念模型
概念模型用于信息世界的建模,是现实世界的第一层抽象。
一、
信息世界的基本概念(1)
实体(Entity)客观存在的并可区别的事物称为实体。(2)
属性(Attribute)实体具有的某一特性称为属性。
(3)码(Key)唯一标识实体的属性集称为码。
(4)
域(Domain)
属性的取值范围称为该属性的域。
2024年3月9日311.2.2概念模型(5)实体型(EntityType) 具有相同属性的实体具有的共同的特征和性质。即:用实体名及其属性名集合来抽象和刻画同类实体如:学生(学号、姓名、性别、出生年月、系、入学时间)(6)实体集(EntitySet)同型实体的集合称为实体集。如全体学生即一个实体集。
注意区分:实体型属性 实体值属性值2024年3月9日321.2.2概念模型(7)联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系实体内部的联系通常指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。2024年3月9日331.2.2概念模型两实体之间的联系分为三类:1)
一对一联系(1:1)2)
一对多联系(1:N)3)
多对多联系(M:N)2024年3月9日34
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。一对一
一对多多对多三种联系的关系2024年3月9日351.2.2概念模型两个以上的实体之间也存在三类联系:1)
一对一联系(1:1)2)
一对多联系(1:N)3)
多对多联系(M:N)讲授课程教员参考书1mn三个实体型之间的联系2024年3月9日36供应供应商项目零件mnp供应商项目零件nmmmnn
三个实体型之间多对多的联系和三个实体型两两之间的多对多的语义不同2024年3月9日371.2.2概念模型同一个实体集内的各实体之间之间也存在三类联系:1)
一对一联系(1:1)2)
一对多联系(1:N)3)
多对多联系(M:N)职工领导1N2024年3月9日381.2.2概念模型二、概念模型的表示方法概念模型的表示方法中最著名也是最常用的是实体-联系方法(Entity–RelationshipApproach简称E-R图法)
E-R图的绘制:(1)
实体型:用矩形表示,矩形框内写明实体名(2)
属性:用椭圆形表示,并用无向边将其与相应的实体联接起来(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体联接起来,同时在并无向边旁标上联系的类型(1:1,1:N,M:N)特别注意:如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
2024年3月9日39例:某个工厂物资管理E-R图
(P19)供应供应商供应商号姓名电话号地址账号仓库仓库号面积电话号职工职工号姓名年龄职称库存量m零件零件号规格描述名称单价库存领导供应量项目开工日期预算项目号工作1n1mnnnp2024年3月9日401.2.3最常用的数据模型按数据结构的类型来命名数据模型.常用的有四种:l
层次模型(HierarchicalModel)l
网状模型(NetworkModel)l
关系模型(RelationalModel)l
面向对象型模型(ObjectOrientedModel)
非关系模型2024年3月9日41在非关系模型中,实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在非关系模型中转换成记录之间的两两联系。
非关系模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间一对多(包括一对一)的联系。联系的起点叫做双亲节点(Parent),联系的终点叫做子女节点(Child)。
RiRjLij双亲节点子女节点一对多(包括一对一)的联系名2024年3月9日421.2.4层次模型层次模型是用树形结构来表示各类实体以及实体间的联系。一、层次数据模型的数据结构
在数据库中定义满足以下两个条件的基本层次联系的集合称为层次模型。(1)
有且只有一个节点没有双亲节点,这个节点称为根节点;(2)
根以外的其他节点有且只有一个双亲节点。2024年3月9日43在层次模型中,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点。图中工厂结点为根结点,分厂、处、研究所为兄弟结点,是工厂结点的子女结点,班组、科、室均为叶结点。层次模型象一棵倒立的树,树中实体间的联系是单向的,由父结点指向子结点,且一对父子之间只有一种联系,且是父对子的一对多联系。工厂处研究所分厂科室车间班组层次模型示例2024年3月9日44在层次模型中,每个结点表示一个记录类型,记录(类型)之间的联系用结点之间的连线(有向边)表示,这种联系是父子间的一对多类型。因此,层次模型使得层次数据库系统只能处理一对多的实体联系。每个记录类型可包含若干个字段,记录类型描述的是实体,而字段描述的是实体的属性。层次模型的基本特点:任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。2024年3月9日45二、多对多联系在层次模型中的表示l
用层次模型表示多对多联系,必须先将其分解成一对多的联系。l
分解方法有两种:
冗余节点法:
优点:结构清晰,允许结点改变存储位置.
缺点:需额外占用存储空间,有潜在的不一致性.
虚拟节点法:
优点:减少对存储空间的浪费,避免产生潜在的数据不一致性.
缺点:结点改变存储位置,可能引起虚拟结点中指针的修改.2024年3月9日46用层次模型表示多对多联系V.C学号姓名成绩课程号课程名V.SCSCS(c)虚拟节点法学生S学号姓名成绩S-C课程号课程名课程Cmn(a)多对多联系学号姓名成绩课程号课程名CS学号姓名成绩课程号课程名SC(b)冗余节点法2024年3月9日47二、层次模型的数据操纵与完整性约束l
层次模型的数据操纵主要有查询、插入、删除和修改。l
在进行数据操纵时,要满足层次模型的完整性约束条件。(1)插入节点时,必须知道该节点的父节点(根节点除外);(2)删除节点时,则相应的子女节点也将删除;(3)修改节点时,应修改所有相应记录以保证数据的一致性;2024年3月9日48三、层次数据模型的存储结构l
层次数据库中不仅要存储数据本身,还要存储数据之间的层次联系。其方法有:
1、邻接法:按照层次树前序穿越的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来体现(或隐含)层次顺序。
2、链接法:用指引元来反映数据之间的层次联系。
2024年3月9日49四、层次模型的优缺点优点:1、层次数据模型本身比较简单;记录间的联系通过指针,实现容易,查询效率高。2、对于实体联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型,不低于网状模型。3、层次数据模型提供了良好的完整性支持。缺点:1、在处理非层次联系的事物时显得很笨拙;2、对插入和删除操作的限制比较多;3、查询子女节点必须通过双亲节点;4、由于结构严密,层次命令趋于程序化。
2024年3月9日501.2.5网状模型
网状模型是用丛结构来表示各类实体以及实体间的联系。一、网状数据模型的数据结构
在数据库中,满足以下两个条件的基本层次联系集合称为网状模型:(1)
允许一个以上的节点无双亲;(2)
一个节点可以有多于一个的双亲。2024年3月9日51例:多对多的网状数据模型学号姓名系别学号课程号成绩课程课程号课程名学分学生
学生/选课/课程的网状数据库模式选课S-SCC-SC2024年3月9日52二、网状数据模型的操纵与完整性约束网状数据模型没有层次模型那样严格的完整性约束条件。三、网状数据模型的存储结构网状数据模型的存储结构关键在于如何实现记录之间的联系。常用方法:单向链接、双向链接、环状链接、向首链接等。
2024年3月9日53四、网状数据模型的优缺点优点:1、可以更直接地描述现实世界;2、具有良好的性能,存取效率高。缺点:1、结构比较复杂,特别是当环境变大时,数据库的结构会变得越来越复杂,不利于最终用户掌握。2、其DDL、DML语言复杂,用户不容易掌握注:DDL(DataDefinitionLanguage)DML(DataManipulationLanguage)3、记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,这样用户必须了解系统结构的细节,加重了编写应用程序的负担。2024年3月9日541.2.6关系模型关系模型是目前最重要的一种数据模型。关系模型是用关系(二维表)结构来表示各类实体以及实体间的联系。一、关系数据模型的数据结构关系模型的常用术语:l
关系(Relation):一个关系通常对应一张表;l
元组(Tuple):表中的一行即为一个元组;l
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名;
2024年3月9日551.2.6关系模型l
主码(Key):表中的某个属性组,它可以唯一确定一个元组;l
域(Domain):属性的取值范围;l
分量:元组中的一个属性值;l
关系模式:对关系的描述,一般表示为:
关系名(属性1,属性2,……属性n)注意:关系模型要求关系必须是规范化的,最基本的一条就是关系的每一个分量必须是一个不可再分的数据项,即不允许表中有表。2024年3月9日56学号姓名年龄性别系名年级95004王小明19女社会学9595006黄小明20男心理学9595008张小明18女法律学95………………元组关系属性列分量
主码
关系模式:学生(学号,姓名,年龄,性别,系,年级)2024年3月9日57二、关系数据模型的操纵与完整性约束l
关系数据模型的操作主要有:查询、插入、删除和修改数据。l
关系的完整性约束包括三大类:实体完整性、参照完整性、用户定义完整性。三、关系数据模型的存储结构l
在关系数据模型中,实体及实体间的联系都用表来表示。2024年3月9日58四、关系数据模型的优缺点优点:1、
建立在严格的数学概念基础上;2、概念单一,其数据结构简单、清晰,用户易懂易用;3、存取路径对用户透明,具有更高的数据独立性、更好的安全保密性,简化了程序员的工作和数据库开发建立的工作。缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型。
2024年3月9日59今天要掌握的内容
数据库系统的三层模式结构2024年3月9日60
从数据库管理系统看,常常采用三级模式结构,这是数据库管理系统内部的系统结构;从数据库最终用户看,数据库系统的结构分为集中式结构(包括单用户结构、主从式结构)、分布式结构、客户/服务器结构和并发结构。这是数据库系统外部的体系结构。
2024年3月9日611.3.2数据库系统的体系结构单用户数据库系统:特点:数据库系统装在一台机上,由一个用户独占,不同机间不能共享数据,数据大量冗余。
2024年3月9日62主从式结构的数据库系统:一个主机多个终端,事务由主机完成,终端共享数据。优点:结构简单,数据易于管理和维护。缺点:当终端用户数目增加到一定程度后,主机的任务会过于繁重,使性能大大下降,系统的可靠性不高。2024年3月9日63分布式结构的数据库系统
分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同接点上。优点:适应了地理上分散的公司、团体和组织对数据库应用的需求缺点:数据的分散存放,给数据的处理、管理与维护带来困难。进行远程访问时,系统效率明显会受到网络交通的限制。
2024年3月9日64客户/服务器结构的数据库系统客户/服务器结构的数据库系统可分为集中的服务器结构和分布的服务器结构。集中的服务器结构分布的服务器结构
优点:减少了网络的数据传输量,提高了系统的性能、吞吐量和负载能力;更开放、可移植性高。
2024年3月9日651.3.1数据库系统模式的概念l
数据模型中有“型”和“值”的概念。型是指对某一类数据的结构和属性的说明;值是型的一个具体赋值。例如:(学号,姓名,性别,系别,年龄,籍贯)——型(900201,李明,男,计算机,22,江苏)——值2024年3月9日661.3.1数据库系统模式的概念模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
2024年3月9日671.3.2数据库系统的三级模式结构数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。如图所示:数据库模式内模式应用A应用B外模式1应用C外模式2应用D应用E外模式3外模式/模式映象内模式/模式映象
数据库系统的三级模式结构2024年3月9日68一、模式(Schema)模式(逻辑模式),是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求
2024年3月9日69二、外模式(ExternalSchema)外模式(子模式Subschema)或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的表述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集,一个数据库可以有多个外模式。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
2024年3月9日70三、内模式(InternalSchema)内模式(存储模式StorageSchema),是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。2024年3月9日711.3.3数据库的二级映象功能与数据独立性
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。数据库管理系统在三级模式之间提供了两层映象: 外模式/模式映象
模式/内模式映象两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
2024年3月9日72一、外模式/模式映象对应于同一个模式可以有多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2024年3月9日73二、模式/内模式映象模式/内模式映象是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。数据库的存储结构改变时,由数据库管理员对各个模式/内模式的映象作相应改变,可以使模式保持不变。从而应用程序不必修改,保证了数据与程序的物理独立性,简称数据的物理独立性。
2024年3月9日74数据库的三级模式结构中,数据库模式即全局逻辑结构模式是数据库的中心与关键,独立于数据库的其他层次。因此,设计数据库模式结构时,首先确定逻辑模式。内模式依赖于逻辑结构模式,独立于外模式,也独立于具体的存储形式。外模式面向具体的应用程序,定义在逻辑模式之上,独立于内模式和存储设备。特定的应用程序在外模式描述的数据结构上编制依赖于特定的外模式,独立于模式和内模式。
2024年3月9日75数据库系统的组成部分有:
硬件平台及数据库 软件
人员
2024年3月9日76一、硬件平台及数据库(1)要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。(2)
要有足够大的硬盘等直接存取设备,存放数据库、有足够的磁盘作数据备份;(3)系统有较高的通道能力,以提高数据传送率。
2024年3月9日77二、软件(1)DBMS。DBMS是为数据库的建立、使用和维护配置的软件。(2)支持DBMS运行的操作系统。(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。(4)以DBMS为核心的应用开发工具。(5)为特定应用环境开发的数据库应用系统。
2024年3月9日78三、人员
开发、管理和使用数据库系统的人员主要有:数据库管理员(DBA)、系统分析员、数据库设计人员、应用程序员和最终用户。用户应用系统DBMSOS数据表示外模式模式内模式DBDBA,系统分析员图1.30
各种人员的数据视图应用程序员软件系统层次数据抽象级别2024年3月9日79有三方面:一、数据库管理系统软件的研制二、数据库设计三、数据库理论关系数据库系统是支持关系模型的数据库系统。关系模型组成:
关系数据结构、 关系操作集合、关系完整性约束。一、单一的数据结构——关系二、关系操作1.常用的关系操作包括:查询操作:选择、投影、连接、除交、并、差更新操作:增加、删除、修改2.关系操作的特点 集合操作方式。即操作的对象和结果都是集合。3.关系数据语言关系代数语言如ISBL
关系演算语言如APLHAQBE
具有关系代数和关系演算双重特点的语言SQL三、关系的三类完整性实体完整性, 参照完整性, 用户自定义完整性通用专用2.2.1关系1.域(Domain)
定义2.1
域(Domain)是一组具有相同数据类型的值的集合。2.笛卡儿积(CartesianProduct)
定义2.2
给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡儿积(CartesianProduct)为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈
Di,I=1,2,…,n,}其中每一个元素叫做一个n元组,或简称为元组。元素中每一个值di叫做一个分量。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为M=m1×m2×…×mn例1:设D1={1,2,3}D2={A,B}D1×D2={(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}
基数为3×2=6
写成二维表的形式为:
D1×D2=D1D21A1B2A2B3A3B123AB2.2.1关系3.关系(Relation)定义2.3D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,用R(D1,D2,…Dn)表示。这里R表示关系的名字。n是关系的目或度。关系中的每个元素是关系中的元组,通常用
t表示当n=1时,称为单元关系。当n=2时,称为二元关系。关系是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,对每列起一个名字,称为属性。n目关系必有n个属性。
若关系中的某一属性组的值能唯一地标识一个元组,则称该属为候选码(Candidatekey)。若一个关系有多个候选码,则选定其中一个为主码(Primarykey)。主码的诸属性称为主属性(Primeattribute)。不包含在任何候选码中的属性称为非主属性(Non-key
attribute)在数据库中我们要求关系的每一个分量必须是不可分的数据项。并把这样的关系称为规范化的关系,简称为范式。关系可以有三种类型:基本关系(又称为基本表或基表。它是实际存在的表)查询表(是查询结果对应的表)视图表(是由基本表和其它视图表导出的表,是虚表,不对应实际存储的数据)对关系的限定和扩充:(1)无限关系在数据库系统中是无意义的。限定关系数据模型中的关系必须是有限集合。(2)通过为关系的每个列附加一个属性名的方法取消元组的有序性。即(d1,d2,…di,dj,…dn)=(d1,d2,…dj,di,…dn)基本关系有以下性质:1.
列是同质的,即每一列中的分量是同一类型的数据,来自同一域。2.
不同的列可出自同一域,每一列称为属性,要给予不同的属性名。3.
列的顺序无所谓,即列的次序可以任意交换。4.
任意两个元组不能全同。5.
行的顺序无所谓,即行的次序可以任意交换。6.分量必须取原子值,
每一分量必须是不可分的数据项。2.2.2关系模式关系数据库中,关系模式是型,关系是值。关系是元组的集合。因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。定义2.4关系的描述称为关系模式(RelationSchema)。它可以形式化地表示为:
R(U,D,dom,F)其中:R为关系名;
U为组成该关系的属性名集合;
D为属性组U中属性所来自的域;
dom为属性向域的映象集合;
F为属性间数据的依赖关系集合。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的。关系是动态的、随时间不断变化的。在实际中,常常把关系模式和关系统称为关系,可以从上下文中加以区别。2.2.3关系数据库关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库有型和值之分。关系数据库的型:也称为关系数据库模式,包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值:是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。关系模型的完整性规则是对关系的某种约束条件。关系模型有三类完整性约束:实体完整性、参照完整性、用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性。
一、实体完整性(EntityIntegrity)规则2.1
实体完整性规则设属性A是基本关系R的主属性,则属性A不能取空值。对实体完整性规则的说明:1.
实体完整性规则是针对基本关系而言的。一个基本关系通常对应现实世界的一个实体集。2.
现实世界的实体是可区分的,即他们具有某种唯一性标识。3.
关系中由主码作为唯一性标识。主属性不能取空值。空值是“不知道”或“无意义”的值。例2:学生(学号,姓名,出生日期,班级,所属系,专业号)学生选课(学号,课程号,成绩)二、参照完整性(ReferentialIntegrity)
定义2.5设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码(ForeignKey),并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。关系R和S不一定是不同的关系。
目标关系S的主码KS和参照关系的外码F必须定义在同一个(或一组)域上。参照完整性规则是定义外码与主码之间的引用规则。规则2.2
参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系R和S不一定是不同的关系),则对于R中每一个元组在F上的值必须为:(1)或者取空值(2)或者等于S中某个元组的主码值。例3:学生R(学号,姓名,出生日期,班级,所属系,专业号)专业S(专业号,专业名)被参照关系或目标关系例4:学生(学号,姓名,出生日期,班级,所属系,专业号)课程(课程号,课程名,学分)选修(学号,课程号,成绩)例5:学生2(学号,姓名,出生日期,班级,所属系,班长)三、用户定义的完整性(User-definedIntegrity)
用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。关系代数是一种抽象的查询语言,是关系数据操纵的一种传统表达方式。关系代数是用对关系的运算来表达查询的。运算的三要素:运算对象、运算符、运算结果关系代数的运算对象:关系关系代数的运算结果:关系关系代数的运算符:集合运算符专门的关系运算符算术比较符逻辑运算符关系代数运算按运算符分类:传统的集合运算专门的关系运算集合运算符∪-∩并差交专门的关系运算符σ∏∞÷×选择投影连接除广义笛卡耳积算术比较符>≥<≤=≠逻辑运算符∧∨非与或2.4.1传统的集合运算定义2.6
关系相容设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则称关系R和关系S是关系相容的。设关系R和关系S是关系相容的,则可以定义以下基本操作:
1.
并(Union)
关系R和关系S的并记为:R∪S={t|t∈R∨t∈S}
其结果仍为n目关系。由属于R或属于S的元组组成。
2.差
(Difference)
关系R和关系S的差记为:R-S={t|t∈R∧t
S}
其结果仍为n目关系。由属于R而不属于S的元组组成。
3.交
(Intersection)
关系R和关系S的交记为:R∩S={t|t∈R∧t∈S}
其结果仍为n目关系。由既属于R又属于S的元组组成。关系的交可由关系的差表示,即R∩S=R-(R-S)2.4.1传统的集合运算
4.
广义笛卡尔积两个分别为n目和m目的关系R和关系S的广义笛卡尔积是一个元组(n+m)列的元组的集合。元组的前n列是R的一个元组,后m列是关系是的一个元组。如R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:
R×S={trts|tr∈R∧ts∈S}2.4.1传统的集合运算传统的集合运算是二目运算,包括并、交、差、广义笛卡尔集运算。它将关系看成元组的集合,其运算是从关系的“水平”方向,即行的角度来进行的。RSRSRSR×SRSR∩SR-SR∪S2.4.2专门的关系运算专门的关系运算包括选择、投影、连接和除等。几个记号。1.
设关系模式为R(A1,A2,…AN),它的一个关系设为R。t∈R表示t是R的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量。2.若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…AN中的一部分,则A称为属性列或域列。则t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。Ã则表示{A1,A2,…AN}中去掉{Ai1,Ai2,…,Aik}后剩下的属性组。3.R为
n目的关系,S为m目关系。tr∈R,ts∈S,trts
称为元组的连串。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。2.4.2专门的关系运算几个记号。4.给定一个关系R(X,Z),X和Z为属性组,定义,当t[X]=x时,x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x},表示R中属性组X上的值为x的诸元组在Z上分量的集合。例6:设有关系R(学号,姓名,性别)学号姓名性别0001张萍女0002王飞男0003李强男记:X为学号
Z为姓名,性别当t[X]=x=‘0001’时Zx=t[Z]={‘张萍’,‘女’}2.4.2专门的关系运算1.选择(Selection)
选择又称为限制。它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t|t∈R∧F(t)=‘真’}
其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。
F由逻辑运算符
、∧、∨连接各算术表达式组成。算术表达式的基本形式为:X1θY1。其中θ表示比较运算符,X1,Y1等是属性名,或为常量,或为简单函数。
属性名也可以用它的序号来代替。
2.4.2专门的关系运算选择运算是从关系R中选取使逻辑表达式F为真的元组,这是从行的角度进行的运算。σ2.4.2专门的关系运算2.投影(Projection)
关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
ΠA(R)={t[A]|t∈R}
其中A为R中的属性列。投影操作是从列的角度进行的运算。2.4.2专门的关系运算投影操作是从列的角度进行的运算。它不仅涉及到列,还涉及到行。Π2.4.2专门的关系运算3.连接(Join)
连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:
R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}
AθB
其中:A和B分别是R和S上度数相等且可比的属性组。
等值连接
R∞S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}
A=B
自然连接
R∞S={trts|tr∈R∧ts∈S∧tr[B]=ts[B]}RS∞θθ连接RS∞自然连接相同属性2.4.2专门的关系运算
4.除(Division)
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性列。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。除法结果是R中满足下列条件的元组在X属性列上的投影:记作:
R÷S={tr[X]|tr∈R∧ΠY(S)
Yx}
其中Yx为x在R中的象集,x=tr[X]
在以上介绍的八种运算中基本的运算是五种:
并、差、笛卡尔积、投影、选择其他的运算均可用这五种基本运算来表达。引进他们并不增加语言的能力,但可以简化表达。
SQL历史SQL:StructuredQueryLanguang1974年,由Boyce和Chamberlin提出1975-1979年,在SystemR上实现,由IBM的SanJose研究室研制
由于它功能丰富受到广泛欢迎,经不断修改、扩充和完善,SQL语言最终发展成为关系数据库的标准语言。SQL标准化有关组织ANSI(AmericanNaturalStandardInstitute)美国国家标准局ISO(InternationalOrganizationforStandardization)国际标准化组织有关标准SQL-86(1986年10月ANSI的数据库委员会X3H2,87年ISO通过)“数据库语言SQL”SQL-89“具有完整性增强的数据库语言SQL”,增加了对完整性约束的支持SQL-92(SQL-2)“数据库语言SQL”,是SQL-89的超集,增加了许多新特性,如新的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。SQL-99(SQL-3)
正在讨论中的新的标准,将增加对面向对象模型的支持意义:
自SQL成为国际标准语言后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件,这就使得大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。这个意义十分重大。SQL成为国际标准,对数据库以外的领域也产生了很大影响。SQL已成为数据库领域中的一个主流语言。3.1.1SQL特点
SQL语言的英语意义是结构查询语言(StructuredQueryLanguage)。实际上它的功能丰富。SQL功能:数据查询(DataQUERY);数据操纵(DataMANIPULATION);数据定义(DataDEFINITION);数据控制(DataCONTROL)SQL的主要特点是:1.综合统一(一体化的特点)
2.高度非过程化
3.面向集合的操作方式
4.以同一种语法结构提供两种使用方式
5.语言简洁,易学易用SQL语言的动词SQL功能动词数据查询SELECT数据定义CREATEDROPALTER数据操纵INSERTUPDATEDELETE数据控制GRANTREVOKE3.1.2SQL语言的基本概念SQL语言支持关系数据库三级模式结构。SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模式内模式SQL的数据定义功能包括三部分:定义基本表,定义视图和定义索引。视图是基于基本表的虚表,索引是依附于基本表的。因此SQL通常不提供修改视图和索引定义的操作。SQL的数据定义语句操作对象操作方式创建删除修改表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDROPINDEX3.2.1定义、删除、与修改基本表一、定义基本表语句格式为:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束][,<列名><数据类型>[列级完整性约束]]…[,表级完整性约束]);
功能:定义一个基本表,同时定义与该表有关的完整性约束条件。说明:(1)<表名>是所要定义的基本表的名字。
(2)一个表可以由一个或几个属性(列)组成。DB2SQL支持以下数据类型;INTEGER或INT全字长(31bits精度)的二进制整数SMALLINT半字长(精度为15bits)的二进制整数DECIMAL(p[,q])或DEC(p[,q])压缩十进制数,共p位,小数点后有q位.15>=p>=q>=0,q=0时可省略.FLOAT双字长的浮点数CHARTER(N)或CHAR(N)长度为n的定长字符串VARCHAR(N)变长字符串,最大长度为nGRAPHIC(N)长度为n的定长图形字符串VARGRAPHIC(N)变长图形字符串,最大长度为nDATE日期型,格式为YYYY-MM-DDTIME时间型,格式为HH.MM.SSTIMESTAMP日期加时间
例1:建立一个学生表Student,它由学号Sno,姓名Sname,性别Ssex,年龄Sage,所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,且姓名取值也唯一。
CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,Snamechar(8)UNIQUE,SsexCHAR(1),SageSMALLINT,SdeptCHAR(15));
系统执行上面的CREATETABLE语句后,就在数据库中建立一个新的空的“学生”表Student,并将有关“学生”表的定义及有关约束条件存放在数据字典中。例2:CREATETABLEs( snochar(6)notnull, snamechar(8)unique,ssexchar(2)default'男', sagesmallint, sdeptchar(2), sbirthdaydate,
primarykey(sno));列级完整性约束条件表级完整性约束条件3.2.1定义、删除、与修改基本表二、修改基本表语句格式为:ALTERTABLE<表名>[ADD<列名><类型>[完整性约束]][DROP<完整性约束名[(列名)]>|<列名>][MODIFY<列名><类型>];功能:修改指定的基本表。
ADD子句:用于增加新列和新的完整性约束条件;
DROP子句:用于删除指定的完整性约束条件;
MODIFY子句:用于修改原有的列定义(列名和数据类型)说明:不论基本表中原来是否有数据,新增加的列一律为空值。
SQL没有提供删除属性列的语句。例3:向S表增加:“入学时间”列,数据类型为日期型。
ALTERTABELSADDSCOMEDATE;
注意:新增加的属性列不能指定为NOTNULL。将年龄的数据类型改为半字长整数。
ALTERTABELSMODIFYSAGESMALLINT;
注意:修改原有的属性列定义有可能破坏已有数据。 删除姓名上的唯一值约束。
altertablesdropunique(sname);3.2.1定义、删除、与修改基本表三、删除基本表语句格式为:
DROPTABLE<表名>;功能:删除指定的基本表,同时表中的数据和在此表上建立的索引都将自动被删除掉。建立在此表上的视图虽仍然保留,但已无法引用。注意:执行删除操作一定要格外小心!3.2.2建立与删除索引
在基本表上建立索引是为了加快查询速度。一、建立索引语句格式为:
CREATE[UNIQUE][CLUSTER]INDEX索引名
on基本表名(列名[次序][,列名[次序]]....)[其他参数];
说明:索引可以建在一列或几列上,圆括号内是索引列的顺序说明表。(1)次序,指定了索引值排序的次序。可取ASC(升序)或DESC(降序),缺省值为升序。(2)UNIQUE表示每一索引值只对应唯一的数据记录,
(3)CLUSTER表示要建立的索引是聚簇索引,所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。例:CREATECLUSTERINDEXStusnameonStudent(Sname);
此类索引可以提高查询效率,聚簇索引可以在最常查询的列上建立,对于经常更新的列不宜建立。一个基本表上最多只能建立一个聚簇索引。例4为学生-课程数据库中的Student,Couse,SC三个表建立索引。其中Student表按学号升序建唯一索引,Couse表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。
CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCouse(Cno);CREATEUNIQUEINDEXSnoONSC(SnoASC,CnoDESC);二、删除索引语句格式为:DROPINDEX索引名;
功能:删除索引,同时把有关索引的描述也从数据字典中删去。例5:DROPINDEXXSNO;SQL的更新语句包括修改,删除和插入三类语句。
3.3.1.插入一.插入单个元组语句格式为:INSERTINTO表名[(字段名[,字段名]....)]VALUES(常量[,常量].......);功能:将新元组插入指定表中。说明:(1)在INTO中没有出现的属性列,将被置为空值;(2)在表定义时说明了NOTNULL的属性列不能取空值;(3)如果INTO子句没有指明任何列名,则新插入的记录必须在每个属性列上均有值。例6将一个新学生记录(95020,陈东,男,IS,18)插入到S表
INSERTINTOSVALUES('95020','陈东','男','IS',18);或
INSERTINTOS(sno,sname,ssex,sdept,sage)VALUES('95020','陈东','男','IS',18);空值的插入例7插入一条学生选课记录('95020','1')到SC表
INSERTINTOSC(sno,cno)VALUES('95020','1');或
INSERTINTOSC(sno,cno,grade)VALUES('95020','1',null);
3.3.1.插入二.插入子查询结果语句格式为:INSERTINTO表名[(字段名[,字段名].......)]
子查询;例8对于一个系,求学生的平均年龄,并把结果存入数据库中。
CREATETABLEDEPTAGE(SDEPTCHAR(15),AVGAGESMALLINT);INSERTINTODEPTAGE(SDEPT,AVGAGE)
(SELECTSD,AVG(SA)FROMSGROUPBYSD);3.3.2.修改数据
语句格式为:UPDATE表名
SET字段=表达式[,字段=表达式]....[WHERE谓词];
功能:修改指定表中满足谓词的元组;把这些元组按SET子句中的表达式修改相应字段上的值。一、单记录修改例9.
把学生S1的姓名改为WANGPINGUPDATESSETSName='WANGPING'WHERESNO='S1';
例10.多记录修改.
把所有学生的年龄增加1岁
UPDATESSETSage=Sage+1;二、多表的修改例11.
把学生S2的学号改为S9UPDATESSETSNO='S9'WHERESNO='S2';UPDATESCSETSNO='S9'WHERESNO='S2';
注意:修改多表数据时要保证数据库内容的一致性。三、带子查询的修改例12.
将计算机系全体学生的成绩置零
UPDATESCSETGRADE=0WHERE'CS‘=
(SELECTSDEPTFROMSWHERES.SNO=SC.SNO);3.3.3.删除数据
语句格式为:DELETEFROM表名
[WHERE谓词];
功能:删除指定表中的数据。说明:没有WHERE子句时表示删除此表中的全部记录,但此表的定义仍在数据字典中。一、单记录删除把学生‘S9’删除
DELETEFROMSWHERESNO='S9';
会产生什么问题吗?二、多记录删除删除所有学生选课记录
DELETEFROMSC;SC成为一个空表三、带子查询的删除将计算机系全体学生的选课记录
DELETEFROMSCWHERE'CS'=(SELECTSDEPTFROMSTUDEN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1.四冲程内燃机-机械原理课程设计任务及说明
- 劳动之于生活模板
- 《斗拱介绍婴幼儿版》课件
- 《走进心理健康教育》课件
- 《湖南省课程》课件
- 社区2019年初工作计划
- 合肥市庭院施工方案
- 县教育局201年政务公开工作计划
- 二年级上期语文教学工作计划范本
- 年度营业员工作计划模板
- 男模合同模板
- 外资企业技术合作合同模板
- 混血豺王课件
- 村民活动中心组织设计方案
- 2024年广东省深圳市中考语文一模试卷
- 2024年制冷空调系统安装维修工(五级)鉴定考试题库(浓缩500题)
- 2024年度企业形象策划与市场营销合同
- 低血糖护理新技术新进展
- 商用大楼外墙渗水修复方案
- DB41T2725-2024喷射玄武岩纤维混凝土施工技术规程
- 办公室安全知识培训
评论
0/150
提交评论