当前位置: 首页 > news >正文

第一章 SQL编程系列-数据库介绍与安装

1 引言

        数据库作为信息时代的核心基础设施,其发展历程可谓波澜壮阔,从上世纪50年代初始概念到今天的高度复杂系统,数据库技术的进步不仅推动了信息技术的发展,也深刻影响了社会的各个领域。尤其是在我们迈入信息时代之际,数据库技术已成为支撑现代社会的基石,它不仅承载着海量的数据信息,更是数据驱动决策的关键。随着技术的快速迭代和发展,数据库领域经历了翻天覆地的变化,从早期的层次模型和网状模型,到关系型数据库的兴起,再到NoSQL和NewSQL的多样化发展,每一步都记录着人类对数据管理和利用的深刻理解。那么本文将沿着时间的脉络,梳理数据库的演进历程,并讨论其技术革新的时间轨迹。

1.1 数据库管理系统发展历史

         数据库管理系统(DBMS)的发展历史是信息技术领域不断突破与演进的缩影,其历程可分为以下关键阶段:

1.1.1 早期探索(1960s-1970s):从文件系统到层次/网状数据库

  • 文件系统阶段(1950s-1960s)

        计算机早期主要用于科学计算,数据以穿孔纸带等物理形式存储,管理依赖人工。
        1950年代末,磁盘和操作系统出现,文件系统成为数据管理的主要方式,但存在数据冗余、独立性差等问题。

  • 层次数据库的兴起(1960s)

        1961年:美国通用电气公司开发出集成数据存储(IDS),这是首个网状数据库管理系统,用于阿波罗登月工程的数据管理,标志网状数据库诞生。
        1968年:IBM推出IMS(Information Management System),这是首个大型商用层次数据库管理系统,广泛应用于商业和金融领域。

  • 网状数据库的标准化(1970s)

        1965年:数据系统语言会议(CODASYL)成立数据库任务组(DBTG)。
        1971年:DBTG发布报告,定义网状数据模型、数据定义语言(DDL)和数据操纵语言(DML),推动网状数据库标准化。

1.1.2 关系型数据库革命(1970s-1980s):理论突破与商业化

  • 理论奠基(1970年)

        IBM研究员埃德加·科德(E.F. Codd)提出关系数据模型,建议将数据保存在行和列组成的表中,解决网状/层次数据库的复杂性。
原型验证(1974年)
        IBM开发System R,验证关系模型的可行性,并直接推动SQL语言的诞生。SQL成为关系数据库的标准操作语言。

  • 商业化浪潮(1970s-1980s)

        1976年:霍尼韦尔推出首个商用关系数据库MRDS。
        1979年:Oracle推出首个商用关系型数据库管理系统(RDBMS)。
        1980s:IBM DB2、Informix、Sybase等系统相继问世,关系型数据库因模型简单、数据独立性强等优势迅速占据市场主导地位。

  • 标准化进程(1980s-1990s)

        1986年:ANSI发布SQL-86标准。
        1992年:SQL-92标准引入递归查询、触发器等高级功能。
        1999年:SQL:1999(SQL3)支持面向对象特性,如用户定义类型和继承。

1.1.3 面向对象数据库的尝试(1980s-1990s):理论融合与挑战

  • 技术背景

        20世纪80年代,计算机辅助设计(CAD)、地理信息系统(GIS)等领域对复杂数据类型(如图形、多媒体)的需求增加,传统关系数据库难以满足。

  • 标准化与产品化

        1989年:对象数据库管理组(ODMG)成立,1993年发布ODMG-93标准,定义对象模型、查询语言及与C++等语言的绑定。
        典型系统:Ontos、ObjectStore等面向对象数据库诞生,支持类、对象、继承等特性。

  • 局限与挑战

        尽管面向对象数据库在理论上具有优势,但因技术复杂性、市场接受度低及关系数据库的持续优化,未能完全取代后者。

1.1.4 互联网与大数据时代(1990s-2000s):分布式、NoSQL与云数据库

  • Web数据库的融合

        互联网兴起推动Web技术与数据库结合,形成Web数据库。用户通过浏览器访问数据库,实现动态交互(如在线购物、社交网络)。

  • 分布式数据库的崛起

        为应对大规模数据和高并发访问,Google Spanner和F1等分布式数据库诞生,支持水平扩展和ACID事务。

  • NoSQL的爆发(2000s)

        2009年:MongoDB(文档数据库)、Cassandra(宽列数据库)等NoSQL系统出现,针对非结构化数据、高扩展性和实时性需求优化。
