工程科技数据库操作课件_第1页
工程科技数据库操作课件_第2页
工程科技数据库操作课件_第3页
工程科技数据库操作课件_第4页
工程科技数据库操作课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库操作Presentedby:MichaelAug2007

数据库操作Presentedby:MichaelAug数据库基础数据库三大范式第一范式

定义:如果关系R中所有属性的值域都是单纯域,那么关系模式R是第一范式的

那么符合第一模式的特点就有

1)有主关键字

2)主键不能为空,

3)主键不能重复,

4)字段不可以再分

例如:

StudyNo

|

Name

|

Sex

|

Contact

20040901

john

Male

Email:kkkk@,phone:222456

20040901

mary

famale

email:kkk@phone:123455

以上的表就不符合,第一范式:主键重复(实际中数据库不允许重复的),而且Contact字段可以再分

所以变更为正确的是

StudyNo

|

Name

|

Sex

|

Email

|

Phone

20040901

john

Male

kkkk@

222456

20040902

mary

famale

kkk@

123455数据库基础数据库三大范式数据库基础数据库三大范式第二范式:

定义:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式的。

所以第二范式的主要任务就是满足第一范式的前提下,消除部分函数依赖。

StudyNo

|

Name

|

Sex

|

Email

|

Phone

|

ClassNo

|ClassAddress

01

john

Male

kkkk@

222456

200401

A楼2

02

mary

famale

kkk@

123455

200402

A楼3

这个表完全满足于第一范式,

主键由StudyNo和ClassNo组成,这样才能定位到指定行

但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress),

所以要变为两个表

表一

StudyNo

|

Name

|

Sex

|

Email

|

Phone|

ClassNo

01

john

Male

kkkk@

222456

200401

02

mary

famale

kkk@

123455

200402

表二

ClassNo

|ClassAddress

200401

A楼2

200402

A楼3

数据库基础数据库三大范式数据库基础数据库三大范式

第三范式:

满足第二范式的前提下,消除传递依赖。

例:

StudyNo

|

Name

|

Sex

|

Email

|

bounsLevel

|

bouns

20040901

john

Male

kkkk@

优秀

$1000

20040902

mary

famale

kkk@

$600

这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖

更改为:

StudyNo

|

Name

|

Sex

|

Email

|

bouunsNo

20040901

john

Male

kkkk@

1

20040902

mary

famale

kkk@

2

bounsNo

|

bounsLevel

|

bouns

1

优秀

$1000

2

$600

这里我比较喜欢用bounsNo作为主键,

一般满足前三个范式就可以避免数据冗余。数据库基础数据库三大范式数据库基础SQL语言数据定义(DataDefinition)CREATETABLE,DROPTABLE…数据操纵(DataManipulation)SELECT,INSERT,UPDATE,DELETE数据控制(DataControl)COMMIT,ROLLBACK数据库基础SQL语言数据库基础OPENSQL语言OPENSQL是SQL的子集OPENSQL独立于不同类型的数据库OPENSQL是DML语言数据库基础OPENSQL语言数据库基础使用OPENSQL的效率原则尽可能减少满足条件的数据条目数量减少传输数据量,以减少网络流量减少访问数据库表的数量建超查询难度减少数据库负载数据库基础使用OPENSQL的效率原则数据表维护数据字典TCODE:se11需要掌握:表字段外部关键字技术设定(Technicalsetting)索引DataElementDomain数据表维护数据字典数据表维护数据字典新建一个数据表ZXXX数据表维护数据字典SELECTSELECTSELECT…FROM…INTO…WHERE…GROUPBY…HAVING…ORDERBY…SELECTSELECTSELECT选择单行数据SELECTSINGE…FROM…INTO…WHERE…

