漫谈数据库的中庸思想

漫谈数据库和数据仓库的区别和联系 背景 接触大数据两年的时间里,数据仓库这个词频繁出现在我的耳朵里,随着知识的逐渐积累,对数据仓库和数据库也有了一个大概的了解。 概念 数据库(DB) 简单来说,数据库就是存储数据的仓库,主要有关系型数据库和非关系型数据库,这是一种逻辑上的概念。 数据仓库(DW) 从逻辑上来理解,和数据库的概念一致,都是存储数据的仓库,只是数据仓库的数据量更大。 数据仓库的特点 数据仓库是面向主题的 那么什么... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 想写一篇关于数据库的文章,这个念头已在脑海里晃了一年多了,之所以迟迟没有下笔,主要是好多想法还不够成熟,需要更多的酝酿,再者很多年没有写过什么东西,在文笔上也是缺乏信心。掐指一算自己做数据库的设计或管理也有四五年的时间了,总还是有一些心得,今日拿起笔来也就一吐为快吧。 早在几千年前,中国古代的大思想家孔圣人就曾说:“不偏之谓中;不易之谓庸。”后又有《中庸》解释说:“中者,天下之正道;庸者,天下之定理。”到底该如何理解中庸呢, 也许只有那些研究儒学的大家们才可以给出一个确切的解释,在此我们姑且不去细究。但将中庸的思想运用到我们的生活和工作中,我们可以有自己的理解,那就是适度、有节之谓“中”;当变则变、不当变则持之则谓“和”。因为中之,万物则兴也;因为和之,万物则久远。你看我说得是不是太大了,不过也没关系,既然是漫谈,那就随意、自然一点好了。 既然万事万物都遵循中庸的道理,那当然我们的数据库也就不会例外了。一个有数据库参与的项目、从开始的业务调研、流程分析、到数据的概念模型设计、数据库逻辑结构设计、物理结构设计、项目实施、数据库的管理等各个阶段无不要持有一种中庸的思想,才可以保证项目的成功实施,并保证系统具有强大的生命力。其实不管是数据库的设计、开发、还是管理都是充分、合理、恰当的分配使用现有资源,是其有效的组合、构成一个系统,在其运作起来时,达到一种理想的效益产出。而其中的“充分、合理、恰当”无不是一种度的把握和中庸思想的体现。而这种度的斟酌,则是为了寻找到一个又一个平衡点,去适应一种简单或复杂的现实的需求,这就是我们所说的“中”;而值得注意的是,这个平衡点又是动态的,它将随着外部环境的变化或(和)内部因素的改变而需要得到相应的调整,这就是我们所说的“和”。 数据库的设计和管理的任务其实就是调和现实业务和构建系统之间的矛盾而实现一种需求。所谓“知己知彼,百战不殆”,就要求我们首先对业务有一个透彻的学习、调研、甚至是调整。因为我们讨论的是数据库中的中庸思想,所以我们姑且认为在开发数据库的应用之前,我们已经对业务及需求有了一个详尽的了解和全面、彻底的理解。 以ORACLE数据库为例,其中不仅有着应对各种不同需求的对象部件或技术策略,更有着成千上万的可调整的参数或配置,即使现实的需求是千变万化的,只要我们使用、配置得当,就能构造出运行良好的数据库应用系统。这就象修房盖屋,ORACLE为我们准备了大大小小、各具用途的材料,也准备了锯子锤子等各式工具,而我们就是使用合适的工具把合适的材料裁成合适的形状和合适的大小,使其组合起来形成一套舒适、耐用、又漂亮的房子。而其中处处提及的“合适”与否则依赖于我们的经验、前期的工作、及对数据库的理解等等。 谈到数据库的应用,我们首先想到的可能就是用数据库来存放数据,存放到数据库的表里,而ORACLE单是表类型就有几种,如:堆组织表,也是最常用的一种表,还有索引组织表,索引聚簇表、散列聚簇表、嵌套表、临时表。每种表都有它特定的性质和特定的用途,当用才用,否则就会适得其反。 当谈到数据库的性能时,人们最先想到的可能就是索引。而索引是不是总是可以提高性能,回答是“不一定”。有人比喻索引就象“盐”,加少了“菜”不够味、加多了就太咸了。事实上还远没有这么简单,就是“盐”,也有很多种,如:二叉树索引、位图索引、函数索引。每种“盐”都有其使用范围,适用的应用类型、适用的度。超出了范围、超出了度,就会失去平衡。失去小的平衡,系统运行不畅,失去大的平衡则会导致系统崩溃。 讲到这里,我们明白了在数据库中要掌握一种平衡,并且是一种动态的平衡,只所以是动态的,因为时间在流逝,很多数据库外在或内在的因素在改变,让平衡保持静态等于失去平衡,所以原本平衡的东西需要进一步调整达到一种的新的平衡。 如若我们把上面的动态平衡作为一种纵向考虑,其中的时间可以看做其变化因子,那么我们还要做一种横向的考虑,空间可以作为其变化因子,那就是要注意局部的平衡与整体的平衡。局部与整体不是绝对的,而是相对的,如数据库服务器相对与其中的内存、外存、CPU,它是一个整体的概念,但若放到一个网络环境中,它则变成了一个局部概念,数据库系统相对于其中的各种对象,如表、索引、视图、包、过程、函数等它是一个整体的概念,但若放在一套完整的数据库软件系统中,其中可能有各种协议、应用层和客户层的软件,它又变成了一个局部的概念。其实也可以认为一个大的系统是由很多小的系统组成的,我们就是要学会用系统的观点去看问题,在局部的系统中的把握平衡,而又注意到局部系统之间的平衡。如下图所示: 再举个例子来讲,在进行数据库的设计与开发是,我们的设计和开发一般都运行在数据库服务器上,所使用的可见资源无非就是CPU、内存、外存磁盘之类,而在这几种资源中,磁盘是相对短缺的资源,因为磁盘IO是最耗时的工作,除了配置磁盘阵列、高速硬盘,把不同类型的数据放到不同的硬盘上,采取一种“分而治之”的策略以外,我们更应该谨慎的是在开发应用时尽量减少磁盘IO,有人以为增大内寸可以减少磁盘的物理IO,这只是一个方面,其实任何一个SQL调整专家都明白要减少SQL执行时的逻辑IO。 针对不同的应用类型,有些是耗CPU资源严重、有些是需要大量的磁盘IO,而我们就是要做到对症下药,合理分配资源,使之达到一种平衡,这样才会有最大的效益产出。 这是考虑数据库服务器本身,当着我们把它放到一个网络的计算环境时,我们就要考虑在数据库服务器、网络、应用服务器、客户端等组成的一个大系统中保持资源的分配合理,例如分割应用,把一些逻辑运算放到数据库服务器,利用它的强大的计算能力和临近数据库的数据,产生的计算结果也包含了最少量的数据,从而在数据传输时减少了网络压力。当然,采取数据库端编程的好处还不止这么多。 还有就是不同资源之间是相通的、负担和压力是可以流动的。在数据库的设计中用空间换取时间就是一个很好的例子。 总之,不管是横向的、还是纵向的、我们都要以一种动态的观念、中庸的思想去观察和解决问题。
【漫谈数据仓库】 如何优雅地设计数据分层 一、文章主题 本文主要讲解数据仓库的一个重要环节:如何设计数据分层!其它关于数据仓库的内容可参考之前的文章。 本文对数据分层的讨论适合下面一些场景,超过该范围场景 or 数据仓库经验丰富的大神就不必浪费时间看了。 数据建设刚起步,大部分的数据经过粗暴的数据接入后就直接对接业务。 数据建设发展到一定阶段,发现数据的使用杂乱无章,各种业务都是从原始数据直接计算而得。 各种重复计算,严重浪费了 阅读详情