典型场景:大数据分析、社交网络、物联网等。

  • 云数据库的普及

        数据库服务迁移到云端(如AWS RDS、阿里云RDS),提供弹性扩展、按需付费和自动化运维。

1.1.5 大数据与智能化(2010s-至今):NewSQL与AI融合

  • NewSQL的兴起

        TiDB、CockroachDB等系统结合关系型数据库的ACID特性和NoSQL的扩展性,支持混合事务与分析处理(HTAP)。

  • 大数据处理技术

Hadoop生态系统与数据库融合,处理海量数据。列存数据库(如HBase)优化分析效率。

  •  AI与数据库的融合

        智能优化:AI用于索引推荐、查询优化和异常检测。
        自动化运维:自修复、自调优数据库减少人工干预。

1.2 我国数据库管理系统发展历史

        中国数据库管理系统的发展历史是一部从技术引进到自主创新、从政策驱动到市场引领的演进史,其历程可划分为以下关键阶段:

1.2.1 萌芽阶段(1970s-1990s):理论奠基与技术探索

  • 学术启蒙与人才培养

        1978年:中国人民大学萨师煊教授开设“数据库”课程,标志着数据库理论正式引入中国。
        1982年:萨师煊主编的《数据库系统概论》出版,成为国内首部体系化教材,为人才培养奠定基础。
        1985年:第一代大学生将数据库技术应用于国防、军工等领域,推动技术落地。
技术萌芽与早期尝试
        1988年:华中科技大学研发出中国首个自主版权的数据库原型CRDS,但早期产品如达梦、人大金仓等存在“大而全但创新不足”的问题,稳定性与性能难以满足核心业务需求。
        市场格局:此时市场完全被Oracle、IBM DB2等国际巨头垄断,国产数据库仅在国防、军工等特定领域小范围应用。

  • 政策与产业初探

        1999年:北京人大金仓信息技术股份有限公司成立,成为中国首家数据库公司,标志着产业化起步。
        2000年:互联网兴起催生海量数据处理需求,但国产数据库仍依赖进口,技术自主性不足。

1.2.2 成长阶段(2000s-2010s):商业化起步与政策推动

  • 企业创立与技术路线分化

        老牌厂商崛起:达梦、南大通用等企业相继成立,初期产品多基于开源数据库(如MySQL、PostgreSQL)进行二次开发,逐步积累技术经验。
        政策支持:国家“核高基”专项(2006年)和“863计划”为国产数据库提供资金与资源支持,推动技术攻关。

  • 关键技术突破

        分布式架构:南大通用推出GBase 8a列存分析型数据库,突破传统MPP技术瓶颈,提升大数据处理能力。
        云原生探索:阿里云PolarDB(2017年)采用存储计算分离架构,实现秒级弹性扩展,标志国产数据库进入云原生时代。

  • 市场需求与国产替代加速

        信息安全需求:2014年“棱镜门”事件后,国产化替代进程加速,金融、电信等行业开始试点国产数据库。
“        去IOE”运动:阿里巴巴等企业推动去IBM、Oracle、EMC化,采用PC服务器、MySQL等开源技术,降低对国外产品的依赖。

1.2.3 崛起阶段(2010s-至今):技术爆发与生态重构

  • 分布式与云原生技术领先

        阿里OceanBase:2010年启动研发,2019年以6088万tpmC登顶TPC-C榜单,打破Oracle垄断,成为金融、电信等行业的核心系统选择。
        华为GaussDB:2011年启动研发,首创全密态技术,在加密状态下直接处理数据,兼顾安全与性能,广泛应用于金融、政务领域。

  • 开源生态与全球化布局

        华为openGauss:2020年开源社区成立,吸引850余家企业成员和7600余位贡献者,推动技术共建与生态繁荣。
        PingCAP TiDB:兼容MySQL协议,支持HTAP混合负载,成为全球分布式数据库标杆,产品已进入东南亚、欧洲市场。

  • 市场需求与商业化突破

        行业应用深化:金融行业国产化替代率超60%(2022年),政务市场实现100%国产软硬件支撑,电信、能源等领域加速推进。
        市场规模扩张:2022年中国数据库市场规模达403.6亿元,预计2027年突破1286.8亿元,年复合增长率达26.1%。