演示:选择全部字段到workarea选择指定字段到变量SELECT选择单行数据SELECT选择多行数据SELECT[DISTINCT]… …ENDSELECTSELECT…INTO|APPENDING [CORRESPONDINGFIELDSOF]TABLEitabSELECT…INTOTABLEitabPACKAGESIZEn…ENDSELECTSELECT选择多行数据SELECT指定查询条件比较运算符=><<><=>=范围限定符号BETWEEN…AND…字符比较运算符号[NOT]LIKE..[EXCAPEh]_代表单个字符%代表多个字符检查列表值[NOT]INSELECT指定查询条件SELECT指定查询条件检查空值IS[NOT]NULL…检查选择表INsettab…SELECT指定查询条件SELECT多表组合查询-SELECT语句嵌套SELECT …

SELECT … ENDSELECT …ENDSELECTSELECT多表组合查询-SELECT语句嵌套SELECT多表组合查询-从内表查询SELECT…FORALLENTRIESINitabWHETE…SELECT多表组合查询-从内表查询SELECT多表组合查询-使用视图通过View进行查询SELECT多表组合查询-使用视图SELECT多表组合查询-结合查询SELECT…FROMtable[INNER]JOINtable1[ASalias1]oncondition[INNER]JOINtable2[ASalias2]onconditionSELECT多表组合查询-结合查询SELECT多表组合查询-子查询SELECT…WHEREEXIST(SELECT…)SELECT…WHEREfieldIN(SELECT…)SELECT…WHEREfield=(SELECT…)SELECT多表组合查询-子查询SELECT多表组合查询-统计函数MaxMinSumAvgCountSELECT多表组合查询-统计函数SELECT多表组合查询-分组SELECT…WHERE…GROUPBY…HAVING…SELECT多表组合查询-分组SELECT多表组合查询-排序SELECT…WHERE…ORDERBYf1[ASCENDING|DESCENDING]f2[ASCENDING|DESCENDING]SELECT多表组合查询-排序SELECT多表组合查询-其他使用表工作区TABLESdbtab动态指定数据库表SELECT…FROM(dbtabname)指定ClientSELECT…FROM…CLIENT

SPECIFIED

设置缓冲机制SELECT…FROMdbtabBYPASSING

BUFFER…限定行数SELECT…FROMdbtabUPTOnROWS…SELECT多表组合查询-其他SELECT多表组合查询-操作性能分析GETRUNTIMEFIELDf.TCODE:se30SELECT多表组合查询-操作性能分析SELECT多表组合查询-使用光标OPENCURSOR[WITHHOLD]cFORSELECT…FETCHNEXTCURSORcINTOtarget.CLOSECURSORc.SELECT多表组合查询-使用光标更新数据更新数据INSERTUPDATEMODIFYDELETESy-subrc 操作是否成功Sy-dbcnt 影响的行数更新数据更新数据更新数据INSERTINSERTINTOdbtabVALUESwa.INSERTINTOdbtabFROMwa.INSERTdbtabFROMTABLEitab[ACCEPTINGDUPLICTEKEYS].更新数据INSERT更新数据UPDATEUPDATEdbtabSETf1=g1…fn=gnWHERE…UPDATEdbtabFROMwa.UPDATEdbtabFROMTABLEitab.更新数据UPDATE更新数据MODIFY(INSERT+UPDATE)MODIFYdbtabFROMwa.MODIFYdbtabFROMTABLEitab.更新数据MODIFY(INSERT+UPDATE)更新数据DELETEDELETEdbtabFROMWHERE…DELETEdbtabFROMwa.DLETEdbtab[CLIENTSPECIFIED]FROMTABLEitab.更新数据DELETE数据一致性SAPLUWLUW(LogicalUnitofWork)数据库LUW数据一致性SAPLUW数据一致性SAPLUWCOMMITWORK.ROLLBACKWORK.PERFORM..ONCOMMIT.CALLFUNCTION…INUPDATETASK.数据一致性SAPLUW数据一致性SAP数据锁定TCODE:se11Lockobject(锁定对象)Functionmodule:ENQUEUE_<LOCKOBJECT>DEQUEUE_<LOCKOBJECT>数据一致性SAP数据锁定数据一致性用户权限检查TCODE:su21AuthorizationobjectsAUTHORITY-CHECKOBJECT‘object’ ID‘name1’fieldf1 ID‘name2’fieldf2 ID‘name’dumySy-subrc 判断检查结果数据一致性用户权限检查数据一致性文件接口OPENDATASETdsn<options>.CLOSEDATASETdsn.DELETEDATASETdsn.TRANSFERfTOdsn[LENGTHlen].READDATASETdsnINTOf[LENGTHlen].数据一致性文件接口数据一致性文件接口-FunctionFILE_GET_NAMEDOWNLOADWS_DOWNLOADUPLOADWS_UPLOAD数据一致性文件接口-Function数据一致性数据簇EXPORTf1[FROMg1]f2[FROMg2]TOmediumIDid.IMPORTf1[FROMg1]f2[FROMg2]FROMmediumIDid.Medium(存储区域):MEMORY(内存)FREEMEMORYIDid.DATABASE(数据表)Table:INDX数据一致性数据簇结束