相关推荐

你是否曾质疑过DB-Engine的数据库排名?

在谈论数据库的最新趋势时,我们习惯了参考DB-Engine上所提供的排名信息。每当新的报告出来时,我们也时常看到各个媒体网站争先发布关于最新排名的分析内容。如标题所言,你是否曾质疑过DB-Engine所给出的这份排名?如下是2018年3月份的一份最新排名报告:在这份报告中,整体上来看似乎没有什么大问题。但关于HBase与Cassandra的名次,从我所接触的国内市场的信息来看,明显是反直觉的,于是...

nosqlnotes的博客 7935

java/数据库学习的心得

这是学习java/数据库一年后写下的心得,也一并谈谈他们对我学习前端有哪些影响 java其实是一门很容易入门的语言,有点计算机基础的都能很好的上手,虽然已经一年多没写java了,回头再写肯定会生疏。但是让我去看代码逻辑(加了注释)啥的,还是能看懂的。 java是一门面向对象的语言,这也是它的核心思想,我们在写java时不必关心内部怎么实现,只需要知道这个对象有哪些方法这些方法都能干什么,通过调用对象的方法实现我们想要做的,面向对象有三大特征:继承、封装、多态。java通过继承的机制实现了代码冗余的问题,继承

weixin_42608188的博客 1271

