什么是数据库 电脑上用的是什么数据库

什么是数据库 电脑上用的是什么数据库,第1张

数据库是以某种文件结构存储的一系列信息表,这种文件结构使您能够访问这些表、选择表中的列、对表进行排序以及根据各种标准选择行。数据库通常有多个 索引与这些表中的许多列相关联,所以我们能尽可能快地访问这些表。

以员工记录为例,您可以设想一个含有员工姓名、地址、工资、扣税以及津贴等内容的表。让我们考虑一下这些内容可能如何组织在一起。您可以设想一个表包含员工姓名、地址和电话号码。您希望保存的其它信息可能包括工资、工资范围、上次加薪时间、下次加薪时间、员工业绩评定等内容。

这些内容是否应保存在一个表格中?几乎可以肯定不应该如此。不同类别的员工的工资范围可能没有区别;这样,您可以仅将员工类型储存在员工记录表中,而将工资范围储存在另一个表中,通过类型编号与这个表关联。考虑以下情况:

Key Lastname SalaryType SalaryType Min Max

1 Adams 2 1 30000 45000

2 Johnson 1 2 45000 60000

3 Smyth 3 3 60000 75000

4 Tully 1

5 Wolff 2

SalaryType 列中的数据引用第二个表。我们可以想象出许多种这样的表,如用于存储居住城市和每个城市的税值、健康计划扣除金额等的表。每个表都有一个主键列(如上面两个表中最左边的列)和若干数据列。在数据库中建立表格既是一门艺术,也是一门科学。这些表的结构由它们的范式指出。我们通常说表属于1NF、2NF 或 3NF。

第一范式:表中的每个表元应该只有一个值(永远不可能是一个数组)。(1NF)

第二范式:满足 1NF,并且每一个非主键列完全依赖于主键列。这表示主键和该行中的剩余表元之间是 1 对 1 的关系。(2NF)

第三范式:满足 2NF,并且所有非主键列是互相独立的。任何一个数据列中包含的值都不能从其他列的数据计算得到。(3NF)

现在,几乎所有的数据库都是基于“第三范式 (3NF)”创建的。这意味着通常都有相当多的表,每个表中的信息列都相对较少。

从数据库中获取数据

假设我们希望生成一个包含员工及其工资范围的表,在我们设计的一个练习中将使用这个表。这个表格不是直接存在在数据库中,但可以通过向数据库发出一个查询来构建它。我们希望得到如下所示的一个表:

Name Min Max

Tully $30,00000 $45,00000

Johnson $30,00000 $45,00000

Wolff $45,00000 $60,00000

Adams $45,00000 $60,00000

Smyth $60,00000 $75,00000

我们发现,获得这些表的查询形式如下所示

SELECT DISTINCTROW EmployeesName, SalaryRangesMin,

SalaryRangesMax FROM Employees INNER JOIN SalaryRanges ON EmployeesSalaryKey = SalaryRangesSalaryKey

ORDER BY SalaryRangesMin;

这种语言称为结构化查询语言,即 SQL,而且它是几乎目前所有数据库都可以使用的一种语言。SQL-92 标准被认为是一种基础标准,而且已更新多次。

数据库的种类

PC 上的数据库,如 dBase、Borland Paradox、Microsoft Access 和 FoxBase。

数据库服务器:IBM DB/2、Microsoft SQL Server、 Oracle、Sybase、SQLBase 和 XDB。

EXE里不可以存放数据库。

你可以使用access,sql server,myserver,txt,excel,ini,xml,db等等都行,但跟EXE存放到一起不行。

当然如果你水平高可以做一些变通的办法,就是做成的EXE文件跟数据库打成一个包,但是当程序运行,还是得将包里的数据库解压到临时目录下运行,程序关闭后再打包,这样随然打到的要求,但只是治表不治本,

如果能确定你的数据库里的数据不变的话,你可以用GRID来存放数据,但前提是里面的数据,在每次一打开程序就初始化(变成你最先的数据)

总之一句话,不行。

Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待

那Hbase有什么特性呢?如下:

强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合

自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自动的切分和再分配

自动的故障转移

Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接

丰富的“简洁,高效”API,Thrift/REST API,Java API

块缓存,布隆过滤器,可以高效的列查询优化

*** 作管理,Hbase提供了内置的web界面来 *** 作,还可以监控JMX指标

什么时候用Hbase?

Hbase不适合解决所有的问题:

首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态

其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。

最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode。

Hbase在单机环境也能运行,但是请在开发环境的时候使用。

内部应用

存储业务数据:车辆GPS信息,司机点位信息,用户 *** 作信息,设备访问信息。。。

存储日志数据:架构监控数据(登录日志,中间件访问日志,推送日志,短信邮件发送记录。。。),业务 *** 作日志信息

存储业务附件:UDFS系统存储图像,视频,文档等附件信息

