1、由关系模型到结构化数据库语言SQLResearch Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员由关系模型到结构化数据库语言SQL(1)回顾:数据库系统的概念数据格式数据981102 数据库 李四 99秋 02 王四 90谁能访问数据更新数据有什么要求 用户定义的数据安全性约束条件阶段1:User/DBAP通过数据定义语言(DDL)定义数据表的格式阶段2:User/DBAP通过数据操纵语
2、言(DML)操纵数据进出数据库User/DBA通过数据控制语言(DCL)定义数据安全性班级 课程 教师 学期 学号 姓名 成绩981101 数据库 李四 98秋 01 张三 100981101 数据库 李四 98秋 02 张四 90981101 数据库 李四 98秋 03 张五 80981101 计算机 李五 98秋 01 张三 89981101 计算机 李五 98秋 02 张四 98981101 计算机 李五 98秋 03 张五 72981102 数据库 李四 99秋 01 王三 30981102 数据库 李四 99秋 02 王四 90981102 数据库 李四 99秋 03 王武 78学生
3、成绩单DBUserDBMS检查用户合法性检查数据合法性按用户要求的操作执行并返回结果。DBAPp数据库语言SQL 列名 , 列名 表名1 , 表名2, 检索条件 ;语义:将From后面的所有表串接起来,检索出满足“检索条件”的元组,并按给定的列名及顺序进行投影显示。 列名, , 列名( 检索条件 (表名1 表名2 )关系运算式由关系模型到结构化数据库语言SQL(2)由关系模型到结构化数据库语言SQLSQL: Structural Query LanguagepSQL语言是数据库系统的标准语言,它可以定义数据库、操纵数据库和进行数据库控制。pSQL语言主要由以下9个单词引导的操作语句来构成,但每
4、一种语句都能表达复杂的操作请求。 DDL语句引导词:Create(建立), Alter(修改), Drop(撤消)定义Database, Table, View, Index DML语句引导词:Insert(插入), Update(更新), Delete(删除), Select(查询)各种方式的更新与检索操作各种条件的查询操作,如连接查找,模糊查找,分组查找,嵌套查找等各种聚集操作,求平均、求和、等,分组聚集,分组过滤等 DCL语句引导词:Grant, Revoke安全性控制-授权和撤消授权由关系模型到结构化数据库语言SQL(3)什么是结构化数据库语言SQL由关系模型到结构化数据库语言SQL(
5、4)用SQL语言创建数据库并定义表-简介创建课程学习数据库:SCT Create Database SCT;SCT定义学生表:StudentCreate Table Student ( S# 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) );同学
6、可自己定义其他的表: Dept, Teacher, SCStudentCoursecreate table 表名( 列名 数据类型 not null , 列名 数据类型 , ) ;由关系模型到结构化数据库语言SQL(5)用SQL语言在所定义表中增加记录-简介insert into 表名 (列名 , 列名 values (值 , 值 , ); 追加学生表中的元组Insert Into Student Values ( 98030101 , 张三, 男, 20, 03, 980301);Insert Into Student ( S#, Sname, Ssex, Sage, D# , Sclass
7、)Values ( 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);已经建立好的数据库-供后面学习和训练使用由关系模型到结构化数据库语言SQL(6)已经建立起的数据库SQL-SELECT之简单使用Researc
8、h Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员Select 的简单语法形式为: 列名 , 列名 表名 检索条件 ;l语义:从所给出的表中,查询出满足的元组,并按给定的及顺序进行投影显示 列名, , 列名( 检索条件 (表名)SQL-SELECT之简单使用(1)基本检索操作的表达方法 例如:检索学生表中所有学生的信息Select S#, Sname, Ssex, Sage, Sclass
9、, D# From Student ; Select * From Student ; /如投影所有列,则可以用*来简写 再如:检索学生表中所有学生的姓名及年龄Select Sname, Sage /投影出某些列 From Student ; 再如:检索学生表中所有年龄小于19岁的学生的年龄及姓名Select Sage, Sname /投影的列可以重新排定顺序 From StudentWhere Sage 80 ; /有重复元组出现,比如一个同学两门以上课程大于80Select DISTINCT S# From SCWhere Score 80; /重复元组被DISTINCT过滤掉,只保留一份
10、检索结果去重复:DISTINCT表(Table)和关系(Relation)在大部分情况下概念通用,但有细微差别: 前者可允许有重复元组, 而后者不允许SQL-SELECT之简单使用(3)如何去掉检索结果的重复元组或记录呢?Select语句中结果排序是通过增加order by子句实现的意义为结果按指定列名进行排序,若后跟asc或省略,则为升序;若后跟desc, 则为降序。例如:按学号由小到大的顺序显示出所有学生的学号及姓名Select S#, Sname From StudentOrder By S# ASC ; 再如:检索002号课大于80分的所有同学学号并按成绩由高到低顺序显示Select
11、S# From SC Where C# = 002 and Score 80Order By Score DESC ;检索结果的排序SQL-SELECT之简单使用(4)如何对检索结果进行排序呢?SELECT FROM WHERE ORDER BY 比如检索“姓张的学生”,检索“张某某”,这类查询问题,Select语句是通过在检索条件中引入运算符like来表示的 含有like运算符的表达式 找出匹配给定字符串的字符串。其中给定字符串中可以出现%, _等匹配符. 匹配规则:q “%” 匹配零个或多个字符q “_” 匹配任意单个字符q “ ” 转义字符,用于去掉一些特殊字符的特定含义,使其被作为普通
12、字符看待, 如用 “%”去匹配字符%,用_ 去匹配字符_SQL-SELECT之简单使用(5)如何表达模糊性的查询内容呢?模糊查询 例如:检索所有姓张的学生学号及姓名Select S#, Sname From StudentWhere Sname Like 张% ; 再如:检索名字为张某某的所有同学姓名Select Sname From Student Where Sname Like 张_ _; 再如:检索名字不姓张的所有同学姓名Select Sname From Student Where Sname Not Like 张%;SQL-SELECT之简单使用(5)如何表达模糊性的查询内容呢?S
13、QL-SELECT之简单使用(6)小结? 例如:检索学生表中所有学生的信息Select S#, Sname, Ssex, Sage, Sclass, D# From Student ; Select * From Student ; /如投影所有列,则可以用*来简写 再如:检索学生表中所有学生的姓名及年龄Select Sname, Sage /投影出某些列 From Student ; 再如:检索学生表中所有年龄小于19岁的学生的年龄及姓名Select Sage, Sname /投影的列可以重新排定顺序 From StudentWhere Sage T2.Salary ;求年龄有差异的任意两位
14、同学的姓名Select S1.Sname as Stud1, S2.Sname as Stud2 From Student S1, Student S2Where S1.Sage S2.Sage ;请同学书写一下:求001号课程有成绩差的任意两位同学有时表名很长时,为书写条件简便,也定义表别名,以简化书写。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之多表联合
15、操作(3)多表联合检索之表与列的别名再如:求既学过“001”号课又学过 “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-SELEC
16、T之多表联合操作(4)多表联合检索之表与自身的连接正确理解汉语表达的查询语义,正确表达为SQL语句 例如:列出没学过李明老师讲授课程的所有同学的姓名? 如下书写SQL语句会得到正确结果吗?它能得到什么结果?怎样正确书写?Select Sname From Student S, SC, Course C, Teacher TWhere T.Tname 李明 and C.C# = SC.C# and SC.S# = S.S# and T.T# = C.T#;/正确的SQL语句在讲义后面的示例中讲解SQL-SELECT之多表联合操作(5)多表联合检索之语义之理解 IN子查询。其基本语法为: 语义:判
17、断某一表达式的值是否在子查询的结果中。 再例如:列出选修了001号课程的学生的学号和姓名Select S#, Sname From StudentWhere S# in ( Select S# From SC Where C# = 001 ) ;再例如:求既学过001号课程, 又学过002号课程的学生的学号Select S# From SCWhere C# = 001 and S# in ( Select S# From SC Where C# = 002 ) ;SQL-SELECT之多表联合操作(6)多表联合检索之嵌套子查询 再例如:列出没学过李明老师讲授课程的所有同学的姓名?Select
18、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# );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#
19、 ) ; 内层查询独立进行,没有涉及任何外层查询相关信息的子查询被称为非相关子查询。内层查询外层查询SQL-SELECT之多表联合操作(7)非相关子查询 vs. 相关子查询 有时,内层查询需要依靠外层查询的某些参量作为限定条件才能进行,这样的子查询称为相关子查询。 外层向内层传递的参量需要使用外层的表名或表别名来限定 例如:求学过001号课程的同学的姓名 Select Sname From Student StudWhere S# in ( Select S# From SC Where S# = Stud.S# and C# = 001 ) ; 注意:相关子查询只能由外层向内层传递参数,而不
20、能反之;这也称为变量的作用域原则。相关子查询SQL-SELECT之多表联合操作(8)非相关子查询 vs. 相关子查询再如:求既学过“001”号课又学过 “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.
21、C#=C02 and SC1.Score SC2.Score;SQL-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子句可以是一些计算
22、表达式或聚集函数,表明在选择和投影的同时直接进行一些运算,如下所示: 列名 | expr | agfunc(列名) , 列名 | expr | agfunc(列名) 表名1 , 表名2 检索条件 ; 计算表达式可以是常量、列名或由常量、列名、特殊函数及算术运算符构成的算术运算式。SQL-SELECT之分组聚集操作(1)SELECT之结果计算与聚集函数?求有差额(差额0)的任意两位教师的薪水差额Select T1.Tname as TR1, T2.Tname as TR2, T1.Salary T2.Salary From Teacher T1, Teacher T2Where T1.Salar
23、y T2.Salary; 结果计算与聚集函数 SQL提供了五个作用在简单列值集合上的内置聚集函数agfunc, 分别是:COUNT、SUM、AVG、MAX、MIN SQL聚集函数的参数类型、结果类型与作用如下: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
24、(Score) From Course C, SCWhere C.Cname = 数据库 and C.C# = SC.C#;结果计算与聚集函数SQL-SELECT之分组聚集操作(1)SELECT之结果计算与聚集函数?分组计算与聚集 为解决同时求解若干个集合的聚集运算问题,引出了分组的概念。 SQL可以将检索到的元组按照某一条件进行分类,具有相同条件值的元组划到一个组或一个集合中,这一过程就是分组过程。 分组可以在基本Select语句基础上引入分组子句来完成: 列名 | expr | agfunc(列名) , 列名 | expr | agfunc(列名) 表名1 , 表名2 检索条件 分组条件
25、; 分组条件可以是 列名1, 列名2, SELECT FROM WHERE GROUP BY HAVING ORDER BY SQL-SELECT之分组聚集操作(2)SELECT之分组计算与聚集? 例如: 求每一个学生的平均成绩Select S#, AVG(Score) From SCGroup by S#; 再如:求每一门课程的平均成绩Select C#, AVG(Score) From SCGroup by C#;SQL-SELECT之分组聚集操作(2)SELECT之分组计算与聚集?分组计算与聚集Group by C#Group by S#求不及格课程超过两门的同学的学号,下述写法正确吗?
26、Select S# From SCWhere Score 2Group by S#; SQL-SELECT之分组聚集操作(3)SELECT之分组过滤若要对分组(集合)进行条件过滤,可使用Having子句 列名 | expr | agfunc(列名) , 列名 | expr | agfunc(列名) 表名1 , 表名2 检索条件 分组条件 分组过滤条件 ;分组过滤-过滤掉分组,而不是元组每一行都要检查满足与否的条件要用WHERE子句表达每一分组检查满足与否的条件要用Having子句表达。注意:不是每一行都检查,所以使用Having子句一定要有Group by子句 HAVING子句与WHERE子句
27、表达条件的区别SQL-SELECT之分组聚集操作(3)SELECT之分组过滤分组过滤-过滤掉分组,而不是元组 例如 求不及格课程超过两门的同学的学号Select S# From SCWhere Score 2; 再如 求有10人以上不及格的课程号Select C# From SCWhere Score 10;分组过滤-过滤掉分组,而不是元组SQL-SELECT之分组聚集操作(3)SELECT之分组过滤例如:求有两门以上不及格课程的同学的学号及其平均成绩Select S#, Avg(Score) From SCWhere Score 2; 上述写法正确吗? 正确的如下书写,为什么呢?Select
28、 S#, AVG(Score) From SCWhere S# in ( Select 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 A
29、LL | 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 Enterprises & Services,Harbin I
30、nstitute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员数据对超市经营有无帮助呢?客户购买习惯商品组合方式及策略 营销策略价格策略货源组织由数据库到数据挖掘I-数据挖掘示例之背景与概念(1)数据也是生产力?由数据库到数据挖掘I-数据挖掘示例之背景与概念(2)数据运用的前提数据的聚集与管理?超市数据库由数据库到数据挖掘I-数据挖掘示例之背景与概念(3)什么是数据挖掘?数据挖掘,又称为数据库中知识发现,它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。简单地讲就是从大量数据中挖掘或抽取出知识。l概要归纳l关联分
31、析 l分类与预测l聚类分析l异类分析l演化分析由数据库到数据挖掘I-数据挖掘示例之背景与概念(4)怎样挖掘数据-一个例子?数据挖掘之关联规则挖掘商品的关联规则“尿布” “啤酒” 支持度=2%,置信度=60% “由尿布的购买,能够推断出啤酒的购买” 支持度2%意味着所分析事务的2%同时购买尿布和啤酒 置信度60%意味着购买尿布的顾客60%也购买啤酒。 是否相信这条规则呢?让数据说话由数据库到数据挖掘I-数据挖掘示例之背景与概念(5)概念准备?1. 项、项集与事务设 P = p1 , p2 ,., pm 是所有项(Item)的集合。D是数据库中所有事务的集合,其中每个事务T(Transaction
32、)是项的集合,是P的子集,即T P;每一个事务有一个关键字属性,称作交易号或事务号以区分数据库中的每一个事务。设A 是一个项集(ItemSet),事务T 包含A 当且仅当A T。2. 关联规则关联规则是形如A B 的蕴涵式,即命题A(如“项集A的购买”)蕴涵着命题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的事务数。 支持度反映一条规
33、则的实用性,置信度反映规则的“值得信赖性”的程度4. 强规则同时满足最小支持度阈值(min_s)和最小置信度阈值(min_c)的规则称作强规则。 5. k-项集与k-频繁项集项的集合称为项集,包含k 个项的项集称为k-项集。项集的出现频率是包含项集的事务数,简称为项集的频率、支持计数或计数。如果项集的出现频率大于或等于min_s与D 中事务总数的乘积, 则项集满足最小支持度min_s。如果项集满足最小支持度,则称它为频繁项集。频繁k -项集的集合通常记作Lk。 关联规则挖掘相关的基本概念面包,果酱 - 2-项集面包,果酱,奶油 -3-项集由数据库到数据挖掘I-数据挖掘示例之背景与概念(5)概念
34、准备?由数据库到数据挖掘I-数据挖掘示例之背景与概念(6)关联规则挖掘的基本思想 ?关联规则挖掘的基本思想由频繁项集产生强关联规则。依定义,这些规则必须满足最小支持度和最小置信度。 找出所有频繁项集。依定义,这些项集出现的频率至少和预定义的最小出现频率一样。如何挖掘频繁项集?Apriori 算法面包,果酱 - 2-项集面包,果酱,奶油 -3-项集数据挖掘之关联规则挖掘商品的关联规则“尿布” “啤酒” 支持度=2%,置信度=60% “由尿布的购买,能够推断出啤酒的购买” 支持度2%意味着所分析事务的2%同时购买尿布和啤酒 置信度60%意味着购买尿布的顾客60%也购买啤酒。 是否相信这条规则呢?让
35、数据说话由数据库到数据挖掘I-数据挖掘示例之背景与概念(7)小结项K-项集支持度置信度事务/ 交易K-频繁项集关联规则由数据库到数据挖掘II-数据挖掘示例之计算过程-1Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员关联规则挖掘的基本思想由频繁项集产生强关联规则。依定义,这些规则必须满足最小支持度和最小置信度。 找出所有频繁项集。依定义,这些项集出现的频率至少和预定义的最小
36、出现频率一样。如何挖掘频繁项集?Apriori 算法由数据库到数据挖掘II-数据挖掘示例之计算过程-1(0)回顾:频繁项集的挖掘算法-Apriori算法的相关概念项K-项集支持度置信度事务/ 交易K-频繁项集关联规则面包,果酱 - 2-项集面包,果酱,奶油 -3-项集商品购买明细数据库频繁项集挖掘算法计算示例1.对问题域数据进行抽象由数据库到数据挖掘II-数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程 ?候选1项集频繁1项集支持度计数最小支持度计数5(min_sup=5/20=25%)频繁项集挖掘算法计算示例2.形成候选1-项集,并求出频繁1-项集由数据库到数据挖掘II-数据挖掘示例之
37、计算过程-1(1)频繁项集发现的计算过程 ?候选2项集C2=L1 Join L1频繁项集挖掘算法计算示例3.形成候选2-项集,并求出频繁2-项集频繁1项集频繁2项集支持度计数最小支持度计数5由数据库到数据挖掘II-数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程 ?候选3项集C3=L2 Join L2频繁项集挖掘算法计算示例4.形成候选3-项集,并剪枝,进一步求出频繁3-项集频繁2项集候选3项集的支持度计数频繁3项集由数据库到数据挖掘II-数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程 ?候选项集-频繁项集支持度计数=5频繁3项集频繁项集全集频繁1项集频繁项集频繁3项集 频繁4项
38、集频繁项集挖掘算法计算示例5.迭代地求出最终结果-频繁项集由数据库到数据挖掘II-数据挖掘示例之计算过程-1(1)频繁项集发现的计算过程 ?由数据库到数据挖掘II-数据挖掘示例之计算过程-1(2)频繁项集的发现算法由数据库到数据挖掘II-数据挖掘示例之计算过程-2Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员关联规则挖掘的基本思想由频繁项集产生强关联规则。依定义,这些规则
39、必须满足最小支持度和最小置信度。 找出所有频繁项集。依定义,这些项集出现的频率至少和预定义的最小出现频率一样。由数据库到数据挖掘II-数据挖掘示例之计算过程-2(0)回顾:频繁项集的挖掘项K-项集事务/ 交易K-频繁项集面包,果酱 - 2-项集面包,果酱,奶油 -3-项集支持度置信度关联规则商品的关联规则“尿布” “啤酒” 支持度=2%,置信度=60% “由尿布的购买,能够推断出啤酒的购买” 支持度2%意味着所分析事务的2%同时购买尿布和啤酒 置信度60%意味着购买尿布的顾客60%也购买啤酒。 由数据库到数据挖掘II-数据挖掘示例之计算过程-2(1)什么是关联规则关联规则的生成计算示例P1,P
40、2,P5,P6可以产生的潜在规则AB, 其中AB=P1,P2,P5,P6, AB=. 由数据库到数据挖掘II-数据挖掘示例之计算过程-2(2)关联规则的产生频繁 项集关联规则输出的规则表,A B = ,“购买A能够推出购买B”置信度70%的规则 关联规则的生成计算示例由数据库到数据挖掘II-数据挖掘示例之计算过程-2(2)关联规则的产生组合形成规则表,频繁3项集能推出哪些频繁项集?置信度标记红色为置信度70%的规则支持度标记蓝色的为满足置信度前提下的支持度=50%的规则关联规则的生成计算示例由数据库到数据挖掘II-数据挖掘示例之计算过程-2(2)关联规则的产生最终输出的规则表关联规则的生成计算
41、示例由数据库到数据挖掘II-数据挖掘示例之计算过程-2(2)关联规则的产生age(X ,30.39) income(X ,42K.48K)buys(X ,high _ resolution _ TV)关联规则挖掘X代表顾客buys(X,面包)buys(X, 果酱) 单维度单层次规则多维度多层次规则由数据库到数据挖掘II-数据挖掘示例之计算过程-2(3)还能挖掘什么 ?Web数据挖掘由数据库到数据挖掘II-数据挖掘示例之计算过程-2(3)还能挖掘什么 ?只求关系,不求因果不要相信经验,一切以数据说话bit & Byte1KB(Kilobyte) = 210字节1MB(Megabyte) = 21
42、0KB1GB(Gigabyte) = 210MB1TB(Trillionbyte) = 210GB = 220MB1PB(Petabyte) = 210TB = 230MB1EB(Exabyte) = 210PB = 240MB1ZB(Zettabyte) = 210EB = 250MB1YB(Yottabyte) = 210ZB = 260MB1BB(Brontobyte) = 210YB = 270MB大数据大数据环境下什么不能发生呢?由数据库到数据挖掘II-数据挖掘示例之计算过程-2(5)小结数据抽象与设计I-抽象之理解-区分-命名-表达Research Center on Intell
43、igent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员u抽象、理论和设计是计算学科的三种形态或三种过程u设计-是指构造计算系统来改造世界的手段,是工程的主要内容,只有设计才能造福于人类(设计的价值)u理论-是发现世界规律的手段,理论,如果不能指导设计,则是反映不出其价值的;设计,如果没有理论指导,则设计的严密性、可靠性、正确性是没有保证的(理论的价值)u抽象-是感性认识世界的手段。理论和设计的前提都需要抽象,没有抽象二者都是没有
44、办法达成目标的(抽象的价值)抽象-理论-设计概述数据抽象与设计I-抽象之理解-区分-命名-表达(0)抽象-理论-设计概述 l抽象:指在思维中对同类事物去除其现象的次要方面,抽取其共同的主要方面,从而做到从个别中把握一般,从现象中把握本质的认知过程和思维方法。l抽象:一方面是建立对客观事物进行抽象描述的方法(方法论),另一方面是要采用现有的抽象方法建立具体问题的概念模型,从而实现对客观世界的感性认识(方法论的应用) 。l抽象:是现实事物的概念化。 数据抽象与设计I-抽象之理解-区分-命名-表达(1)科学方法论中关于“抽象”的描述怎样进行抽象? 有没有抽象的技巧?抽象:是指由具体事物中发现其本质性
45、特征和方法的过程。Quelle: Piccasso具体化 抽象化抽象就是“逐渐剥离语义、逐渐去掉细节”数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽象”? 抽象:就是寻找相同的形式,处理可变的内容抽象:区分并命名表的每一个形式要素若干具有相似性的具体的表用抽象出的概念表示的表的形式“理解 区分 命名 表达”数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽象”? V1 V2 V3 V4 V5 属性名属性值属性元组内容模式抽象:就是共性中寻找差异,差异中寻找共性数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽象”? 与前一个示例一样吗? 怎样进行抽
46、象呢?“理解 区分 命名 表达”数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽象”? 二维交叉表维度-1层次/粒度-1层次/粒度-2维度-2多维度多粒度交叉表交叉格抽象:就是共性中寻找差异,差异中寻找共性“理解 区分 命名 表达”数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽象”? 数据的抽象维度粒度/概念层次度量-交叉格“事实”操作的抽象下钻, 上卷切片/切块转轴抽象:就是共性中寻找差异,差异中寻找共性“理解 区分 命名 表达”切片上卷下钻切片抽象结果的表达-用设计手段表达? 用数学手段表达?数据抽象与设计I-抽象之理解-区分-命名-表达(2)怎样进行“抽
47、象”? “理解 区分 命名 表达”数据抽象与设计I-抽象之理解-区分-命名-表达(3)小结? u抽象的基本特征:本质性、区分与概念u记住:l共性中寻找差异,差异中寻找共性-思维方法l寻找相同的形式,处理可变的内容-计算学科“抽象”过程的本质l理解区分命名表达-计算学科“抽象”的过程最关键的理解区分命名表达抽象数据抽象与设计I-抽象之不同层次Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学
48、指导委员会委员概念的抽象关系数据表的抽象待表达的问题:产品构成关系概念级抽象实现级抽象不同层面的抽象:现实世界概念/信息世界计算机世界逻辑世界(语义结构)物理世界(存储结构)数据抽象与设计I-抽象之不同层次(1)“抽象”层次? 分层级抽象概念的一般性表达方法用一般性方法指导抽象关系数据表的一般性表达方法用一般性方法指导抽象抽象方法/或称方法论(抽象过程;抽象结果的表达方法)按抽象方法进行抽象数据抽象与设计I-抽象之不同层次(2)方法论及其应用?分层级抽象ModelInstanceModelInstanceModelInstance建模的不同层次:模型与元模型,模型(型)与实例(值)建模层次数据
49、抽象与设计I-抽象之不同层次(3)建模层次模型实例模型现实元模型最关键的理解区分命名表达抽象数据抽象与设计I-抽象之不同层次(4)小结层次方法论应用方法论元模型模型现实 世界信息 世界计算机 世界数据抽象与设计II-设计之形式-构造-自动化Research Center on Intelligent Computing for Enterprises & Services,Harbin Institute of Technology战德臣哈尔滨工业大学 教授.博士生导师教育部大学计算机课程教学指导委员会委员u抽象、理论和设计是计算学科的三种形态或三种过程u设计-是指构造计算系统来改造世界的手段
50、,是工程的主要内容,只有设计才能造福于人类(设计的价值)u理论-是发现世界规律的手段,理论,如果不能指导设计,则是反映不出其价值的;设计,如果没有理论指导,则设计的严密性、可靠性、正确性是没有保证的(理论的价值)u抽象-是感性认识世界的手段。理论和设计的前提都需要抽象,没有抽象二者都是没有办法达成目标的(抽象的价值)抽象-理论-设计概述数据抽象与设计II-设计之形式-构造-自动化?(0)抽象-理论-设计概述 u设计:源于工程并用于系统或设备的开发以实现给定的任务 u设计:作为变革控制和利用自然界的手段, 必须以对自然规律的认识为前提, 可以是科学形态的认识, 也可以是经验形态的认识。u设计:要