版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、由关系模型到由关系模型到结构化数据库语言结构化数据库语言SQLResearch Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL(1)回顾:数据库系统的概念回顾:数据库系统的概念数据格式数据981102 数据库 李四 99秋 02 王四 90谁能访问数据更新数据有什么要求 用户定义的数据安全性约束条件阶段阶段1
2、:User/DBAP通过数据定义数据定义语言语言(DDL)定义数据表的格式阶段阶段2:User/DBAP通过数据操纵语言数据操纵语言(DML)操纵数据进出数据库User/DBA通过数据控制语言数据控制语言(DCL)定义数据安全性班级班级 课程课程 教师教师 学期学期 学号学号 姓名姓名 成绩成绩981101 数据库 李四 98秋 01 张三 100981101 数据库 李四 98秋 02 张四 90981101 数据库 李四 98秋 03 张五 80981101 计算机 李五 98秋 01 张三 89981101 计算机 李五 98秋 02 张四 98981101 计算机 李五 98秋 03
3、张五 72981102 数据库 李四 99秋 01 王三 30981102 数据库 李四 99秋 02 王四 90981102 数据库 李四 99秋 03 王武 78学生成绩单学生成绩单DBUserDBMS检查用户合法性检查用户合法性检查数据合法性检查数据合法性按用户要求的操作按用户要求的操作执行并返回结果。执行并返回结果。DBAP战德臣 教授p数据库语言数据库语言SQL 列名列名 , 列名列名 表名表名1 , 表名表名2, 检索条件检索条件 ;语义:将语义:将From后面的所有表串接起来,检索出满足后面的所有表串接起来,检索出满足“检索条件检索条件”的元组,的元组,并按给定的列名及顺序进行投
4、影显示。并按给定的列名及顺序进行投影显示。 列名列名, , 列名列名( 检索条件检索条件 (表名表名1 表名表名2 )关系运算式关系运算式由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL(2)由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL战德臣 教授SQL: Structural Query LanguagepSQL语言是数据库系统的标准语言,它可以定义数据库、操纵数据库和进语言是数据库系统的标准语言,它可以定义数据库、操纵数据库和进行数据库控制。行数据库控制。pSQL语言主要由以下语言主要由以下9个单词引导的操作语句来构成,但每一种语句都能表个单词引导的操作语句
5、来构成,但每一种语句都能表达复杂的操作请求。达复杂的操作请求。 DDL语句引导词:语句引导词:Create(建立建立), Alter(修改修改), Drop(撤消撤消)定义定义Database, Table, View, Index DML语句引导词:语句引导词:Insert(插入插入), Update(更新更新), Delete(删除删除), Select(查询查询)各种方式的更新与检索操作各种方式的更新与检索操作各种条件的查询操作,如连接查找,模糊查找,分组查找,嵌套查找等各种条件的查询操作,如连接查找,模糊查找,分组查找,嵌套查找等各种聚集操作,求平均、求和、各种聚集操作,求平均、求和、
6、等,分组聚集,分组过滤等等,分组聚集,分组过滤等 DCL语句引导词:语句引导词:Grant, Revoke安全性控制安全性控制-授权和撤消授权授权和撤消授权由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL(3)什么是结构化数据库语言什么是结构化数据库语言SQL战德臣 教授由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL(4)用用SQL语言创建数据库并定义表语言创建数据库并定义表-简介简介创建课程学习数据库:创建课程学习数据库:SCT Create Database SCT;SCT定义学生表:定义学生表:StudentCreate Table Student ( S#
7、 char(8) not null , Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6) );定义课程表:定义课程表:Course Create Table Course ( C# char(3) , Cname char(12), Chours integer, Credit float(1), T# char(3) );同学可自己定义其他的表:同学可自己定义其他的表: Dept, Teacher, SCStudentCoursecreate table 表名表名( 列名列名 数据类型数据类型 not
8、 null , 列名列名 数据类型数据类型 , ) ;战德臣 教授由关系模型到结构化数据库语言由关系模型到结构化数据库语言SQL(5)用用SQL语言在所定义表中增加记录语言在所定义表中增加记录-简介简介insert into 表名表名 (列名列名 , 列名列名 values (值值 , 值值 , ); 追加学生表中的元组追加学生表中的元组Insert Into Student Values ( 98030101 , 张三张三, 男男, 20, 03, 980301);Insert Into Student ( S#, Sname, Ssex, Sage, D# , Sclass)Values
9、( 98030102 , 张四张四, 女女, 20, 03, 980301);追加追加课程表中的元组课程表中的元组Insert Into Course /*所有列名省略,须与定义或存储的列名顺序一致Values ( 001 , 数据库数据库, 40, 6, 001); /*如列名未省略,须与语句中列名的顺序一致Insert Into Course(Cname, C#, Credit, Chours, T#);Values (数据库数据库, 001, 6, 20, 001);战德臣 教授已经建立好的数据库已经建立好的数据库-供后面学习和训练使用供后面学习和训练使用由关系模型到结构化数据库语言由关
10、系模型到结构化数据库语言SQL(6)已经建立起的数据库已经建立起的数据库SQL-SELECT之简单使用之简单使用Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授Select 的简单语法形式为:的简单语法形式为: 列名列名 , 列名列名 表名表名 检索条件检索条件 ;l语义:从语义:从所给出的表中,查询出满足所给出的表中,查询出满足的元的元组,并按给定的组
11、,并按给定的及顺序进行投影显示及顺序进行投影显示 列名列名, , 列名列名( 检索条件检索条件 (表名表名)SQL-SELECT之简单使用之简单使用(1)基本检索操作的表达方法基本检索操作的表达方法战德臣 教授 例如:检索学生表中所有学生的信息例如:检索学生表中所有学生的信息Select S#, Sname, Ssex, Sage, Sclass, D# From Student ; Select * From Student ; /如投影所有列,则可以用*来简写 再如:检索学生表中所有学生的姓名及年龄再如:检索学生表中所有学生的姓名及年龄Select Sname, Sage /投影出某些列
12、From Student ; 再如:检索学生表中所有年龄小于再如:检索学生表中所有年龄小于19岁的学生的年龄及姓名岁的学生的年龄及姓名Select Sage, Sname /投影的列可以重新排定顺序 From StudentWhere Sage 80 ; /有重复元组出现,比如一个同学两门以上课程大于80Select DISTINCT S# From SCWhere Score 80; /重复元组被DISTINCT过滤掉,只保留一份检索结果去重复:检索结果去重复:DISTINCT表表(Table)和关系和关系(Relation)在大部分情况下概念通用在大部分情况下概念通用,但有细微差别但有细微
13、差别: 前者可允许有重复元组前者可允许有重复元组, 而后者不允许而后者不允许SQL-SELECT之简单使用之简单使用(3)如何去掉检索结果的重复元组或记录呢如何去掉检索结果的重复元组或记录呢?战德臣 教授Select语句中结果排序是通过增加语句中结果排序是通过增加order by子句实现的子句实现的意义为结果按指定列名进行排序,若后跟意义为结果按指定列名进行排序,若后跟asc或省略,则为升序;若后跟或省略,则为升序;若后跟desc, 则为降序。则为降序。例如:按学号由小到大的顺序显示出所有学生的学号及姓名例如:按学号由小到大的顺序显示出所有学生的学号及姓名Select S#, Sname Fr
14、om StudentOrder By S# ASC ; 再如:检索再如:检索002号课大于号课大于80分的所有同学学号并按成绩由高到低顺序显示分的所有同学学号并按成绩由高到低顺序显示Select S# From SC Where C# = 002 and Score 80Order By Score DESC ;检索结果的排序检索结果的排序SQL-SELECT之简单使用之简单使用(4)如何对检索结果进行排序呢如何对检索结果进行排序呢?SELECT FROM WHERE ORDER BY 战德臣 教授比如检索比如检索“姓张的学生姓张的学生”,检索,检索“张某某张某某”,这类查询问题,这类查询问题
15、,Select语句是语句是通过在检索条件中引入运算符通过在检索条件中引入运算符like来表示的来表示的 含有含有like运算符的表达式运算符的表达式 找出匹配给定字符串的字符串。其中给定字符串中可以出现找出匹配给定字符串的字符串。其中给定字符串中可以出现%, _等匹配符等匹配符. 匹配规则:匹配规则:q “%” 匹配零个或多个字符匹配零个或多个字符q “_” 匹配任意单个字符匹配任意单个字符q “ ” 转义字符,用于去掉一些特殊字符的特定含义,使其被转义字符,用于去掉一些特殊字符的特定含义,使其被作为普通字符看待作为普通字符看待, 如用如用 “%”去匹配字符去匹配字符%,用,用_ 去匹配字符去
16、匹配字符_SQL-SELECT之简单使用之简单使用(5)如何表达模糊性的查询内容呢如何表达模糊性的查询内容呢?模糊查询模糊查询战德臣 教授 例如:检索所有姓张的学生学号及姓名例如:检索所有姓张的学生学号及姓名Select S#, Sname From StudentWhere Sname Like 张张% ; 再如:检索名字为张某某的所有同学姓名再如:检索名字为张某某的所有同学姓名Select Sname From Student Where Sname Like 张张_ _; 再如:检索名字不姓张的所有同学姓名再如:检索名字不姓张的所有同学姓名Select Sname From Studen
17、t Where Sname Not Like 张张%;SQL-SELECT之简单使用之简单使用(5)如何表达模糊性的查询内容呢如何表达模糊性的查询内容呢?战德臣 教授SQL-SELECT之简单使用之简单使用(6)小结小结? 例如:检索学生表中所有学生的信息例如:检索学生表中所有学生的信息Select S#, Sname, Ssex, Sage, Sclass, D# From Student ; Select * From Student ; /如投影所有列,则可以用*来简写 再如:检索学生表中所有学生的姓名及年龄再如:检索学生表中所有学生的姓名及年龄Select Sname, Sage /投
18、影出某些列 From Student ; 再如:检索学生表中所有年龄小于再如:检索学生表中所有年龄小于19岁的学生的年龄及姓名岁的学生的年龄及姓名Select Sage, Sname /投影的列可以重新排定顺序 From StudentWhere Sage T2.Salary ;求年龄有差异的任意两位同学的姓名求年龄有差异的任意两位同学的姓名Select S1.Sname as Stud1, S2.Sname as Stud2 From Student S1, Student S2Where S1.Sage S2.Sage ;请同学书写一下:求请同学书写一下:求001号课程有成绩差的任意两位同
19、学号课程有成绩差的任意两位同学有时表名很长时,为书写条件简便,也定义表别名,以简化书写。有时表名很长时,为书写条件简便,也定义表别名,以简化书写。Student(S#,Sname,Ssex,Sage,D#,Sclass)Course(C#,Cname,Chours,Credit,T#)SC(S#,C#,Score)Dept(D#,Dname,Dean)Teacher(T#,Tname,D#,Salary)SQL-SELECT之多表联合操作之多表联合操作(3)多表联合检索之表与列的别名多表联合检索之表与列的别名战德臣 教授再如:求既学过再如:求既学过“001”号课又学过号课又学过 “002”号课
20、的所有学生的学号号课的所有学生的学号(二表连二表连接接)Select SC1.S# From SC SC1, SC SC2Where SC1.S# = SC2.S# and SC1.C#=C01 and SC2.C#=C02 ; 再如:求再如:求“C01”号课成绩比号课成绩比“C02”号课成绩高的所有学生的学号号课成绩高的所有学生的学号(二表连二表连接接)Select SC1.S# From SC SC1, SC SC2Where SC1.S# = SC2.S# and SC1.C#=C01 and SC2.C#=C02 and SC1.Score SC2.Score;SQL-SELECT之多
21、表联合操作之多表联合操作(4)多表联合检索之表与自身的连接多表联合检索之表与自身的连接战德臣 教授正确理解汉语表达的查询语义,正确表达为正确理解汉语表达的查询语义,正确表达为SQL语句语句 例如:例如:列出没学过李明老师讲授课程的所有同学的姓名列出没学过李明老师讲授课程的所有同学的姓名? 如下书写如下书写SQL语语句会得到正确结果吗?它能得到什么结果?怎样正确书写?句会得到正确结果吗?它能得到什么结果?怎样正确书写?Select Sname From Student S, SC, Course C, Teacher TWhere T.Tname 李明李明 and C.C# = SC.C# an
22、d SC.S# = S.S# and T.T# = C.T#;/正确的SQL语句在讲义后面的示例中讲解SQL-SELECT之多表联合操作之多表联合操作(5)多表联合检索之语义之理解多表联合检索之语义之理解战德臣 教授 IN子查询。其基本语法为:子查询。其基本语法为: 语义:判断某一表达式的值是否在子查询的结果中。语义:判断某一表达式的值是否在子查询的结果中。 再例如:列出选修了再例如:列出选修了001号课程的学生的学号和姓名号课程的学生的学号和姓名Select S#, Sname From StudentWhere S# in ( Select S# From SC Where C# = 00
23、1 ) ;再例如:求既学过再例如:求既学过001号课程号课程, 又学过又学过002号课程的学生的学号号课程的学生的学号Select S# From SCWhere C# = 001 and S# in ( Select S# From SC Where C# = 002 ) ;SQL-SELECT之多表联合操作之多表联合操作(6)多表联合检索之嵌套子查询多表联合检索之嵌套子查询战德臣 教授 再例如:再例如:列出没学过李明老师讲授课程的所有同学的姓名列出没学过李明老师讲授课程的所有同学的姓名?Select Sname From StudentWhere S# not in ( Select S#
24、 From SC, Course C, Teacher T Where T.Tname = 李明李明 and SC.C# = C.C# and T.T# = C.T# );SQL-SELECT之多表联合操作之多表联合操作(6)多表联合检索之嵌套子查询多表联合检索之嵌套子查询战德臣 教授非相关子查询非相关子查询Select Sname From StudentWhere S# not in ( Select S# From SC, Course C, Teacher T Where T.Tname = 李明李明 and SC.C# = C.C# and T.T# = C.T# ) ; 内层查询独
25、立进行,没有涉及任何外层查询相关信息的子查询被称为非相内层查询独立进行,没有涉及任何外层查询相关信息的子查询被称为非相关子查询。关子查询。内层查询内层查询外层查询外层查询SQL-SELECT之多表联合操作之多表联合操作(7)非相关子查询非相关子查询 vs. 相关子查询相关子查询战德臣 教授 有时,内层查询需要依靠外层查询的某些参量作为限定条件才能进行,这有时,内层查询需要依靠外层查询的某些参量作为限定条件才能进行,这样的子查询称为相关子查询。样的子查询称为相关子查询。 外层向内层传递的参量需要使用外层的表名或表别名来限定外层向内层传递的参量需要使用外层的表名或表别名来限定 例如:求学过例如:求
26、学过001号课程的同学的姓名号课程的同学的姓名 Select Sname From Student StudWhere S# in ( Select S# From SC Where S# = Stud.S# and C# = 001 ) ; 注意:相关子查询只能由外层向内层传递参数,而不能反之;这也称为变注意:相关子查询只能由外层向内层传递参数,而不能反之;这也称为变量的作用域原则。量的作用域原则。相关子查询相关子查询SQL-SELECT之多表联合操作之多表联合操作(8)非相关子查询非相关子查询 vs. 相关子查询相关子查询战德臣 教授再如:求既学过再如:求既学过“001”号课又学过号课又学
27、过 “002”号课的所有学生的学号号课的所有学生的学号(二表连二表连接接)Select SC1.S# From SC SC1, SC SC2Where SC1.S# = SC2.S# and SC1.C#=C01 and SC2.C#=C02 ; 再如:求再如:求“C01”号课成绩比号课成绩比“C02”号课成绩高的所有学生的学号号课成绩高的所有学生的学号(二表连二表连接接)Select SC1.S# From SC SC1, SC SC2Where SC1.S# = SC2.S# and SC1.C#=C01 and SC2.C#=C02 and SC1.Score SC2.Score;SQL
28、-SELECT之多表联合操作之多表联合操作(6)小结小结?SELECT FROM 表名表名1,表名表名2, WHERE SELECT FROM WHERE IN ( SELECT FROM WHERE )SQL-SELECT之分组聚集操作之分组聚集操作Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授结果计算与聚集函数结果计算与聚集函数select子句可以
29、是一些计算表达式或聚集函数,表明在选择和投影的同时直子句可以是一些计算表达式或聚集函数,表明在选择和投影的同时直接进行一些运算,如下所示:接进行一些运算,如下所示: 列名列名 | expr | agfunc(列名列名) , 列名列名 | expr | agfunc(列名列名) 表名表名1 , 表名表名2 检索条件检索条件 ; 计算表达式可以是常量、列名或由常量、列名、特殊函数及算术运算符构计算表达式可以是常量、列名或由常量、列名、特殊函数及算术运算符构成的算术运算式。成的算术运算式。SQL-SELECT之分组聚集操作之分组聚集操作(1)SELECT之结果计算与聚集函数之结果计算与聚集函数?求有
30、差额求有差额(差额差额0)的的任意两位教师的薪水差额任意两位教师的薪水差额Select T1.Tname as TR1, T2.Tname as TR2, T1.Salary T2.Salary From Teacher T1, Teacher T2Where T1.Salary T2.Salary; 战德臣 教授结果计算与聚集函数结果计算与聚集函数 SQL提供了五个作用在简单列值集合上的内置聚集函数提供了五个作用在简单列值集合上的内置聚集函数agfunc, 分别是:分别是:COUNT、SUM、AVG、MAX、MIN SQL聚集函数的参数类型、结果类型与作用如下:聚集函数的参数类型、结果类型与
31、作用如下:SQL-SELECT之分组聚集操作之分组聚集操作(1)SELECT之结果计算与聚集函数之结果计算与聚集函数?战德臣 教授 求教师的工资总额求教师的工资总额Select Sum(Salary) From Teacher; 求计算机系教师的工资总额求计算机系教师的工资总额 Select Sum(Salary) From Teacher T, DeptWhere Dept.Dname = 计算机计算机 and Dept.D# = T.D#; 求数据库课程的平均成绩求数据库课程的平均成绩Select AVG(Score) From Course C, SCWhere C.Cname = 数据
32、库数据库 and C.C# = SC.C#;结果计算与聚集函数结果计算与聚集函数SQL-SELECT之分组聚集操作之分组聚集操作(1)SELECT之结果计算与聚集函数之结果计算与聚集函数?战德臣 教授分组计算与聚集分组计算与聚集 为解决同时求解若干个集合的聚集运算问题,引出了分组的概念。为解决同时求解若干个集合的聚集运算问题,引出了分组的概念。 SQL可以将检索到的元组按照某一条件进行分类,具有相同条件值的元组可以将检索到的元组按照某一条件进行分类,具有相同条件值的元组划到一个组或一个集合中,这一过程就是分组过程。划到一个组或一个集合中,这一过程就是分组过程。 分组可以在基本分组可以在基本Se
33、lect语句基础上引入分组子句来完成:语句基础上引入分组子句来完成: 列名列名 | expr | agfunc(列名列名) , 列名列名 | expr | agfunc(列名列名) 表名表名1 , 表名表名2 检索条件检索条件 分组条件分组条件 ; 分组条件可以是分组条件可以是 列名列名1, 列名列名2, SELECT FROM WHERE GROUP BY HAVING ORDER BY SQL-SELECT之分组聚集操作之分组聚集操作(2)SELECT之分组计算与聚集之分组计算与聚集?战德臣 教授 例如:例如: 求每一个学生的平均成绩求每一个学生的平均成绩Select S#, AVG(Sc
34、ore) From SCGroup by S#; 再如:求每一门课程的平均成绩再如:求每一门课程的平均成绩Select C#, AVG(Score) From SCGroup by C#;SQL-SELECT之分组聚集操作之分组聚集操作(2)SELECT之分组计算与聚集之分组计算与聚集?分组计算与聚集分组计算与聚集Group by C#Group by S#战德臣 教授求不及格课程超过两门的同学的学号,下述写法正确吗?求不及格课程超过两门的同学的学号,下述写法正确吗?Select S# From SCWhere Score 2Group by S#; SQL-SELECT之分组聚集操作之分组聚
35、集操作(3)SELECT之分组过滤之分组过滤若要对分组若要对分组(集合集合)进行条件过滤,可使用进行条件过滤,可使用Having子句子句 列名列名 | expr | agfunc(列名列名) , 列名列名 | expr | agfunc(列名列名) 表名表名1 , 表名表名2 检索条件检索条件 分组条件分组条件 分组过滤条件分组过滤条件 ;分组过滤分组过滤-过滤掉分组,而不是元组过滤掉分组,而不是元组战德臣 教授每一行都要检查满足每一行都要检查满足与否的条件要用与否的条件要用WHEREWHERE子句表达子句表达每一分组检查满每一分组检查满足与否的条件要足与否的条件要用用HavingHaving
36、子句表子句表达。达。注意注意: :不是每一行不是每一行都检查,所以使都检查,所以使用用HavingHaving子句一子句一定要有定要有Group byGroup by子句子句 HAVING子句与子句与WHERE子句表达条件的区别子句表达条件的区别SQL-SELECT之分组聚集操作之分组聚集操作(3)SELECT之分组过滤之分组过滤分组过滤分组过滤-过滤掉分组,而不是元组过滤掉分组,而不是元组战德臣 教授 例如例如 求不及格课程超过两门的同学的学号求不及格课程超过两门的同学的学号Select S# From SCWhere Score 2; 再如再如 求有求有10人以上不及格的课程号人以上不及格
37、的课程号Select C# From SCWhere Score 10;分组过滤分组过滤-过滤掉分组,而不是元组过滤掉分组,而不是元组SQL-SELECT之分组聚集操作之分组聚集操作(3)SELECT之分组过滤之分组过滤战德臣 教授例如:求有两门以上不及格课程的同学的学号及其平均成绩例如:求有两门以上不及格课程的同学的学号及其平均成绩Select S#, Avg(Score) From SCWhere Score 2; 上述写法正确吗?上述写法正确吗? 正确的如下书写,为什么呢正确的如下书写,为什么呢?Select S#, AVG(Score) From SCWhere S# in ( Sel
38、ect S# From SC Where Score 2 )Group by S# ;SQL-SELECT之分组聚集操作之分组聚集操作(3)SELECT之分组过滤之分组过滤分组过滤分组过滤-过滤掉分组,而不是元组过滤掉分组,而不是元组战德臣 教授SQL-SELECT的完整语法的完整语法Subquery := SELECT ALL | DISTINCT * | expr AS c_alias , FROM tableref , WHERE search_condition GROUP BY column , HAVING search_condition | subquery UNION ALL
39、 | INTERSECT ALL | EXCEPT ALL CORRESPONDING BY (colname , ) subquery;Tableref := tablename corr_name Select statement := Subquery ORDER BY result_column ASC | DESC , SQL-SELECT之分组聚集操作之分组聚集操作(4)SQL-SELECT之总结之总结由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘数据挖掘示例之背景与概念示例之背景与概念Research Center on Intelligent Computing for En
40、terprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授数据对超市经营有无帮助呢数据对超市经营有无帮助呢?客户购买习惯客户购买习惯商品组合方式及策略商品组合方式及策略 营销策略营销策略价格策略价格策略货源组织货源组织由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(1)数据也是生产力数据也是生产力?战德臣 教授由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(2)数据运用的前
41、提数据运用的前提数据的聚集与管理数据的聚集与管理?超市数据库超市数据库战德臣 教授由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(3)什么是数据挖掘什么是数据挖掘?数据挖掘,又称为数据库中知识发现,它是一个从大量数据中数据挖掘,又称为数据库中知识发现,它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。简单地讲就是从大量数据中挖掘或抽取出知识。简单地讲就是从大量数据中挖掘或抽取出知识。l概要归纳概要归纳l关联分析关联分析 l分类与预测分类与预测l聚类分析聚类分析l异类分析异类分
42、析l演化分析演化分析战德臣 教授由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(4)怎样挖掘数据怎样挖掘数据-一个例子一个例子?数据挖掘之关联规则挖掘数据挖掘之关联规则挖掘商品的关联规则商品的关联规则“尿布尿布” “啤酒啤酒” 支持度支持度=2%,置信度,置信度=60% “由尿布的购买,能够推断出啤酒的购买由尿布的购买,能够推断出啤酒的购买” 支持度支持度2%意味着所分析事务的意味着所分析事务的2%同时购买尿布和啤酒同时购买尿布和啤酒 置信度置信度60%意味着购买尿布的顾客意味着购买尿布的顾客60%也购买啤酒。也购买啤酒。 是否相信这条规则呢是否相信这
43、条规则呢?让数据说话让数据说话战德臣 教授由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(5)概念准备概念准备?1. 项、项集与事务项、项集与事务设 P = p1 , p2 ,., pm 是所有项项(Item)的集合。D是数据库中所有事务的集合,其中每个事务事务T(Transaction)是项的集合,是P的子集,即T P;每一个事务有一个关键字属性,称作交易号交易号或事务号事务号以区分数据库中的每一个事务。设A 是一个项集项集(ItemSet),事务T 包含A 当且仅当A T。2. 关联规则关联规则关联规则是形如A B 的蕴涵式,即命题A(如“项集A的
44、购买”)蕴涵着命题B(“如项集B的购买”),或者说由命题A能够推出命题B,其中A P,B P,并且A B = 。 关联规则挖掘相关的基本概念关联规则挖掘相关的基本概念战德臣 教授3. 支持度与置信度支持度与置信度 Support (A B) = P(AB) = 包含A和B的事务数 D中事务总数。confidence (A B) = P(B|A) = 包含A和B的事务数 包含A的事务数。 支持度反映一条规则的实用性,置信度反映规则的“值得信赖性”的程度4. 强规则强规则同时满足最小支持度阈值同时满足最小支持度阈值(min_s)和最小置信度阈值和最小置信度阈值(min_c)的规则称作的规则称作强强
45、规则规则。 5. k-项集与项集与k-频繁项集频繁项集项的集合称为项集项集,包含k 个项的项集称为k-项集项集。项集的出现频率是包含项集的事务数,简称为项集的频率频率、支持计数支持计数或计计数数。如果项集的出现频率大于或等于min_s与D 中事务总数的乘积, 则项集满足最小支持度min_s。如果项集满足最小支持度,则称它为频繁项集频繁项集。频繁k -项集的集合通常记作Lk。 关联规则挖掘相关的基本概念关联规则挖掘相关的基本概念面包,果酱面包,果酱 - 2-项集项集面包,果酱,奶油面包,果酱,奶油 -3-项集项集由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与
46、概念(5)概念准备概念准备?战德臣 教授由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背景与概念数据挖掘示例之背景与概念(6)关联规则挖掘的基本思想关联规则挖掘的基本思想 ?关联规则挖掘的基本思想关联规则挖掘的基本思想由频繁项集产生强关联规则。依定由频繁项集产生强关联规则。依定义,这些规则必须满足最小支持度义,这些规则必须满足最小支持度和最小置信度。和最小置信度。 找出所有频繁项集。依定义,这些找出所有频繁项集。依定义,这些项集出现的频率至少和预定义的最项集出现的频率至少和预定义的最小出现频率一样。小出现频率一样。如何挖掘频繁项集如何挖掘频繁项集?Apriori 算法算法战德臣 教授面
47、包,果酱面包,果酱 - 2-项集项集面包,果酱,奶油面包,果酱,奶油 -3-项集项集数据挖掘之关联规则挖掘数据挖掘之关联规则挖掘商品的关联规则商品的关联规则“尿布尿布” “啤酒啤酒” 支持度支持度=2%,置信度,置信度=60% “由尿布的购买,能够推断出啤酒的购买由尿布的购买,能够推断出啤酒的购买” 支持度支持度2%意味着所分析事务的意味着所分析事务的2%同时购买尿布和啤酒同时购买尿布和啤酒 置信度置信度60%意味着购买尿布的顾客意味着购买尿布的顾客60%也购买啤酒。也购买啤酒。 是否相信这条规则呢是否相信这条规则呢?让数据说话让数据说话由数据库到数据挖掘由数据库到数据挖掘I-数据挖掘示例之背
48、景与概念数据挖掘示例之背景与概念(7)小结小结项项K-项集项集支持支持度度置信置信度度事务事务/ / 交易交易K-频繁频繁项集项集关联关联规则规则由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授关联规则挖掘的基本思想关联规则挖掘的基本思想由频繁项集产生强关联规则。依
49、定由频繁项集产生强关联规则。依定义,这些规则必须满足最小支持度义,这些规则必须满足最小支持度和最小置信度。和最小置信度。 找出所有频繁项集。依定义,这些找出所有频繁项集。依定义,这些项集出现的频率至少和预定义的最项集出现的频率至少和预定义的最小出现频率一样。小出现频率一样。如何挖掘频繁项集如何挖掘频繁项集?Apriori 算法算法由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(0)回顾:频繁项集的挖掘算法回顾:频繁项集的挖掘算法-Apriori算法的相关概念算法的相关概念项项K-项集项集支持支持度度置信置信度度事务事务/ / 交易交易K-频繁频繁项集
50、项集关联关联规则规则面包,果酱面包,果酱 - 2-项集项集面包,果酱,奶油面包,果酱,奶油 -3-项集项集战德臣 教授商品购买明细数据库商品购买明细数据库频繁项集挖掘算法计算示例频繁项集挖掘算法计算示例1.对问题域数据进行抽象对问题域数据进行抽象由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程频繁项集发现的计算过程 ?战德臣 教授候选候选1 1项集项集频繁频繁1 1项集支持度计项集支持度计数数 最小支持度计数最小支持度计数5 5( (min_supmin_sup=5/20=25%)=5/20=25%)频繁项集挖掘算法计算示例
51、频繁项集挖掘算法计算示例2.形成候选形成候选1-项集,并求出频繁项集,并求出频繁1-项集项集由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程频繁项集发现的计算过程 ?战德臣 教授候选候选2 2项集项集C C2 2=L=L1 1 Join L Join L1 1频繁项集挖掘算法计算示例频繁项集挖掘算法计算示例3.形成候选形成候选2-项集,并求出频繁项集,并求出频繁2-项集项集频繁频繁1 1项集项集频繁频繁2 2项集支持度计项集支持度计数数 最小支持度计数最小支持度计数5 5由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例
52、之计算过程数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程频繁项集发现的计算过程 ?战德臣 教授候选候选3 3项集项集C C3 3=L=L2 2 Join L Join L2 2频繁项集挖掘算法计算示例频繁项集挖掘算法计算示例4.形成候选形成候选3-项集,并剪枝,进一步求出频繁项集,并剪枝,进一步求出频繁3-项集项集频繁频繁2 2项集项集候选候选3 3项集的项集的支持度计数支持度计数频繁频繁3 3项集项集由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程频繁项集发现的计算过程 ?战德臣 教授候选项集候选项集-频频繁项集支
53、持度繁项集支持度计数计数=5=5频繁频繁3 3项集项集频繁项集全集频繁频繁项集全集频繁1 1项集项集 频繁项集频繁项集 频繁频繁3 3项集项集 频繁频繁4 4项集项集频繁项集挖掘算法计算示例频繁项集挖掘算法计算示例5.迭代地求出最终结果迭代地求出最终结果-频繁项集频繁项集由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程频繁项集发现的计算过程 ?战德臣 教授由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-1(2)频繁项集的发现算法频繁项集的发现算法由数据库到数据挖掘由数据库到数据挖掘II
54、-数据挖掘示例之计算过程数据挖掘示例之计算过程-2Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员战德臣 教授关联规则挖掘的基本思想关联规则挖掘的基本思想由频繁项集产生强关联规则。依定由频繁项集产生强关联规则。依定义,这些规则必须满足最小支持度义,这些规则必须满足最小支持度和最小置信度。和最小置信度。 找出所有频繁项集。依定义,这些找出所有频繁项集。依定义,这些项集
55、出现的频率至少和预定义的最项集出现的频率至少和预定义的最小出现频率一样。小出现频率一样。由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(0)回顾:频繁项集的挖掘回顾:频繁项集的挖掘项项K-项集项集事务事务/ / 交易交易K-频繁频繁项集项集面包,果酱面包,果酱 - 2-项集项集面包,果酱,奶油面包,果酱,奶油 -3-项集项集支持支持度度置信置信度度关联关联规则规则战德臣 教授商品的关联规则商品的关联规则“尿布尿布” “啤酒啤酒” 支持度支持度=2%,置信度,置信度=60% “由尿布的购买,能够推断出啤酒的购买由尿布的购买,能够推断出啤酒的购买” 支持
56、度支持度2%意味着所分析事务的意味着所分析事务的2%同时购买尿布和啤酒同时购买尿布和啤酒 置信度置信度60%意味着购买尿布的顾客意味着购买尿布的顾客60%也购买啤酒。也购买啤酒。 由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(1)什么是关联规则什么是关联规则战德臣 教授关联规则的生成计算示例关联规则的生成计算示例P1,P2,P5,P6可以产生的潜在规则可以产生的潜在规则AB, 其中其中A B=P1,P2,P5,P6, A B=. 由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(2)关联规则的产生关联规则的
57、产生频繁频繁 项集项集关联关联规则规则战德臣 教授输出的规则表,输出的规则表,A B = ,“购买购买A能够能够推出购买推出购买B”置信度置信度70%的规则的规则 关联规则的生成计算示例关联规则的生成计算示例由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(2)关联规则的产生关联规则的产生战德臣 教授组合形成规则表,频繁3项集能推出哪些频繁项集?置信度标记红色为置信度70%的规则支持度标记蓝色的为满足置信度前提下的支持度=50%的规则关联规则的生成计算示例关联规则的生成计算示例由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例
58、之计算过程-2(2)关联规则的产生关联规则的产生战德臣 教授最终输出的规则表关联规则的生成计算示例关联规则的生成计算示例由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(2)关联规则的产生关联规则的产生战德臣 教授age(X ,30.39) income(X ,42K.48K)buys(X ,high _ resolution _ TV)关联规则挖掘关联规则挖掘X代表顾客代表顾客buys(X,面包面包)buys(X, 果酱果酱) 单维度单层次规则单维度单层次规则多维度多层次规则多维度多层次规则由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算
59、过程数据挖掘示例之计算过程-2(3)还能挖掘什么还能挖掘什么 ?战德臣 教授Web数据挖掘数据挖掘由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(3)还能挖掘什么还能挖掘什么 ?战德臣 教授只求关系,不求因果只求关系,不求因果不要相信经验,一切以数据说话不要相信经验,一切以数据说话bit & Byte1KB(Kilobyte) = 210字节字节1MB(Megabyte) = 210KB1GB(Gigabyte) = 210MB1TB(Trillionbyte) = 210GB = 220MB1PB(Petabyte) = 210TB = 2
60、30MB1EB(Exabyte) = 210PB = 240MB1ZB(Zettabyte) = 210EB = 250MB1YB(Yottabyte) = 210ZB = 260MB1BB(Brontobyte) = 210YB = 270MB大数据大数据大数据环境下什么不能发生呢大数据环境下什么不能发生呢?由数据库到数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程数据挖掘示例之计算过程-2(5)小结小结数据抽象与设计数据抽象与设计I-抽象之理解抽象之理解-区分区分-命名命名-表达表达Research Center on Intelligent Computing for Enterprises & Services,Harbin I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年桶装水产品研发与技术支持合同
- 2024年度钻井工程合同工程变更与合同补充3篇
- 2024年新能源技术研发投资合作协议补充条款范本3篇
- 驿站出售合同模板
- 2024年度商业地产市场调研合同:调研公司与委托方之间的调研内容与报告交付2篇
- 2024年教育培训投资合作框架协议书3篇
- 2024版出口贸易信用担保合同样本3篇
- 2024年度国际艺术品交易服务合同
- 销售水泥方桩合同范例
- 2024年标准化煤矿巷道施工承揽协议模板一
- 学校纪检监察工作制度样本
- 2023-2024年人教版九年级上册化学期末实验题复习
- 当前台海局势分析课件
- 五金采购工作总结
- 苏教版三年级上册解决问题的策略应用题100题及答案
- 质量管理中的流程改进与优化
- 成长赛道-模板参考
- 室外晾衣棚施工方案
- 儿童健康管理服务总结分析报告
- 殡葬行业的风险分析
- 通信工程冬季施工安全培训
评论
0/150
提交评论