不过在公司使用的时候,一般不使用原生的Hbase API,使用原生的API会导致访问不可监控,影响系统稳定性,以致于版本升级的不可控。

HFile

HFile是Hbase在HDFS中存储数据的格式,它包含多层的索引,这样在Hbase检索数据的时候就不用完全的加载整个文件。索引的大小(keys的大小,数据量的大小)影响block的大小,在大数据集的情况下,block的大小设置为每个RegionServer 1GB也是常见的。

探讨数据库的数据存储方式,其实就是探讨数据如何在磁盘上进行有效的组织。因为我们通常以如何高效读取和消费数据为目的,而不是数据存储本身。

Hfile生成方式

起初,HFile中并没有任何Block,数据还存在于MemStore中。

Flush发生时,创建HFile Writer,第一个空的Data Block出现,初始化后的Data Block中为Header部分预留了空间,Header部分用来存放一个Data Block的元数据信息。

而后,位于MemStore中的KeyValues被一个个append到位于内存中的第一个Data Block中:

注:如果配置了Data Block Encoding,则会在Append KeyValue的时候进行同步编码,编码后的数据不再是单纯的KeyValue模式。Data Block Encoding是HBase为了降低KeyValue结构性膨胀而提供的内部编码机制。

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合与小批量的数据处理,常用于联机事务型数据处理。

不读取无效数据:降低 I/O 开销,同时提高每次 I/O 的效率,从而大大提高查询性能。查询语句只从磁盘上读取所需要的列,其他列的数据是不需要读取的。例如,有两张表,每张表100GB 且有100 列,大多数查询只关注几个列,采用列存储,不需要像行存数据库一样,将整行数据取出,只取出需要的列。磁盘 I/0 是行存储的 1/10或更少,查询响应时间提高 10 倍以上。

高压缩比:压缩比可以达到 5 ~ 20 倍以上,数据占有空间降低到传统数据库的1/10 ,节省了存储设备的开销。

当数据库的大小与数据库服务器内存大小之比达到或超过 2:1 (典型的大型系统配置值)时,列存的 I/O 优势就显得更加明显;

GBase 8a 分析型数据库的独特列存储格式,对每列数据再细分为“数据包”。这样可以达到很高的可扩展性:无论一个表有多大,数据库只 *** 作相关的数据包,性能不会随着数据量的增加而下降。通过以数据包为单位进行 I/O *** 作提升数据吞吐量,从而进一步提高I/O效率。

由于采用列存储技术,还可以实现高效的透明压缩。

由于数据按列包存储,每个数据包内都是同构数据,内容相关性很高,这使得GBase 8a 更易于实现压缩,压缩比通常能够达到 1:10 甚至更优。这使得能够同时在磁盘 I/O 和 Cache I/O 上都提升数据库的性能,使 GBase 8a 在某些场景下的运算性能比传统数据库快 100 倍以上。

GBase 8a 允许用户根据需要设置配置文件,选择是否进行压缩。在启用压缩的情况下GBase 8a 根据数据的不同特性以及不同的分布状况,自动采用相应的压缩算法,如:

行程编码(适用于大量连续重复的数据,特别是排序数据);

基于数据的差值编码(适用于重复率低,但彼此差值较小的数据列);

基于位置的差值编码(适用于重复率高,但分布比较随机的数据列)。

典型的总有刁民想害朕的心态[灵光一闪]

泄密到不存在,一般国内银行用Oracle的同时都会购买Oracle的维护服务,除非甲骨文不想做中国的生意了。当然因为中美关系的问题,一些行已经开始从周边系统逐渐开始改造使用国产数据库,比如华为的高斯200,同时国内的国有软件企业也在部署研发国产的数据库,公司名就不说了,反正确实有这个安排。

真的是个好问题,国家核心系统从什么开始决心抛弃windows。银行系统数据太过庞大复杂,上了贼船,下船太难太难了。

我是金融行业的码农,也算是有一定的发言权吧。

在数据库方面,金融领域用到的有Oracle和SQLServer等商业软件,也有Mysql、Redis等开源软件。这些软件有个令人沮丧的共同点, 很少有国产自主研发数据库

随着互联网的飞速发展,信息化浪潮席卷各个行业。效率的大幅提升,彻底颠覆了既有的工作模式。率先拥抱变革的企业收获了巨大收益,让后来者羡慕嫉妒恨。

信息技术不管发展如何,都绕不开数据存储,数据存储以关系型数据库最符合人的思维方式。关系型数据库中的翘楚无疑是Oracle数据库。

再回到题主的泄密问题,即Oracle数据库安全么?我的答案是 即安全又不安全 。之所以安全因为它是最好关系型数据库,常见的指标如易用性、稳定性、可用性、可恢复性都有完整的解决方案。之所以不安全是因为它是国外的闭源软件,是否有安全隐患,国人不得而知。

技术上不可控,我们怎么才能避免呢?答案是从管理上从严控制。

