当前位置:数据库 > Oracle >>

11G Concept Oracle数据库简介

11G Concept Oracle数据库简介
 
什么是关系数据库
每个公司(组织)都有信息要存储和管理,用来满足它的一些需求.举个例子.一个公司必须收集和维护每个员工的人力资源记录.必须保证这些信息的可用性,而信息系统是一个正式的系统用来存储和处理信息
一个信息系统可能是一个纸盒子,有自己的规律用来存放和检索文件夹
不管怎样,在今天,绝大部分公司都使用database(数据库)来自动化他们的信息系统.
database(数据库)是一个将信息处理成一个一个单元的然后收集组织起来
database(数据库)就是用来收集,存储以及检索 应用程序使用的相关数据
数据库管理系统(DBMS)
DBMS是一个用来存储,组织以及检索数据的软件,通常一个DBMS有以下几个元素:
·Kernel code 内核编码
  这个编码管理DBMS的内存和存储
·元数据存储库(Repository)
  这个存储库(Repository)通常叫 数据字典
·查询语言
  这个语言使应用程序可以访问数据(data)
数据库应用程序(databaseapplication)是一个软件程序,通过与数据库(database)交互而访问和操作数据。就是说一个和数据库有交互的应用软件就叫数据库应用程序
 
第一代DBMS(databasemanagement system) 有下面这些类型:
·Hierarchical
  Hierarchical database 将数据组织成一个树状结构,每个父记录有一个或多个子记录,和文件系统的结构很像
·Network(网络)
  Network database 和Hierarchicaldatabase很相似,除了记录之间的关系是多对多,而不是 一对多
这些一代DBMS把数据存储成死板的,预先定义好的关系中。因为没有DDL(data definition language)存在,修改数据的结构是非常麻烦,同样,这些系统缺乏一个简单的查询语言,这些都对应用程序的开发造成了阻碍和麻烦。
 
关系模型(RelationalModel)
在他1970年开创性论文" A Relational Model of Data for Large Shared Data Banks",E.F. Codee(关系数据库之父)定义了一个基于关系模型的数学集合理论.今天,最被广泛接受的数据库模型就是关系模型
关系型数据库(relational database)是一个符合关系模型的数据库,
关系模型主要有以下几个方面:
·结构
  明确定义过的对象存储或者访问数据库中的数据。
·操作
  清楚定义的动作(actions) 允许应用程序去操作数据和数据库的结构
·完整的规则管理着操作(操作数据和操作结构)
关系型数据库存储数据到一组简单的关系中.relation 是一组元组(tuples),元组(tuple)是一组无序的属性值
表(table)是一个二维关系由行(元组)以及列(属性)表示的东西。表中的每行都有同样的列,关系型数据库是一个将数据存储在relations(tables)的数据库,举个例子,一个关系型数据库可以存储公司雇员信息进employee表,department表,以及salary表。
 
关系型数据库管理系统(RDBMS)
关系模型是RDBMS的基础.本质上来说,一个RDBMS移动数据进入database,储存数据,以及检索数据。这样这些数据就可以被应用程序所操作,
RDBMS的操作分为以下几种类型:
·逻辑操作(Logical operations)
  在这种操作中,应用程序指定什么内容是需要的,举个例子,一个应用程序请求一个雇员名称或者增加个雇员记录到一个表。-也就是说 我只需要告诉你我要什么(what)
·物理操作(Physical operations)
  在这种操作中,RDBMS要确认该怎样进行和完成 命令.举个例子,一个应用查询某表,这个数据库可以使用index(索引)去找到要查询的行,读这些数据进入内存(memory),以及执行一堆其他步骤,才能返回结果给应用.因为RDBMS就是负责存储和检索数据的,所以物理操作对于应用来说是透明的-也就是说 应用只要selelct delete xxx 剩下的事数据库自己会搞定
Oracle 数据库就是一个RDBMS. 而实现了面相对象的特性,如用户定义类型,权限继承以及多态(polymorphism,搞不懂啥意思)的RDBMS被成为"object-relationaldatabase management system(ORDBMS)".
Oracledatabase拥有扩展过的关系模型,也就是object-relational model。这使得在关系型数据库中存储复杂的business model 成为了可能。
 
