1. 一个好的数据库加密系统应该满足哪些方面的要求
您好,很高兴为您解答。 1.字段加密 ----在目前条件下,加/脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。 2.密钥动态管理 数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。 3.合理处理数据 这包括几方面的内容。首先要恰当地处理数据类型,否则 DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。 4.不影响合法用户的操作 加密系统影响数据操作响应时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。 如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】 希望我的回答对您有所帮助,望采纳! ~ O(∩_∩)O~
2. 数据库加密的最小粒度是什么
就是通常我们所说的锁级别。
数据库引擎具有多粒度锁定,允许一个事务册山锁定不同类型的资源。 为了尽量减少锁定的开销,数据库引激闭擎自动将资源锁定在适合任务的级别。 锁定在较小的粒度(例如行)可以提高并发度,但开销较高,因为如果锁定了许多行,则需要持有更多的锁。 锁定在较大的粒度(例如表)会降低了并发度,因为锁定整个表限制了其他事务对表中任意部分的访问。 但其开销较低,因为需要维护的锁较少。
数据库引擎通常必须获取多粒度级别上的锁才能完整地保护资源。 这组多粒度级别上的锁称为锁层次结构。 例如,为了完整地保护对索引州铅中的读取,数据库引擎实例可能必须获取行上的共享锁以及页和表上的意向共享锁。
MySQL有三种锁的级别:页级、表级、行级。
MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level
locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。
MySQL这3种锁的特性可大致归纳如下:
表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
每种锁可以在网上查询详细说明。主要看你用什么存储引擎。
3. 数据仓库之数据粒度
确定数据仓库中数据的恰当粒度是数据仓库开发者需要面对的一个最重要的设计问题。数据粒度主要针对指标数据的计算范围,如人口这个数据项在统计部门是以街区范围还是一个社区为范围统计的。人口数据细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。粒度是数据仓库主要设计问题,因为它极大地影响存放在数据仓库中的数据量的大小,同时影响数据仓库所能回答的查询类型。在设计数据仓库的时候权衡数据量大小和查询类型得出合理的粒度大小。下面我们通过规划设计和建设两个阶段来讲解数据仓库粒度的确定。
1.规划阶段
“规划”——对未来整体性、长期性、基本型问题的思考和考量,设计未来整套行动的方案。在规划阶段过程中首先粗略估算数据量,估算的目的是掌握数据仓库中数据量的一个范围。第二步预测未来数据集市中应用需要的粒度,数据仓库存储数据集市使用的最小粒度。
1.1. 建立良好的循环反馈机制是很重要的。
首先就要建立完善的循环反馈机制。数据仓库是面对模糊需求开始建立的,粒度不可能一次就能规划好,先导入少量数据,建立一部分应用提交给用户使用,并聆听用户使用意见,根据用户的使用意见调整粒度的大慧好小。
1.2. 对存储数据进行粗略估算对设计体系结构的人员来说非常有用。
粗略估算数据仓库的乱碧橘数据量,可跟好的规划数据仓库架构。如果数据只有10 000行,那么数据仓库采用粒度级越小的数据存储,数据仓库中存储所有明细数据。如果明细数据有10 000 000行,进入数据仓库的数据就需要进行初步汇总。如果有100亿行,数据仓库不但需要有一个高粒度级,还可能将大部分数据移到溢出存储器上去。
估算方法如下:
1.3. 预测数据集市中可能使用的数据粒度是很必要的。
为了合适地填充所有的数据集市,数据仓库中的数据必须在一个所有数据集市所需要的最低粒度水平上。
规划阶段的成果是数据仓库建设的重要依据内容。规划阶段对组织架构,数据量大小和后期应用的摸底,可以制定方案,并对可能的结果有预先的认知,对可能存在的问题设计上进行避免。
2. 建设阶段
2.1.根据估算的空间结果,在体系架构设计上可以根据数据量大小进行存储设备选择。需要多少直接存取存储设备,是否需采用双重粒度设计。
2.2.设计溢出数据的管理。溢出数据是指数据仓库将不经常被访问的过时的数据转移到存储量更大的访问速度慢的存储器上的数据。管理溢出数据可以方便索引定位历史数据并可以快速取出该数据。
跨介质存储管理器和数据活动监控器可以对溢出数据进行有效的管理。磁盘存储器和大容量低速存储器之间的数据移动是通过一种称为“跨介质存储管理器(CMSM)”的软件来控制的。数据活动监控器,用来确定哪些数据正在被访问,哪些没被访问。数据活动监控器能提供数据存储的位置信息。
2.3.实施数据仓库过程中粒度的确定是一个往复循环的过程。利用规划阶段建立的反馈循环方法,不断的从分析员获得反馈,不断的优化数据仓库。
从图可以看出成功建立数据仓库离不开分析人员的通力协作。建设者要不断的聆听分析员的意见。分析人员在建立数据仓库的时候并不知道自己需要什么,只有在他们看到最终分析结果,才能告诉数据仓库工作人员什么才是他们真正有用的。为了有效的获得反馈,以下几点技巧可供参考:
快速建立数据仓库很小的子集并认真听取用户的反馈意见;
使用原型方法;
参考别人的经验;
与有经验的用户协同工作;
以企业中已有的功能需要作参考;
定期举行数据仓库建设例会。
3.例举银行粒度小例子
3.1.银行环境中粒度哗团级别,下图是银行中的数据粒度例子。
银行的操作层存放的是以日为单位粒度的数据。银行的各个业务系统只存放最近60天交易活动明细内容,方便用户查询最近两个月的交易信息详情,这段时间用户对交易数据明细最为关心。
数据仓库层将数据汇聚成以月为单位粒度的汇总数据。银行将过去长达十年的数据按每个账户每月交易信息进行汇聚,存储在直接存储设备,供高速查询访问,用户对过去很久的交易明细并不在意,但是用户需要快速查询得出结果,此时提供以月为单位的汇总数据可以满足用户的需求。
所有的历史数据以日为单位存放在溢出存储区,该区域数据量极大,访问频率极低。一般银行不受理长达十年的历史明细数据查询的请求,如果一些特殊情况需要查询超过十年的历史数据,查询时间会相当缓慢。
4.小结
数据仓库粒度的确定是一个困难的过程,要求一个合适的级别,既不能太高也不能太低。
选择粒度级别很大程度上基于常识。建设之前作好适当的规划,估算数据量并建立相应的反馈制度。在实施的过程中,首先建立数据仓库的一小部分,并让分析人员使用。然后聆听他们的意见,根据他们的反馈对粒度级别进行适当的调整。
4. 深入理解MySQL数据库各种锁(总结)
MyISAM和InnoDB存储引擎使用的锁:
封锁粒度小:
由于InnoDB存储引擎支持的是行级别的锁,因此意向锁(因为意向锁是表锁)其实不会阻塞除全表扫以外的任何请求。故表级意向锁与行级锁的兼容性如下所示
参考
参考
行锁的三种算法:
这条语句阻止其他事务插入10和20之间的数字,无论这个丛棚数字是否存在。 间隙可以跨越0个,单个或多个索引值。
https://blog.csdn.net/u014316026/article/details/78726459
共享锁:
排他锁:
https://www.cnblogs.com/mysql-hang/articles/11027685.html
乐观锁:总是假设最好的情况,每次去拿数据的时候都认为别人不会修改(天真), 操作数据时不会上锁 ,但是 更新时会判断在此期间有没有别的事务更新这个数据,若被更新过,则失败重试 ;适用于读多写少的场景。
乐观锁的明逗实现方式 有:
关闭自动提交后,我们需要手动开启事务。
上述就实现了悲观锁,悲观锁就是悲观主义者,它会认为我们在事务A中操作数据1的时候,一定会有事务B来修改数据1,所以,在第2步我们将数据查询出来后直接加上排它锁(X)锁,防止别的事务来修渗槐则改事务1,直到我们commit后,才释放了排它锁。
5. 一个好的数据库加密系统一般应满足哪些方面的要求
您好,很高兴为您解答。
1.字段加密
----在目前条件下,加/脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。
2.密钥动态管理
数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。
3.合理处理数据 这包括几方面的内容。首先要恰当地处理数据类型,否则 DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。
4.不影响合法用户的操作
加密系统影响数据操作响应时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
6. 数据库加密粒度
楼主是啥意思?
7. 存储粒度小是什么意思
粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。 细化程度扒宽搜越高,粒度级就越小。
粒度就是同一维度下,数据统计的粗细程度,计算机领域中粒度指系统内存扩展增量的最小值。粒度问题是设计数据仓库的一个最重要方面。粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别巧亩。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。数据的粒度一直是一个设计问题。春历
8. 解释下什么是数据颗粒度
我的理解是数据颗粒度就是对数据按照不同规模进行统茄拦计。比如你的粒度有性别(男,女),那就按照这个粒度下的分类来进行统计。如果是选择时间中的天作为统计,就把数据按照每一天进行统计,得出每一天的数据量一起其他的信息。我也是在我们自己的颤消胡系统开发中感悟的,希望桥扮有用。
9. 数据仓库中的粒度是什么意思
粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。 细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。 数据的粒度一直是一个设计问题。在早期建立的操作型系统中,粒度是用于访问授权的当详细的数据被更新时,几乎总是把它存放在最低粒度级上。 但在数据仓库环境中,对粒度不作假设。 在数据仓库环境中粒度之所运型以是主要的设计问题,是因为它深深地影响存放在数据仓库中的数据量的大小,同时影响数据仓库早悄春所能回答的查询类型。 在数据仓库中的数据量大小与查询的详细程度之间要作出权衡陆耐。