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

数据库管理与高可用-MySQL数据库初体验

目录

#1.1数据库简介

 1.1.1使用数据库的必要性

 1.1.2数据库的基本概念

 1.1.3数据库发展史

 1.1.4关系数据库的基本概念

#2.1MySQL服务基础

  2.1.1MySQL的二进制安装


1.1数据库简介

 1.1.1使用数据库的必要性

   数据库作为数据管理的核心工具,在各类场景中发挥着不可替代的作用。

数据库具有以下特点:

 结构化存储,提升数据组织效率 

 保证数据完整性与一致性 

 支持高效查询与检索

 1.1.2数据库的基本概念

    1.数据

        数据是对客观事物的符号表示,是信息的载体和表现形式,可被记录、存储、处理和传输。

    2.数据库和数据库表

        数据库(Database)是按照特定规则组织、存储和管理数据的电子仓库,本质是数据结构化存储与高效访问的工具

        数据库表(Table) 是数据库中数据存储的基本单元,类似 Excel 表格,但结构更严格、功能更强大。

      3.数据库管理系统和数据库系统

         数据库管理系统(Database Management System,DBMS) 是一种用于管理数据库的软件系统,它位于用户与操作系统之间,负责对数据库进行统一的管理和控制,是数据库系统的核心组成部分。

       数据库管理是指对数据库系统的全生命周期进行规划、设计、维护和优化的过程,旨在确保数据库高效、安全、可靠地支持业务需求。

 1.1.3数据库的发展史

   1.数据库系统的发展史

     (1)初级阶段--第一代数据库

             第一代数据库主要指20 世纪 60 年代末至 70 年代中期出现的数据库系统,是数据库技术的奠基阶段,它们是层次模型网状模型,为统一管理和共享数据提供了有力的支撑。

     (2)中级阶段--第二代数据库

           第二代数据库20 世纪 70 年代中期至 90 年代关系模型为核心的数据库系统,是数据库发展史上的革命性阶段。其诞生源于对第一代数据库(层次 / 网状模型),关系型数据库在 80 年代进入商用成熟期,成为企业级数据管理的主流。

     (3)高级阶段--第三代数据库

            第三代数据库20 世纪 90 年代末至今,为应对互联网、大数据、物联网等新兴场景挑战而发展的数据库技术体系。其核心目标是突破第二代数据库(关系型数据库)在非结构化数据处理、高并发扩展、灵活性等方面的局限。

  2.经典数据模型

   (1)网状模型

       网状模型是数据库发展史上的一种重要数据模型,诞生于 20 世纪 60 年代末,由数据库任务组(DBTG)提出,是层次模型的扩展。它采用图结构(有向图)来表示实体及实体间的联系,允许实体间存在多对多(M:N)的复杂关系,突破了层次模型中 “只能有一个父节点” 的限制,更贴近现实世界中事物的复杂关联。

   (2)层次模型

      层次模型是数据库发展史上最早的数据模型之一,诞生于 20 世纪 60 年代,由 IBM 的IMS(Information Management System)数据库系统率先实现。它以树状结构(有向树)来组织数据,体现实体间的一对多(1:N)关系,是一种结构化数据模型,核心思想是通过 “层级” 描述现实世界的简单从属关系。

    (3)关系模型

        关系模型是现代数据库的核心理论基础,它以数学中的关系理论为基础,将数据组织为二维表格(关系表) 的形式,通过 “表 - 行 - 列” 结构描述实体及实体间的联系,彻底改变了数据库的设计和操作方式,是当前主流数据库(如 MySQL、Oracle、SQL Server)的底层模型。

 3.当今主流数据库介绍

   (1)关系数据库

          关系数据库是基于关系模型构建的数据库系统,它将数据组织成二维表格(关系表)的形式,通过表与表之间的关联关系来表达和处理数据。

   SQL Server简介

       SQL Server 是由 微软(Microsoft) 开发的 关系型数据库管理系统(RDBMS),基于 关系模型 构建,支持结构化查询语言(SQL),主要用于企业级数据管理、业务系统开发和数据分析。它集成了数据存储、查询、分析、集成和报告等功能,是微软生态体系的核心组件之一。

   Oracle简介

       Oracle(甲骨文) 是全球领先的 企业级关系型数据库管理系统(RDBMS),由 Oracle 公司(原名 SDL,1977 年成立) 开发。作为业界标杆,它以高性能、高可靠性和强扩展性著称,主要用于支撑大型企业核心业务系统、数据仓库及云计算平台,是金融、电信、政府等关键领域的首选数据库解决方案。

   DB2简介

       DB2 是 IBM 公司 开发的 企业级关系型数据库管理系统(RDBMS),始于 1970 年代的 System R 项目,是数据库领域历史最悠久的产品之一。它以高可靠性、稳定性和强大的企业级功能著称,主要面向金融、政府、制造业等对数据处理要求严苛的行业,尤其擅长支撑大型事务处理系统和数据仓库。

  MySQL简介

       MySQL 是 Oracle 公司旗下 的 开源关系型数据库管理系统(RDBMS),基于 Client-Server 架构 设计,它以轻量级、高性价比、易扩展性著称,是全球使用最广泛的开源数据库之一,尤其适合 Web 应用、互联网服务和中小型企业场景。

 (2)非关系数据库

       非关系型数据库(NoSQL,Not Only SQL) 不依赖传统关系模型(如二维表、行 / 列结构)的数据库管理系统,旨在解决海量数据存储、高并发读写、灵活数据模型等场景下的性能瓶颈。其核心思想是弱化数据一致性,强调可用性和分区容错性,通过分布式架构、非结构化数据模型实现水平扩展。