1.3 数据库分类及其简介

        数据库管理系统(DBMS)是用于创建、管理和操作数据库的软件系统,其分类方式多样,以下是基于不同维度对数据库管理系统的分类、简介及对应产品的详细介绍:

1.3.1 按数据模型分类

1 关系型数据库管理系统(RDBMS)

  •  简介:基于关系模型,使用表格形式存储数据,每一行代表一个单独的记录,每一列代表一个字段。这些表格可以通过预定义的关系进行连接,使得跨多个表的数据检索变得简单。关系型数据库使用SQL(结构化查询语言)作为其标准查询语言,遵循ACID(原子性、一致性、隔离性、持久性)特性,确保事务处理的安全性和可靠性。
  • 产品:
    • Oracle Database:由甲骨文公司开发的企业级关系型数据库,以其高性能、高可用性和安全性著称,广泛应用于大型企业和政府机构。
    • MySQL:开源的关系型数据库,因其易用性和高效性能而受到中小型企业和初创公司的青睐,常用于Web应用程序。
    • Microsoft SQL Server:微软提供的关系型数据库管理系统,集成了商业智能工具和服务,适合Windows环境下的企业应用。
    • PostgreSQL:开源的对象-关系型数据库,以其扩展性和对标准的严格遵守而闻名,支持复杂的查询和高级特性,如地理空间数据处理。
    • IBM Db2:IBM开发的关系型数据库,提供了先进的分析能力和集成的安全特性,适用于大型企业和数据密集型应用。
    • SQLite:轻量级的嵌入式关系型数据库管理系统,适用于嵌入式设备和移动应用。

2 非关系型数据库管理系统(NoSQL)

  • 简介:不使用传统表格形式存储数据,支持灵活的数据模型,如文档型、键值对、宽列存储和图形数据库,以适应不同的业务需求。NoSQL数据库的设计是为了处理大规模数据集和高并发访问,提供了CAP定理中的可用性(Availability)和分区容忍性(Partition Tolerance)。
  • 产品:
    • 文档型:
      • MongoDB:流行的文档型数据库,使用BSON格式存储数据,支持灵活的模式设计和高效的查询性能,适合快速开发和迭代的应用。
      • CouchDB:开源的NoSQL数据库,使用JSON存储信息,JavaScript作为查询语言。
    • 键值存储:
      • Redis:内存中的键值对存储系统,也被称为数据结构服务器,因其极快的速度和丰富的数据类型(如列表、集合、有序集合)而广受欢迎,常用于缓存和消息队列。
      • Memcached:开源、高性能、分布式内存缓存系统,旨在通过减少数据库负载来加速动态Web应用程序。
    • 宽列存储:
      • Cassandra:由Apache基金会维护的宽列存储数据库,专为处理大规模数据集而设计,具有极高的可扩展性和容错能力,适用于高吞吐量的写入操作。
      • HBase:谷歌为BigTable数据库设计的分布式非关系数据库,适用于海量数据存储和实时访问。
    • 图形数据库:
      • Neo4j:领先的图形数据库,专注于实体之间的关系建模,适用于社交网络分析、推荐系统和欺诈检测等领域,提供了直观的Cypher查询语言。

3 NewSQL数据库

  • 简介:结合关系型数据库的ACID特性和NoSQL的扩展性,支持混合事务与分析处理(HTAP)。NewSQL数据库旨在提供与关系型数据库相同的事务保证,同时具备NoSQL数据库的可扩展性和性能。
  • 产品:
    • TiDB:分布式NewSQL数据库,兼容MySQL协议,支持水平扩展和强一致性。
    • CockroachDB:分布式SQL数据库,提供全球部署和强一致性保证。
    • VoltDB:内存数据库,通过内存计算实现高吞吐和低延迟。

1.3.2 按应用场景分类

1 企业级数据库管理系统

  • 简介:针对企业级应用设计,提供高性能、高可用性、高安全性和丰富的管理功能,支持大规模数据处理和复杂事务。
  • 产品:
    • Oracle Database
    • Microsoft SQL Server
    • IBM Db2

2 移动设备数据库管理系统

  • 简介:针对移动设备设计,具有轻量级、低功耗、嵌入式等特点,支持移动应用的数据存储和管理。
  • 产品:
    • SQLite

