资源描述
数据库原理及应用
第1章 数据库系统概述
本章重点:
1.数据管理的发展阶段
2.数据库系统的组成
3.数据库系统的体系结构
4.数据库管理系统的功能
5.数据模型
6.数据库系统的发展
1.1信息、数据、数据处理和数据管理
一、数据与信息
1.信息
信息就是指有用的数据,信息通过数据作为载体。
2.数据
数据是指用来记录信息的各种符号。
数据不仅是指数值型的数据,而且还包括诸如文本、图形、图像以及视频等各类数据。
3.数据与信息的关系
从数据中提取有用的数据,称为信息,信息通过数据来反映。
二、数据处理和数据管理
1.数据处理
就是是指从数据中提取有用信息的过程。
包括对数据进行组织、收集、加工和数据进行管理各项工作。
2.数据管理
数据管理是数据处理的一项非常重要的工作。包括对数据进行加工、检索、处理等。
1.2数据库技术的产生和发展
数据管理的发展阶段分为三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
一、人工管理阶段
20世纪50年代中期以前,没有对应存储设备,软件也只有汇编语言,没有操作系统。数据和程序放在一起。数据不保存。
特点:
1)数据不长期保存
2)没有专门的软件来管理数据
3)数据和程序不具有独立性
4)数据的冗余度高(重复数据过多)
5)数据不共享
程序3
数据3
程序2
数据21
数据1
程序1
二、文件系统阶段
20世纪60年代后期以前。
出现了磁性存储设备,数据以文件名的方式长期保存在磁盘上。而且数据通过文件系统以文件名的方式进行访问。
特点:
1)数据长期保存
2)数据由文件系统来管理
3)数据与程序有了一定的独立性,没有真正的独立。
4)数据不能共享
5)数据冗余度高
文件系统
程序 2
数据文件2
数据文件1
程序 1
三、数据库系统阶段
20世纪60年代后期以后至今,在此阶段出现了专门管理数据的系统软件,叫数据库管理系统。
1.发展阶段:
1968年,美国IBM公司推了层次模型的数据库系统IMS系统。
1969年,美国数据系统语言协会,推出了以DBTG系统的网状模型的数据库每户。
1970年,美国IBM公司提出了关系数据模型。
2.数据库管理系统
DBMS,它是系统软件,是专门用来管理数据库的系统软件。
3.数据库管理系统的四大控制功能
1)数据的安全性控制
2)数据的完整性控制
通过设置一些完整性规则,保证存放到数据库中的数据必须是正确的,有效的,相容的。
3)并发性控制
多用户操作。
4)数据恢复控制
4.数据库系统阶段的特点
1)数据具有一定的结构
数据模型,层次模型,网状模型和关系模型,二维表。
2)数据的共享性高,数据冗余度低
班级(班号,班名,班导师)
学生(学号,姓名,性别,班号)
3)数据独立性高
所谓的数据独立性是指数据与应用程序之间的关系。也就是数据的逻辑结构,物理结构存储结构改变不影响应用程序。
数据独立性分为两种:
物理独立性:是指当物理结构发生改变,通过个性映射,使数据库的全体逻辑结构不变,从而影响不影响应用程序。
逻辑独立性:是指数据的全体逻辑结构发生改变,通过修改映射,使之局部逻辑结构不改变,从而应用程序不变。
基本表,视图
1.3数据库系统的组成
一、基本概念
1.数据库
简称为DB,是指存储在计算机存储器中的,有组织的相关信息的集合。
数据库不仅存放数据,而且存放数据之间的联系。
集成性、共享性
2.数据库管理系统
简称为DBMS,是专门用来管理数据库的系统软件。
3.数据库系统
简称为DBS,是指应用了数据库技术的计算机系统。
4.数据库应用系统
简称为DBAS,是指使用数据库技术编写的一个应用软件。财务管理软件。
数据库系统包括数据库和数据库管理系统,数据库管理系统管理数据库,数据库管理系统是数据库系统的核心。
DBS包括DB和DBMS,DBMS管理DB,DBMS是DBS的核心。
二、数据库系统的组成
数据库系统由以下5个部分构成
1.数据库(DB)
2.数据库管理系统(DBMS)
3.硬件系统
包括CPu,存储器等各种硬件设备。
4.软件系统
是指操作系统,开发工具等各种软件系统。
5.用户
用户主要分为终端用户、系统分析员、应用程序员和数据库管理员(DBA)
数据库管理员的工作:
1)参与数据库设计的全过程,决定数据库的结构。
2)决定数据库的存储结构
3)定义数据库的安全性和完整性
4)对数据库应用系统进行监测和运行以及维护。
1.4数据库系统的模式结构
从内部结构来看,三级模式。
从外部结构(用户角度)来看,主从结构、分布式结构,客户/服务器结构、浏览器/服务器结构。
一、数据库系统的内部体系结构
1.三级模式
分为内模式,模式和外模式。
1)内模式
又为存储模式,物理模式,是指数据库的存储结构的内部表示。只有一个,在此级上建立的数据库称为物理级数据库。
2)模式
又称为逻辑模式或概念模式,是指数据库中全体数据的逻辑结构和特征的描述。模式只有一个,在此级上建立的数据库称为概念级数据库。
通常是指在数据库管理系统中的基本表。
3)外模式
又称为用户模式,是三级结构中的最外层,它是用户使用到的那部分数据的局部结构的描述。
外模式有多个,在此级上建立的数据库称为用户级数据库。
通常是指在数据库管理系统中的视图。
内模式就是指数据库文件,模式对应于基本表,外模式对应于视图。
二、数据库系统的二级映像和数据的独立性
1.内模式/模式的映像
内模式映射为模式,它保证了数据的物理独立性。只有一个。
2.外模式/模式的映像
把模式映射为外模式,它保证了数据的逻辑独立性,有多个。
三、三级模式与二级映像的特点
1.保证数据的独立性
2.简化了用户的接口
3.便于数据共享
4.保证了数据保密性
1.5数据库系统的外部体系结构
从最终用户的角度来看。
1.单用户数据库结构
桌面型数据库系统,这种结构最简单的。不同计算机之间不能共享数据。
Access,visual foxpro6.0。
2.主从式结构的数据库系统
一台主机带多台终端。结构简单,易于维护。
3.分布式结构的数据库系统
物理上分布,逻辑上集中。
4.客户/服务器结构的数据库系统。
简称为C/S结构,client/server。
适合于在局部域网中。编写基于windows的应用程序。
服务器和客户机,
F/S,files/server,
文件/服务器结构:
5.浏览器/服务器结构
目前最流行的一种程序设计结构,B/S
服务器和客户机,客户机上只安装浏览器即可。
通过互联网,访问web服务器。
1.6数据库管理系统
它是一种管理数据库的系统软件。是数据库系统的核心。
一、数据库管理系统的功能
1.数据定义功能
数据定义语言(DDL),负责定义数据的模式,外模式和内模式三级模式结构。
2.数据操纵语言
包括对数据库进行添加、修改、删除数据和检索数据等操作。
DML。
3.数据库的运行管理功能
实现数据库四大控制功能。
4.数据库的建立和维护功能
5.数据通信接口
6.数据组织、存储和管理
二、数据库管理系统的组成
1.语言编译处理程序
DDL,DML,DCL,
2.系统运行控制程序
3.系统的建立,维护程序
4.数据字典
1.7数据模型
一、数据模型
就是指数据的组织结构,层次模型采用树形结构,网状结构有向图,关系模型采用二维有。
二、三个世界的划分。
1.三个世界
现实世界、信息世界、计算机世界
现实世界->(抽象)信息世界->(数字化)计算机世界
2.现实世界
现实世界就是客观存在的世界,现实世界中的各种事物之间都存在着一定的联系。
3.信息世界中的相关概念
信息世界是现实中的事物在人的大脑中的反映。
1)实体
现实世界中客观存在并且相互区别的事物,都称为实体。实体是一个个体。一个学生,一台电脑,一部电话。实体可以是具体的,也可以是抽象的。一次比赛,一堂课。
2)属性
用来描述实体的特征称为实体的属性。
学生的属性,学号,姓名,性别,出生日期等。
图书的属性,书号,书名,作者,出版社,数量,单价。
3)实体集
同类实体的集合,如学生实体集
4)实体型
具有相同属性的实体的所有属性的集合。
描述实体的结构。
表示为:
学生(学号,姓名,性别,出生日期)
实体型是静态的,实体集是动态的。
5)键
键也称为主键,主码,关系键,关键字,。
能惟一确定一个实体的属性或属性组合,称为实体的键
学生(学号,姓名,性别,出生日期)
图书(书号,书名,作者,出版社)
书号为主键
选课(学号,课程号,成绩)
学号+课程号
6)域
域就是指属性的取值范围,性别只能取男或女。
7)联系
现实世界中,事物内部以及事物之间有联系的。体现在信息世界中就是实体与实体之间和实体内部的联系。
只讨论实体与实体之间的联系。
给定两个实体,必须知道实体之间的联系类型。
联系分为三种类型:
.一对一的联系
实体集A中的一个实体在实体集B中至多有一个与之对应,反之亦然。
如:班级和班长,省和省会,国家和首都
.一对多的联系
实体集A中的一个实体在实体集B中有多个与之对应,而实体集B中的一个,至多与实体集A中的一个对应。
如:班级和学生,部门与职工,系与老师
。多对多的联系
实体集A中的一个实体在实体集B中有多个与之对应,而实体集B中的一个,也与实体集A中的多个对应。
如:课程和学生,图书和读者,教师和课程
一对一的联系表示为1:1
一对多的联系表示为1:m
多对多的联系表示为M:N
实体与实体之间的联系是有语义约定的。
4.计算机世界
信息世界中信息的数字化。
在计算机世界中常用的概念有:
1)字段
就是属性
2)记录
实体
多条就是实体集
3)文件
.mdf
.ldf
4.关键字
键,主键,关系键,关键字,主码。
三、数据模型的分类
数据模型分两类:
1.概念模型
属于信息世界的。与具体的数据库系统无关。
E-R模型。
2.逻辑模型
是属于计算机世界的,是按计算机的特征建模
逻辑模型主要有:层次模型,网状模型和关系模型。
四、实体联系模型及E-R模型
E-R模型称为实体-联系模型,E-R图。
已知有教务管理系统,有如下实体:
系,有系号,系名,系主任
班级,有班号,班名,班导师
学生,学号,姓名,性别,出生日期
课程,课程号,课程名,学分
教师,职工号,姓名,性别,职称,
有如下语义约定:一个系有多个班级,一个班级只属于一个系,一个班有多名学生,一个学生属于一个班级,一门课程有多个学生选修,一个学生可以选修多门课,一个老师属于一个系,一个系有多名教师。
试绘制该系统E-R图,并导出关系模式。
E-R图三要素,实体,属性,联系。
实体用矩形表示,
属性用椭圆形表示
联系用菱形表示
绘制E-R图时,一定要标上联系的类型以及多对多联系的联系的属性。
五、数据模型的三要素
包括数据结构、数据操作和数据的完整性约束
1.数据结构
静态特性,不改变。
2.数据操作
动态特性,改变。包括实体的添加,修改和删除。
3.数据的完整性约束
是保证添加到数据库中的数据必须是正确的、有效的,相容的。
三种:实体完整性,域完整性和参照完整性。
Primary key
1.8四种数据模型
逻辑模型分为层次模型,网状模型和关系模型
一、层次模型
用树形结构描述实体以及实体间的联系。
典型代表:ibm的IMS系统。1968.
特点:
1)有且只有一个结点没有双亲,称为根结点。
2)其他结点有且只有一个双亲,称为子结点
3)层次模型只能描述一对一,一对多的联系。
二、网状模型
用有向图(网状)描述实体与实体间的联系。
1969年,典型代表是:DBTG系统。
特点:
1)至少有一个结点没有双亲。
2)其他结点可以有多于一个的双亲。
3)网状结构可以描述一对一,一对多,多对多。
4)此结构过于复杂。
三、关系模型
1970提出的关系模型,
1.关系模型的概念
关系模型是指用二维表来描述实体以及实体的联系。
二维表是由若干行与若干行所构成的,行就是实体,列就是属性。
二维表也称为关系。
学号
姓名
性别
出生日期
2008001
张三
男
2008002
李四
男
2.概念
1)关系
一个关系就是一张二维表
2)元组
元组就是二维表中的行,也称为记录。实体。
3)属性
属性就是二维有中的列。也称为字段,分量。
4)域
属性的取值范围。
5)关键字
6)关系模式的描述
关系名(属性集合)
班级(班号,班名,班导师)
1.9数据库系统的发展
一、第一代数据库
层次模型和网状模型。
支持三级模式,独立的定义语言。
二、第二代数据库
关系模型
三、第三代数据库
面向对象的数据库
1.10数据库技术与其他相关技术的结合
分布式数据库:计算机网络技术与数据库技术的有机结合
演绎数据库、主动数据库、被动数据库、知识库:数据库技术与人工智能。
多媒体数据库:数据库技术与多媒体技术相结合。
数据库的研究领域:
1)数据库管理系统软件的研制
2)数据库设计
3)数据库理论
复习:
1.数据管理的发展阶段
2.数据库系统阶段的特点
3.数据的独立性以及分类
4.数据库管理系统的四大控制功能
5.数据库系统的相关概念
DB,DBMS,DBS,DBAS
6.数据库系统的组成
7.数据库管理员的责任
DBA
8.数据库系统的三级内部体系
9.数据库系统的外部体系结构
10.数据模型的三个世界
11.信息世界的相关概念
12.实体之间的联系类型
13.数据模型三种
14.关系数据模型
15.数据库系统的发展
第2章 关系数据库
本章重点:
1.理解关系模型的数据结构
2.掌握关系的键
3.掌握数据的完整性
4.关系代数
2.1关系模型的数据结构及其形式化定义
关系模型就是是一种比较简单的二维表结构。关系。
一、关系的形式化定义
1.域
域是一组具有相同数据类型的值的集合。值域,记为D
D1={张三,李四,王强}
D2={男,女}
D3={21,23,22}
D1就是姓名的域,d2就是性别的域。
2.笛卡尔积
在给定的一组域,则d1,d2,d3……的笛卡尔符号为D1*D2*d3的集合。
D1
D2
张三
女
李四
男
王强
男
列数是域的个数,基数。
笛卡尔积是可以用二维有来描述的。
商品编号={1001,1002}
商品名称={电脑,手机,电视}
数量={200,300,400}
商品编号
商品名称
数量
1001
电脑
200
1001
电脑
300
1001
电脑
400
1001
手机
200
1001
手机
300
1001
手机
400
……
……
……
3.关系
笛卡尔积的任一子集称为定义在域d1,d2,……的N元关系,R(d1,d2,d3,……dn)。
任何一个关系是由关系头、关系体构成的。
关系头:是由属性名组成的。是静态的。
关系体是:关系结构中的内容或数据,它是动态的。
二、关系的性质
1.关系中的每一个数据项都是不可分割的数据单元.
学号
姓名
性别
籍贯
省份
城市
2.关系中的每一个属性都具有相同的数据类型,域是相同的。
3.关系中的行的顺序无关紧要
4.关系中的列的顺序无关紧要
5.关系中不允许出现完全相同的元组
三、关系模式
任何一个关系都是由关系头和关系体构成的。关系头是静态的,关系体是动态的。
描述为:
R(U,D,dom,f)
R是关系名,U,属性名集合,D是属性的域,dom表示是属性向域的映像集合。F依赖关系。
R(U)
系(系号,系名,系主任)
班级(班号,班名,班导师,系号)
教师(职工号,姓名,性别,职称,工资,系号)
学生(学号,姓名,性别,出生日期,班号)
课程(课程号,课程名,学分)
选课(学号,课程号,成绩)
四、关系数据库与关系数据库模式
1.在关系数据模型中,实体以及实体之间的联系用(关系)表示。
2.关系数据库
关系数据库就是所有实体以及实体之间的联系所表示的关系的集合。
2.2关系的键与关系的完整性
一、候选键与主关系键
1.候选键
能唯一标识关系中元组一个属性或属性组合,称为候选键。能惟一确定一个元组的属性或属性组合。一个关系的候选键可以有多个。
学生(学号,姓名,性别,身份证号)
学生关系的候选键有:学号和身份证号
选课(学号,课程号,成绩)
选课的候选键有:学号+课程号
学生关系的候选键可不可以是:学号+姓名
候选键必须要满足两个条件:
1)唯一性
必须能惟一确定一个元组。
2)最小性
去掉一个属性就不能保证唯一了。
2.主关系键
也称为主键,主码,关系键,关键字,它是从一个关系中的候选键中选择一个作为添加、修改等操作的变量。称为主关系键。
一个关系只有一个。
一个关系必须要有一个主关系键。有了主键该属性的值是不允许重复的。
3.主属性和非主属性
主属性:包含在主关键字中的属性称为主属性。
学生关系的主属性:学号。
选课关系的主属性:学号和课程号。
非主属性:是指不包含在候选键中的属性称为非主属性。
学生(学号,姓名,性别,身份证号)
学生关系的候选键是:学号和身份证号
学生关系的主关系键:学号
学生关系的主属性:学号
学生关系的非主属性:姓名和性别
选课(学号,姓名,课程号,成绩)
约定,姓名没有重复。
候选键:学号+课程号,姓名+课程号
主关系键:学号+课程号
主属性:学号和课程号
非主属性:成绩
3NF
姓名即不是主属性也不是非主属笥。
全码:是指在最极端的情况下,所有属性组合是候选键,称为全码。
R(SNO,TNO,CNO)
它的候选键为:SNO+TNO+CNO这是一个全码
二、外部关系键
有关系R和关系S,属性X在R中为主键,而在S中不是主键,则在S中称为外部关系键。
外部关系键是用来联系两个关系的,而且外部关系键的属性值要参照关系R的主键值。
班级(班号,班名,班导师)
主键:班号
学生(学号,姓名,性别,班号)
学号关系的主键是学号
学生关系的外部关系键:班号
考核主键和外键。
选课(学号,课程号,成绩)
主键:学号+课程号
外键:学号和课程号
一个关系中的外键是允许为空的。外键是允许重复的。
三、关系的完整性
关系的完整性是指关系中的数据必须是正确的、有效的和相容的。
关系的完整性分为三类:实体完整性、域完整性和参照完整性。
1.实体完整性
实体完整性就是指关系中的主关键字不允许为空或部分为空,不允许重复。
关系中不允许出现重复元组。
实体完整性是通过主关系键和候选关系键实现的。在sql server中,通过primary key实现
聚集索引也就是主键索引。
2.参照完整性
参照完整性是指一个关系中的属性值参照另一个关系的主键的值。即如果另一个关系中没有的属性值,则不会在当前关系中出现。
通过外部关系键实现的,外键允许为空。
班级和学生,学生关系中的班号必须取字班级表中的班号或者为空。
Sql server中的关键字:foreign key references来实现。建立外键。
3.域完整性
就是用户自定义完整性,是针对关系中的某个属性进行值域的限制,是通过约束规则来实现的。
Sql server中是使用check关键字实现的。
定义表时。
2.3关系代数
数据模型三要素:数据结构、数据操作和数据的域完整性约束
关系运算的对象和结果都是一个关系。
从学生关系中查询性别为男的元组。
结果是性别为男的记录的集合。
关系运算一次一集合的方式,非关系运算是一次一记录。
一、关系代数的分类及其运算
关系代数是一种抽象的查询语言。
1.关系的运算对象和结果都是一个关系
一次一集合的方式
2.关系运算的分类
关系运算分为传统的集合去处和专门的关系运算。
传统的集合运算分为并运算、交运算、差运算和广义的笛卡尔积。
专门的关系运算分为选择、投影、连接和除
3.五种基本的运算
并、差、积、选取和投影
4.基本的运算符
1)集合运算符:
并∪,交∩,差-,广义笛卡尔积×
R∪S
2)专门的关系运算符
选择σ,投影πΠ,连接∞,自然连接*和÷除
3)算术运算符有:
>,<,>≥≤≠=
4)逻辑运算符:
∧与,∨或,┐非
二、传统的集合运算
传统的命令运算分为并、交、差、广义笛卡尔积。
并、交、差运算是双目运算,参与运算的是2个关系,且要求两个关系的属性是相同的。
笛卡尔积也是双目运算,参与运算的2个关系不要求属性相同。
1.并运算
两个结构相同的关系R和S的并,得到的是由属于R的元组和属于S的元组合并生成的一个新的关系。并去掉重复元组。
R
A
B
C
1
2
3
1
2
4
2
2
3
2
2
4
S
A
B
C
1
2
3
2
3
4
3
2
3
2
2
4
RUS的结果:
A
B
C
1
2
3
1
2
4
2
2
3
2
2
4
2
3
4
3
2
3
2.交运算
相同结构关系R和S的并运算,得到的是既属于R又属于S的元组所组成的一个新的关系。公共元组。
A
B
C
1
2
3
2
2
4
3.差运算
相同结构关系R和S的差,得到的是只属于R而不属于S的元组构成。R中独有的。
记作:R-S
但R-S与S-R是不同的。
R-S
A
B
C
1
2
4
2
2
3
R∩S=R-(R-S)=S-(S-R)
4.广义笛卡尔积
不要求两个关系的结构相同,两个分别为M目和N目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。
广义的笛卡尔积得到的结果不去掉重复属性和重复元组。
过程是:将两个关系的属性累加构成一个更宽的关系结构。然后将R的第一个元组与S中的每个元组组合,生成新的元组。再拿R的第2个元组再进行组合。
R(A,B,C)
S(B,D,E)
R×S(A,B,C,B,D,E)
R
A B C
1 1 1
2 2 2
3 3 3
S
B D E
1 2 2
2 3 3
4 4 4
R×S
A B D B D E
1 1 1 1 2 2
1 1 1 2 3 3
1 1 1 4 4 4
2 2 2 1 2 2
2 2 2 2 3 3
2 2 2 4 4 4
3 3 3 1 2 2
3 3 3 2 3 3
3 3 3 4 4 4
三、专门的关系运算
专门的关系运算分为选取,投影,连接,自然连接和除。
选取和投影都是单目运算符。一个关系。
连接,自然连接和除是双目运算答,2个关系,且不要求结果是相同的。
1.选取
就是选择操作,从关系R中查询满足条件的元组所组成的一个新的关系。它是从关系行的角度进行的操作。得到的关系的结构不变,元组减小。
关系代数的格式为:
σF(R)
其中F是条件表达式,R是关系名。
例1:从学生关系中,查询性别为男的元组。
σ性别=’男’(学生)
对应的select语句为:
Select * from 学生 where 性别=’男’
例2:从教师关系中,查询性别为男的职称为教授的元组。
σ性别=’男’∧职称=’教授’(教师)
select * from 教师 where 性别=‘男’ and 职称=’教授’
2.投影
关系R上的投影是表示从关系R的属性中选择若干列所组成的一个新的关系。生成的关系属性发生了改变,元组没变。
投影是一种从列的角度进行的一种操作。
记作:
∏属性名表(关系名)
属性名表各属性之间用,间隔,同时,属性靛可以使用属性在关系中的位置表示。第一列就是1,第二列就是2。
学生(学号,姓名,性别,出生日期)
例1:查询学生的学号、姓名、性别
∏学号,姓名,性别(学生)
∏1,2,3(关系名)
一个查询不仅是选择或投影,有可能是选择和投影的结合。
例2:查询性别为男的学生的学号,姓名。
∏学号,姓名(σ性别=’男’(学生))
选择和投影同时出现,先选择后投影,选择放在内,投影放在外。
对应select语句:
Select 学号,姓名 from 学生 where 性别=’男’
3.连接
连接是双目运算符,是从两个关系的广义笛卡尔积中选择满足条件的元组组成的一个新的关系。
连接不去掉重复属性,不去掉重复元组。
记作:
R∞S
F
F是连接条件。
根据连接条件的运算符,连接分为:
大于连接
小于连接
等值连接。
R∞S
R.B=S.B
R
A B C
1 1 1
2 2 2
3 3 3
S
B D E
1 2 2
2 3 3
1 4 4
A R.B C S.B D E
1 1 1 1 2 2
1 1 1 1 4 4
2 2 2 2 3 3
4.自然连接
自然连接就是在广义笛卡尔积的基础上,选出同名属性上相等的元组,再进行投影,去掉重复属性。
R*S
A R.B C D E
1 1 1 2 2
1 1 1 4 4
2 2 2 3 3
自然连接就是一种去掉重复属性的等值连接。
等值连接与自然连接的区别:
1)等值连接不要求相同属性名的属性相等。
而自然连接要求必须是同名属性的等值连接。
2)等值连接不去掉重复属性,而自然连接去掉重复属性。
5.除
除运算也是二日运算符,关系R与关系S的除,两个关系属性在一个值域,得到一个新的关系是S在R上的投影,元组是分量。
R(A,B,C,D)
S=(C,D,E)
R÷S(A,B)
总结:
1.关系模式的形式化定义,笛卡尔积。
2.关系的性质
3.关系的键
候选键,主关系键,外键,主属性,非主属性,全码。
4.关系的完整性约束
5.关系代数的运算分类、运算符、五种基本运算
6.掌握传统集合的运算和专门的关系运算,必须给定送给,能写出运算的结果,对于专门的关系运算,指定相应的要求,会写关系代数表达式和对应select语句。
复习:
1.关系的形式化定义
笛卡尔积。
2.关系的定义
关系头和关系体构成的。
关系头:关系属笥的组合
关系体:元组的组合。
3.关系模式,关系数据库模式
关系名(属性集合)
关系数据库模式:是由多个关系所构成的一个集合。
4.关系的键
候选键、主关系键、主属性、非主属性、全码、外部关键字
5.关系的完整性
实体完整性,域完整性以及参照完整性
6.关系的性质
5个性质
7.关系运算的分类
8.关系运算的各种运算符
9.关系的基本五种运算
10.传统的集合运算
并,交,差,广义笛卡尔积
11.专门的关系运算
一定会写关系代数表达式,并转换为select语句。
选择,投影,连接,自然连接和除。
第4章 关系数据库理论
本章重点:
1.不合理的关系会造成的异常
2.函数依赖以及函数依赖的特性和它的分类
3.关系的范式
4.关系的规范化
4.1规范化问题的提出
一、规范化理论的主要内容
在一个给定的应用系统中,到底设计多少个关系模式?一个关系模式中有多少个属性?各关系之间的联系是什么?
关系规范化理论研究的内容有:函数依赖、范式和关系模式的分解。
函数依赖是核心,范式是模式分解的标准。
二、不合理的关系模式存在的异常
学生(学号,姓名,性别,系号,系名,系主任,课程号,课程名,成绩)
此关系表示的实体有:学生,系,课程。
实体与实体之间的联系有:
学生和系:多对一。
学生和课程:多对多
学生关系的主键:学号+课程号
学号
姓名
性别
系号
系名
系主任
课程号
课程名
成绩
1
1
1
1
1
1
1
1
89
1
1
1
1
1
1
2
2
60
2
2
2
1
1
1
1
1
63
该关系存在着以下异常:
1.插入异常。
对学生关系,如果该学生入学,但没有选修课程,则学生信息无法添加。因为主键的课程号不允许为空。
对该关系,如果系刚成立,尚未有学生 ,系的信息无法插入。违反了实体的完整性。主键不允许为空。
2.删除异常
当一个系的学生全部毕业,则系的信息将随之删除。
3.更新异常
当一个系的系主任发生变化,则要修改整个系的所有学生的系的信息。
4.数据冗余度大
对于以上学生关系,就应该将各实体进行分离,由学生专门存放学生的信息,由系专门存放系的信息,由课程存储课程的信息,再由选课存放学生的选课信息。
从而各关系已经成为一个合理的关系模式:
合理的关系模式满足的条件:
1)尽可能少的数据冗余
2)没有插入异常
3)没有删除异常
4)没有更新异常
给定的任何一个关系模式在任何情况下都是一个好的关系模式,不是,在一定的情况下是好的关系模式。
4.2函数依赖
一、数据依赖
是指在一个关系模式中,各属性之间相互依赖,相互制约的联系,称为数据依赖。
S(sno,name,sex)
Sno->name
Sno->sex
数据依赖分为函数依赖,多值依赖和连接依赖。我们只讨论函数依赖。
二、函数依赖
设关系模式R(U),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对给定的任何一个元组X的值,都能确定一个Y的值。称为X决定Y,Y依赖于X。
记住:X->Y
学生(学号,姓名,性别,系号,系名,系主任,课程号,课程名,成绩)
学生关系存在的函数依赖有:
主键:学号+课程号
学号->姓名
学号->性别
学号->系号
系号->系名
系号->系主任
课程号->课程名
(学号,课程号)->成绩
以上的集合称为F函数依赖集。
图书(书号,书名,作者,出版社号,出版社名,联系人,读者号,姓名,性别,借书日期,还书日期)
主键:书号+读者号
F={书号->书名,书号->作者,书号->出版社号,出版社号->出版社名,出版社号->联系人,读者号->姓名,读者号->性别,(书号,读者号)->借书日期,(书号,读者号)->还书日期}
三、平凡函数依赖和非平凡的函数依赖
1.平凡函数依赖
给对关系模式R(U),X和Y是U的子集,而Y是X的子集,一定存在X->Y,此种依赖称为平凡的函数依赖。
(学号,课程号)->学号
这里不讨论。
2.非平凡的函数依赖
给定关系模式R(U),X和Y是U的子集,且Y不是X的子集,如果存在X->Y,此种依赖称为非平凡的函数依赖。
学号->姓名
函数依赖不是关系模式R的某个或某此关系实例的约束条件,而是关系R之下的一切可能的关系实例要满足的条件。
函数依赖是语义范畴的概念。
约定。
四、函数依赖与属性之间的联系类型的关系
1.如果属性之间是一对一的联系,必有X->Y,同理Y->X,记作:X<->Y。
约定姓名不重复。学号->姓名,姓名->学号.记作:
X<->Y
2.如果属性之间是一对多的联系,必有多方决定一方,学号和系号,学号->系号。
3.如果属性之间是多对多的联系,则不存在函数依赖。
比如:学号和课程号。
五、函数依赖的逻辑蕴涵
就是根据已知依赖关系,判断另外的一些函数依赖是否成立。
定义:设F是关系模式R(U)上成立的函数依赖集合,X和Y是U的子集,X->Y,如果从F中能导出X->Y,称为X->Y是F的逻辑蕴涵。
F={学号->姓名,学号->性别,学号->系号,系号->系名,系号->系主任,课程号->课程名,(学号,课程号)->成绩}
从中:学号->系号,系号->系名推导出:学号->系名,。
六、函数依赖的推理规则
1.自反律
一组属性函数决定它的所有子集。这是一种平凡函数依赖。
(学号,课程号)->学号
(学号,课程号)->课号
2.增广律
如果X->Y,有属性Z,必然存在XZ->YZ。
3。传递律
X->Y,Y->Z,推导出X->Z
4.合并律
X->Y
X->Z
X->YZ
5.分解律
x->YZ
x->Y
x->z
七、函数依赖的分类
分为完全函数依赖,部分函数依赖和传递函数依赖。
1.完全函数依赖
是指设有关系模式 R(U),X,Y是U的子集,如果存在X->Y,但给定任何一个X的子集X’,都不存在着X’->Y,则称为Y完全依赖于X。
只有决定因素为多属性时才讨论是完全还是部分。如果决定因素是单属性一定是完全函数依赖。
学号->姓名:完全函数依赖
(学号,课程号)->姓名
存在学号->姓名,此种函数依赖是部分,而不是完全。
2.部分函数依赖
有关系模式R(U),X和Y是U的子集,如果X->Y,且给定X的子集x’,x’->Y,则称Y部分依赖于X。
(学号,课程号)->姓名
学号->姓名
3.传递函数依赖
有关系模式R(U),X,Y,Z是U的子集,如果存在X->Y,y->Z,则存在X->Z,此种依赖称为传递函数依赖。
4.2关系模式的范式
关系规范化的基本思想就是解决关系模式中数据冗余、各种异常现象,这要求关系必须要满足一定的条件。
范式:是指一个关系要达到的标准和条件。
范式分为:1NF,2NF,3NF,BCNF,4NF和5NF。
各种范式都是在上一级范式的基础上。
如果属于3NF,则一定是2NF,如果是BCNF一定是3NF。
一、第一范式
记作:1NF,它是一种最基本的范式。
1NF表示如果关系模式R中的每一个属性均为简单属性,每一个属性都不可再分的。关系模式R属于1NF。
学生(学号,姓名,性别,系号,系名,系主任,课程号,课程名,成绩)
此学生关系各属性均不能再分,所以该关系满足第1范式,但该关系不是一个合理的关系模式,因为存在着数据冗余,各种异常。
先确定它的主键:学号+课程号
非主属性:除学号和课程号外其他都是非主属性。
(学号,课程号)->姓名
学号->姓名
以上关系达到1NF。
必须对该关系模式进行分解,分解的原则是一事一地的原则,表示一个实体和实体的联系都表示为一个关系。
二、第二范式
如果关系模式R属于1NF,且每一个非主属性都完全依赖于R的主键,则称为R属于第2范式。
就是指关系中不存在部分函数依赖
对1NF进行分解,消除部分函数依赖,使之达到第2范式。
学生(学号,姓名,性别,系号,系名,系主任,课程号,课程名,成绩)
分为:
展开阅读全文