Oracle

该数据库在企业里普遍应用

1.Oracle的发展史

     1.1:1970年IBM的codd提出关系模型理论。

     1.2:Larry Ellison、Bob Miner、Ed Oates+Bruce Scott组成的SDL(software development laboratories)研究出的第一个Demo产品取名为Oracle

     1.3:SDL更名为RSI(relational software Inc),并发布了用于特定系统的商用Oracle2.0。

     1.4:RSI更名为Oracle;Oracle3.0具有可移植性、事务处理单元、非阻塞查询、SQL语句。

     1.5:Oracle4.0、Oracle5.0改善数据库的稳定性。

     1.6:重写数据库核心的Oracle6.0bug众多,性能不稳。具有行级锁、PL/SQL语言、联机热备份

     1.7:Oracle7.0具有分布式处理、基于开销的优化器

     1.8:Oracle8i支持Internet、java;Oracle9i支持RAC(多机单服务器)

     1.9:Oracle10g数据库网格计算功能。

     1.10:Oracle11g数据压缩技术、

 

 

2.Oracle的结构——实例与数据库是怎样的对应关系一对一还是多对一

Oracle
 2.1:实例——内存结构和后台进程

       2.1.1:内存

           2.1.1.1:PGA(program global area)——存放服务器进程的数据和控制信息。

                  2.1.1.1.1:排序区(sort area)——排序的信息。

                  2.1.1.1.2:会话信息(session informaiton)——会话的权限、角色,会话的性能统计信息

                  2.1.1.1.3:游标状态(cursor state)——当前SQL的状态;指针

                  2.1.1.1.4:堆栈空间(stack space)——会话的变量信息

           2.1.1.2:SGA(system global area)——可以提高效率和性能

                  2.1.1.2.1:数据库缓存区(database buffer cache)——缓存命中;减少数据存取时造成的磁盘读写动作。

                  2.1.1.2.2:重做日志缓冲区(redo log buffer)——对数据库的修改按序记录在缓冲区中。

                  2.1.1.2.3:共享池(shared pool)——library cache(SQL编译代码)+dictionary cache(数据字典)

                  2.1.1.2.4:java pool

                  2.1.1.2.5:large pool

 

      2.1.2:进程

           2.1.2.1:数据写进程(DBWR)

           2.1.2.2:日志写进程(LGWR)

           2.1.2.3:系统监控(SMON)——Oracle非正常关闭后,由smon进行必要的数据库修复。

           2.1.2.4:进程监控(PMON)——失败进程的清除。

           2.1.2.5:检查点进程(CKPT)——当数据永久记录时,更新控制文件和数据文件的数据库状态信息。

           2.1.2.6:归档进程(ARCH)——将已满的日志组备份或归档。

  

2.2:数据库——一系列的物理文件和与之对应的逻辑结构
       2.2.1:物理(操作系统)——文件

           2.2.1.1:数据文件——逻辑数据库对象

                    *Oracle数据——没有Boolean和%type类型,对大小写敏感,

           2.2.1.2:日志文件——联机重做日志文件、归档重做日志文件

           2.2.1.3:参数文件——激活前的配置参数

           2.2.1.4:控制文件——数据库的实体信息

           2.2.1.5:口令文件——指令

       

       2.2.2:逻辑(数据库内部)

           2.2.2.1:表空间()——业务系统

           2.2.2.2:段()——数据类型

           2.2.2.3:区(4块)——最小分配(存取)单位;DB的块与OS的块成整倍数关系。

           2.2.2.4:块(8k)——最小存储单位

           2.2.2.5:

 

 

 

3.特点

   3.1:跨操作系统和硬件

   3.2:稳定性

   3.3:安全性

   3.4:高效率

   3.5:为什么选择Oracle

         3.5.1:安全。

         3.5.2:数据量可以很大

         3.5.3:分析特别灵活,例如不同应用中的排名。

         3.5.4:性能调优手段很多

         3.5.5:Oracle发展好,国内应用广泛。

         3.5.6:

