暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

备战全国大学生计算机系统能力大赛:赛前强化培训,等你来充电!

原创 OceanBase数据库 2024-08-05
130

2024 全国大学生计算机系统能力大赛暨第四届 OceanBase 数据库大赛于 7 月 18 日启动报名!本届赛事由全国高等学校计算机教育研究会、系统能力培养研究专家组、系统能力培养研究项目发起高校主办,旨在提升学生的技术创新、工程实践、团队协作能力,为高水平计算机人才成长搭建交流、展示、合作的开放平台(详情及报名可点击《 2024 OceanBase 数据库大赛启动!全新赛题,等你来战》)。与此同时,一年一度的赛前训练营也接踵而至!


良好的开端是成功的一半,为帮助大家更好地上手大赛,OceanBase 自下周起开始推出免费教程「从 0 到 1 数据库实战教程」,从 MiniOB 入门到 OceanBase 进阶,展开每周一次、为期近两个月的线上学习。从零开始带领大家系统化地学习数据库理论知识,并进入真实的实践环境,磨练数据库实践能力。

一、教程内容及课程安排

该教程在过去三届 OceanBase 数据库大赛中,被作为赛前培训教程及初赛题目来源,深受参赛者喜爱,积累了良好口碑。已经报名参赛或者对 OceanBase 感兴趣的用户可以查看下方时间安排表提前了解教程安排~👇

图片

对于该教程,入门部分将学习项目 MiniOB。MiniOB 整体代码简洁,容易上手,期望通过 MiniOB 的训练,同学们能够熟练掌握数据库内核模块的功能和协同关系,并具备一定的工程编码能力,例如内存管理、网络通信和磁盘 I/O 处理等, 这将有助于学习者在未来的面试和工作中脱颖而出。


进阶部分基于原生分布式数据库 OceanBase,为企业核心系统提供稳定可靠的数据底座,连续 11 年稳定支撑“双 11”,凭借高性能和高可用真正实现应用无限扩展和服务永远在线。


2024 「从 0 到 1 数据库实战教程」在前三届教程的基础上,保留经典,优化模块。首先在原有基础上优化了 MinOB 部分。MiniOB 是一个持续发展的数据库教程平台,本次我们将更新的模块做了重新讲解,包括 MiniOB 框架、开发环境搭建与调试、一些题目的解析等。