1.1.4关系数据库的基本概念

  1.关系数据库的基本结构

     关系数据库基于 关系模型(Relational Model) 构建,核心是将数据组织成 二维表格(关系表),通过表与表之间的 关系 实现数据关联和查询。

  2.主键与外键

     主键:主键(Primary Key) 是关系数据库中用于唯一标识表中每条记录的字段或字段组合,是关系模型的核心约束之一。其设计目标是确保数据的唯一性、完整性和可访问性,在数据库设计和操作中具有关键作用。

    外键:外键(Foreign Key) 是关系数据库中用于建立表间关联的字段或字段组合,是实现关系模型(如一对一、一对多、多对多关系)的核心机制。其本质是通过引用其他表的主键(或候选键),确保数据的一致性和完整性,并反映业务逻辑中的关联关系。

 3.数据完整性规则

   (1) 实体完整性规则实体完整性规则(Entity Integrity Rule) 是关系数据库中确保表中 “实体(记录)唯一性” 的核心约束,属于关系模型的三大完整性规则之一(另外两个为参照完整性用户定义的完整性)。其本质是通过约束主键字段的取值,保证表中每个实体(行)都是可唯一标识且无冗余的 “有效个体”。

    (2)域完整性规则域完整性规则(Domain Integrity Rule) 是关系数据库中确保表中字段(列)取值合法有效的约束,属于关系模型的三大完整性规则之一(另外两个为实体完整性参照完整性)。其核心是限定表中每个字段的 “取值范围”(域),确保数据符合业务逻辑和数据类型要求,避免 “无效数据” 写入数据库。

     (3)引用完整性规则引用完整性规则(Referential Integrity Rule) 是关系数据库中确保表间关联字段数据一致性的约束,属于关系模型的三大完整性规则之一(另外两个为实体完整性域完整性)。其核心是通过外键(Foreign Key)建立表间关联,并保证关联字段的取值符合 “引用关系”—— 即外键值必须对应主键(或唯一键)的现有值。

      (4)用户定义的完整性规则:用户定义的完整性规则(User-Defined Integrity Rule) 是关系数据库中由用户(或开发者)根据具体业务需求自定义的数据约束规则,用于补充关系模型默认约束(如实体完整性、域完整性、引用完整性)无法覆盖的特殊业务逻辑。

2.1MySQL服务基础

        MySQL 是 Oracle 公司旗下的开源关系型数据库管理系统(RDBMS),基于 C/S 架构(客户端 / 服务器模式) 运行,主要用于存储、管理和查询结构化数据。

    核心功能包括:

          数据存储:通过表格形式(行、列结构)存储数据,支持事务(ACID 特性)、外键约束等关系型数据库特性。

          数据管理:提供用户权限管理、数据备份 / 恢复、性能优化等工具(如 mysqldumpMySQL Workbench)。

          数据查询:支持标准 SQL 语言(如 SELECTINSERTUPDATEDELETE),可通过索引优化查询效率。

