rdbms数据是如何存储数据的
① 数据库物理设计的数据库物理设计
数据库物理设计是后半段。将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法,这个过程就是数据库的物理设计。
物理结构依赖于给定的DBMS和和硬件系统,因此设计人员必须充分了解所用RDBMS的内部特征、存储结构、存取方法。数据库的物理设计通常分为两步,第一,确定数据库的物理结构,第二,评价实施空间效率和时间效率
确定数据库的物理结构包含下面四方面的内容:
1、确定数据的存储结构
2、设计数据的存取路径
3、确定数据的存放位置
4、确定系统配置
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,选择一个优化方案作为数据库物理结构。在数据库物理设计中,最有效的方式是集中地存储和检索对象。
由于数据库物理设计和UNIX、数据库系统息息相关了。请参见两本技术专着《Oracle在AIX上的系统构建、运维、集群、容灾和性能》或《Sybase数据库在UNIX、Windows上的实施和管理》中的相关内容。该书由着名数据库顾问文平编着,具有极强的指导意义。
② 什么是关系数据库存储模式
关系数据库存储模式是以关系模型为基础的数据库存储方式,它通过关系数据库管理系统(RDBMS)进行数据的管理。关系模型是目前商用数据库领域最流行的一种数据模型,其基本思想是用二维表表示实体及其联系。二维表中的每一列对应实体的一个属性,并给出相应的属性值,每一行形成一个有多种属性组成的多元组,或称元组(TUPPLE),与一个特定实体相对应。
采用关系数据库存储方式,其主要特点是:
(1)关系结构灵活,可满足所有用布尔逻辑运算和数学运算规则形成的查询要求。
(2)关系数据还能搜索、组合和比较不同类型的数据,加入和删除数据都很方便。
(3)其缺点是由于许多操作都要求在文件中顺序查找满足条件特定关系的数据,如果数据库较大,这一查找过程要花费很多时间。
在早期的土地信息系统的建设中,一般采用关系型数据库来存储管理属性数据,而空间数据的管理多采用文件的方式来组织管理。主要原因一是因为关系型数据库对地理空间数据的表达能力不足;二是因为地理信息系统软件中一些数据模型和数据文件的结合很紧密。
随着数据库技术的发展和地理信息系统技术的广泛应用,基于关系对象数据库的空间数据管理技术日渐成熟,出现了商用的统一存储空间数据和属性数据的软件系统,如Oracle数据库系统产品Oracle Spatial支持对空间数据的存储与管理,使用Esri的Arc SDE可用关系型数据库(RDBMS)管理空间数据。
③ 什么类似于关系数据库管理系统中的表格
集合就是一组文档,类似于RDBMS(关系数据库管理系统:)中的表格。关系数据库管理系统锋隐誉(RDBMS)主要使用二维携指表(Table)来存储数据,类似于Excel中的电子表格。银段
④ redis数据库如何存取
简而言之,Redis是一种强大的key-value数据库,之所以强大有两点:响应速度快(所以数据内存存储,只在必要时写入磁盘),特性丰富(支持多种数据类型,以及各类型上的复杂操作)。
事实上,Redis的一个重要特性就是它并非通常意义上的数据库,虽然称之为数据库是因为它可以为你存储和维护数据,但它并不像关系数据库那样提供任何的SQL方言。不过不用担心,Redis并不是吞噬数据的黑洞,它只是不支持SQL及相关功能,但却提供了稳健的协议用于与之交互。
在Redis中,没有数据表的概念,也无须关心select、join、view等操作或功能,同时也不提供类似于int或varchar的数据字段。你面对的将是相对原始的数据集合及数据类型。
探索之二:Available datatypes
下面我们深入看下这个奇怪的数据库是如何工作的。如上所见,Redis是基于key-value范式存储数据,所以先来重点看下"key"的概念。
key本质上就是简单的字符串,诸如"username"、"password"等。在定义key时,除了不能使用空格,你可以随意的使用普通的字符、数字等,像".",":","_"等在定义key时都能正常使用,所以像"user_name", "user:123:age", "user:123:username"都是不错的key的定义方式。
不像RDBMS中的字段名称,这里的key是Redis中的重要组成部分,所以我们必须在处理key时多加小心。在下面的讲述中,Redis并没有table的概念,所以像"SELECT username from users WHERE user_id=123;"这种简单任务都只能换种方式实现,为了达到这种目的,在Redis上,一种方式是通过key "user:123:username"来获取结果value。如你所见,key的定义中携带了神秘信息(像user ids)。在Redis中,key的重要性可见一斑。(其他key-value数据库中key的地位也是如此。)
⑤ 海量空间数据存储
(一)空间数据存储技术
随着地理信息系统的发展,空间数据库技术也得到了很大的发展,并出现了很多新的空间数据库技术(黄钊等,2003),其中应用最广的就是用关系数据库管理系统(RDBMS)来管理空间数据。
用关系数据库管理系统来管理空间数据,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题,即空间数据库引擎(SpatialDatabase Engine)(熊丽华等,2004)。更确切地说,空间数据库技术是解决空间数据对象中几何属性在关系数据库中的存取问题,其主要任务是:
(1)用关系数据库存储管理空间数据;
(2)从数据库中读取空间数据,并转换为GIS应用程序能够接收和使用的格式;
(3)将GIS应用程序中的空间数据导入数据库,交给关系数据库管理。
空间数据库中数据存储主要有三种模式:拓扑关系数据存储模式、Oracle Spatial模式和ArcSDE模式。拓扑关系数据存储模式将空间数据存在文件中,而将属性数据存在数据库系统中,二者以一个关键字相连。这样分离存储的方式由于存在数据的管理和维护困难、数据访问速度慢、多用户数据并发共享冲突等问题而不适用于大型空间数据库的建设。而OracleSpatial实际上只是在原来的数据库模型上进行了空间数据模型的扩展,实现的是“点、线、面”等简单要素的存储和检索,所以它并不能存储数据之间复杂的拓扑关系,也不能建立一个空间几何网络。ArcSDE解决了这些问题,并利用空间索引机制来提高查询速度,利用长事务和版本机制来实现多用户同时操纵同一类型数据,利用特殊的表结构来实现空间数据和属性数据的无缝集成等(熊丽华等,2004)。
ArcSDE是ESRI公司开发的一个中间件产品,所谓中间件是一个软件,它允许应用元素通过网络连接进行互操作,屏蔽其下的通讯协议、系统结构、操作系统、数据库和其他应用服务。中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通讯,并营造出一个相对稳定的高层应用环境,使开发人员可以集中精力于系统的上层开发,而不用过多考虑系统分布式环境下的移植性和通讯能力。因此,中间件能无缝地连入应用开发环境中,应用程序可以很容易地定位和共享中间件提供的应用逻辑和数据,易于系统集成。在分布式的网络环境下,客户端的应用程序如果要访问网络上某个服务器的信息,而服务器可能运行在不同于客户端的操作系统和数据库系统中。此时,客户机的应用程序中负责寻找数据的部分只需要访问一个数据访问中间件,由该中间件完成网络中数据或服务的查找,然后将查找的信息返回给客户端(万定生等,2003)。因此,本系统实现空间数据库存储的基本思想就是利用ArcSDE实现各类空间数据的存储。
目前,空间数据存储技术已比较成熟,出现了许多类似ArcSDE功能的中间件产品,这些软件基本上都能实现空间数据的数据库存储与管理,但对于海量空间数据的存储,各种软件性能差别较大。随着数据量的增长,计算机在分析处理上会产生很多问题,比如数据不可能一次完全被读入计算机的内存中进行处理。单纯依赖于硬件技术,并不能满足持续增长的数据的处理要求。因此需要在软件上找到处理海量数据的策略,并最终通过软硬件的结合完成对海量数据的处理。在海量数据存储问题上,许多专家从不同侧面进行过研究,Lindstrom在地形简化中使用了外存模型(Out-of-core)技术;钟正采用了基于数据分块、动态调用的策略;汪国平等人在研究使用高速网络进行三维海量地形数据的实时交互浏览中,采用了分块、多分辨率模板建立模型等方法。这些技术、方法已经在各自系统上进行了研究和实现。本系统采用的ArcSDE软件基本上也是采用分块模型的方法,具体存储和操作不需要用户过多了解,已经由ArcSDE软件实现。因此,对海量数据的存储管理,更需要从数据的组织方式等方面进行设计。塔里木河流域生态环境动态监测系统采集了大量的遥感影像、正射影像等栅格结构的数据,这些数据具有很大的数据量,为适应流域空间基础设施的管理需要,采取一种新的方式来管理、分发这些海量数据以适应各部门的快速浏览和管理需要。
(二)影像金字塔结构
影像数据库的组织是影像数据库效率的关键,为了获得高效率的存取速度,在数据的组织上使用了金字塔数据结构和网格分块数据结构。该技术主导思想如下:
(1)将数据库中使用到的纹理处理成为大小一致的纹理块;
(2)为每块纹理生成5个细节等级的纹理,分别为0、1、2、3、4,其中1级纹理通过0级纹理1/4压缩得到,2级纹理通过1级纹理1/4压缩得到,…,以此类推;
(3)在显示每个块数据之前,根据显示比例的大小,并以此决定该使用那一级的纹理;
(4)在内存中建立纹理缓冲池,使用LRU算法进行纹理块的调度,确保使用频率高的纹理调度次数尽可能少。
(三)影像数据压缩
影像数据压缩有无损压缩和有损压缩两个方法,具体采取哪种压缩方法需根据具体情况确定。对于像元值很重要的数据,如分类数据、分析数据等采用无损压缩(即LZ77算法),否则采用有损压缩(即JPEG算法)。通过对影像数据的压缩,一方面可以节约存储空间,另一方面可以加快影像的读取和显示速度。影像数据的压缩一般与构建金字塔同时进行,在构建影像金字塔过程中自动完成数据的压缩。