ACCESS第2章关系代数讲解
- 格式:ppt
- 大小:255.51 KB
- 文档页数:3
第二章关系代数教学目的:本章实际上研究的是关系的运算。
学习目的:关系运算是设计关系数据库操作语言的基础,因为其中的每一个询问往往表示成一个关系运算表达式,在我们的课程中,数据及联系都是用关系表示的,所以实现数据间的联系也可以用关系运算来完成。
通过本章学习,应重点掌握:(1)关系数据库的基本概念;(2)如何用关系代数表达式来表达实际查询问题;(3)如何用元组演算表达式来表达实际查询问题;(4)如何用域演算表达式来表达实际查询问题;(5)如何将关系代数表达式转换为元组演算表达式或转换为域演算表达式。
了解和掌握关系数据结构中涉及到的域、笛卡儿积、关系模式等有关内容的含义;掌握关系的实体完整性和参照完整性的定义;掌握关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学重点:关系的实体完整性和参照完整性的定义;关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学难点:关系代数中的并、交、差、笛卡儿积运算,以及选择、投影和连接运算。
教学方法:实例法教学内容:如下:关系模型关系模型是一种简单的二维表格结构,每个二维表称做一个关系,一个二维表的表头,即所有列的标题称为一个元组,每一列数据称为一个属性,列标题称估属性名。
同一个关系中不允许出现重复元组和相同属性名的属性。
1.关系模型组成关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
关系操作分为两大部分如图所示。
2.关系操作的特点关系操作的特点是操作对象和操作结果都是集合。
而非关系数据模型的数据操作方式则为一次一个记录的方式。
关系数据语言分为三类: (1)关系代数语言:如ISBL ;(2)关系演算语言:分为元组关系演算语言(如Alpha ,Quel)、域关系演算语言(如QBE); (3)具有关系代数和关系演算双重特点的语言:如SQL 。
3.关系数据结构及其形式化定义 (1)域定义 域是一组具有相同数据类型的值的集合。
关系数据模型1.2关系数据库自20 世纪80年代以来,新推出的数据库管理系统几乎都支持关系数据模型,Access 就是一种关系数据库管理系统。
本节将结合Access来集中介绍关系数据库系统的基本概念。
1.2.1关系数据模型关系数据模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。
这种用二维表的形式表示实体一和实体一间联系的数据模型称为关系数据模型。
一、关系术语在Access中,一个“表”就是一个关系。
圈1.5给出了一张教师表,图1.6 给出了一张工资表,这是两个关系。
这两个表中都有唯一标识一名教师的属性——编号,根据教师编号通过一定的关系运算可以将两个关系联系起来。
1.关系—个关系就是一张二维表,每个关系有一个关系名。
在Access中,一个关系存储为一个表,具有一个表名。
对关系的描述称为关系模式,一个关系模式对应一个关系的结构。
其格式为:关系名(属性名1,属性名2,……,属性名n)在Access中,表示为表结构:表名(字段名1,字段名2,……,字段名n)2.元组在一个二维表(一个具体关系)中,水平方向的行称为元组,每一行是一个元组。
元组对应表中的一条具体记录。
例如,教师表和工资表两个关系各包括多条记录(或多个元组〉。
3.属性二维表中垂直方向的列称为属性,每一列有一个属性名,与前面讲的实体属性相同。
在Access中表示为字段名。
每个字段的数据类型、宽度等在创建表的结抅时规定。
例如,教师表中的编号、姓名、性别等字段名及其相应的数据类型组成表的结构。
4.域属性的取值范围,即不同元组对同一个属性的取值所限定的范围。
例如,姓名的取值范围是文字字符;性别只能从“男”、“女”两个汉字中取一;逻辑型属性婚否只能从逻辑真或逻辑假两个值中取值。
5.关键字其值能够唯一地标识一个元组的属性或属性的组合。
在Access中表示为字段或字段的组合,教师表中的编号可以作为标识一条记录的关键字。
由于具有某一职称的可能不止一人,职称字段不能作为唯一标识的关键字。
第2章关系数据库基本理论及数据库技术发展概述本章要点:数据模型:层次模型、网状模型、关系模型关系模型:关系代数、数据完整性、关系规范化数据模型的发展:面向对象数据模型数据库体系结构DBMS基本功能与常用DBMS简介数据库技术发展概述:分布式数据库系统、数据仓库、数据挖掘、XML2.1 数据模型概述数据模型是数据库技术中极为重要的组成部分,是DBMS的基础。
也是数据库系统开发设计的主要依据。
2.1.1 三种重要数据模型在数据库技术发展过程中有三种重要的数据模型,分别是层次模型、网状模型和关系模型。
1.层次模型与网状模型层次模型是最早的数据模型之一,依据层次模型建立的数据库称为层次型数据库,如IBM公司的IMS数据库管理系统是依据层次模型的。
在ER模型向层次模型转换时,实体型对应于记录型,实体集对应于记录结点。
层次模型用树型结构表示记录结点及记录型之间的联系。
层次模型的特点是:●有且仅有一个结点无父结点(该结点称为根结点);●其它结点有且仅有一个父结点。
父结点与子结点间是1:n的联系方式。
依据网状模型建立的数据库称为网状型数据库,DBTG系统是网状模型的代表。
在网状模型中也用记录结点表示实体集。
与层次模型不同的是,网状模型用图表示记录结点及记录型之间的联系,没有层次模型中对结点间联系的限制。
其特点是:●可有一个以上结点无父结点;●至少有一个结点有多于一个以上的父结点。
层次模型和网状模型是第一代的数据模型。
这两种模型的主要缺陷是表示实体与表示实体联系用不同的方法,使用比较复杂。
这两种数据模型目前在微机环境下已见不到,但在数据库技术发展过程中发挥了重要作用。
2.关系模型关系数据模型是目前最为重要和普遍使用的数据模型。
关系模型产生于1970年,经过多年的实践和发展,其理论已日臻完善。
在关系模型中实体的表示以及实体之间联系的表示只用关系一种方式,结构简单,操作方便。
关系模型建立在集合论之上,有坚实的数学理论基础。
第二章数据库和表数据库包含表热键:按住Alt键再按后面对应的字母主键(主要关键性字段):在设计中选中两行单元格→单击主键图标一.新建数据库:文件→新建→空数据库(选择保存位置、设置名称)二.新建表:在数据库中选表→使用设计器创建表→单击设计(字段名称:每一列的第一行)三.设置字段的取值范围:选表→单击设计→有效性规则(输入时汉字两边用【””】且一定要在英文状态下输入)(在数字与英文字母之间要加入空格键)四.表的关系类型{一对一【有(无重复)and有(无重复)】、一对多【有(无重复)and有(有重复)】、多对多【有(有重复)and有(有重复)】}五.给字段设计一个查阅向导:选表→单击设计→数据类型→查阅向导六.设置表的属性:单击表的左上角→格式→【字体、数据表的样式、行高、列宽(要选中列)、隐藏列、冻结列】七.建立两表之间的关系(以两张表相同的字段建立索引:选表→单击设计→找到索引):工具→关系(选中→拖拉→对准)八.对单元格中的数据进行排序:记录→排序(升序,降序) 记录→筛选→高级筛选/排序(对两项进行排序时只把第一项中相同的部分用第二项进行排序)九.筛选:记录→筛选(窗体筛选,选定内容,内容排除,高级筛选)对电话号码进行筛选例:电话尾数是8的〓在字段中输入【right(电话,1)】在条件中输入【8】第三章查询(不低于35分)一.创建查询:数据→查询→在视图中创建查询→设计二.查询分类:选择查询—交叉查询—生成表查询—更新查询—追加查询—删除查询三、追加查询:在选择全部信息后,其余的信息在“追加到”一栏均为空例1:根据学生信息表产生一个空表【生成表查询→*(全部信息)→学号处输入is null】例2:把学生信息表中的西安人追加到学生信息2中【追加到“学生信息2”→*→后面不追加】例3:找出年龄信息表中男生年龄最大的所有信息【在SQL语句中select后面加“TOP1”】四、查询的功能:选择字段—选择记录—编辑记录—实现计算—建立新表—给其它文件提供数据五、选择查询:带有输入条件查询:[提示字符自己键入]注:标点必须在英文状态下录入六、双击*:表示查找全部字段运算符:And : 4>=6 and 2<=8 (假) 有假为假,全真为真Or : 4>=6 or 2<=8 (真) 有真为真,全假为假例: 年龄=34年龄in (23,45,67,34)〓”23”or “45”or ”67”or ”34”(真)例: 年龄=34年龄between 20 and 60〓>=20 and <=60(真)例3:通配符:?:可以任意代替一个字符*:可以任意代替多个字符#:可以任意代替一个数字例: “张*”like “张三丰”(真)注:输入时为:like “张*”Is null :指定字段的值是否为空例: 姓名is null 即:选中姓名→条件内输入(is null)Is not null: 指定字段的值是否为不空注: null前只能使用is 来判断七、函数(不等号的写法:<>)Between值1 and 值2 :测试字段值是否在值1到值2之间〓>=值1 and <=值2Right (字段名,n):从字段名的右边取n个字符注:电话是文本,”8”必须用双引号Instr (字段名, ”字符1”):判断字段名中是否有字符1例:instr(【姓名】,”张”) 条件为:1In(值1,值2,…..值n):判断字段的值是否在值1…值n中Like “字符”Left([字段名],n):从字段名的左边取n个字符例:left([姓名],1) 条件为”张”Len(字段名):测试字段值的长度(是数值) 例:len([姓名]) 条件为3 即姓名中有3个字的是Mid([字段名],m起始位置,n长度):在字段中从m处取n个字符例:mid([姓名],1,1) 条件为”张”Date( ):系统当前日期(计算机的时间)year(日期):取出日期中的年份例:计算年龄〓年龄:year(date())-year(出生日期)八、计算查询和分组查询工具栏中单击总计或者右击一下选择总计 总计中选择统计类型注:字段的重命名为:新字段名: 原字段名(必须在英文状态下输入:)九、交叉表查询:查询→设计→单击右键→查询类型(选择查询、交叉表查询、生成表查询、更新表查询、追加表查询、删除查询)三要素:行标题,列标题,值十、Sql查询(Sql的含义:结构化查询语言)注: 结束时用; 作标记指定字段名前必须加表名格式::select 查找的字段名From 表名Where 查询的条件Group by 分组字段having 分组的条件Order by 排序字段;例1:找出学生信息表中性别为男,家在安康的人的学号(降序)、姓名(升序)、出生日期、电话Select 学生信息.学号,学生信息.姓名,学生信息.出生日期,学生信息.电话From 学生信息Where 学生信息.性别=”男” and 学生信息.地址=”安康”Order by 学生信息.学号desc,学生信息.姓名asc;例2:按照地址统计出各自的人数及平均年龄Select 学生信息.地址, count (学生信息.学号) as 人数, avg ( year ( date ())- year (学生信息.出生日期))as 平均年龄From 学生信息Group by 学生信息.地址;十一、分组与排序排序: order by 字段名asc(升序)|desc(降序)注:如果有多个字段,先按第一个字段排,当第一个字段中有重复值时再按第二个字段排分组:group by 分组字段having 分组条件总计—sum 平均值—avg 最大值—max 最小值—min 计数—count重命名: 原字段名as 新字段名十二、sql语言的功能数据的查询: select (查询)数据的定义: create (新建表) drop (删除表)alter (修改表)数据的操作: insert(插入记录) update(更新记录) delete(删除记录)新建表格式: create table 表名(字段名类型(长度))注:如有多个字段,多字段之间用,隔开只有字符型加长度字段类型: 数字—small int 日期-----datetime 货币----money 字符(文本)-----char十三、删除表格式: drop table 表名十四、修改表的格式: alter table 表名【Add字段名数据类型(长度) Alter字段名数据类型(长度)Drop字段名】注:每次只能修改一个字段十五、数据的插入格式:(数据的操作功能)insert into 表名(字段名1,字段名2) values (前面字段对应的值)例:insert into学生信息1(学号,性别,姓名,地址,出生日期,电话)values(1,”男”,”张三”,”安康”,#2010-2-9#,”12345”)注:字段类型如果是字符型,值的两边用”值”例: “张三”字段类型如果是日期型,值的两边用#值# 例:#2012-3-14#十六、更新记录的格式:Update 表名set 字段名=新值where 条件十七、删除记录的格式: Delete from 表名where 条件十八、设计子查询(嵌套查询)子查询:是包含在另一个选择或操作查询中的SQL select语句,可以在查询“设计网格”的“字段”行输入这些语句来定义新字段,或在“条件”行定义字段的查询条件。
第2章关系数据库设计理论本章学习目标关系数据库是目前各类数据库中最重要、最流行的数据库。
20世纪80年代以来,计算机软件厂商新推出的数据库管理系统产品几乎都是关系数据库,非关系系统的产品也大都增加了关系接口。
本章从关系模型入手,对关系数据结构、关系代数、关系完整性以及关系数据库的设计规范进行专门介绍。
通过本章的学习,读者应该掌握以下内容:●关系模型的概念与分类●关系数据结构及定义●关系代数的基本运算●关系完整性●关系数据库设计与设计规范关系数据库是支持关系模型的数据库系统,它应用数学的方法来处理数据库中的数据。
系统而严格地提出关系模型的是美国IBM公司的E.F.Codd,他于1970年发表的题目为“A Relational Model of Data for Shared Data Banks”的论文,奠定了关系数据库的理论基础。
目前,关系数据库已经成为计算机领域技术成熟、应用广泛的数据处理工具,以SQL Server、Sybase和Oracle为代表的关系数据库产品得到越来越广泛的应用。
2.1 关系模型2.1.1 关于关系的一些术语“关系”就是关系数据模型的数据结构,刻画关系数据结构就是要定义关系。
从本质上来讲,关系是一个数学概念,具体说,是一个集合论中的概念,因此,从集合论的角度给出关系数据结构的形式化定义就是十分自然的事情。
这样就将关系数据模型置于严格的数学基础之上。
(1) 关系在关系模型中,一个关系就是一张二维表,每一个关系有一个关系名。
在数据库中,一个关系存储为一个数据表。
(2) 属性表中的列称为属性,每一个列有一个属性名,对应数据表中的一个字段。
(3) 元组表中的行称为元组。
一行就是一个元组,对应数据表中的记录,元组的各分量分别对应于关系的各个属性。
关系模型要求每个元组的每个分量都是不可再分的数据项。
第2章 关系数据库设计理论 (4) 域具有相同数据类型的值的集合称为域(Domain),域是属性的取值范围,即不同元组对同一个属性的取值所限定的范围。