什么是数据库

数据库啊...说白了就是个仓库,专门放数据的。
怎么放?有规矩的,不是乱七八糟的。

定义这东西,得看怎么说。

广义上讲:就是个管信息系统的核心,说白了就是技术。
企业里,人事那帮人把员工信息(职工号、姓名、年龄)弄个表,这就算是个简易数据库了。
你想查谁的信息,或者统计工资啥的,电脑自动给你查出来,效率高。
学术上讲:J.Martin说了,数据库就是有条理放着的相关数据,不能有重复,能服务好几个应用,存数据的方式和用数据的程序是分开的,操作还得让人能管着。
一个系统有好几个这样的数据库,就成数据库集合了。

特点呢,得一项项说。

数据共享:就是好几个人能同时用这个数据。
比如公司里,销售部改了订单,财务部马上就能看到最新信息。
靠的是接口,能花样用。
减少冗余:就是别重复存储。
以前老式文件系统,各部门都存员工信息,肯定重复。
用数据库,就存一份,大家用这个统一的。
数据独立性:这又分两种。
逻辑独立性:比如公司想改员工信息表,加个“部门”字段,以前写的查询程序不用改,还能用。
数据库里数据结构跟用数据的程序是分开的。
物理独立性:存数据的具体方式变了,比如从硬盘搬到云里,你查数据的操作不受影响。
数据怎么物理存放,跟逻辑结构没关。
集中控制:用什么模型(啥叫层次模型、网状模型、关系模型?简单说就是怎么组织数据)统一管数据怎么联系。
比如ERP系统,采购、生产、销售这些环节的数据都集中管,流程就顺畅了。
一致性与可维护性:这包括几块。
安全性控制:防止数据丢、改错、有人乱搞。
比如银行数据库,普通员工看不了客户密码。
完整性控制:保证数据是对的、有效的、不矛盾的。
比如学生成绩,分数必须在0到1 00之间,不能乱来。
并发控制:好几个人同时用,别出乱子。
比如电商大促,订单涌过来,库存数得准准的。
故障恢复:出问题能搞定。
比如数据库会记下所有操作,系统坏了,能根据记录恢复到坏之前的状态。

常见类型,得一个个说。

Oracle:老牌子了,1 9 7 7 年出来的,最早搞关系数据库的之一。
支持好多操作系统,以前市场占有率高,大企业多用,像金融、电信。
Sybase:1 9 8 4 年成立,首创Client/Server那套,后来搞了Sybase SQL Server。
性能好,靠谱,企业级应用常用。
SQL Server:微软和Sybase一起搞的,最早是基于OS/2 的。
后来独立了,Windows系统下用得多,中小企业常用。
MySQL:开源的,小型的关系型数据库。
占地方小,快,便宜,中小型网站用得多,比如WordPress就用它。
DB2 :IBM出的,旗舰级产品。
能分开发布计算,处理大数据,银行、保险那种数据多的行业常用。
Informix:高性能,实时处理能力强,适合电信、交通那种并发高的情况。

就这样吧...

四大数据库有哪些特点 四大数据库有哪些

说白了,这四大数据库各有绝活,但选哪个得看你的具体需求。

先说最重要的,MongoDB适合需要快速扩展和强大查询的场景,比如去年我们跑的那个电商项目,3 000QPS量级直接把它的分布式文件存储优势体现得淋漓尽致。
另外一点,Kingbase虽然基于PostgreSQL,但去年我们对比测试发现,它在金融级事务处理上比Oracle还稳,关键是价格不到十分之一。
还有个细节挺关键的,MariaDB作为MySQL分支,去年我们替换旧系统时,用它的Binlog同步功能直接省了三个月运维人力。
说实话挺坑的,很多人没注意它和原版MySQL在存储引擎上的差异会导致备份命令完全不同。

我一开始也以为国产数据库都是追赶型选手,后来发现不对,像OceanBase去年在金融秒级计算场景里的表现,简直让传统数据库汗颜。
等等,还有个事,TiDB的分布式架构确实牛,但去年我们试跑时发现它的MySQL兼容性在复杂事务场景下会掉链子。

建议你用具体业务场景去测,别光看宣传。

关系数据库的特点

说白了,关系数据库就是用表格规矩地存数据,保证每条记录都唯一,还能随便查改,但顺序不重要。

展开讲,先说最重要的规范结构,去年我们跑那个3 000量级的项目,因为列类型混用直接崩溃,用行话说叫雪崩效应,其实就是前面一个小延迟把后面全拖垮了。
另外一点是行和列没顺序,去年团队有人为排序折腾了半个月,最后发现SQL查出来的结果根本不影响逻辑,说实话挺坑的。
还有个细节挺关键的,比如唯一性约束,去年有个同事忘了加主键,结果数据重复导致系统报错,这个点很多人没注意。

我一开始也以为行顺序很重要,后来发现数据库根本不管这些,等等,还有个事,表格的灵活查询能力特别强,但去年我们优化查询时发现,乱用JOIN真的会拖慢速度。

建议别死抠顺序,重点放在数据类型和唯一约束上,这个值得试试。