数据库是计算机系统的三大核心基础软件之一。 数据库是计算机系统的三大核心基础软件之一。它是存储在数据数据库中的基本对象,包括数字、图像、音频等形式。它被一步一步抽象后存储在数据库中,通常由数据库管理系统(DBMS)控制。DBMS充当数据库与其用户或程序之间的接口,允许用户以有组织和优化的方式检索、更新和管理信息。在现实中,数据、DBMS和相关应用被称为数据库系统,通常简称为数据库。数据库管理系统是“按照数据结构组织、存储和管理数据的仓库”,是信息时代和大数据时代各行各业不可或缺的基础软件。
数据库发展史:数据库和信息技术的发展相互促进。 关系事务数据库诞生于1970年。1970年,IBM实验室的埃德加·弗兰克·科德发表了一篇论文,奠定了关系数据库的基础。Ingres prototype诞生于1974年,为基于其源代码开发的PostgreSQL、Sybase、Informix、Tandem等一大批著名产品奠定了坚实的基础。1977年,甲骨文的前身SDL成立,1978年发布了第一版甲骨文。1986年,美国国家标准协会(ANSI)数据库委员会批准SQL作为美国数据库语言标准,并发布了标准SQL文本。
数据库分类:不同类型的数据库适用于不同的场景。 按数据结构可分为关系型数据库和非关系型数据库。
根据管理数据的结构,数据库可以分为关系数据库和非关系数据库:
关系数据库是指使用二维表的关系模型来组织数据的数据库系统。关系数据库是由二维表及其关系组成的数据组织。直接使用通用SQL语言使得操作遵循ACID规则的关系数据库变得非常方便。
非关系数据库是用于非关系模型组织数据的数据库系统,如键值、列、文档、图形等。非关系数据库是在1998年首次提出的。非关系数据库试图摆脱传统关系数据库的约束,如数据一致性、将数据处理合并到内存中、简化数据模型等。NoSQL数据库使用非结构化数据快速存储和检索,不使用支持关系数据库的结构化数据图表,这与关系数据库中的结构化数据不同。NoSQL数据库放宽或取消了一些ACID规则,以实现更好的性能和更大的灵活性。NoSQL数据库认为ACID属性的要求过于严格,大部分NoSQL数据库反而遵循BASE原则。
根据应用场景,可以分为OLAP、OLTP和HTAP。
根据其应用场景,数据库可以分为OLTP事务型数据库、OLAP分析型数据库和HTAP混合型数据库:
OLTP事务型数据库主要面向事务性场景,实时性要求高,通常数据量小,面向一线业务人员。OLTP(联机事务处理)主要面向事务性应用场景。OLTP系统主要使用关系模型来保证事务的强一致性和ACID特性。面向一线业务人员,支持银行交易、零售电商、机票预订等多并发、实时、快速增删改。
OLAP数据库主要面向分析场景,以历史数据为主,数据量大,面向分析师和管理者。OLAP(联机分析处理),主要针对分析应用场景。OLAP系统可以高速、多维地分析来自数据仓库、数据集市或数据湖的数据,可以使用关系或非关系数据库。主要面向分析师和管理者,支持历史数据的复杂分析操作,从而使企业能够进行商业智能决策。
按照系统架构,可以分为集中式和分布式数据库。 集中式数据库:它是一种只在单一位置存储、定位和维护的数据库。这种类型的数据库从位置本身进行修改和管理。因此,这个位置主要是任何数据库系统或集中式计算机系统。通过互联网连接(局域网、广域网等)访问中央位置。).这个集中式数据库主要由机构或组织使用。
分布式数据库:由多个相互连接的数据库组成,分布在不同的物理位置。因此,国产分布式数据库可以独立于其他物理位置管理存储在各个物理位置的数据,不同物理位置的数据库之间的通信由计算机网络完成。
按照部署方式,可以分为本地数据库和云数据库。 云数据库可以分为云厂商的传统数据库和云原生数据库。云是在云计算背景下发展起来的共享基础设施的新方法。大大增强了数据库的存储能力,消除了人员、硬件、软件的冗余配置,软硬件升级更容易。目前云数据库主要包括两类:一类是云厂商托管的“传统”数据库,如阿里云、腾讯云上的MySQL、PostgreSQL、MongoDB、Redis等。一类是基于云环境的云原生数据库,如AWS的Aurora,阿里云的Lindorm和PolarDB等。