4.数据字典中的数据库对象

   4.1:数据字典(系统表)——对象描述的信息库;只读对象;

   4.2:模式(schema)——数据库对象组合的一个集合;一个数据用户只能有一个schema且与用户同名。

   4.3:数据库对象

         4.3.1:用户:

         4.3.2:角色

         4.3.3:表空间

         4.3.4:表

               4.3.4.1:数据类型——char;varchar2;number默认38位;date;

 

         4.3.5:视图(view)=虚表——从一个或多个表中通过查询语句得到的结果,以表的形式存在。

               4.3.4.1:视图对应的数据未实际存储在数据库中,只是在字典里存放了视图的定义。

               4.3.4.2:作用——封装查询语句;简化复杂查询;简化权限管理;

               4.3.4.3:格式——create view 视图名 as 查询语句; 

         4.3.6:簇

         4.3.7:类型

         4.3.8:同义词(synonym)=别名——尽量避免直接引用表、视图、其它数据库对象。

               4.3.8.1:分类——分为公用的和私有(默认)的。

               4.3.8.2:格式——create public synonym 同义词名 for 数据库对象;

               4.3.8.3:数据库对象组成——SYSTEM(px上的用户).auths(SYSTEM用户的对象)@PX(服务器).orcl(实例)

 

         4.3.9:序列(sequence)——与identity类似,但sequence解决了高并发的问题。

               4.3.9.1:格式——create sequence 序列名 increment by 步频 start with 起数 maxvalue 止数

               4.3.9.2:属性——nextVal/currVal(只是获得当前的固定值,没有nextval的辅助是无意义的)【SELECT ABC.NEXTVAL FROM DUAL;初始序列——>SELECT ABC.NEXTVAL FROM DUAL;获得下一个序列——>SELECT ABC.CURRVAL FROM DUAL;】

               4.3.9.3:DUAL——默认只有一行一列;任何用户都可使用;类似java中的超类object;属于SYS schema的一个表,然后以PUBLIC SYNONYM的方式供其他数据库USER使用 ;

                             *dual包含的信息——user(当前用户);sysdate(系统日期);表达式计算后的值;序列号;

                             *

                             *

               4.3.9.4:查看序列信息——SELECT SEQUENCE_NAME,MIN_VALUE,MAX_VALUE,INCREMENT_BY,LAST_NUMBER FROM
USER_SEQUENCES;  

 

         4.3.10:索引

         4.3.11:数据库链接

         4.3.12:存储过程

         4.3.13:函数

                    4.3.13.1:sysdate——作用于数据的函数

                    4.3.13.2:to_date(日期串,日期格式,地区语言)——

                                 4.3.13.2.1:日期格式—— 'DD/MM/yyyy   HH24:MI:SS ';

                                        *YEAR——y;y的个数代表年的位数

                                        *MONTH——mm(纯2位数)/mon(缩写词)/month spelled out(全词)

                                        *DAY——dd(月中天)/ddd(年中天)/dy abbreviated(星期的缩写)/day spelled out(星期的全词)

                                        *HOUR——hh(1:00:00~12:59:59)/hh24(24小时制0:00:00~23:59:59)

                                        *MINUTE——mi

                                        *SECONDE——ss

                                        *Q(季度)/W(月中周)/WW(年中周)

                                 4.3.13.2.2设置时间语言——alter session set NLS_DATE_LANGUAGE='AMERICAN';==TO_DATE('2002-4-3','YYYY-MM-DD','NLS_DATE_LANGUAGE=AMERICAN');

                                 4.3.13.2.3:时间差—— select floor(sysdate-to_date('20020405','yyyymmdd'))from dual;

                                 4.3.13.2.4:next_day(date,day);

                                 4.3.13.2.5:extract()——找出时间段或日期的字段值

                                 4.3.13.2.

                    4.3.13.3:to_char(数字值,格式,返回字符)   

                                  *NLS_NUMERIC_CHARACTERS="d(小数点)g(分组)"       

                                  *NLS_CURRENCY="NUD"——本地货币

                                  * NLS_ISO_CURRENCY  =TERRITORY——国际货币

                                  *格式——fm:去空格;0起占位作用,9对应的位置有才显示无则影藏。              

                    4.3.13.

                    4.3.13.

                    4.3.13.

         4.3.14:包

         4.3.15:触发器

 

 

 

5.Oracle执行SQL

    5.1:语法检查

    5.2:语义检查——访问数据字典,检查访问对象存在否+是否有权限

    5.3:SQL解析——生成解析树、执行计划——存放在library cache的共享SQL区

     *私有SQL——专用服务器连接(PGA)/共享服务器连接(SGA)

    5.4:执行SQL,返回结果。

6.远程访问oracle的配置

     6.1:打开工具net manager

     6.2:配置LISTENER——监听的远程服务器和端口(1521)

     6.3:在服务命名中新建服务——给予引用名,服务器ip,oracle服务名(从oracleservice服务的属性中的可执行文件路劲的最后一个单词)

     6.4:打开服务TNSListener;

你可能感兴趣的:(数据结构,oracle,sql,应用服务器,企业应用)