[计算机软件及应用]数据库应用指南总结适用版.doc
《[计算机软件及应用]数据库应用指南总结适用版.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]数据库应用指南总结适用版.doc(55页珍藏版)》请在三一文库上搜索。
1、数据库应用指南V1.0.0博瑞奇科技发展有限公司2012-7-5数据库应用指南作者版本时间内容王磊V1.0.02012-7-5创建目录1概述12数据库设计12.1基本概念12.1.1关系12.1.2元组12.1.3码12.1.4主码12.1.5候选码22.1.6外码22.1.7主属性22.1.8非主属性22.2依赖32.2.1概念32.2.2相互依赖32.2.3部分函数依赖32.2.4完全函数依赖32.2.5传递函数依赖32.3三范式42.3.11NF42.3.22NF42.3.33NF42.4事务52.4.1事务的四大特征52.4.2锁62.4.3并发问题63数据库开发73.1表检索73.1
2、.1连接查询73.1.2分组查询73.1.3case83.1.4union、intersect、minus83.1.5start with93.1.6rollup、cube103.2表操作103.2.1新增103.2.2修改113.2.3删除113.2.4事务113.3表定义123.3.1表123.3.2约束133.4序列、索引和视图153.4.1序列153.4.2索引173.4.3视图193.5内置函数203.5.1字符函数203.5.2数字函数233.5.3转换函数253.5.4正则函数263.5.5聚合函数273.6PLSQL273.6.1结构块273.6.2条件判断283.6.3循环2
3、93.6.4游标313.6.5异常333.6.6过程343.6.7函数353.6.8触发器373.6.9包384数据库维护414.1表空间414.1.1创建表空间414.1.2删除表空间414.1.3查看表空间信息424.1.4修改表空间424.2用户角色424.2.1创建用户424.2.2修改用户434.2.3删除用户434.2.4用户赋权434.3备份还原434.3.1数据导出434.3.2数据导入434.4数据检测444.4.1查看数据库服务名SID444.4.2查看用户和默认表空间关系444.4.3查看表结构444.4.4查看当前用户的所有的表名444.4.5查看所有表名444.4.6
4、查看所有角色454.4.7查看用户所有角色454.4.8查看主外键关联表454.4.9查看表空间使用情况464.4.10查看BLOB字段464.4.11表解锁474.5工具使用484.5.1登录sqlplus484.5.2与的区别484.5.3linux启动数据库49III1 概述本文档的编写目的是为了让开发人员完成与数据库相关的日常工作事项所有的内容侧重于应用,而非理论本文档将从以下3个方面来介绍数据库的应用知识:1. 数据库设计2. 数据库开发3. 数据库维护2 数据库设计2.1 基本概念2.1.1 关系值数据库表2.1.2 元组数据库表的数据记录(一条)2.1.3 码代表数目的符号2.1
5、.4 主码在实体集中区分不同实体的候选码一个实体集中只能有一个主码,但可以有多个候选码必须注意两点:1. 主码的选择必须慎重例如:人的姓名是不可以做主码的,因为可能有多个人重名,而身份证可以做主码2. 主码的选择应该是那些从不或极少变化的属性例如:一个人的地址就不应该作为主码的一部分,因为它很可能变化2.1.5 候选码能唯一的标识一个元组而其任何真子集都不能再标识例如:在学生实体中,【学号】是能唯一的区分学生实体的,同时又假设【姓名】、【年龄】的属性组合足以区分学生实体,那么学号和姓名、年龄都是候选码2.1.6 外码属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模
6、式的码,则称X是R的外部码,也称外码。主码与外部码提供了一个实现关系间联系的手段,也是在计算机世界描述现实世界实体间联系的手段2.1.7 主属性包含在任一候选码中的属性2.1.8 非主属性不包含在主码中的属性例如:在关系学生(学号,姓名,年龄,性别,班级)中,主码是学号,那么其他的姓名、年龄、性别、班级就都可以称为非主属性2.2 依赖2.2.1 概念设UA1,A2,An是属性集合,R(U)是U上的一个关系,x、y是U的子集。若对于R(U)下的任何一个可能的关系,均有x的一个值对应于y的唯一具体值,称y函数依赖于x,记作xy。其中x称为决定因素例如:关系(学号、姓名、班级),【学号】确定了以后,
7、【姓名】和【班级】的值也就被确定了,此时就可以称【姓名】和【班级】函数依赖于【学号】,或则【学号】函数决定【姓名】和【班级】,记作【学号】【姓名】、【学号】【班级】2.2.2 相互依赖xy,yx,则称x与y相互依赖,记作xy2.2.3 部分函数依赖设R(U)是属性集U上的关系,x、y是U的子集,x是x的真子集,若xy且xy,则称y部分依赖x,记作xPy。显然,当且仅当x为复合属性组时,才有可能出现部分函数依赖2.2.4 完全函数依赖设R(U)是属性集U上的关系,x、y是U的子集,x是x的真子集。若对于R(U)的任何一个可能的关系,有xy但x!y,则称y完全函数依赖于x,记作xFy2.2.5 传
8、递函数依赖设R(U)是属性集U上的关系,x、y、z是U的子集,在R(U)中,若xy,但yx,若yz,则xz,称z传递函数依赖于x,记作xTz2.3 三范式2.3.1 1NF每个属性值都是不可再分的数据项例如:关系由属性:【工号】、【姓名】、【电话】组成,而【电话】必须分成【家庭电话】和【公司电话】,因此此表不满足1NF正确的应该是关系由属性【工号】、【姓名】、【家庭电话】、【公司电话】组成2.3.2 2NF非主属性必须完全依赖于主码例如:关系由属性:【学号】、【课程号】、【成绩】、【学分】组成,主码为学号、课程号在此关系中【课程号】【学分】l 问题1. 数据冗余,假设同一门课有100个学生选修
9、,学分就重复99次2. 新增问题,若一门课没有人选修,则只能等到有人选修才能将元组存入3. 修改问题,若某门课程学分改变,则需要更新所有包含该课程的元组4. 删除问题,若学生结业,而且有门课程只有该学生选修,此元组删除后,该课程信息将无法保存l 解决办法将该关系拆分成两个关系学生关系(学号、课程号、成绩)课程关系(课程号、学分)2.3.3 3NF属性不依赖于非主属性(非主属性不传递依赖于主属性)例如:关系(学号、姓名、系编号、系名称、系地址),主码为学号由此可知【学号】【系编号】,【学号】【系名称】,【学号】【系地址】但【系编号】【系名称】,【系编号】【系地址】得【学号】【系编号】【系名称】,
10、【学号】【系编号】【系地址】因此【学号】p【系名称】,【学号】p【系地址】不满足3NFl 问题同2NFl 解决办法消除函数传递依赖,将其分为2个关系学生关系(学号、系编号)系关系(系编号,系名称,系地址)2.4 事务2.4.1 事务的四大特征l 原子性(atomicity)一个原子事务要么完整执行,要么干脆不执行这意味着,工作单元中的每项任务都必须正确执行如果有任一任务执行失败,则整个工作单元或事务就会被终止。即此前对数据所作的任何修改都将被撤销。如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的l 一致性(consistency)一致性代表了底层数据存储的完整性它必须
11、由事务系统和应用开发人员共同来保证。事务系统通过保证事务的原子性,隔离性和持久性来满足这一要求; 应用开发人员则需要保证数据库有适当的约束(主键,引用完整性等),并且工作单元中所实现的业务逻辑不会导致数据的不一致(即,数据预期所表达的现实业务情况不相一致)。例如,在一次转账过程中,从某一账户中扣除的金额必须与另一账户中存入的金额相等l 隔离性(isolation)隔离性意味着事务必须在不干扰其他进程或事务的前提下独立执行换言之,在事务或工作单元执行完毕之前,其所访问的数据不能受系统其他部分的影响l 持久性(durability)持久性表示在某个事务的执行过程中,对数据所作的所有改动都必须在事务
12、成功结束前保存至某种物理存储设备这样可以保证,所作的修改在任何系统瘫痪时不至于丢失2.4.2 锁l 共享锁(share locks,简称S锁)由非更新(读取)操作创建的锁。其他用户可以并发读取数据,但任何事务都不能获取数据上的排它锁,直到已释放所有共享锁共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A,不能修改A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改l 排他锁(exclusive lock,简称X锁)由修改操作创建的锁。其他任何事务都不能获取数据上的任何类型的锁,直到已释放所
13、有排他锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A2.4.3 并发问题l 脏读一个未提交的事务对数据进行了修改,另外一个事务使用了这个数据(错误的数据)解决办法:为第一个事务加入排他锁l 不可重复读一个未提交的事务对数据进行了访问,另外一个事务对这个数据进行了修改,然后前一个事务又对这个数据进行了读取(错误的数据)解决办法:为第一个事务加入共享锁l 幻读一个未提交的事务对一个表的全部数据进行了修改,另外一个事务对这个表插入了新的数据,因此会发现第一个事务的修改操作漏掉
14、了这条新插入的数据解决办法:锁定检索范围为只读3 数据库开发3.1 表检索3.1.1 连接查询3.1.1.1 内连接inner join/join返回满足连接条件的记录,默认情况为内连接3.1.1.2 左连接left join不仅返回满足连接条件的记录,并且还会返回不满足连接条件的操作符左边表的其他行3.1.1.3 右连接right join不仅返回满足连接条件的记录,并且还会返回不满足连接条件的操作符右边表的其他行3.1.1.4 全连接right join不仅返回满足连接条件的记录,并且还会返回不满足连接条件的操作符左右两边表的其他行3.1.2 分组查询group by子句将查询结果按列或则
15、列组合在行的方向上进行分组,每组数据在列或列组合上具有相同的值having对group by分组后的数据进行筛选where对group by分组前的数据进行筛选order by可以对分组前后的数据按列进行排序例如:select si_name,count(si_name) cfrom check_index iwhere si_name != sily2group by si_namehaving count(si_name) 1order by c desc3.1.3 casecase用于在查询语句中进行逻辑判断例如:select t.sex,(case when sex=MALE then
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件及应用 计算机软件 应用 数据库 指南 总结 适用
链接地址:https://www.31doc.com/p-1991960.html