不怕。

物理上是对外隔离的, 架构上也有大量技术手段确保数据的安全。

但是自主可控的趋势不可阻挡。

内网,物理隔离。外网用啥都没用,想搞你不过是时间问题。

国内银行系统用的数据库很多, 核心系统一般都用老牌的商业数据库DB2、Oracle 。其他系统也有用Mysql、MongoDB等其他数据库。至于数据泄露吗?银行当然也怕。但是,就综合考虑来看,目前Oracle等商业数据库依然是最佳选择,将来可能会一步一步提高安全等级。

1、稳定是首要选项

我们都知道,银行是金融系统的重要机构。它们的系统不能够随便出问题,一出问题影响整个 社会 。所以, 对银行来说,稳定是摆在首要位置的 。任何创新都必须以此为前提。而DB2、Oracle这些商业数据库软件,首先能够满足银行的稳定性要求。

而在中国,银行是比较早有信息化的单位。但刚开始,没有任何经验的时候,只能是跟欧美国家学习模仿。外企银行基本都是采用oracle、DB2来做核心系统。中国自然是采用国外相同的方案。大部分银行也就采用了当时比较流行的一整套IBM大型机、小型机硬件,配套DB2、Oracle数据库来做。

2、安全实现手段

①、厂家信誉

一直用DB2、Oracle作为核心数据库。对银行来说,已经是最佳选择。因为,在过去,国产根本就没有什么拿得出手的数据库可以使用。银行自然也只能用业界最好的数据库,而且Oracle、DB2这类大品牌的数据库,在全球范围应用都很广。厂家自然也要注意保障安全,否则出了问题,全世界都受影响。

②、技术控制

除了厂家的信誉保障外,银行在技术上做了很多安全措施。首先, 内外网是物理隔离的 。这样,实时连接数据库的攻击是很难实现的了。其次,在防止数据泄露这一块,银行当然也是有很多的技术手段控制的。至少,外网需要的数据是从内网的网闸摆渡过去的。能摆渡什么数据出去,也是银行严格控制的。最后, 数据库里的敏感数据,也是加密存储的 。同时,网络上还 部署了一系列网络安全设备来 保障系统的安全。

3、银行安全需升级

银行现在虽然有很多的技术手段来保障信息安全,但是,DB2、Oracle始终是国外闭源商业数据库软件。如果软件存在漏洞或者后门,对银行来说也是一个大风险。加上国际形势风云变化,所以,银行也还是会有担心泄密问题,这就意味着银行的安全体系还需要升级。

那该如何升级安全呢?除了系统过等级保护外,也一直在倡导用安全可靠的软件。这就意味着需要逐步从Oracle、DB2等商业软件走向开源、或者国产等数据库软件。不过,银行的稳定性还是不能忽略的,所以, 银行也就只能逐步 探索 ,逐步提升安全。同时,国产数据库发展也还有很长一段路要走 。

总结

总之,早些年银行从稳定和安全出发,Oracle、DB2等商业数据库是最佳选择。这些年,随着国际形势的变化和技术的发展,银行也在逐步提升安全等级。将来也会逐步替换Oracle、DB2等商业数据库软件。

这是个系统的问题。

有些朋友说物理隔离,目前看应该做不到100%隔离。银行数据中心就是提供服务的,隔离了怎么提供服务?各个分行,网点,ATM都是要联网的,都是要访问数据库的,只是权限不同。

归结起来就是数据安全和数据库系统,计算机系统,网络系统,以及工作人员都是相关的,必须全方位防护。

数据库系统,国产化当然是必须的,但是国产数据库系统就没有漏洞吗?不故意窃取数据,难保不因失误而失窃。这个要加强测试。

计算机系统,包括软件和硬件,同样道理。

网络方面,银行应该是租用运营商的线路(虚拟专网,***)实现网点互联。出点和入点之间加密传输。如果加密算法没有被破解,秘钥没有暴露,一般没问题。但毕竟还是有”如果”的。

人的问题更大一些,买通一个人不太难吧?这个要通过层层审核,相互制衡,以及思想政治工作来防范。

所以说信息系统的安全防护是全方位的。

要使用SWIFT ,国际资金清算系统,就必须与国际接轨,所以必须用Oracl。

林郑太太被制裁,xyk不能用,工资都发现金,使用也是现金,那么多的国行,没有一家敢接盘。

有别的选择吗。

数据库列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因 此整个数据库是自动索引化的。

按列存储每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量,一个字段的数据聚集存储,那就 更容易为这种聚集存储设计更好的压缩/解压算法。这张图讲述了传统的行存储和列存储的区别:

以上就是关于什么是数据库 电脑上用的是什么数据库全部的内容,包括:什么是数据库 电脑上用的是什么数据库、数据库可以存放应用程序在里吗(EXE文件),如果可以是什么样的数据库、HBase是什么呢,都有哪些特点呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10203141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存