抽象数据类型,让Oracle数据库数据管理更加容易
作者: Victor, 出处:IT专家网, 责任编辑: 包春林,
2009-02-04 10:10
姓名,其实包括两个部分,分别为姓与名。在没有抽象数据类型之前,在数据库设计的时候,往往需要利用两个字段来保存这个姓名内容,如First_name与Last_name等等。这主要是因为在很多时候,前台应用程序只需要用到姓即可,因为在称呼别人的时候,往往不会连名带姓的叫。如在CRM系统中,若利用CRM系统自带的邮件系统给客户发送邮件的时候,台头往往是李公、张公等等。而不会带来名字。为此,就需要把姓与名分开来保存。
姓名,其实包括两个部分,分别为姓与名。在没有抽象数据类型之前,在数据库设计的时候,往往需要利用两个字段来保存这个姓名内容,如First_name与Last_name等等。这主要是因为在很多时候,前台应用程序只需要用到姓即可,因为在称呼别人的时候,往往不会连名带姓的叫。如在CRM系统中,若利用CRM系统自带的邮件系统给客户发送邮件的时候,台头往往是李公、张公等等。而不会带来名字。为此,就需要把姓与名分开来保存。
此时,若没有抽象数据类型的话,则在数据库中就需要设立两个字段来处理。但是,在Oracle数据库8以后的版本,包括现在最新的数据库版本,都有一个抽象数据类型,专门来处理这些问题。简单的讲,抽象数据类型就是一些可以作为单独实体的小的基本数据类型的集合。或者说,抽象数据类型是用户自己做的一个箱子,里面有很多抽屉,而每个抽屉就是一个原始的数据类型,如INT或者Varchar数据类型。把几个基本的数据类型根据不同的需要,组合成一个新的抽象数据类型,这就让数据库管理员在处理数据的时候,更加的容易;而且容易控制,减少出错的几率。
一、抽象数据类型的用途。
抽象数据类型在实际工作中非常管用。因为自从面向对象的JAVA语言出现后,Oracle数据库设计者就开始意识到创建抽象数据类型的能力可以大大简化他们的Oracle数据库设计。为此,经过他们的努力,在Oracle数据库中,对SQL语句进行了扩展,实现了面向对象的抽象数据类型。具体的来说,抽象数据类型主要有以下几个优点。
一是可以重复使用。抽象数据类型集成了普通数据结构的层次性,为此,用户定义的抽象数据类型可以在整个数据库范围内多次使用。如此的话,就可以减少编码的时间,并且确保了数据结构的统一性。如用户自定义的姓名抽象数据类型,其不仅可以在企业员工信息表中使用,也可以在业务伙伴联系人表中使用。数据库管理员不需要每次使用时都定义一次。
二是灵活性。有了抽象数据类型就可以创建数据的真实世界表现形式的能力使得Oracle数据库对象设计者可以塑造一个真实世界的模型,并且创建可以统一应用于设计的强有力的数据类型。其实,这就是面向对象的编程语言的根本特性。
三是可以实现对数据很好的封装。因为每一个抽象数据类型以一个完整的实体存在,它包括数据定义、默认值和取值范围。添加抽象数据类型可以确保整个Oracle数据库范围的统一性与一致性。一旦定义了某个抽象数据库类型,它就可以加入到很多其他的抽象数据类型中,因为无论这些数据类型在数据库中出现在何处,相同的逻辑数据类型总是具有相同的定义、默认值与取值范围。如在一个ERP系统的产品基本信息表中,有产品规格、尺寸、颜色、外处理方式等等。为此,无论在产品基本信息表中,还是在订单表中,都可以实现很好的一致性。而且,此时若在订单层面对这个数据进行更新的话,也不容易出错。
二、抽象数据类型建立与引用。
上面笔者谈到过,抽象数据类型就是一些基本数据类型的组合。下面笔者以地址为例,谈谈抽象数据类型的建立与引用。如现在某个地址,具有如下内容,分别为街道、城市、省份、邮编等。其中街道、城市、省份三个位字符型数据,而邮编则为整数型字段。为了数据的一致性与统一性,数据库管理员决定采用抽象数据类型来管理这些内容。
1、 定义名为Adrees的抽象数据类型。
我们可以利用Create Type语句来建立新的抽象数据类型。具体的语句如下:
Create OR Replace Type Adress AS OBJECT
(街道 Varchar2(100),
城市 Varchar2(100),
省份Varchar2(100),
邮编 integer(6));
OR Replace关键字跟在其他语句中具有相同的作用。它表示若有其他相同的抽象数据类型的话,则这个语句就会替换原有的抽象数据类型。另外,在建立抽象数据类型的时候,利用中文名字来定义仍然不是一个好的习惯。最好要利用统一命名规则来定义其内部的名字。笔者上面只是为了叙述方面的简便起见,才如此定义。所以,数据库管理员在这方面还是需要有一个清晰的认识
分享到:
相关推荐
第1章Oracle数据库概述 1.简答题 (1) 数据是描述事物的符号,是数据库中存储的基本对象。在计算机中,用记录的形式来描述数据。数据与数据的解释即数据的语义是紧密结合的。数据库是指按一定的数据模型组织、描述...
1. Oracle数据库对象 67 2. 同义词 67 3. 序列 70 4. 视图 72 5. 索引 74 6. 表空间 75 7. 本章总结 79 8. 本章练习 80 PL/SQL程序设计 83 1. PL/SQL简介 84 2. PL/SQL块 85 3. PL/SQL数据类型 89 4. PL/SQL条件控制...
1.4.3 抽象数据类型 6 1.4.4 分区和子分区 7 1.4.5 用户 7 1.4.6 模式 8 1.4.7 索引 8 1.4.8 簇 9 1.4.9 散列簇 9 1.4.10 视图 9 1.4.11 序列 10 1.4.12 过程 10 1.4.13 函数 10 1.4.14 软件包 11 1.4.15 触发器 11 ...
并进行归纳、抽象,在此基础上建立企业运行的逻辑模型—集成化的数据模型(即数据库模式)和业务模型才能实现,这是信息系统建设的核心和难点。 稳定的数据库模式是客观存在的,它深藏于组织的业务之中,必须采取...
提供了类似Oracle Spatial 的数据类型和一个对象关系模式 存储多维的网格化数据和栅格层 栅格数据拥有空间参考信息 进行空间检索 对象关系数据库管理特点 3 解决了空间数据的变长记录管理问题,由数据库软 件商扩展...
ADODB内置一个元类型(metatype)系统,使得它认为像CHAR,TEXT和STRING这样的数据类型在各种不同数据库中是相当的。它具有:可移植数据库创建,依赖数据库的session支持,SQL执行监控和数据库"健康"检查。 很多的知名...
它提供了一个抽象层来访问数据,不管您使用的是哪个数据 库,并确保有一个单独的对象实例/数据库连接。它可以连接到几个可能的SQL数据库使用可用的PDO驱动程序。目前它支持MySQL、 PostgreSQL、Oracle、Microsoft SQL ...
在oracle数据库设计中,一 般来说,对于定长的字符数据字段,取字符类型(char),对于不定长的,取变长字符类 型(varchar)。 2.对于以分类形式出现的字段,建议不使用字符类型,而使用数字类型。如:货物 是否配送为...
§3.7 抽象数据类型的使用 118 §3.8 大数据类型的使用 119 §3.8.1 可用数据类型 119 §3.8.2 为LOB数据类型指定存储 120 §3.8.3 操作和检索LOB数据 121 §3.9 表和索引有关的数据字典 124 §3.9.1 表和索引数据...
数据库表设计 数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MySQL、SQL Server、Oracle等。根据用户的需求和系统分析,本系统采用MySQL数据库管理系统。在MySQL数据库管理...
§3.7 抽象数据类型的使用 118 §3.8 大数据类型的使用 119 §3.8.1 可用数据类型 119 §3.8.2 为LOB数据类型指定存储 120 §3.8.3 操作和检索LOB数据 121 §3.9 表和索引有关的数据字典 124 §3.9.1 表和索引数据...
司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 ....
空间数据引擎和对象关系空间数据库的对比 项目 空间数据引擎(寄生模式) 对象关系空间数据库(融合模式) 技术特点 中间件技术 数据库技术 代表产品 ARCSDE、SuperMap SDX+、MapGIS SDE、TerraLib(开源) Oracle ...
物理设计 根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取...
比如:Visual FoxPro 6.0,SQL Server,Oracle等系统就是数据库管理系统。 其主要功能包括以下几个方面: (1) 数据定义功能 (2) 数据操纵功能 (3) 数据控制功能 (4) 数据库的建立和维护功能 3) 数据库系统...
数据库设计概述 数据库设计概述 ⽬录 数据库设计概述 数据库设计概述 数据库设计是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,使之能够有效地存储数据,满⾜各种⽤户的 应⽤需求,...