概念数据模型:按照用户的观点来对数据和信息建模,E-R模型是概念数据模型的典型。
逻辑数据模型:从计算机实现的观点来对数据建模。
物理数据模型:从计算机的物理存储角度对数据建模。
逻辑数据模型的发展受到应用发展和需求的推动经过了以下四个时代:
文件系统 -> 层次和网状数据库 -> 关系数据库 -> 新一代数据库(OODB、ORDB)
目前广泛应用的关系数据模型又很多缺陷,第一:有限的数据类型,不支持自定义函数和运算,很难满足现实世界的要求。第二:不能清晰的表示和处理复杂对象,例如多值属性、组合属性、聚集。第三:缺少对象表示OID,这于显示世界不符。主键被关系数据库用来标识数据实体,但它又很多缺陷:主键发生变动,但数据实体是确定不变的;主键只在一定范围内有效,而数据实体往往是全局的;关系型的面向集合的数据操作虽然用起来方便,但很多情况下执行效率低。用OID来进行导航式的对象访问更直观、更有效。
随着面向对象技术应用到软件的各个领域,面向对象数据模型和对象关系数据模型应运而生。
OODB:用面向对象数据模型代替关系数据模型。
ORDB:将关系数据模型扩展为对象关系数据模型。
Oracle和DB2都在往对象关系数据库管理系统的方向发展。下面我们以Oracle为例给大家展现Oracle的对象特性。
从Oracle的Manager Console中我们可以看到Oracle把User Types分成了四类:Array Types、Table Types、Object Types和XML Schema。
首先我们来讲Object Types,在Oracle创建Object Types的方式是:
create type type_name as object(attr1_name attr1_type, attr2_name attr2_type
member function func_name1(参数说明) return 返回类型,
member function func_name2(参数说明) return 返回类型,
)
对象类型必须包含一个或多个属性,属性的类型可以是:数据库原有数据类型、LOB、对象(包括用户自定义的对象类型)、对象的引用(REF)、Collection。
例如:
create table circles(radius number, center point_type);创建一个包含点类型属性的表,它包含x和y坐标。
insert into circles values(1, point_type(1, 1));插入点一行数据。
select radius,center from circles;查询该表,但是这样看不到点的坐标。
select radius, c.center.x, c.center.y from circles c;这样查询可以看到对象类型的数据。
有了对象类型以后,我们就可以在数据库表中添加组合类型了。
下面我们来解决多值属性的问题。
Oracle中的表示集合类型有两个办法,一个是嵌套表,一个是Varray类型。
比如我们创建一个含有电话号码的嵌套表:
create type phone_no as table of number;
然后创建使用了嵌套表的主表。(注意嵌套表不是一个我们通常所认为的table,准确的说在Oracle数据库中它是叫table type,属于user types。)
create table stu (name varchar2(30), pn phone_no)
nested table pn store as table_of_phoneNumber;
stu表含有两个属性列,一个是通常的varchar2类型,一个是刚刚创建的phone_no类型。
向stu表中插入数据:
insert into stu values('wilmawang', phone_no(13647231280, 02761256399));
在对含有嵌套表类型的基本表查询的时候,普通的select * 的方式并不能查询到嵌套表那一个属性列的数据,要使用table函数来查询嵌套表中的数据。
select * from table(select pn from stu); 注意table函数只能处理单行的结果集,如果table中的查询结果集返回有多行记录,那么Oracle会报错:ORA-01427: single-row subquery returns more than one row。
最后我们来谈Varray类型。Varray也就是我们刚开始所说的Array Types。它与嵌套表一样可以用来存储多个值。与嵌套表不同的是,Varray的大小需要事先声明。Varray通常是做为一个整体被提取到Java等语言的数组类型中去处理。
create type pn as varray(2) of number;
create table stuv(name varchar2(20), pno pn);
insert into stuv values('WallyWong', pn(13545035202,01081438252));
关于含有Varray类型的表的查询方式和含有嵌套表类型的表一样。
分享到:
相关推荐
跨层级、跨地域、跨系统、跨部门、跨业务的政务逻辑数据模型(GLDM)是衔接块数据理论体系和目前各省市区大规模开展的数据采集、共享、整合、集中、开放等实践的工程指南,也是省市区数据资源库(数据湖)建设的方法...
阿里集团数据研发体系-数据模型设计规范 阿里集团数据研发体系-数据模型设计规范是阿里集团数据研发团队制定的数据模型设计规范。该规范旨在统一和标准化阿里集团内部的数据模型设计,确保数据的一致性和可重用性。...
《数据模型资源手册》是数据建模领域的一部权威之作,尤其其中文版的推出,为国内广大读者提供了深入理解数据模型的宝贵资料。该书第一卷主要涵盖了数据模型的基础知识、理论体系以及实践应用,旨在帮助读者构建扎实...
中国联通IT系统数据架构规范_第一分册_企业数据模型分册 以下是根据提供的文件信息生成的相关知识点: 企业数据模型是中国联通IT系统数据架构规范的重要组成部分,该规范旨在为中国联通企业提供一个统一的数据架构...
《数据模型资源手册中文版卷1+卷2》是一份极具价值的IT文献,它涵盖了数据建模领域的广泛知识,是数据库设计者、数据分析师和系统架构师的重要参考资料。这份资源手册分为两卷,深入浅出地介绍了数据模型的设计、...
机构多、类型广、交易方式多样,机构内及机构间数据交换频繁、 业务发展迅速,为提高数据交换效率、规范行业机构数据应用系统建设、提升行业数据标准化水平,证 券期货行业组织开展了行业数据模型建设工作,...
《数据模型资源手册 卷2 中文版》是一本专注于数据模型开发和应用的工具书,为数据库开发人员提供了一套功能强大的数据模型库。书中详尽描述了多个行业领域内经过验证的通用业务功能模型,使得数据库的开发人员能够...
数据模型资源手册是建模专业人士的重要参考资料,尤其对于那些希望深入了解和掌握数据建模技术的英文读者来说。这本书详尽地介绍了数据模型的概念、类型、设计原则和实践应用,是学习和提升数据建模能力的理想工具。...
中国电信的计费模型数据模型是一套复杂而全面的体系,旨在有效管理和处理电信服务的计费、账务以及客户服务等多个方面。模型分为多个章节,包括产品域模型、客户域模型、定价域模型、计费事件域模型和账务域模型,...
### FSDM金融服务数据模型详解 #### 一、引言 IBM的FSDM(Financial Services Data Model)金融服务数据模型是一种专为金融行业设计的数据模型,旨在帮助金融机构更好地管理和利用其核心业务数据。该模型自1990...
这个名为"MIDAS_example.rar_midas混频_多元混频MIDAS_实时预测_混频数据_混频数据模型"的压缩包文件,显然包含了一个关于如何使用MIDAS模型进行多元混频及实时预测的实例。 MIDAS模型是由Ghysels、Santa-Clara和 ...
《数据模型资源手册3》是该系列书籍的第三分册,作为一个专注于数据建模的专业人士,这本书无疑是你深入了解和掌握数据模型设计不可或缺的参考资料。在信息化时代,数据模型作为理解和组织数据的基础,对于企业的...
数据库原理数据模型概述 数据库原理是计算机科学中研究数据库系统的基本理论和方法的学科。数据模型是数据库原理的核心概念,它是对现实世界中的事物的抽象描述,这种抽象描述能确切地反映事物的特征和事物之间的...
Teradata金融行业数据模型是Teradata公司为满足金融机构在数据管理和分析方面需求而设计的一种专业数据模型。这个模型是Teradata统一数据模型(Unified Data Architecture, UDA)的一部分,旨在帮助金融服务业提升...
1基本概念 1.1模型 1.2数据模型 1.3空间数据模型 1.4三维空间数据模型 1.5三维空间数据模型与三维空间数据结构的区别 三维空间数据模型与数据结构全文共28页,当前为第3页。 1.2数据模型(Data Model) 数据模型是...
常见的数据模型有三种:关系数据模型、层次数据模型和网络数据模型。 1. 关系数据模型:这是最常用的数据模型,由E.F. Codd在20世纪70年代提出。在这个模型中,数据被组织成表格(表),每个表格由一系列列(字段)...
数据模型设计是构建数据库系统的基础,它涉及到对业务需求的理解、数据的组织和关系的定义。本篇文章将详细解析数据模型设计的方法和样例,帮助读者深入理解这一关键环节。 首先,数据模型设计面临的挑战包括从传统...