除了视频教程在线学习外,OceanBase 还提供以下材料帮助同学们高效学习,在每期视频学习结束后,OceanBase 的技术专家会在 QA 环节及时解答你的疑问。


  • 《从 0 到 1 :OceanBase 原生分布式数据库内核实战》的基础版与进阶版(https://open.oceanbase.com/learning)

  • 推荐学习《OceanBase 数据库源码解析》纸质书


在学完该教程后,你能收获:


  • 掌握数据库内核原理,拥有数据库内核工程实践能力,设计更高效的 SQL,研究新的数据库架构发展方向;
  • 参与教程学习,即有机会获得 OceanBase 专属定制周边礼品。

二、学习方式及首期预报

(一)教程学习的三个阶段

  • 阶段 1:准时参与直播教程学习
  • 阶段 2:进入教程学习群进行技术交流,技术“大牛”在线答疑
  • 阶段 3:参与并完成 MiniOB 训练题

(二)辅助学习指路

  • 训练营使用说明:https://ask.oceanbase.com/t/topic/35600372
  • MiniOB 训练营:https://open.oceanbase.com/train?questionId=200001
  • 了解 OceanBase 源码:https://github.com/oceanbase/oceanbase
  • 在 OceanBase 社区论坛提问及解答:https://ask.oceanbase.com/

(三)第一期:数据系统概述与 OceanBase 研发入门

8 月 7 日 19:30 ,我们将正式开启「从 0 到 1 数据库实践教程」第一期:数据库系统概述与 OceanBase 研发入门。

如果你是数据库零基础,赶紧上车,老司机带你快速 Get 数据库内核知识!如果你已经学习了数据库理论知识,却苦于没机会在真实企业级环境中动手实践过,那你更不能错过在「从 0 到 1 数据库实践教程」中动手实践企业级应用的机会。


此外,MiniOB 和 OceanBase 内核源代码也已备好,等你解构,并带你了解企业级分布式数据库的整体架构和模块组成,以及一些关键数据的结构和方法。真正从理论到实践,由浅入深地掌握数据库内核开发,感兴趣的同学欢迎扫描下方海报中的二维码报名,和讲师进行互动!😍

图片

三、基础知识补习回顾:轻松get数据库系统

(一)数据库管理系统的组成

DBMS(数据库管理系统) 允许用户创建数据库并对数据库中的数据进行查询和修改,同时提供故障时的数据恢复功能和多用户同时访问时的并发控制功能。


如图是一个 DBMS 的内部结构示意图。其中单线框表示系统模块,双线框表示内存中的数据结构,实线表示控制流+数据流,虚线表示数据流。该图反映了 DBMS 的几大主要功能的处理流程,即数据定义、数据操纵和事务管理,这些功能均依赖底层的存储管理及缓冲区管理组件提供对磁盘中数据的访问支持。

图片

(二)数据库模型和语言

关系模型采用的数据结构称为关系。在关系模型中,数据库中的全部数据及数据间的联系都用关系来表示。关系是一个无序的元组集合,每个元组由一组属性值构成,表示一个实体。一个有 n 个属性的关系称为 n 元关系。由于关系中的元组是无序的,因此 DBMS 可以采用任何它希望的方式存储它们,以便进行优化。


SQL 是关系数据库的标准语言,它是 1974 年由 Boyce 和 Chamberlin 提出的,最初叫 Seque(Structured English Query Language), 并在 IBM 公司研发的关系数据库管理系统原型 System R 上实现,后改名为 SQL(Structured Query Language)。SQL 是一种通用的、功能极强的关系数据库语言,其功能不仅仅是查询,还包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。但是,数据查询仍然是 SQL 中最重要、也最具特色的功能。

(三)MiniOB 概述

MiniOB 是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、专为零基础的同学设计的数据库入门学习项目。MiniOB 的目标是为在校学生、数据库从业者、爱好者或对基础技术感兴趣的人提供一个友好的数据库学习项目,更好地将理论、实践进行结合,提升同学们的工程实战能力。

(四)OceanBase 架构和基本介绍

在搭建研发环境前,我们需要对 OceanBase 数据库架构有基础认识。

图片

OceanBase 的一个集群由若干个节点组成。这些节点分属于若干个区(Zone),每个节点属于一个区。区是一个逻辑概念,表示集群内具有相似硬件可用性的一组节点,它在不同的部署模式下代表不同的含义。例如,当整个集群部署在同一个数据中心(IDC)内的时候,一个区的节点可以属于同一个机架,同一个交换机等。当集群分布在多个数据中心的时候,每个区可以对应于一个数据中心。每个区具有 IDC 和地域(Region)两个属性,描述该区所在的 IDC 及 IDC 所属的地域。一般地,地域指 IDC 所在的城市。区的 IDC 和 Region 属性需要反映部署时候的实际情况,以便集群内的自动容灾处理和优化策略能更好地工作。


在 OceanBase 中,一个表的数据可以按照某种划分规则水平拆分为多个分片,每个分片叫做一个表分区,简称分区(Partition)。某行数据属于且只属于一个分区。分区的规则由用户在建表的时候指定,包括 hash、range、list 等类型的分区,还支持二级分区。例如,交易库中的订单表,可以先按照用户 ID 划分为若干一级分区,再按照月份把每个一级分区划分为若干二级分区。对于二级分区表,第二级的每个子分区是一个物理分区,而第一级分区只是逻辑概念。一个表的若干个分区可以分布在一个区内的多个节点上。


为了能够保护数据,并在节点发生故障的时候不中断服务,每个分区有多个副本。一般来说,一个分区的多个副本分散在多个不同的区里。多个副本中有且只有一个副本接受修改操作,叫作主副本(Leader),其他叫作从副本(Follower)。主从副本之间通过基于 Multi-Paxos 的分布式共识协议实现了副本之间数据的一致性。当主副本所在节点发生故障的时候,一个从节点会被选举为新的主节点并继续提供服务。

图片

📢微信扫描上方二维码,进入学习交流群

及时关注课程动态,和更多小伙伴一起学习进步

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论