三菱FX3U PLC红绿灯ST编程实战:从基础逻辑到急停功能完整实现

本文以十字路口红绿灯控制为例,详细讲解了三菱FX3U PLC使用ST编程的完整实战过程。内容涵盖从基础时序逻辑、状态机设计,到急停功能、黄灯闪烁、昼夜模式切换等高级功能的实现,并提供了代码优化与调试技巧,帮助工程师掌握结构化文本在工业控制中的清晰、结构化应用。

weixin_29070861的博客 534

漫谈数据仓库

数据仓库 大数据平台 简介 通常说的大数据平台主要包括三部分: 数据相关的工具、产品和技术: 批量数据采集传输sqoop,spark 离线数据处理Hadoop,Hive,Spark 实时流处理Storm,Spark Streaming,Flink 数据资产: 公司业务本身产生和沉淀的数据 公司运作产生的数据(如财务、行政) 第三方数据:外界购买、交换或者爬虫而来的数据 数据管理:...

nqmysb的博客 798

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 285

Keil5与ARM编译器V5安装指南:从下载到配置全流程解析

本文提供Keil5与ARM Compiler V5的完整安装与配置指南。针对新版Keil5默认不包含V5编译器导致老工程编译失败的问题,详细解析了从软件下载、授权管理到获取并正确安装ARM Compiler V5(AC5)的全流程,确保开发者能顺利搭建兼容老项目的稳定开发环境。

weixin_29158047的博客 875

漫谈数据仓库之基本概念总结(不断更新)

0x00 前言 整理一些数据仓库中的常用概念。大部分概念不是照搬书上的准确定义,会加入很多自己的理解。 0x01 概念数据仓库(Data Warehouse) 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。 个人理解,数据仓库不单单是一个概念,其实算是对数据管理和使用的一种方法论,它包括了如何

木东居士 3878

别再只会插卡了!用示波器实测SIM卡上电时序与通信波形(附故障排查)

本文深入解析了SIM卡通信的电气信号与时序规则,通过示波器实测波形揭示SIM卡上电时序与通信协议的关键细节。从VCC、CLK、RST、DATA四路信号的协同工作,到ATR(Answer to Reset)的解析,再到常见故障的波形诊断与排查方法,为硬件工程师提供了实用的调试指南。文章还分享了高级调试技巧与现代化工具链搭建建议,帮助提升物联网设备SIM卡通信的可靠性与效率。

weixin_42567279的博客 329

漫谈数据仓库和范式