3 物联网数据库管理系统

  • 简介:针对物联网应用设计,支持海量设备接入、实时数据采集和处理、低功耗等特点。
  • 产品:
    • InfluxDB:开源时序数据库,优化时间序列数据存储和查询,适用于物联网和监控场景。
    • OpenTSDB:分布式可扩展时序数据库,基于Hadoop和HBase,适用于大规模时间序列数据存储和分析。

1.3.3 按技术架构分类

1 集中式数据库管理系统

  • 简介:数据库运行在单一计算机上,所有数据存储和处理都在该计算机上完成,适用于小型应用和测试环境。
  • 产品:大多数传统的关系型数据库管理系统(如MySQL、PostgreSQL)都支持集中式部署。

2 分布式数据库管理系统

  • 简介:数据库跨多台计算机分布式存储和处理数据,支持水平扩展和高可用性,适用于大规模应用和高并发场景。
  • 产品:
    • 谷歌Spanner:全球分布式数据库,支持强一致性和水平扩展。
    • 蚂蚁金服OceanBase:分布式关系型数据库,适用于金融级高并发场景。
    • 腾讯TDSQL:分布式数据库,支持金融级高可用和强一致。

3 云数据库管理系统

  • 简介:数据库服务部署在云端,提供弹性扩展、按需付费和自动化运维等特点,适用于各种规模的应用和企业。
  • 产品:
    • 阿里云RDS:支持多种关系型数据库(如MySQL、PostgreSQL)的云服务。
    • 腾讯云MongoDB:基于MongoDB的云数据库服务,提供高可用性和弹性扩展。
    • AWS DynamoDB:全托管式NoSQL数据库服务,支持键值和文档数据模型。

1.3.4 按开源与商业分类

1 开源数据库管理系统

  • 简介:源代码公开,可自由使用、修改和分发,通常由社区驱动开发和维护。
  • 产品:
    • MySQL
    • PostgreSQL
    • MongoDB(社区版)
    • Redis

2 商业数据库管理系统

  • 简介:由商业公司开发和销售,通常需要购买许可证,提供专业的技术支持和服务。
  • 产品:
    • Oracle Database
    • Microsoft SQL Server
    • IBM Db2
    • MongoDB(企业版)

2 数据库安装-以mysql为例,其他数据库后续补充

2.1 mysql安装

2.1.1 mysql8.4版本安装

     Centos7.6图文安装mysql8.4详细步骤记录

2.1.2 mysql5.7安装

     CentOS 7 下 MySQL 5.7 的详细安装与配置

2.1.3 docker安装mysql

        Docker在一台服务器部署多个mysql

2.2 oracle安装

2.2.1 Oracle 11g安装

        CentOS 7静默安装Oracle 11g:完整图文指南

相关文章:

  • Unity UI 核心类解析之Graphic
  • crawl4ai 框架的入门讲解和实战指南——基于Python的智能爬虫框架,集成AI(如NLP/OCR)实现自动化数据采集与处理
  • DDS 问题排查
  • 基于自然语言处理的智能问答系统(模型训练+部署测试)
  • 【图片识别改名】批量识别图片中的文字对图片进行改名,识别文字对图片重新命名的操作步骤和注意事项
  • python学智能算法(十四)|机器学习朴素贝叶斯方法进阶-CountVectorizer文本处理简单测试
  • CD45.【C++ Dev】STL库的list的使用
  • 前端基础知识CSS系列 - 14(CSS提高性能的方法)
  • windows,java后端开发常用软件的下载,使用配置
  • Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲
  • Python 开发环境全栈隔离架构:从 Anaconda 到 PyCharm 的四级防护体系
  • mcp-server-chart Quickstart
  • Android中Native向System Service进行Binder通信的示例
  • Tensorflow推理时遇见PTX错误,安装CUDA及CuDNN, 解决问题!
  • C++实现手写strlen函数
  • 什么是池化
  • 图像特征检测算法ORB
  • C语言标准I/O库详解:文件操作与缓冲区机制
  • vscode设置代码字体
  • 【PX30 Qt 5.15 交叉编译环境搭建完整指南】
  • 查看网站用什么语言做的/微信社群营销怎么做
  • 给我一个网站贴吧/上海专业seo
  • 群晖nas安装wordpress安装/东莞网站建设优化诊断
  • 政府网站建设方面存在的问题/常用的网络推广方法有
  • html5网站开发视频/最近发生的重大新闻
  • 网络设计报告提纲范文/怎样进行seo优化