1 数据库的发展过程
层次模型 -->网状模型 -->关系模型 -->对象关系模型
2 关于数据库的概念
DB:数据库(存储信息的仓库)
DBMS:数据库管理系统(用于管理数据库的工具)
RDBMS:关系型数据库管理系统
ORDBMS:对象关系型的数据库管理系统
3 Oracle数据库的主要特点
1)支持多用户、大事务量的处理
2)数据库安全性和完整性控制
3)支持分布式数据处理
4)可移植性
4Oracle一些常见问题?
1)如果我只有一张表,为什么我还要创建数据库
SQL语言要求所有表都需放在数据库里。这项设计当然有它好的理由。SQL能控制多为用户同时访问表的行为。能够授予或撤销对整个数据库的访问权。这有时比控制每张表的权限要简单很多
2)创建库的命令的字母全是大写,一定要这样吗?
有些系统确实要求某些关键字采用大写形式。但SQL本身不区分大小写。也就是说,命令不大写也可以,但命令大写是良好的SQL编程惯例。
3)给数据库、表和列命名时有什么主意事项吗?
创建具有描述性的名称通常有不错的效果。有时候要多用几个单词来命名。所有名称都不能包含空格,所以使用下划线能够让你创建更具描述性的名称。命名时最好避免首字母大写,因为SQL不区分大小写。极有可能会搞错数据库。
4)为什么不能直接把BLOB当成所有文本值的类型
因为这样很浪费空间。VARCHAR或CHAR只会占用特定空间。不会多于256字符。但BLOB需要很大的存储空间。随着数据库的增长,占用存储空间就是冒着耗尽硬盘空间的风险。另外,有些重要的字符串运算无法 *** 作BLOB类型的数据。只能用于VARCHAR或CHAR。
5)为什么需要INT和DEC这类数值类型?
节省数据库存储空间和效率有关。为表的没列选择最合适的数据类型可以为表瘦身,还可以使数据 *** 作更为快速。
5Oracle关系数据库基础
1)主键:表中其中一列或几列的组合,其值能唯一标识表中每一行。
表中任何列都可以作为主键,但要满足如下条件:
任何两行都不具有相同的主键值
每个行都必须具有一个主键值(主键列不允许为null值)
主键列中的值不允许修改或更新
主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)
一般以id或uuid作为主键的名字
2)外键是什么:
在一个关系(参照表)中是主键,而另一个关系引用这个键。那么这个键在另一个关系中就是外键。
3)外建能干什么:
使两个关系(表)形成关联,外键只能引用参照表中的主键。保持数据一致性,完整性。
如图:
4)如何在数据库内表示一对一
5)如何在数据库内表示一对多
6)关系模型的完整性约束是什么?
是通过关系的某种约束条件对关系进行约束。也就是说关系的值随时间变化时应该满足一些约束条件。如年龄不能超过1000,性别必须是男或者女
7)关系模型的完整性约束能有什么
实体完整性、参照完整性、用户自定义完整性。
实体完整性:针对基本关系而言,也就是一个二维表,主键不能为NULL
参照完整性:表之间存在关系,自然就存在关系的引用(外键),表和表之间的关系通过外键实现,外键可以为NULL或引用表的主键
用户自定义完整性:针对不同的需求定义自己的完整性约束,如不允许学生编号中出现非数字字符,性别必须是男或者女
6 Oracle自学笔记
1)数据库和表的名称不一定要大写。
2)列是存储在表中的一块数据,行是一组能够描述某个事物的列的集合。列和行构成了表。
3)创建oracle数据库。使用oracle自带的Database Configuration Assistant 来创建库
4)使用DBA身份 创建表空间。具体sql如下:
create tablespace pzw datafile 'C:/oracle/pzwdbf' SIZE 1024M REUSE AUTOEXTEND OFF extent management local segment space
management auto;
5)删除用户命令
drop user pzw cascade;
6)删除表空间命令
DROP TABLESPACE pzw INCLUDING CONTENTS AND DATAFILES;
7 )查看表空间命令。
链接地址:查看oracle表空间的两种方式
8)创建用户。
create user pzw identified by pzw;
9)将包空间分配给用户
alter user pzw default tablespace pzw;
10)给用户授权
grant create session, create table, unlimited tablespace to pzw;
11)创建表
CREATE TABLE doughnut_list
(
doughnut_name VARCHAR(10),
doughnut_type VARCHAR(6),
doughnut_birthday DATE
);
12)删除表
DROP TABLE
doughnut_list;
13)给表中增加一列
Alter table EMP add sale number;
14)数据库插入一条数据
insert into DEPT_EMP_TABLE (DEPT_EMP_NO,emp_no,Dept_No,Joined_Date) values (009,'00002',1,to_date('2011-2-28 15:42:56','yyyy-mm-dd hh24:mi:ss'));
commit;
15)数据库修改一条数据
update emp set emp_name='张惠妹',age=20,sex='女',profession='流行歌手' where emp_no = '00002';
commit;
16)数据库删除一条数据
delete emp where emp_no = '000013';
commit;
17)查询全部数据
select from emp;
18)创建视图
create view adress_view as select from pzwadress;
以下为oracle演示数据 *** 作及练习题(对菜鸟及有用。使用scott 登陆。默认密码tiger)
1查看演示数据的表。
selectfromtab
或者selecttable_namefromuser_tables;
2查看表结构(plsql *** 作无效。使用命名提示符 可以 *** 作)
desc dept;
3查看员工姓名
select ENAMEfrom emp;
4查询员工的编号和明星(sql语句不区分大小写)
select empno, enamefrom emp;
5查询所有的字段
selectfromemp;
一般建议不使用号,使用号不明确,建议将相关的字段写到select语句的后面,使用号的效率比较低
6列出员工的编号,姓名和年薪。
select empno, ename,sal12from emp;
select语句中可以使用运算符,以上存在一些问题,年薪的字段名称不太明确
7将查询出来的字段显示为中文
select empnoas 员工编号, ename as 员工姓名, sal12 as 年薪 from emp;
可以采用as命名别名,as可以省略
如:可以采用as命名别名,as可以省略
8查询薪水等于5000的员工
select empno, ename, sal from emp where sal=5000;
如果是字符类型的数据进行比较的时候,是区分大小写的。
9查询薪水不等于5000的员工
select empno, ename, sal from emp where sal<>5000;
10查询工作岗位不等于manager的员工
select empno,ename,sal,job from emp where job<>
'manager';
在sql语句中如果是字符串采用单引号,引起来,不同于Java中采用双引号,如果是数值型也可以引起来,只不过是数值类型数据当成字符串来处理
11查询薪水为1600到3000的员工(第一种方式,采用>=和<=)
select empno, ename, sal from emp where sal>=1600 and sal<=3000;
查询薪水为1600到3000的员工(第一种方式,采用between and)
select empno,ename,sal,job from emp where salbetween
1600and 3000;
between …and …,包含最大值和最小值
between …and …,不仅仅可以应用在数值类型的数据上,还可以应用在字符数据类型上
between …and …,对于两个参数的设定是有限制的,小的数在前,大的数在后
12查询津贴为空的员工
select from emp where commis null;
13查询津贴不为空的员工
select from emp where commis not null;
14工作岗位为MANAGER,薪水大于2500的员工。
select empno, ename, sal from emp where job='MANAGER'and sal>2500;
and表示并且的含义,表示所有的条件必须满足
15查询出job为manager和job为salesman的员工。
select from emp where job='MANAGER'or job='SALESMAN';
or,只要满足条件即可,相当于或者
16查询薪水大于1800,并且部门编号为20 或者 30的
select from emp where sal>1800and (deptno=20or deptno=30);
17查询出job为manager和job为salesman的员工
select from emp where jobin('MANAGER','SALESMAN');
18查询job不等于MANAGER并且不能与SALESMAN的员工(第一种写法)
select from emp where job<> 'MANAGER' and job <> 'SALESMAN';
19 查询job不等于MANAGER并且不能与SALESMAN的员工(第二种写法)
select from emp where jobnot in('MANAGER','SALESMAN');
20查询以M开头的所有员工
select from emp where ename like 'M %';
21查询以T结尾的所有员工
select from emp where ename like '%T';
22查询以O结尾的所有员工
select from emp where ename like '%O%';
23查询姓名中第一个字符为A的所有员工
select from emp where ename like '_A%';
Like可以实现模糊查询,like支持%和下划线匹配
Like中%和下划线的差别?
%匹配任意字符出现任意次数
下划线只匹配一个任意字符出现一次
Like语句是可以应用在数值类型的数据上的,但是如果没有使用引号括起来的话,那么不能使用%和下划线。类似于等号的 *** 作,如果使用引号括起来的话,那么可以使用%和下划线,将数值类型的数据转换为字符类型后进行处理。
24按照薪水由小到大排序
s elect from emporder by sal;
如果存在where子句那么order by必须放到where语句的后面
25手动指定按照薪水由小到大排序
select from emp order by saldesc;
26 按照薪水和姓名排序
select from emp order by sal desc ,ename desc;
如果采用多个字段排序,如果根据第一个字段排序重复了,会根据第二个字段排序
select from emp order by sal asc;
26手动指定按照薪水由大到小排序
select from emporder by sal desc;
27按照薪水升序(使用字段的位置来排序)
select from emp order by 6;
不建议使用此种方式,采用数字含义不明确,程序不健壮
28查询员工将员工姓名全部转换成小写。
select lower(ename)from emp;
29查询job为manager的员工
select from emp where job=upper('manager');
30查询姓名以M开头所有的员工
select from emp wheresubstr(ename, 1,1)='M';
方法的第二个参数表示的是查询字符的位置,0,1都表示第一个字符,负数表示从结尾开始的位置,第三个参数表示截取字符串的长度。
31取得员工姓名的长度
select length(ename) from emp;
32取得工作岗位为MANAGER的所有员工
select from emp where job=trim('MANAGER ');
trim会去首尾空格,不会去除中间的空格
33查询1986-02-20入职的员工(第一种方法,与数据库的格式匹配上)
select from emp where HIREDATE='20-2月 -81';
查询1982-02-20入职的员工(第二种方法,将字符串转换成date类型)
select from emp where hiredate=to_date('1981-02-20 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
to_date可以将字符串转换成日期,具体格式to_date(字符串,匹配格式)
34查询1981- 02-30以后入职的员工,将入职日期格式为yyyy-mm-dd hh:mm:ss
select empno, ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')from emp where hiredate>to_date('1981-02-2000:00:00', 'YYYY-MM-DD HH24:MI:SS');
35查询员工薪水加入前分位
select empno, ename, to_char(sal, '$999,999') from emp;
36查询薪水加入千分位和保留两位小数
select empno, ename, to_char(sal, '$999,99900') fromemp;
将数字转换成字符串,格式
控制符
说明
9
表示一位数字
0
位数不够可以补零
$
美元符
L
本地货币符号
显示小数
,
显示千分位
37将字符串转换成数值
select from emp where sal>to_number('1,500','999,999');
38取得员工的全部薪水,薪水+津贴
select empno, ename, sal, comm, sal+nvl(comm,0) fromemp;
39如果job为MANAGER薪水上涨10%,如果job为SALESMAN工资上涨50%(case … when … then …end)
select empno, ename, job, sal, (casejobwhen 'MANAGER' thensal11when 'SALESMAN' thensal15end)as newsal from emp;
40如果job为MANAGER薪水上涨10%,如果job为SALESMAN工资上涨50%(decode)
select empno, ename, job, sal, decode(job,'MANAGER', SAL11, 'SALESMAN',sal15) as newsal from emp;
41四舍五入
select round(12345674567, 2) from dual;
Dual是oracle提供的,主要为了方便使用,因为select的时候需要用from
42聚合函数
count
取得记录数
sum
求和
Avg
取平均
Max
取最大的数
min
取最小的数
43取得所有员工人数
select count() from emp;
Count()表示取得所有记录,忽略null,为null值也会取得
44取得津贴不为null的员工数
select count(comm) from emp;
采用count(字段名称),不会取得为null的纪录
45取得工作岗位的个数
select count(distinctjob) from emp;
Distinct可以去除重复的纪录
46取得薪水的合计
select sum(sal) from emp;
47取得薪水的合计(sal+comm)
select sum(sal+nvl(comm, 0)) from emp;
48取得平均薪水
select avg(sal) from emp;
49取得最高薪水
select max(to_char(hiredate, 'yyyy-mm-dd')) from emp;
50取得最小薪水
select min(sal) from emp;
51取得最早入职的员工
select min(hiredate) from emp;
52可以将这些聚合函数都放到select中一起使用
select count(), sum(sal), avg(sal), max(sal),min(sal) from emp;
53取得每个岗位的工资合计,要求显示岗位名称和工资合计。
select job, sum(sal) from empgroupby job;
采用group by,非聚合函数所使用的字段必须参与分组,
Group by中不能使用聚合函数
如果使用了order by,order by必须放到group by后面
54。取得每个岗位的平均工资大于2000
select job, avg(sal) from emp group by job having avg(sal) >2000;
分组函数的执行顺序:
1、 根据条件查询数据
2、 分组
3、 采用having过滤,取得正确的数据
55 显示每个员工信息,并显示所属的部门名称
select ename ,dname from emp a ,dept b where adeptno = bdeptno;
以上查询也称为“内连接”,指查询相等的数据
56取得员工和所属的经理的姓名
select aename, bename from emp a, emp b whereamgr=bempno;
以上称为“自连接”,只有一张表连接,具体的查询方法
57(内连接)显示薪水大于2000的员工信息,并显示所属的部门名称
SQL99语法:
select ename,sal,dname from emp a join dept b on adeptno = bdeptno where sal>2000;
SQL92语法
select ename,sal,dname from emp a, dept b where adeptno=bdeptno and sal > 2000;
Sql92语法和sql99语法的区别:99语法可以做到表的连接和查询条件分离,特别是多个表进行连接的时候,会比sql92更清晰
58(外连接)显示薪水大于2000的员工信息,并显示所属的部门名称,如果某一个部门没有员工。那么该部门也必须显示出来
select dname,ename from emp a right join dept b on adeptno = bdeptno;
59查询员工名称和所属经历的名称,如果没有上级经理,也要查询出来
Select eename, mename mname from emp e, emp mwhere mempno(+) = emgr;
60查询员工信息,查询哪些人是管理者,要求显示出其员工编号和员工姓名
select ename,ename from emp where empno in (select distinct mgr from emp where mgr is not null);
61查询那些人的薪水高于员工的平均薪水,需要显示员工编号,员工姓名,薪水。
select empno, ename, sal from emp where sal>(selectavg(sal) from emp);
分析思路:首先根据文字描述找出被依赖的条件,逐次分析
62查询各个部门的平均薪水所属的等级,需要显示部门编号,平均薪水,等级编号
select adeptno, aavg_sal, bgrade from (select deptno, avg(sal) avg_sal fromemp group by deptno) a, salgrade b where aavg_sal between blosal and bhisal;
关键点:将子查询看作一张表
63查询员工信息以及部门名称
Select eempno, eename, edeptno, (select dname from dept where deptno = edeptno) as dname from emp e
64union可以合并集合(相加)
select from emp where job='MANAGER'
union
select from emp where job='SALESMAN'
65minus可以移出集合(相减)
查询部门编号为10和20的,取出薪水大于2000的。
select from emp where deptno in(10, 20)
minus
select from emp where sal>2000
66rownum隐含字段
select rownum, a from emp a;
67取得前5条数据
select from emp where rownum <=5;
68取得薪水最好的前5名
select empno, ename, sal from (select empno,ename, sal from emp order by sal desc)whererownum <=5
有一定难度。一些性能优化,数据库配置构筑等等,可能需要一定的实际经验。
可以选择OCP培训,系统地学习一下Oracle。而且考试合格之后,可以获得证书。
就业可以选择DBA职位。
我知道的去年中国银行招聘DBA职位,年薪50万人民币。
Oracle白金级入门教程百度网盘免费资源在线学习
rfhp
Oracle白金级入门教程 鸿鹄论坛_阶段8-RAC高可用集群rar
鸿鹄论坛_阶段7-数据库性能优化rar
鸿鹄论坛_阶段6-DataGuard容灾rar
鸿鹄论坛_阶段5-Oracle备份还原恢复rar
鸿鹄论坛_阶段4-Oracle体系结构rar
鸿鹄论坛_阶段3-PL-SQL编程rar
鸿鹄论坛_阶段2-SQL结构查询语言rar
鸿鹄论坛_阶段1-Oracle数据库的安装与介绍rar
oracle10G入门与实践
下载这本书,oracle你知道和不知道的都在这里了。
具体下载地址 你csdn上搜索就可以了
全书分为17章。分别阐述了Oracle10g及数据库的基本概念;数据库、表空问及表的管理;E-R模型转换成关系表;通过ASP、JSP程序存取Oracle10g数据库;SELECT语句的应用方法;通过EnterpriseManager监控和管理Oracle数据库等。书中通过对企业数据管理实战中10个示例的学习,使读者能够自如地运用SELECT语句;本书还特别提供了一个进销存管理系统的完整创建方案,使读者更全面地掌握本书所论及的知识,并最终自行开发实际数据库系统。本书内容翔实,讲解透彻,具有很强的可读性。既适合数据库初学者及Oracle爱好者学习,也可作为大专院校相关专业的教程,是一本非常实用的Oracle参考书。
1、零基础,想要自学数据库的话,觉得起步阶段首选《数据库系统概念》这本书,因为这本书比较系统且综合全面。里面包含了数据模型、关系模型、基于对象的数据库以及XML、数据存储和查询、事务管理、数据库系统体系结构等各方面的相关内容。相当地直观易懂,里面的有些内容运用了结构清晰的图示和示例来取代形式化的证明。
2、然后,需要选择一个具体的数据库产品学习,比如常见的Access、SQL-Server、MySQL、Oracle、DB2,不同的数据库产品之间区别很大的,每一种数据库都有与之相应的经典书籍,官方也有那些入门文档。自己到网上搜对应的数据库名字就能找到了。当然,如果你想快餐式入门,那就看些视频或者国内的一些什么XXX从入门到精通、XX天精通XXX之类的书吧!
3、现在常见的数据库大部份都是关系型数据库,不管是理论和 *** 作基本都是一样的,如果从 *** 作和易学的角度来说,SQL SERVER还是比较容易上手的,网上的资料和各种书籍也不少,但是如果数据量大,数据库的稳定性来说,Oracle还是比较要强一点的。你就看自己的情况来选择吧!
3、总之,学习数据库,和学习其他电脑知识一样,要注重实践,也就是要上机实习。先学习一些数据库的基本概念,然后一边看书,一边上机,是个很好的方法。在网上去找一些有关的视频教程,跟着视频学习,会轻松一些。学习知识,关键在于持之以恒,这样才会有好的成绩。
:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
参考资料:
2甲骨文股份有限公司是全球最大的数据库软件公司,总部位于美国加州的红木滩。
公司类型 上市公司 (NASDAQ: ORCL)
口号 Oracle is the information company
成立于 加利福尼亚 (1977年)[1]
总部位于 美国加州红木滩市
重要人物 劳伦斯·埃里森 Lawrence (Larry) J Ellison, 首席执行官
产业 数据库软件
雇员数目 35000+
产品
数据库服务器
应用服务器
开发工具
中间件产品
BI
客户关系管理
供应链管理
JDE
收入 179亿美元 (2007财年)
主要产品
甲骨文公司主要的产品目前分为两大类:
服务器(服务器)及工具(主要竞争对手:国际商用机器、微软)
数据库服务器:2008年最新版本11G
应用服务器: Oracle Application Server
开发工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等
应用软件(主要竞争对手:德国SAP公司。)
企业资源计划(ERP)软件。已有10年以上的历史。2005年,并购了开发企业软件的人科软件公司(PeopleSoft)以增强在这方面的竞争力。
客户关系管理(CRM)软件。自1998年开始研发这种软件。2005年,并购了开发客户关系管理软件的希柏软件公司(Siebel)。
Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。2000财年(99年6月到2000年5月)营业额达101亿美元,再创Oracle公司销售额历史新高,比去年增长了13亿美元,盈利增长61%,达到21亿美元。Oracle公司现有员工超过三万六千人,服务遍及全球145个国家。Oracle公司拥有世界上唯一一个全面集成的电子商务套件Oracle Applications R11i,它能够自动化企业经营管理过程中的各个方面,深受用户的青睐,促使Oracle应用软件在2000财年第四季度的销售额达447亿美元,与SAP公司的同期应用软件销售额352亿美元相比,多出近1亿美元,这一事实表明,Oracle已经是世界最大的应用软件供应商。Oracle电子商务套件涵盖了企业经营管理过程中的方方面面,虽然它在不同的方面分别面对不同的竞争对手,而Oracle电子商务解决方案的核心优势就在于它的集成性和完整性,用户完全可以从Oracle公司获得任何所需要的应用功能,更重要的是,它们具有一致的基于Internet技术的应用体系结构,而如果用户想从其它厂商处获得Oracle电子商务所提供的完整功能,不仅需要从多家厂商分别购买不同的应用,而且需要另请咨询公司把这些不同的应用装配起来,还必须确保它们能够协同地工作。
先进的产品和高效率的企业运作,是Oracle公司利润得以继续增长的重要原因,一年前,Oracle公司确定了通过采用自身的Internet电子商务解决方案,实现每年节省10亿美元企业日常运作费用的目标,这一数据相当于将我们的年度利润率提高10%。
四年前电子商务在全球范围内还仅处于萌芽状态时,Oracle公司便前瞻性地作出了从领先的数据库厂商向以Internet计算为基础的完整的电子商务解决方案供应商转型的战略部署。这一前瞻性战略为Oracle带来了巨大的利益,今天,Oracle能够领先于竞争对手提供包括平台产品、应用产品和完善的服务在内的先进的、完整的、集成的电子商务解决方案,可以无缝集成供应链管理(SCM)、企业资源管理(ERP)、客户资源管理(CRM)和企业商业智能(BI)和电子商务应用IP(Internet Pocurement)、Exchange、Portal-to-go等产品。Oracle从低端到高端的所有方案100%基于Internet应用体系结构,都可以通过Web安全、直接地访问,使企业能够通过Web完成包括报价、定单、支付、执行、服务等在内的企业业务过程的所有环节,帮助企业将现有业务内容快速转移到电子商务,迅速获得来自电子商务的高效益。
Oracle应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等150多个模块,荣获多项世界大奖,现已被全球近7600多家企业所采用。由于在电子商务方面的杰出表现,Oracle公司在美国Mongan Stanley公司最新公布的权威性全球企业1000强中,从去年的第122名一跃成为第13名,成为全球第二大独立软件公司和最大的电子商务解决方案供应商。目前, Amazon和Dell等全球十个最大的Internet电子商务网站、全球十个最大的B-to-B网站中的九个、93%的上市COM公司、65家“财富全球100强”企业均不约而同地采用Oracle电子商务解决方案。
Oracle中国公司
1989年Oracle公司正式进入中国市场,成为第一家进入中国的世界软件巨头,标志着刚刚起飞的中国国民经济信息化建设已经得到Oracle的积极响应,由Oracle首创的关系型数据库技术开始服务于中国用户。1991年7月,经过了近两年时间的努力开拓,为了更好地与迅速发展的业务相适应,Oracle在北京建立独资公司。今天的Oracle中国公司拥有超过3500名员工,并在全国十二个城市设立了分公司。
为了帮助中国用户及时、充分利用世界最先进的计算机软件技术与产品,Oracle中国公司在产品汉化方面投入了大量的资源,目前,Oracle的大部分产品均已实现了全面中文化,中文版产品的更新节奏与美国本土基本同步一致。与此同时,Oracle在中国得到了数以百计的国内计算机企业的合作与支持,除了惠普、Sun、康柏、Cisco、Intel等Oracle全球联盟合作伙伴和普华永道咨询有限公司、安达信企业咨询有限公司、安盛咨询、德勤企业管理咨询公司、凯捷安永咨询(亚太)有限公司等Oracle全球系统集成商外,Oracle公司在中国还建立起完整的合作伙伴体系,6家增值经销商、72家独立软件开发商、3家应用软件合作伙伴、180家授权分销商和4家授权培训中心,他们共同构成了基于Oracle技术产品基础的全国性市场开拓、系统集成、增值开发与技术服务体系,为Oracle在中国的业务发展提供了强有力的支持。由他们开发的数百个基于Oracle平台的商品化应用软件包,已经广泛应用于国内的政府部门、电信、邮政、公安、金融、保险、能源电力、交通、科教、石化、航空航天、民航等各行各业。
甲骨文公司主要产品简介
1 Oracle电子商务套件(Oracle E-Business Suite)
Oracle电子商务套件是行业中第一个集成的基于互联网的商务应用套件,它将前台与后台运营中的关键业务流程自动化。Oracle电子商务套件涵盖了营销、销售、服务、合同、定单管理、产品设计、采购、供应链、制造、财务、项目管理、人力资源与专业服务自动化在内的企业中每一个领域的业务。2001年全球共有1100多家企业实施了Oracle电子商务套件,目前全球已经有超过12000家用户正在获益于Oracle电子商务套件所带来的前所未有的好处。
自从Oracle电子商务套件首次面世以来,甲骨文公司已经推出了6种电子商务套件的增强版本,从而形成了一整套成熟的、功能齐全的应用套件。Oracle电子商务套件能够使用户在实施业务应用时拥有前所未有的可选择性与灵活性,它的开放式基础架构与单一数据模型使用户在部署套件中的应用软件时拥有多种选择,既可以单独使用,也可以组成业务流,还可以作为一个整体的集成套件来部署。Oracle电子商务套件既可以作为用CD ROM为载体的传统软件的形式,也可以作为一种在线服务的形式来提供给用户。
2 Oracle10g —— 新一代电子商务平台
Oracle10g是业界第一个完整的、智能化的新一代Internet基础架构,Oracle10g电子商务平台实际上是指Oracle数据库10g、Oracle应用服务器10g和Oracle开发工具套件10g的完整集成。
Oracle数据库10g是第一套具有无限可伸缩性与高可用性,并可在集群环境中运行商业软件的互联网数据库,具有400多个领先的数据库功能,在集群技术、高可用性、商业智能、安全性、系统管理等方面都实现了新的突破。作为甲骨文公司长达十年的软件技术研发成果,真正应用集群技术(Real Application Clusters)能够提供近乎无限的扩充能力与整体可用性,为用户带来透明的、高速增长的集群功能。
Oracle应用服务器10g是J2EE认证的、最轻、最快、最具伸缩性的应用服务器,提供了企业门户软件、无线支持、高速缓存、轻量级J2EE引擎、商务智能、快速应用开发、应用与业务集成、Web 服务等多种应用开发功能,形成完整的电子商务应用开发和部署环境。使用了Oracle应用服务器10g的用户可以通过升级软件来取代升级硬件,大大的节省了基础设施的成本花费。
Oracle开发工具套件10g是一套完整的集成开发工具,可用于快速开发使用Java和XML语言的互联网应用和Web服务,支持任何语言、任何 *** 作系统、任何开发风格、开发生命周期的任何阶段以及所有最新的互联网标准。
9i之后的Oracle的硬件要求很高,(Windows版本)9i建议配512M内存,10g建议配1G内存。
Oracle数据库的体系结构
Oracle数据库包括Oracle数据库服务器和客户端。
Oracle数据库服务器:
Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有最大的数据库 *** 作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。
客户端:
为数据库用户 *** 作端,由应用、工具、SQL NET组成,用户 *** 作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。
Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。
1逻辑存储结构
它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同一词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。
数据块(Block):是数据库进行UO *** 作的最小单位,它与 *** 作系统的块不是一个概念。oracle数据库不是以 *** 作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。
段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
其中包括:
数据段:用来存放表数据;.
索引段:用来存放表索引;
临时段:用来存放中间结果;
回滚段:用于出现异常时,恢复事务。
范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。
年表
约70年代 一间名为Ampex的软件公司,正为中央情报局设计一套名叫Oracle的数据库,Ellison是程序员之一。
1977 年艾利森与女上司Robert Miner创立“软件开发实验室”(Software Development Labs),当时IBM发表“关联数据库”的论文,艾利森以此造出新数据库,名为甲骨文。
1978 年 公司迁往硅谷,更名为“关系式软件公司” (RSI),两年后,共有8名员工,年收入少于100万美金。最先提出“关联数据库”的IBM采用RSI的数据库。1982年再更名为甲骨文(Oracle)。
1984年 三年内,先后进军加、荷、英、奥地利、日、德、瑞士、瑞典、澳洲、芬兰、法、香港、挪威、西班牙。1986年上市时,年收入暴升至5500 万美元,同年3月招股,集资3150万美元。
1987年 年收入达到 131 亿美元,甲骨文一年后成为世界第四大软件公司。两年内再进军墨西哥、巴、中、塞浦路斯、马来西亚及新西兰。一年后,收入再升一倍至282亿美元。
1990年 甲骨文两年内挥军进入智利、希腊、韩、葡、土、委内瑞拉、台、比利是、阿根延、哥伦比亚、哥斯达黎加及菲等地,但市甲骨文首次录得亏蚀,市值急跌80%,艾利森首次安排资深管理人员参与经营。
1992年 旗鉴产品Oracle 7面世,该公司重拾升轨,年收入达到 1179 亿美元。曾被视为甲骨文接班人、但后来被踼出局的Raymond Lane担任营运总监。
1995年 艾利森宣布PC已死,把全数产品推向因特网发展,并另组“网络电脑公司”(Network Computer),销售“网络电脑”,最终被淘汰收场。
2000年 科网接近尾声时,推出E-Business Suite,抢占应用产品市场,与昔日的生意伙伴构成严重利益冲突。同期微软及IBM数据技术提升,此后Oracle新增订单数目的占有率,在两年内下跌66%,业务倒退10%。
2003年 敌意收购仁科软件公司(Peoplesoft),引起业界轰动。两公司的争嗌新闻层出不穷。同年美国司法部落案阻止甲骨文收购。
补充内容:
oracle11g
2007年7月12日,甲骨文公司在美国纽约宣布推出数据库Oracle 11g,这是Oracle数据库的最新版本。甲骨文介绍说,Oracle 11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了36万人/月。
有意思的是,根据甲骨文以往几个版本的发行经验,发布新版Oracle数据库的频率在3年左右,以此类推,Oracle 11g应该在07年年底发布,选择在7月份发布,不知道是否和代号Katmai的SQL Server 2008有关,因为目前还处于测试阶段的SQL Server 2008将在08年2月发布,业内用Oracle 10g和SQL Server 2003做比较也曾一度惹恼了甲骨文。
XML显高温
当XML面世之时,也许没有哪个数据库厂商会对这种技术给以足够的关注,然而在今天,XML已经开始对数据存储产生巨大的影响。到现在,这种可扩展标记语言已是各种数据,特别是文档的首选格式,国际主流的数据库厂商们自然也随行就市,全都推出了兼容传统关系型数据与XML数据混合应用的新一代数据库产品。
XML在数据存储方面有一个明显的优点,那就是可以直接将逻辑关系编写在XML文件当中。一个时髦的XML数据库应该提供哪些功能呢归纳起来应该有四个基本功能:使用、存储、查询和产生XML的能力。
在Oracle 10g中,曾被人们津津乐道的最重要的改进是增加了对XML schema(XML语法)转换的支持,它允许用户通过将现有的数据映射为新的schema来实现XML schema转换。而不必把所有XML数据输出后再重新输入进去,其它事情将由数据库自动完成。
在Oracle 11g中, XML DB的性能又获得很大提高,XML DB是Oracle数据库的一个组件,客户可以以本机方式存储和 *** 作XML数据。11g增加了对二进制XML数据的支持,现在客户可以选择适合自己特定应用及性能需求的XML存储选项。
当然,不仅仅是甲骨文看好XML,为吸引Oracle用户,IBM公司DB2 9打XML旗号直接把XML作为其新产品的最大卖点;微软和Sybase也宣称它们的产品也可以实现高性能XML存储与查询,使现有应用更好地与XML并存。
网格计算有点冷
新的Oracle 11g仍使用g(Grid)作为后缀,以代表这是一个包含了网格技术基础的数据库。甲骨文称,Oracle 11g能更方便地在低成本服务器和存储设备组成的网格上运行。不过,目前仅有IBM DB2数据库也支持网格计算技术。
网格计算将多个服务器和存储器当作一台大型电脑协调使用,使它们在高速网络上动态地共享计算机资源,以满足不断变化的计算需求。简而言之,即将多个服务器和存储器当作一台主机协调使用。网格计算被广泛视为未来的计算方式。
尽管微软对网格计算的兴趣也很浓厚,承诺要让Windows能够更好地适应高数据强度的计算网格。但微软除了在内部研究之外,似乎一直在这个话题上非常沉默。对于数据库中网格计算,微软和Sybase方面表示,网格应用在技术上还需解决一些问题(如:多节点性能问题) ,网格技术要成为商业应用的主流,还需要几年时间在应用和产品上进一步完善。
不容乐观的是,在咨询公司Quocirca发布的调查显示,我国网格实际采用率仍然偏低,总体网格指数在15个被调查国家中只排第9位,处于中下游,甲骨文表示,中国用户可能对网格的价值还没有真正接受。很多中国企业有一种观望的心态,觉得应用网格存在风险。
11g安全了吗
有业内人士曾表示,Oracle 10g只能算是一个过渡版本。因为06年,下一代安全软件机构NGSS对微软SQL Server和Oracle数据库做了一个弱点对比,结果表明Oracle的数据库产品存在更多的弱点。
NGSS的研究人员称,Oracle有233个缺陷点,而SQL Server只有59个。这些缺陷在SQL Server7、2000以及2005中,在Oracle8、9以及10g版本中被报道,并被修复。分析机构ESG也发布调查报告表示,在安全性方面微软击败了甲骨文,似乎甲骨文数据库“无懈可击”的安全神话已不复存在。
针对那些不断对甲骨文安全性能表示批评的专家,甲骨文终于开始猛烈还击。2006年底,甲骨文全球技术事业部的安全经理Eric Maurice在公司的博客上表示,甲骨文在开发和安全方面的技术水平居业界领先位置。与微软数据库的安全性能比较,不过是别有用心的人在玩数字游戏,甲骨文不会让外部的压力改变其既定的安全策略。
到现在,起码可以从资料上看到,Oracle的安全认证获得最高认证级别的ISO标准认证,而SQL Server并没有获得什么安全认证。从这方面证明了Oracle的安全性不应该被受到如此指责。
从甲骨文此次推出的11g可以看到,在安全方面除了10g已经存在的数据阀门和加密外,11g又增加了四项安全功能,即安全备份、非对称数据的授权安全检索、监控、管理和报警。
Oracle 11g数据库增强了Oracle透明数据加密功能,将这种功能扩展到了卷级加密之外。11g还增加了表空间加密功能,可用来加密整个表、索引和所存储的其它数据。存储在数据库中的大型对象也可以加密。
看来甲骨文很注重11g在安全上的表现,闪回交易技术可以撤销错误交易以及任何相关交易,并行备份和恢复功能。另外,一种新的顾问软件—数据恢复顾问,可自动调查问题,智能地确定恢复计划并处理多种故障情况。
Oracle 11g的Oracle Data Guard组件可用于对生产数据库的报告、备份、测试和“滚动”升级。通过将工作量从生产系统卸载到备用系统,并组成一个更经济的灾难恢复解决方案。
也许正是在安全性上的增强,才使得甲骨文公司数据库服务器技术高级副总裁Andy Mendelsohn自信地表示:“Oracle 11g真正克服了挑战并实现了真正的创新。”
一个疯狂的发烧友在自家的车库中改造了小型IDC,并利用Sun Enterprise 220R Server架设了Oracle 10g数据库
增强信息生命周期管理和存储管理能力:引入了更多的自助式管理和自动化功能;
◆透明的加密:Oracle将这种功能扩展到了卷级加密之外;
◆提高信息可用性:免受计划停机和意外宕机影响;
◆更快的XML:通过XML DB组件,客户可以本机方式存储和 *** 作XML数据;
◆增强了自助式管理和自动化能力:增加了自动SQL和存储器微调等管理功能;
◆增强了应用开发能力:提供多种开发工具供开发人员选择,包括Java实时编译器。
开源数据库成熟时
以MySQL、PostgreSQL为代表的开源数据库系统,已成为取代闭源数据库的一种颇具吸引力的选择。
成熟的开源数据库,让Oracle这样的闭源厂商难以腾飞
知名的网络游戏The Matrix Online(骇客帝国Online),每天有数万名网上玩家同时在线,为了能够支撑庞大的在线游戏玩家同时进行游戏,Sony Online Entertainment(索尼在线娱乐公司,以下简称SOE)需要密集使用数据库。
以往SOE会使用大量的Oracle RAC集群提供服务,但是由于Oracle数据库的授权证十分昂贵及欠缺d性,加上公司需要更多额外数据库。所以从2005年开始,该公司就开始寻求既具有较低总拥有成本,又具有较好灵活性的开源数据库以取代Oracle数据库。
踢开Oracle
SOE对数据库的需求相当可观,其数据库应用程序是关键任务应用程序的最恰当诠释:每天有数十万在线玩家在玩SOE的游戏,而每款游戏都是一个数据库及其密集的应用程序。
事实上,SOE在应用开放源代码的应用上有很长历史,曾经就使用过Linux、Tomcat、Apache、Hibernate架设系统,此次的开源抉择,SOE更注重寻觅能够利用其宝贵资产(内部能够熟练使用Oracle的数据库人才)的方法,在选择开源数据库时,列出了四项标准:
1、能够充分发挥其现有数据库管理员和开发人员的潜能;
2、易于将SOE现有的Oracle应用程序迁移到新的数据库;
3、能够提供商用级别质量可靠性,包括备份和恢复标准,以支持关键任务应用程序;
4、可扩展,具有高性能。
在选择开源数据库之前,SOE需要使用许多Oracle 9i RAC群集。另外,SOE在其后台运营中部署了数据库。与如今的很多企业一样,SOE希望开源软件能够提供应对这些业务挑战的解决方案。
根据SOE对不同开放源码数据库的评估,他们选择了兼容Oracle数据库的EnterpriseDB,因为SOE有八成以上的特定Oracle应用程式,可以在极少、甚至无需修改的情况下在EnterpriseDB执行,以现有开支比较,利用EnterpriseDB后,每款线上游戏的整体拥有成本可降低80%,每年节省总额过百万,在2007至2008年度,SOE将使用数百台EnterpriseDB数据库集群服务器。
开源更有前途
使用Oracle数据库的企业一般都会对开源数据库感兴趣,主要有三个方面原因:首先,通过部署开源数据库,这些企业可以显著降低数据库的总拥有成本(TCO),有时降幅甚至高达90%;其次,他们通常可以从其他厂商获得更大的许可灵活性以及业务便利;最后,这些企业会发现其他厂商更渴望为他们提供出色技术。
对于开源数据库,企业多少也会有些担心,因为许多企业仅限于将开源数据库用于一些简单的应用程序,如一些网站的支持应用。因为这些企业普遍认为开源数据库可能不够稳定,可靠性或者可扩展性不够高,因而无法满足他们的关键任务应用需求。另外,企业可能还觉得更改数据库的代价,例如,与应用程序重新编码,人员重新培训相关的成本,可能会超出预期的节省目标。
MySQL、FireBird、EnterpriseDB和Postgre(PostgreSQL的前身)都是非常健壮的开源数据库,而EnterpriseDB又是基于PostgreSQL进行开发的,不仅保留了PostgreSQL的稳定性,而且可实现50%的速度增长,系统可以自动监测是否有补丁程序存在,大大减轻管理员的工作。
近几年来,美国一些大企业纷纷采用开放源码数据库,它们往往在总部采用商业数据库,而在分支机构的Linux服务器上采用开源产品。这些数据库除了费用便宜,还各有独到之处。与商业化产品相比,开源数据库结构简单,但功能不简单,读取 *** 作快捷,易管理,甚至不需要全职的管理员。由此吸引了像Cisco、Yahoo这样的大公司,以及众多的中小企业。而在国内,我们熟悉的新浪、网易等大型门户网站也是开源数据库的使用者。
该企业品牌在世界品牌实验室(World Brand Lab)编制的2006年度《世界品牌500强》排行榜中名列第三十六。
以上就是关于oracle理论学习详解及各种简单 *** 作例子怎么解决全部的内容,包括:oracle理论学习详解及各种简单 *** 作例子怎么解决、Oracle自学怎么样很难吗就业方向有哪些、求推荐一本Oracle学习教程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)