0x00 概述 长期从事数据仓库的你,是否还记得数据库设计中的三大范式?在设计数据仓库的表时,是否考虑过规范化和反规范化之间的区别?是否想过数据仓库和数据库在设计中对范式考虑的侧重点是什么? 本文,将包含如下几个方面: 一起回顾数据库设计中经典的三大范式 聊一聊数据仓库和范式之间的关系 聊一聊数据仓库和数据库在范式设计中的侧重点 全文将会围绕一个订单表(假设一个订...

木东居士 2325

高效与灵活相结合:Verilog编写的跨时钟域循环缓冲控制器解析

循环缓冲区,也被称作循环队列、环形缓冲区,是一种数据结构,其主要特性是使用一个固定大小的缓冲区作为数据的存储空间,这个缓冲区在逻辑上被视作是首尾相接的。虽然Verilog是一种常用的硬件描述语言,被广泛应用在FPGA和ASIC设计中,但是在描述循环缓冲区时,它并没有提供一种直接且灵活的方式来指定循环缓冲区的参数,如字长、缓冲区深度、缓冲区数量等。这给硬件设计带来了一定的不便。同时,该控制器的设计也充分考虑了硬件资源的利用率,通过优化的算法和数据结构,使得在实现高性能的同时,也能够有效地节省硬件资源。

qq_38334677的博客 1221

Cesium雷达追踪追踪(圆锥体效果)

【代码】Cesium雷达追踪追踪(圆锥体效果)

God's asylum的博客 2931

漫谈“数据仓库演进史”

本文回顾了(数据/信息)仓库的发展历史,算是一个科普文。1. 信息的起源 人类的发展,离不开信息的积累。从原始社会的口口相传,到需要将信息记录下来。那么如何记载信息呢?于是有了最...

华章IT官方博客 1269

基于ESP32的室内空气质量检测系统开发

随着环境污染问题的日益严重,室内空气质量的监测变得越来越重要。室内空气质量的好坏直接影响到人们的健康,尤其是对于在封闭空间长时间待着的人群。为此,基于ESP32的室内空气质量检测系统应运而生。ESP32作为一款集成了Wi-Fi和蓝牙的高性能微控制器,为嵌入式开发提供了良好的平台,适用于构建各种智能硬件设备。本博客将详细介绍如何基于ESP32开发一个室内空气质量检测系统。系统可以实时监测空气中的温度、湿度、二氧化碳浓度、甲醛浓度等指标,并通过Wi-Fi将数据传输到云端或移动设备,方便用户随时查看空气质量情况。

2201_76125393的博客 832

漫谈数据仓库中的元数据管理

来源:网络编辑:数据社全文共5253个字,建议10分钟阅读简介:相信很多朋友都是第一次听说元数据管理系统这个名词,当然,从事非数据仓库工作的人,很少会接触到这个系统,即使是正在从事这方面工作的朋友,可能仍然对它不是很了解,那么今天我来聊一聊元数据管理系统。本文大部分观点与图片汇总字网络,如有不同观点,欢迎留言交流~~01元数据的定义 按照...

数据一哥,公众号:数据社 7176

GitHub 国内加速完全指南(最新):镜像、代理与优化技巧

在国内使用 GitHub 时,经常遇到 clone 慢、打开仓库卡、GitHub Actions 不稳定 等问题。下面是整理好的 GitHub 国内镜像和加速方法大全,高效使用 GitHub。

moton2017的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java 小型数据库漫谈

开发学习过程中使用的java小型数据库总结:Derby HSQL H2Database BerkeleyDB-java-edition

New World 5082

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

漫谈数据仓库之维度建模

0x00 前言 下面的内容,是笔者在学习和工作中的一些总结,其中概念性的内容大多来自书中,实践性的内容大多来自自己的工作和个人理解。由于资历尚浅,难免会有很多错误,望批评指正! 概述数据仓库包含的内容很多,它可以包括架构、建模和方法论。对应到具体工作中的话,它可以包含下面的这些内容: 以Hadoop、Spark、Hive等组建为中心的数据架构体系。 各种数据建模方法,如维度建模。 调度系统、元数

木东居士 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34388207的博客 4033

数据仓库漫谈-前世今生

上世纪 90 年代(大概 1993-1995 年之间吧),沃尔玛尝试将 Aprior 算法引入到 POS 机数据分析中(实际上是一种商品的关联分析算法),当时发现跟尿布一起购买最多的商品竟然是啤酒,最后经过进一步市场调研发现,美国的太太们经常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫在买完尿布后又随手带回了他们喜欢的啤酒。但随着数据集市的不断增多,这种架构的缺陷也逐渐显现:公司内部独立建设的数据集市由于遵循不同的标准和建设原则,导致多个数据集市的数据混乱和不一致。第三阶段:灵者为先,两种建模思想的融合。

潜行者 1220

数据仓库漫谈之前世今生

点击上方蓝字关注我们✎编 者 按 上世纪 90 年代,随着企业信息化及 CRM、ERP 等信息化系统的出现,数据仓库的概念诞生。关于数据仓库的内容五花八门,为了让大家对其有基本的了解...

Apache DolphinScheduler开源社区 525

闲聊数据库和数据仓库的区别

0x00 前言 最近群里童鞋们在数据库和数据仓库的区别,因此简单做一些整理。 0x01 概念上的区别 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。 ————百度百科 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战...

木东居士 1442

漫谈数据仓库之拉链表

https://www.jianshu.com/p/799252156379 全文由下面几个部分组成: 先分享一下拉链表的用途、什么是拉链表。 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下的设计为例)。 分析...

gongpulin的博客 1046
上一篇: 北京炎黄盈动诚聘英才
下一篇: Java 2 引用类使用指南
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值