《数据库原理第03讲关系数据库.ppt》由会员分享,可在线阅读,更多相关《数据库原理第03讲关系数据库.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 关系数据库关系数据库主讲:吕震宇回顾数据库系统的组成w层次数据模型及网状模型的基本概念w关系数据模型的相关概念DBMS的功能、工作过程及实现方法数据库设计目标、步骤w概念模型的基本概念w通过E-R方法描述现实世界的概念模型数据库系统三级模式和两层映像的体系结构w数据库系统的逻辑独立性和物理独立性本章主要内容关系型数据库w关系模型w相关概念完整性约束w实体完整性、参照完整性、用户定义完整性关系数据语言w关系代数wALPHA、QBE重点难点重点w关系模型w完整性约束w关系代数难点w关系模型及相关概念w参照完整性w关系代数的除法运算w关系演算、谓词逻辑2.1 关系数据库概述关系数据库w是
2、采用关系模型作为数据的组织方式。关系模型(复习)w用二维表结构来表示实体及实体间联系的模型。w操纵:查询、更新(插入、修改、删除)。w完整性:实体完整性、参照完整性、用户定义完整性。w集合操作,操作的对象与结果都是关系。学号学号姓名姓名性别性别年龄年龄籍贯籍贯0101李勇男20江苏0102刘晨女19山东0103王明女20北京0199张立男18陕西学生人事记录表学生人事记录表关系名关系名元组元组属性属性主码主码域域分量分量关系模式:关系模式:学生(学生(学号学号,姓名,性别,年龄,籍贯),姓名,性别,年龄,籍贯)属性名属性名关关系系男,女男,女关系模型的3个组成部分1.关系数据结构w一张二维表,
3、描述现实世界中实体与实体间的各种联系。2.关系数据操作w操作包括:查询(选择、投影、连接、除、并、交、差等)。更新(增、删、改)。w特点:集合操作。3.完整性约束w实体完整性、参照完整性、用户定义完整性。关系数据语言关系数据语言w关系代数:关系代数:是用对关系的运算来表达查询要求的方式。w关系演算:关系演算:是用谓词来表达查询要求的方式。wSQL语言:语言:结构化查询语言。几个概念:wDDL:数据定义语言。wDML:数据操纵语言。wDCL:数据控制语言。2.2 关系数据结构1、关系w从集合论的角度上关系是如何得到的?SnameSsexSage张三男18李四女19王五男19Student穷举子集
4、笛卡儿积笛卡儿积集合集合关系关系张三张三男男1818张三张三男男1919张三张三女女1818张三张三女女1919李四李四男男1818李四李四男男1919李四李四女女1818李四李四女女1919王五王五男男1818王五王五男男1919王五王五女女1818王五王五女女1919 张张三三,李李四四,王王五五 男男,女女 1 18 8,1 19 9 SnameSsexSage张三张三男男1818李四李四女女1919王五王五男男1919StudentD1D2D31、关系1)域(Domain)w是一组具有相同数据类型的值的集合。w基数基数:域中所包含的值的个数。用m表示。例:wD1=张三,李四,王五 表示
5、姓名的集合;wD2=男,女 表示性别的集合;wD3=18,19 表示年龄的集合;2)笛卡尔积(Cartesian Product)w给定一组域D1,D2,,Dn,则笛卡尔积笛卡尔积定义为:D1D2Dn (d1,d2,dn)|diDi,i=1,2,n w每一个元素(d1,d2,dn)叫作一个n元组元组,简称元组元组。w元素中的每一个值di 叫作一个分量分量。w基数基数:m=mi(所有域的基数的乘积)。笛卡儿积笛卡儿积集合集合张三张三男男1818张三张三男男1919张三张三女女1818张三张三女女1919李四李四男男1818李四李四男男1919李四李四女女1818李四李四女女1919王五王五男男1
6、818王五王五男男1919王五王五女女1818王五王五女女1919 张张三三,李李四四,王王五五 男男,女女 1 18 8,1 19 9 域域3元组元组分量分量基数基数12322共共12行行D1D2D3D1D2D3笛卡儿积的特点w笛卡儿积实际上是一个二维表w表的框架由域构成w表的每一行对应就是一个元组 w每一列数据来自同一个域3)关系(relation)w笛卡儿积的一个子集叫做在域D1,D2,Dn上的关系。关系。w用R(D1,D2,Dn)表示。R为关系名关系名n是关系的目目或度度Di为第i个域。wN目关系必有n个属性。子集笛卡儿积笛卡儿积关系关系张三张三男男1818张三张三男男1919张三张三
7、女女1818张三张三女女1919李四李四男男1818李四李四男男1919李四李四女女1818李四李四女女1919王五王五男男1818王五王五男男1919王五王五女女1818王五王五女女1919SnameSsexSage张三张三男男1818李四李四女女1919王五王五男男1919Student关系名关系名Student(Sname,Ssex,Sage)n=3属性属性单元关系单元关系:目为1(n1)的关系二元关系二元关系:目为2(n2)的关系属性:w由于不同列可以对应一个域(工资、奖金)w对每列起一个名字,称为属性属性wn目关系必须有n个属性码(关键字)w能够用来唯一标识一个元组的属性(或属性组合
8、)。候选码(候选关键字)w若在一个关系中,存在有多个属性或属性组合都能唯一地标识该关系的元组,则这些属性或属性组合称为该关系的候选码。主码(主关键字)w候选码中的一个。学号课程号成绩01010101010101010102010201030103C1C1C2C2C2C2C3C39090808070708080学号姓名年龄性别所在系01010101010201020103010301040104张三张三李四李四王五王五赵六赵六2020181819192020男男女女女女男男计算机计算机计算机计算机计算机计算机计算机计算机主属性(码属性)w候选码的诸属性。非码属性(非主属性)w不能作为候选码的属性
9、。外码(外部键、外关键字)w当关系中的某个属性或属性组合,不是本关系的码或只是码的一部分,但却是另一关系的码,称该属性或属性组合为本关系的外码。外部关系码学号学号姓名姓名所在系所在系01010101010201020103010301040104张三张三李四李四王五王五赵六赵六计算机计算机计算机计算机计算机计算机计算机计算机课程号课程号课程名课程名学时数学时数C01C01C02C02C03C03C04C04高等数学高等数学数据结构数据结构操作系统操作系统数据库数据库100100707080806060学号学号课程号课程号成绩成绩010101010101010101020102010401040
10、1040104C01C01C02C02C04C04C04C04C03C0390908080909085857070学生关系学生关系课程关系课程关系选修关系选修关系外码外码外码外码主码主码主码主码主码主码基本关系(基本表、基表)w实际存在的表,是实际存储数据的逻辑表示查询表w查询结果对应的表视图表w由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据关系的三种类型基本关系的性质列是同质的w同一属性名下的诸属性值是同类型数据,且必须来自同一个域学号姓名性别年龄曾用姓01010101张三张三男男2020张明张明01020102李四李四女女1818李小小李小小王五王五010301031 1191
11、9王小二王小二01040104赵六赵六2 21981/2/281981/2/28赵利赵利 不同的列属性必须有不同的属性名。w不同的列可来自同一个域。学号学号姓名姓名性别性别年龄年龄姓名姓名01010101张三张三男男2020张明张明01020102李四李四女女1818李小小李小小01030103王五王五男男1919王小二王小二01040104赵六赵六女女1818赵利赵利姓名姓名2曾用名曾用名 列的次序无所谓,可以任意交换学号学号姓名姓名性别性别年龄年龄曾用名曾用名01010101张三张三男男2020张明张明01020102李四李四女女1818李小小李小小01030103王五王五男男1919王小
12、二王小二01040104赵六赵六女女2020赵利赵利学号学号姓名姓名曾用名曾用名性别性别年龄年龄01010101张三张三张明张明男男202001020102李四李四李小小李小小女女181801030103王五王五王小二王小二男男191901040104赵六赵六赵利赵利女女2020学号学号姓名姓名性别性别年龄年龄曾用名曾用名01010101张三张三男男2020张明张明01020102李四李四女女1818李小小李小小01030103王五王五男男1919王小二王小二01040104赵六赵六女女2020赵利赵利01010101张三张三男男2020张明张明 任意两个元组不能完全相同重复的元组重复的元组
13、行的次序无所谓,可以任意交换学号学号姓名姓名性别性别年龄年龄01010101张三张三男男202001020102李四李四女女181801030103王五王五男男191901040104赵六赵六女女2020学号学号姓名姓名性别性别年龄年龄01040104赵六赵六女女202001010101张三张三男男202001030103王五王五男男191901020102李四李四女女1818 不允许“表中套表”,即分量必须取原子值,每一个分量必须是不可分的数据项。父父母母孩子孩子大大小小李男李男丁女丁女李一李一李二李二王男王男肖女肖女王一王一父父母母孩子孩子李男李男丁女丁女李一李一李男李男丁女丁女李二李二王
14、男王男肖女肖女王一王一父父母母大孩大孩小孩小孩李男李男丁女丁女李一李一李二李二王男王男肖女肖女王一王一非规范化关系非规范化关系规范化关系规范化关系父父母母孩子孩子李男李男丁女丁女李一李一李二李二王男王男肖女肖女王一王一2、关系模式是对关系的描述。w关系模式必须指出这个元组集合的结构;w关系模式应当划出完整性约束条件。关系模式表示:R(U,D,DOM,F)wR:关系名;wU:属性名集;wD:域集;wDOM:属性向域的映象集合;wF:属性间数据的依赖关系集合。简记:R(U)或 R(A1,A2,An)例:Student关系模式的定义Student(U,D,dom,F)wU=sno,name,agew
15、D=CHAR,INTwDom=dom(sno)=dom(name)=CHAR,dom(age)=INTwF=snoname,snoage关系模式与关系的比较w关系=关系的型+关系的值w关系模式是型,关系是模式的值w关系模式是静态的、稳定的,关系是动态的、随时间不断变化的w关系模式和关系统称为关系关系数据库模式w是一组关系模式的集合w是对关系数据库结构的描述w关系数据库模式的值为关系数据库的内容(实例)3、关系数据库所有实体及实体之间的联系的关系的集合构成一个关系数据库。w由一组关系头的集合以及关系体的集合组成关系头的集合:关系数据库模式关系体的集合:关系数据库的内容w关系数据库 关系数据库模式
16、(型)关系数据库内容(值)2.3 关系的完整性1、实体完整性规则w若属性A是基本关系R的主属性,则属性A不能取空值。学号学号课程号课程号成绩成绩01010101010101010102010201030103C1C1C2C2C2C2C3C39090808070708080选修关系选修关系主属性主属性学号学号姓名姓名年龄年龄性别性别所在系所在系01010101010201020103010301040104张三张三李四李四王五王五赵六赵六2020181819192020男男女女女女男男计算机计算机计算机计算机计算机计算机计算机计算机学生关系学生关系主属性主属性主属性主属性职工号职工号部门编号部门
17、编号 F F姓名姓名98019801980298029803980398049804980598050101010102020303张三张三李四李四王五王五赵六赵六钱七钱七部门编号部门编号KsKs部门名称部门名称0101020203030404经理办公室经理办公室人事部人事部公关部公关部技术部技术部职工表职工表(R)部门表部门表(S)主码主码外码外码2、参照完整性规则w若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。w单表内也可以存在参照与被参照关系IDParentIDText1nullRoot21A131A242B1学号学号班长学号班长学号姓名姓名12张三张三22李四李四32王五王五42赵六赵六学生关系学生关系3、用户定义完整性w针对某一具体关系数据库的约束条件w反映某一具体应用所涉及的数据必须满足的语义要求wDBMS提供了定义和检查的机制。工号工号姓名姓名年龄年龄性别性别工龄工龄01010101张三张三4040男男202001020102李四李四2828女女5 501030103王五王五1515女女0 001040104赵六赵六3030男男9 9字段级规则字段级规则0=年龄年龄=18默认值默认值“男男”
限制150内