谢谢大家!结束数据库操作Presentedby:MichaelAug2007

数据库操作Presentedby:MichaelAug数据库基础数据库三大范式第一范式

定义:如果关系R中所有属性的值域都是单纯域,那么关系模式R是第一范式的

那么符合第一模式的特点就有

1)有主关键字

2)主键不能为空,

3)主键不能重复,

4)字段不可以再分

例如:

StudyNo

|

Name

|

Sex

|

Contact

20040901

john

Male

Email:kkkk@,phone:222456

20040901

mary

famale

email:kkk@phone:123455

以上的表就不符合,第一范式:主键重复(实际中数据库不允许重复的),而且Contact字段可以再分

所以变更为正确的是

StudyNo

|

Name

|

Sex

|

Email

|

Phone

20040901

john

Male

kkkk@

222456

20040902

mary

famale

kkk@

123455数据库基础数据库三大范式数据库基础数据库三大范式第二范式:

定义:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式的。

所以第二范式的主要任务就是满足第一范式的前提下,消除部分函数依赖。

StudyNo

|

Name

|

Sex

|

Email

|

Phone

|

ClassNo

|ClassAddress

01

john

Male

kkkk@

222456

200401

A楼2

02

mary

famale

kkk@

123455

200402

A楼3

这个表完全满足于第一范式,

主键由StudyNo和ClassNo组成,这样才能定位到指定行

但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress),

所以要变为两个表

表一

StudyNo

|

Name

|

Sex

|

Email

|

Phone|

ClassNo

01

john

Male

kkkk@

222456

200401

02

mary

famale

kkk@

123455

200402

表二

ClassNo

|ClassAddress

200401

A楼2

200402

A楼3

数据库基础数据库三大范式数据库基础数据库三大范式

第三范式:

满足第二范式的前提下,消除传递依赖。

例:

StudyNo

|

Name

|

Sex

|

Email

|

bounsLevel

|

bouns

20040901

john

Male

kkkk@

优秀

$1000

20040902

mary

famale

kkk@

$600

这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖

更改为:

StudyNo

|

Name

|

Sex

|

Email

|

bouunsNo

20040901

john

Male

kkkk@

1

20040902

mary

famale

kkk@

2

bounsNo

|

bounsLevel

|

bouns

1

优秀

$1000

2

$600

这里我比较喜欢用bounsNo作为主键,

