数据库培训[001]

上传人:pu****.1 文档编号:591554512 上传时间:2024-09-18 格式:PPT 页数:32 大小:2.14MB
返回 下载 相关 举报
数据库培训[001]_第1页
第1页 / 共32页
数据库培训[001]_第2页
第2页 / 共32页
数据库培训[001]_第3页
第3页 / 共32页
数据库培训[001]_第4页
第4页 / 共32页
数据库培训[001]_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《数据库培训[001]》由会员分享,可在线阅读,更多相关《数据库培训[001](32页珍藏版)》请在金锄头文库上搜索。

1、数据数据库培培训目 录一、数据库介绍二、数据库系统组成三、数据库系统架构四、数据库设计(范式)五、数据库对象六、数据库操纵语言(SQL)七、数据库应用数据库简介定义:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。类型:数据库通常分为层次式数据库层次式数据库、网络式数据库网络式数据库和关系式数据库关系式数据库三种。主流数据库:ORACLESQLServerDB2MySQLMongoDB数据库系统(DatabaseSystem)数据库系统,是由数据库及其管理软件组

2、成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。数据库系统一般包括4个部分组成(1)数据库(database,DB):是指长期存储在计算机内的,有组织,可共享的数据的集合。(2)硬件:构成计算机系统的各种物理设备,包括存储所需的外部设备。(3)软件:包括操作系统、数据库管理系统及应用程序。(4)人员:数据库管理员(databaseadministrator,DBA)、开发人员等。数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构

3、成。DBMS是数据库系统的基础和核心。数据库系统实现数据共享数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。减少数据的冗余度同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。数据的独立性数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。数据实现集中控制文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并

4、通过数据模型表示各种数据的组织以及数据间的联系。数据一致性和可维护性,以确保数据的安全性和可靠性主要包括:安全性控制:以防止数据丢失、错误更新和越权使用;完整性控制:保证数据的正确性、有效性和相容性;并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。故障恢复由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。数据库特点Client/Server架构,即服务器/客户端架构。数据库系统架构B/S架构即Browser/Serv

5、er(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。系统架构数据库设计范式设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以

6、次类推。一般说来,数据库只需满足第三范式(3NF)就行了。第一范式第一范式(1NF)所谓第一范式(1NF)是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第

7、一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。第二范式第二范式第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。把所有这些信息放到一个表S

8、electCourse中(学号,学生姓名、年龄、性别、课程名称、课程学分、系别、课程成绩,系办地址、系办电话)下面存在如下的依赖关系。(学号,课程名称)(学生姓名,年龄,课程成绩,课程学分)解决方案解决方案把选课关系表SelectCourse改为如下三个表:学生:Student(学号,学生姓名,年龄,性别,系别,系办地址、系办电话)课程:Course(课程名称,课程学分);选课关系:SelectCourse(学号,课程名称,课程成绩)。第三范式第三范式在2NF基础上,任何非主任何非主属性属性不依赖于其它非主属性不依赖于其它非主属性在在2NF基础上消除传递依赖基础上消除传递依赖第三范式(3NF)

9、是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。前面的学生表Student(学号,学生姓名,

10、年龄,性别,系别,系办地址、系办电话),关键字为单一关键字学号,因为存在如下决定关系:(学号)(学生姓名,年龄,性别,系别,系办地址、系办电话)但是还存在下面的决定关系(学号)(系别)(系办地点,系办电话)解决方案解决方案把选课关系表Student改为如下二个表:学生:(学号,学生姓名,年龄,性别,系别);系别:(系别,系办地址、系办电话)。数据库对象表数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row)和列(Column)组成的。索引索引是根据指定的数据库表列建立起来的顺序。它提供了快速访问数据的途径视图视图是一个虚拟的表,在数据库中并不实际存在。视图是由查询数据库表产生的,它限

11、制了用户能看到和修改的数据。完整性约束数据库表中数据信息的存储的规则和限制存储过程存储过程是为完成特定的功能而汇集在一起的一组SQL程序语句,经编译后存储在数据库中的SQL程序。触发器触发器由事件来触发,是特殊的存储过程。当对一个表进行插入、更改、删除时,这组命令就会自动执行。用户所谓用户就是有权限访问数据库的人。表(TABLE)表类型1.普通堆表2.索引组织表3.分区表4.簇表5.临时表6.外部表分区表类型1.范围分区表:按字段数据范围分区的表2.列表分区表:按字段数据列表固定可枚举值分区的表3.哈希分区表:按字段数据Hash值分区的表4.组合分区表:在分区中可以再建立子分区,以实现分区组合

12、。可任意对上述各类分区进行组合分区。索引(INDEX)索引类型1.B-树索引2.位图索引3.HASH索引4.反转键索引5.基于函数的索引6.分区索引应该建索引列的特点:1.在经常需要搜索的列上,可以加快搜索的速度;2.在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;3.在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;4.在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;5.在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;6.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

13、索引(INDEX)优点:1.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2.可以大大加快数据的检索速度,这也是创建索引的最主要的原因。3.可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。4.在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。5.通过使用索引,可以在查询的过程中,使用查询优化器,提高系统的性能。缺点:1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。3.当对表中的数据进行增加、删

14、除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。视图(VIEW)视图视图是一个虚拟表,视图并不在数据库中存储数据值,数据库中只在数据字典中存储对视图的定义。优点:1.为用户集中数据,简化用户的数据查询和处理。2.屏蔽数据库的复杂性,用户不必了解数据库的复杂性。3.简化用户权限的管理,只授予用户使用视图的权限。4.便于数据共享,多个用户不必都定义所需的数据。5.可以重新组织数据,以便关联到其他应用中。完整性约束(CONSTRAINT)约束约束是强加在表上的规则或条件。确保数据库满足业务规则。保证数据的完整性。当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或