Oracle简史 -这个要看一看,可以用来出去tree new bee
当前版本的Oracle database 超过30年的创新研发的结果.
而Oracle database进化过程中的亮点包括:
·Oracle的创建
  1977年,Larry Ellison(这哥们可真是rich man),Bob Miner 以及Ed Oates 创建了" Software Development Laboratories" ,这是"Relational Software,Inc.(RSI)"的前身,在1983年,RSI又变成了"Oracle Systems Corporation" 以及后来的"OracleCorporation"
·第一版卖钱的RDBMS
  1979年,RSI 推出了Oracle V2(Version 2) 这是第一块用来市场销售的 基于sql的RDBMS(Sql-based RDBMS),这是一个在关系型数据库上具有里程碑意义的事件
·Portable version of oracle database(翻译过来是可移植,也就是说可以跨平台的)
  Oracle Version 3,在1983年发布。是第一款能同时运行在大型机,小型机,和PC上的关系型数据库,使数据库能够在多种平台运行
·增强版本并发控制,数据分发,以及可扩展性
  Version 4 增加了多版本多一致性.Version5发布在1985年,支持了C/S运算以及分布式数据库系统.Version 6 优化了 磁盘I/O,行锁,可扩展性以及备份和恢复,并且 version6引进了PL/SQL,PL/SQL是基于SQL的可程序增强。
·能够存储的程序化的PL/SQL包(以前都是临时包,现在能存进库里了)
  Oracle7 在1992年发布,引进了触发器和可存储的PLSQL包
·分区表
  Oracle8发布在1997年,是个object-relational database,支持了很多数据类型(data types),另外Oracle8支持了大表的分区
·Internet computing(也就是8i,9i的那个i的来源)
  Oracle8i数据库,发布在1999年,本身支持了Internet中的各种协议以及服务端的JAVA支持.Oracle8i 是为了internet computing而设计的,使数据库能部署在多层环境中.
·Oracle Real Application Clusters(Oracle RAC)
  Oracle9i数据库增加了Oracle Rac。2001发布。使得多个instance可以同时访问一个database,另外,增加了Oracle XML 数据库(Oracle XML DB),能够存储和查询XML。
·Grid computing
  Oracle Database 10g 发布在2003,增加了grid computing.这个版本使的公司可以根据grid infrastructure 将一大堆低成本的服务器虚拟化成一个 计算资源(说的跟真的似的 - -切!),还有一个关键目标是使数据库能够自我管理,以及自我调整(说白了就是自动化了很多),Oracle Automatic Storage Management(Oracle ASM) 帮助完成虚拟花和简单化数据库存储的管理。
·增加了可管理型,可诊断性,以及可用性
  Oracle database 11g,发布在2007年,增加了一堆新特性,使得管理员和开发能很快适应不短变化的商业需求.增加适应性的关键是,通过整合信息和尽可能的自动化,简化信息的基础架构
                        
Schema Objects(Schema中有哪些东西)
一个RDBMS的特性就是存储数据 的物理数据存储 和逻辑数据结构是相互独立的。在Oracle Database,一个database schema 是一个容器,里面放着一堆逻辑数据结构(表什么的).一个数据库user拥有且只有一个schema,schema名字和用户名字一样。(不懂来找我)。
SchemaObjects是用户创建的结构,database中数据的具现化,数据库支持很多类型的schema objects,而其中最重要的就是表,和索引。
 
Tables(表)
一个表描述一个实体 比如 雇员们的信息,你可以定义一个表,表名比如叫employees,以及一堆列,一般情况下,你得给每个列一个列名,一个数据类型(char什么的),以及宽度(比如char(20))
一个表就是一堆行,一个列表示一个实体的属性,其中每行表示一个实体的一例(比如employees表中的一个employee)。
你可以为表的每列指定规则(可选的),这些规则被称为intergrityconstrants(完整性约束).举个例子 "NOT NULL"完整性约束.这个约束强制保证每行的这个列必须有值,不能是空的
 
Index(索引)
索引是一个可选的数据结构,你可以将它创建在表的一个列或者多个列上。索引可以增加数据检索的速度,当处理一个查询,数据库可以使用索引高效的去定位相关的行.索引用在当应用经常查询指定的行,或者一小部分行时。
索引的逻辑上和物理上独立的数据。因此,你drop和create索引对表和其他indexes是没有影响的.所有的应用程序在你drop索引以后依然有效(不过性能会受到影响,还有这里drop是删除的意思)。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,