一般满足前三个范式就可以避免数据冗余。数据库基础数据库三大范式数据库基础SQL语言数据定义(DataDefinition)CREATETABLE,DROPTABLE…数据操纵(DataManipulation)SELECT,INSERT,UPDATE,DELETE数据控制(DataControl)COMMIT,ROLLBACK数据库基础SQL语言数据库基础OPENSQL语言OPENSQL是SQL的子集OPENSQL独立于不同类型的数据库OPENSQL是DML语言数据库基础OPENSQL语言数据库基础使用OPENSQL的效率原则尽可能减少满足条件的数据条目数量减少传输数据量,以减少网络流量减少访问数据库表的数量建超查询难度减少数据库负载数据库基础使用OPENSQL的效率原则数据表维护数据字典TCODE:se11需要掌握:表字段外部关键字技术设定(Technicalsetting)索引DataElementDomain数据表维护数据字典数据表维护数据字典新建一个数据表ZXXX数据表维护数据字典SELECTSELECTSELECT…FROM…INTO…WHERE…GROUPBY…HAVING…ORDERBY…SELECTSELECTSELECT选择单行数据SELECTSINGE…FROM…INTO…WHERE…

演示:选择全部字段到workarea选择指定字段到变量SELECT选择单行数据SELECT选择多行数据SELECT[DISTINCT]… …ENDSELECTSELECT…INTO|APPENDING [CORRESPONDINGFIELDSOF]TABLEitabSELECT…INTOTABLEitabPACKAGESIZEn…ENDSELECTSELECT选择多行数据SELECT指定查询条件比较运算符=><<><=>=范围限定符号BETWEEN…AND…字符比较运算符号[NOT]LIKE..[EXCAPEh]_代表单个字符%代表多个字符检查列表值[NOT]INSELECT指定查询条件SELECT指定查询条件检查空值IS[NOT]NULL…检查选择表INsettab…SELECT指定查询条件SELECT多表组合查询-SELECT语句嵌套SELECT …

SELECT … ENDSELECT …ENDSELECTSELECT多表组合查询-SELECT语句嵌套SELECT多表组合查询-从内表查询SELECT…FORALLENTRIESINitabWHETE…SELECT多表组合查询-从内表查询SELECT多表组合查询-使用视图通过View进行查询SELECT多表组合查询-使用视图SELECT多表组合查询-结合查询SELECT…FROMtable[INNER]JOINtable1[ASalias1]oncondition[INNER]JOINtable2[ASalias2]onconditionSELECT多表组合查询-结合查询SELECT多表组合查询-子查询SELECT…WHEREEXIST(SELECT…)SELECT…WHEREfieldIN(SELECT…)SELECT…WHEREfield=(SELECT…)SELECT多表组合查询-子查询SELECT多表组合查询-统计函数MaxMinSumAvgCountSELECT多表组合查询-统计函数SELECT多表组合查询-分组SELECT…WHERE…GROUPBY…HAVING…SELECT多表组合查询-分组SELECT多表组合查询-排序SELECT…WHERE…ORDERBYf1[ASCENDING|DESCENDING]f2[ASCENDING|DESCENDING]SELECT多表组合查询-排序SELECT多表组合查询-其他使用表工作区TABLESdbtab动态指定数据库表SELECT…FROM(dbtabname)指定ClientSELECT…FROM…CLIENT

SPECIFIED

设置缓冲机制SELECT…FROMdbtabBYPASSING

BUFFER…限定行数SELECT…FROMdbtabUPTOnROWS…SELECT多表组合查询-其他SELECT多表组合查询-操作性能分析GETRUNTIMEFIELDf.TCODE:se30SELECT多表组合查询-操作性能分析SELECT多表组合查询-使用光标OPENCURSOR[WITHHOLD]cFORSELECT…FETCHNEXTCURSORcINTOtarget.CLOSECURSORc.SELECT多表组合查询-使用光标更新数据更新数据INSERTUPDATEMODIFYDELETESy-subrc 操作是否成功Sy-dbcnt 影响的行数更新数据更新数据更新数据INSERTINSERTINTOdbtabVALUESwa.INSERTINTOdbtabFROMwa.INSERTdbtabFROMTABLEitab[ACCEPTINGDUPLICTEKEYS].更新数据INSERT更新数据UPDATEUPDATEdbtabSETf1=g1…fn=gnWHERE…UPDATEdbtabFROMwa.UPDATEdbtabFROMTABLEitab.更新数据UPDATE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论