15、规则的话,系统就会拒绝执行这个操作。约束可以是列一级别的也可以是表级别的。分类:1.非空(NOTNULL)约束:顾名思义,所约束的列不能为NULL值。否则就会报错2.唯一(UNIQUE)约束:在表中每一行中所定义的这列或这些列的值都不能相同。必须保证唯一性。否则就会违法约束条件。3.主键(PRIMARYKEY)约束:唯一的标识表中的每一行,不能重复,不能为空。需要注意的是:每个表只能有且有一个主键约束。4.外键(FOREIGNKEY)约束:用来维护从表(ChildTable)和主表(ParentTable)之间的引用完整性.外键约束是个有争议性的约束,它一方面能够维护数据库的数据一致性,数据的

16、完整性。防止错误的垃圾数据入库;另外一方面它会增加表插入、更新等SQL性能的额外开销。5.条件(CHECK)约束:表中每行都要满足该约束条件。条件约束既可以在表一级定义也可以在列一级定义。在一列上可以定义任意多个条件约束。存储过程(PROCEDURE)存储过程存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。优点:1.重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。2.提高性能。存储过程在创建的时候在进行了编译,将来使用

17、的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。3.减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。4.安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。缺点:1.移植问题,数据库端代码当然是与数据库相关的。不能跨数据库。2.重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译。3.如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导

18、致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。触发器(TRIGER)触发器触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、Insert、Delete这些操作时,数据库就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。作用:1.可在写入数据表前,强制检验或转换数据。2.触发器发生错误时,异动的结果会被撤销。3.可依照特定的情况,替换异动的指令(I

19、NSTEADOF)。NOTE:慎用触发器触发器功能强大,轻松可靠地实现许多复杂的功能,为什么又要慎用呢。触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。用户(USER)用户用户,即user,通俗的讲就是访问数据库的“人”。在oracle中,可以对用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制

20、、数据库审计等。每个用户都有一个口令,使用正确的用户/口令才能登录到数据库进行数据存取。数据类型定义结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;语句类型一:数据查询语言(DQL:DataQueryLanguage)SELECT二:数据操作语言(DML:DataManipulationLanguage)INSERT、UPDATE、DELETE三:数据定义语言(DDL):CREATE、DROP四:数据控制语言(DCL):GRANT、REVOKESQL(结构化查询

21、语言)数据查询SELECTALLDISTINCTselect_expr1,select_expr2,FROM,,WHEREGROUPBYHAVINGORDERBYASCDESCEXAMPLE1.SELECT*FROMemployeesWHEREdepartment_id=30ORDERBYlast_name;2.SELECTlast_name,job_id,salary,department_id1.FROMemployees2.WHERENOT(job_id=PU_CLERKANDdepartment_id=30)3.ORDERBYlast_name;4.3.SELECTdepartment

22、_id,MIN(salary),MAX(salary)5.FROMemployees6.GROUPBYdepartment_id7.ORDERBYdepartment_id;数据修改INSERTINTOTable1(col_name1,col_name2,)VALUES(value1,value2,)UPDATEtable_nameSETcol_name1=expr1|DEFAULT,col_name2=expr2|DEFAULT.WHEREwhere_conditionDELETEFROMtable_nameWHEREwhere_conditionEXAMPLE1.INSERTINTOemp

23、loyees(employee_id,last_name,email,hire_date,job_id,salary)VALUES(207,Gregory,,sysdate,PU_CLERK,1200);UPDATEemployeesSETjob_id=SA_MAN,salary=salary+1000,department_id=120WHEREfirst_name|last_name=DouglasGrant;DELETEFROMproduct_descriptions1.WHERElanguage_id=AR;数据库操作语句CREATETABLEtable_name(col_nameco

24、l_type,)DROPTABLEtable_nameGRANTpriv_type.ONobject_type.TOuser1,user2WITHwith_optionREVOKEpriv_typeONobject_typeFROMuser1,user2EXAMPLECREATETABLEdepartments_demo(department_idNUMBER(4),department_nameVARCHAR2(30)CONSTRAINTdept_name_nnNOTNULL,manager_idNUMBER(6),location_idNUMBER(4),dnVARCHAR2(300);G

25、RANTSELECTONsh.salesTOwarehouse_user;REVOKEDELETEONordersFROMhr;数据库存储过程CREATEORReplacePROCEDUREschema.procedure_name(argumentIN|OUT|INOUTdatatypeIS|ASdescriptionpart说明部分BEGINSQLSTATEMENT语句序列EXCEPTIONEXCEPTION例外处理ENDprocedureName过程名;EXAMPLECREATEORREPLACEPROCEDUREprocedure_test(p_idINVARCHAR,p_status

26、OUTVARCHAR)ASt_nameVARCHAR2(20);t_countNUMBER:=0;BEGINSELECTvotetitle,vatesumINTOt_name,t_countFROMvotemasterWHEREID=p_id;IFt_count0ANDt_count3THENp_status:=t_name|:良好;ELSEp_status:=t_name|:优秀;ENDIF;END;事务定义事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务由事务开始(begintransaction)和事务结束(endtransa

27、ction)之间执行的全体操作组成。事务是恢复和并发控制的基本单位。特性事务应该具有4个属性:原子性、一致性、隔离性、持久性原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。1.原子性(原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。2.一致性(一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。3.隔离性(隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干

28、扰。4.持久性(持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。事务提交&回滚COMMITROLLBACK举例银行转账,现需要从A账号转账1000到B账号。1.开始转账事务2.从A账号扣除10003.B账号增加10004.结束事务,并提交。A和B账号的更新信息永久写入数据库数据库应用数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转

29、变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。谢 谢Thankyou!人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。谢谢大家!结结 语语

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号