资源描述
,.,*,LHNPC,.,*,.,*,数据库基础知识培训,1,.,目 录,常用的几种数据库介绍,1,数据库基础理论,2,3,4,客户端配置,5,SQL,语言的使用,2,.,常用的几种数据库介绍,目前,商品化的数据库管理系统以,关系型,数据库为主导产品,技术比较成熟。,面向对象,的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有,ORACLE,、,SQLSERVER,、,SYBASE,、,INFORMIX,和,DB2,等。这些产品都支持多平台,如,UNIX,、,VMS,、,WINDOWS,,但支持的程度不一样。,其他小型的数据库有:,Access,、,Foxpro,等,这类数据库灵活易用,但不支持大型应用。,3,.,常用的几种数据库介绍,Informix,数据库,美国,InfomixSoftware,公司研制的关系型数据库管理系统。,Informix,有,Informix-SE,和,Informix-Online,两种版本。,Oracle,数据库,美国,Orcale,公司研制的一种关系型数据库管理系统,是一个协调服务器和用于支持任务决定型应用程序的开放型,RDBMS,。,DB2,数据库,IBM,公司研制的一种关系型数据库系统。,DB2,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于,OS/2,、,Windows,等平台下。,4,.,常用的几种数据库介绍,SQL Server,数据库,Microsoft,公司推出的一种关系型数据库系统。主要用于,Windows,平台。,Sybase,数据库,美国,Sybase,公司研制的一种关系型数据库系统,是一种典型的,UNIX,或,Windows,平台上客户机,/,服务器环境下的大型数据库系统。,Foxpro,、,Access,数据库,Microsoft,公司推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点。,5,.,数据库基础理论,5,、,游标,2,、,数据字典,1,、数据库体系结构,6,、,数据库设计,3,、索引,4,、,存储过程,数据库,6,.,数据库基础理论,体系结构,两种数据库的体系结构,ORACLE,数据库中的最小存储和处理单位是数据块。,7,.,数据库基础理论,体系结构,在,SQL Server,中,页的大小为,8 KB,。这意味着,SQL Server,数据库中每,MB,有,128,页。每页的开头是,96,字节的标头,用于存储有关页的系统信息。,8,.,数据库基础理论,体系结构,在,SQL Server,上创建了一个数据库。该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。,9,.,数据库基础理论,体系结构,Oracle,系统体系结构是整个,Oracle,服务器系统的框架,是管理和应用,Oracle,数据服务器的基础和核心。,Oracle,系统体系结构由三部分组成:逻辑结构、物理结构和实例。其中,实例是维系物理结构和逻辑结构的核心。,10,.,数据库基础理论,体系结构,逻辑结构指是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。,物理结构主要包括数据文件、控制文件和重做日志文件等。,实例是,Oracle,在内存中分配的一段区域,SGA,(系统全局区)和服务器后台进程的集合。,Oracle,数据库服务器就是数据库和实例的组合。,11,.,数据库基础理论,体系结构,体系结构三部分之间的关系,12,.,数据库基础理论,体系结构,Oracle 10g,数据库层次结构图,13,.,数据库基础理论,数据字典,所有方案对象的定义,如:表、视图、索引、聚簇、同义词、序列、过程、函数、包、触发器等。,数据字典中包括两部分信息:基表和提供给用户访问的视图。所有的数据字典都保存在,SYSTEM,表空间中。,14,.,数据库基础理论,数据字典,的系统表,数据字典,存储,SqlServer,Sysobjects,Syscolumns,Sysindexes,Oracle,Dba_tables,Dba_users,Dba_indexs,15,.,数据库基础理论,索引,索引会增加速度的原理,数据库在执行一条,Sql,语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。,16,.,数据库基础理论,索引,普通索引建立语句,创建索引,CREATE INDEX ON,tablename(,列的列表,);,修改表时,ALTER TABLE tablename ADD INDEX,索引的名字,(,列的列表,);,创建表时,CREATE TABLE tablename(.,INDEX,索引的名字,(,列的列表,);,17,.,数据库基础理论,索引,不适合建索引的地方,如果每次都需要取到所有表记录,无论如何都必须进行全表扫描了,那么是否加索引也没有意义了。,对非唯一的字段,例如,“,性别,”,这种大量重复值的字段,增加索引也没有什么意义。,对于记录比较少的表,增加索引不会带来速度的优化反而浪费了存储空间,因为索引是需要存储空间的,而且有个致命缺点是对于,update/insert/delete,的每次执行,字段的索引都必须重新计算更新。,18,.,数据库基础理论,存储过程,什么是存储过程,存储过程是由流控制和sql语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在Oracle中,若干个有联系的过程可以组合在一起构成程序包。,19,.,数据库基础理论,存储过程,优点,执行速度比普通的,SQL,语句快存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般,SQL,语句每执行一次就编译一次。,可保证数据的安全性和完整性。,通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。同时,存储过程的执行是作为一个整体进行的,执行不成功时,会自动回滚,从而保证了数据的完整性。,可将体现企业规则的运算程序放入数据库服务器中,以便集中控制,减少业务变更时的工作量。,可以降低网络的通信量。,20,.,数据库基础理论,游标,游标是系统为用户开设的一个数据缓冲区,存放,SQL,语句的执行结果。,我们可以从某一结果集中逐一地读取一条记录。,21,.,数据库基础理论,游标,声明游标,declare my_cursor cursor keyset for select*from info,删除游标资源,deallocate my_cursor,打开游标,在游标关闭或删除前都有效,open my_cursor,关闭游标,close my_cursor,定位到当前记录后一条,fetch next from my_cursor into id,name,address,select id as id,name as name,address as address,22,.,数据库基础理论,数据库设计,数据库的设计需要有经验的工程师在通盘考虑业务的需求后才能做好的。,数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。,冗余最大的威胁是数据的一致性,对于大系统,如果数据库设计有冗余,为了保持数据一致性给编程增加大量工作。,23,.,数据库基础理论,数据库设计,数据库设计原则三个范式,第一范式:,1NF,是对属性的原子性约束,要求属性具有 原子性,不可再分解;,第二范式:,2NF,是对记录的惟一性约束,要求记录有惟 一标识,即实体的惟一性;,第三范式:,3NF,是对字段冗余性的约束,即任何字段不 能由其他字段派生出来,它要求字段没有冗余。,24,.,SQL,语言的使用,SQL,3,、,创建和管理表,4,、,视图,2,、,数据控制语言,5,、,控制用户权限,1,、,Select,语句的功能,25,.,SQL,语言的使用,Select,语句,基本,SELECT,语句语法,SELECT*|DISTINCT,column,|,expression,alias,.,FROM,table;,SELECT,标识,选择哪些列。,FROM,标识从哪个表中选择。,26,.,SQL,语言的使用,Select,语句,基本,SELECT,语句语法,SELECT*,FROM departments,where dept_id=10 and,;,SELECT department_id,location_id,FROM departments;,SELECT last_name,salary,salary+300,FROM employees;,27,.,SQL,语言的使用,Select,语句,使用别名,SELECT last_name AS name,commission_pct comm,FROM employees;,SELECT last_name Name,salary*12 Annual Salary,FROM employees;,28,.,SQL,语言的使用,Select,语句,删除重复行,在,SELECT,子句中使用关键字,DISTINCT,删除重复行。,SELECT DISTINCT department_id,FROM employees;,29,.,SQL,语言的使用,数据控制语言,数据控制语言,DML,可以在下列条件下执行:,向表中插入数据,修改现存数据,删除现存数据,事务是由完成若干项工作的,DML,语句组成的。,30,.,SQL,语言的使用,数据控制语言,插入数据,DEPARTMENTS,新行,向,DEPARMENTS,表中插入,新的记录,31,.,SQL,语言的使用,数据控制语言,插入数据,INSERT INTO,table,(,column,column.,),VALUES,(value,value.,);,INSERT INTO departments(department_id,department_name,manager_id,location_id),VALUES (70,Public Relations,100,1700);,1 row created.,INSERT INTO sales_reps(id,name,salary,commission_pct),SELECT employee_id,last_name,salary,commission_pct,FROM employees,WHERE job_id LIKE%REP%;,4 rows created.,32,.,SQL,语言的使用,数据控制语言,更新数据,EMPLOYEES,更新,EMPLOYEES,表,33,.,SQL,语言的使用,数据控制语言,更新数据,UPDATE table SET column=value,column=value,.WHERE condition;,UPDATE employees SET department_id=70,WHERE employee_id=113;,1 row updated.,UPDATE copy_emp,SET department_id=110;,22 rows updated.,34,.,SQL,语言的使用,数据控制语言,删除数据,DELETE FROM departments,WHERE department_name=Finance;,1 row deleted.,使用,DELETE,语句从表中删除数据,。,DELETE FROM,table,WHERE,condition,;,35,.,SQL,语言的使用,创建和管理表,常见的数据库对象,对象描述,表 基本的数据存储集合,由行和列组成。,视图从表中抽出的逻辑上相关的数据集合。,序列 提供有规律的数值。,索引提高查询的效率,同义词 给对象起别名,36,.,SQL,语言的使用,创建和管理表,常见的数据库对象的管理,语句描述,CREATE TABLE,创建表,ALTER TABLE,修改表结构,DROP TABLE,删除表,RENAME,重命名表,TRUNCATE,删除表中的所有数据,并释放存储空间,COMMENT,给对象加注释,37,.,SQL,语言的使用,视图,表,EMPLOYEES,:,38,.,SQL,语言的使用,视图,为什么使用视图,控制数据访问,简化查询,数据独立性,避免重复访问相同的数据,39,.,SQL,语言的使用,控制用户权限,语句功能,CREATE USER,创建用户(通常由,DBA,完成),GRANT,分配权限,CREATE ROLE,创建角色(通常由,DBA,完成),ALTER USER,修改用户密码,REVOKE,收回权限,40,.,SQL,语言的使用,控制用户权限,数据库联接,数据库联接使用户可以在本地访问远程数据库,本地数据库,远程数据库,SELECT*FROM empHQ_ACME.COM;,HQ_ACME.COM,database,EMP,Table,41,.,客户端配置,实例演示,42,.,谢 谢!,43,.,
展开阅读全文