解析Oracle Database Concepts 12c(2)

本文介绍了Oracle数据库中的模式对象概念,包括表、索引、存储过程等,并对比了Oracle与PostgreSQL的区别。此外,还解释了数据库对象与模式对象的关系,并讨论了SQL作为声明式语言的特点,以及Oracle对SQL标准的支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模式对象(Schema Objects)

Schema,通常翻译为模式,在Oracle中模式指的是一组逻辑数据结构,如表、索引、存储过程、触发器等,这些也称作模式对象(shcema objects)的集合。一个数据库用户拥有一个模式,模式的名称和用户名是一样的。这和PostgreSQL是有区别的,在PostgreSQL中,用户和模式是分离的,当然用户名和模式名也可以是相同的,这样就和Oracle兼容了。

Oracle支持很多种模式对象,其中最重要的两种是:表和索引。关于表和索引的基本概念这里就不在累述了,这方面的知识推荐阅读Jeffrey D. Ullman的《A First Course in Database Systems》、《Database System Implementation》.目前这两本书已经被原著者合并成《Database Systems: The Complete Book 》,不过目前国内貌似还买不到。题外话了,呵呵。

与之相对应的还有一个是数据库对象(database objects)。这两个有什么关系呢?这么说吧,模式对象肯定是数据库对象,但数据库对象不一定是模式对象,如profile,role这类就不是模式对象。

数据访问(Data Access
Structured Query Language,简称SQL。SQL是一种声明式语言。像C,Java这类语言,为完成一个事项如交换两个变量的值,我们需要清楚的描述好每一步动作,这类语言我们称之为过程式语言。而SQL就不一样了,比如为了获取所有名叫“张三”的学生,只要指明获取students这张表中name是“张三”的就可以了,至于如何获取的,要不要用索引等等这些不是SQL关心的。简言之,过程式语言描述的是如何做,而声明式语言描述的是做什么。

ANSI针对关系数据库制定了一套标准的SQL,最新的标准为SQL-2003。Oracle支持ANSI的SQL标准,但同时也做了很多的扩展,Oracle把它叫做Oracle SQL。所以针对Oracle开发的应用要在其它数据库上跑,那通常只能是呵呵了。

PL/SQL和Java
PL/SQL扩展了Oracle SQL的能力,增加了变量、过程控制、错误处理等。所以总结来说,PL/SQL是能够处理SQL的过程式语言。除了用PL/SQL外,还可以选择Java。而且两者是能够互相调用的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13885898/viewspace-2140232/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13885898/viewspace-2140232/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值