2.1.1MySQL的二进制安装

  1. [client]部分

    • socket=/usr/local/mysql/data/mysql.sock :指定客户端连接 MySQL 服务器时使用的套接字文件路径 。在本地连接时,使用套接字比 TCP/IP 更高效。

  2. [mysqld]部分

    • socket=/usr/local/mysql/data/mysql.sock :MySQL 服务器端使用的套接字文件路径,与客户端对应,方便本地连接。

    • bind-address = 0.0.0.0 :设置 MySQL 服务器监听的 IP 地址,0.0.0.0表示监听服务器上的所有 IP 地址,允许来自任何网络的连接。

    • skip-name - resolve :禁止 MySQL 对连接的客户端 IP 进行反向 DNS 解析,可提高连接速度,避免因 DNS 解析失败导致连接问题。

    • port = 3306 :MySQL 服务器监听的端口号,默认是 3306。

    • basedir=/usr/local/mysql :MySQL 的安装目录。

    • datadir=/usr/local/mysql/data :MySQL 的数据存储目录,数据库文件、表文件等数据都存放在这里。

    • max_connections=2048 :设置 MySQL 允许的最大连接数,可根据服务器性能和业务需求调整。

    • character-set-server=utf8 :设置服务器默认字符集为 UTF - 8,能支持多种语言字符存储。

    • default-storage-engine=INNODB :设置默认的存储引擎为 InnoDB ,InnoDB 支持事务、行级锁等特性,是常用的存储引擎。

    • max_allowed_packet=16M :设置单个数据包的最大大小,限制客户端与服务器之间传输数据的大小,可防止过大数据包导致的性能问题或内存溢出。

  3. [mysqld_safe]部分

    • log-error=/usr/local/mysql/data/error.log :指定 MySQL 服务器错误日志文件的路径,用于记录服务器运行过程中的错误信息,方便排查问题。

 

[Unit] 部分

        Description=mysqld:对该服务单元的描述,说明这是 MySQL 服务器(mysqld) 服务。

        After=network.target:表示该服务启动顺序在网络服务启动之后,确保 MySQL 启动时网络已就绪。

[Service] 部分

        Type=forking :指定服务类型为分叉类型,即服务启动时会创建子进程,父进程启动后就退出,子进程继续在后台运行。

        ExecStart=/etc/rc.d/init.d/mysqld start :定义启动 MySQL 服务的命令,调用传统初始化脚本路径下的 mysqld 脚本并执行 start 操作来启动服务。

        ExecReload=/etc/rc.d/init.d/mysqld restart :定义重新加载(实质是重启)MySQL 服务的命令,调用脚本执行 restart 操作。

        ExecStop=/etc/rc.d/init.d/mysqld stop :定义停止 MySQL 服务的命令,调用脚本执行 stop 操作。

        PrivateTmp=true :表示为该服务分配一个私有的临时目录,服务停止时其中内容会被清理,增强安全性和隔离性。

[Install] 部分

        WantedBy=multi - user.target :意味着该服务会被加入到多用户模式启动目标中,即系统进入多用户模式时会自动启动此 MySQL 服务。

相关文章:

  • Java 内存模型与 volatile 关键字深度解析:从可见性到指令重排
  • 【键盘说明书备份】ENERGYFORT
  • 什么是舵机,如何控制舵机
  • LVGL(Grid)
  • 用Qt/C++玩转观察者模式:一个会聊天的设计模式
  • Baklib企业CMS实现内容智能归档与精准检索
  • 红黑树,B树,二叉树之间的不同
  • C++类继承详解:权限控制与继承方式解析
  • Gemini Pro 2.5 输出
  • AI 编程如何让你轻松采集网站数据?
  • 第二十一章:数据治理之数据安全:数据安全的驱动因素以及常见的数据安全举措
  • 阿姆斯特朗数
  • 五大要素协同效益的量化模型与实战策略
  • 【Qt开发】容器类控件
  • 真话与假话
  • Java集合框架详解:List、Set、Map及其实现类
  • C-内存函数,动态内存
  • 人工智能概念股:最新投资机会深度解析
  • 数字人教师:开启教育智慧革新之旅
  • 02_MQ常见问题
  • 深圳燃气公司/360seo
  • wordpress story 模板/天津seo选天津旗舰科技a
  • 工会网站平台建设/推广方法
  • 摄影网站网址大全/蚌埠seo外包
  • 网站建设方案打包/推广优化方案
  • 网站项目综合设计作业 代做/产品推广方案