【摘要】 本文是对华为云Hero联盟知识学堂第一期的知识点整理与汇总 HCIA-GaussDB课程安排 数据库介绍 数据库技术概述 数据(Data) 记录 数据库(Database,DB) 数据库管理系统(DBMS) 数据库系统(Database System,DBS) 数据库技术发展史 数据管理的发展 数据库系统优势 数据库系统发展特点 层次,网状,关系模型 结构化查询语言(SQL,Structed…
本文是对华为云Hero联盟知识学堂第一期的知识点整理与汇总
HCIA-GaussDB课程安排
数据库介绍
数据库技术概述
内容要点:
详细讲解了DATA、DB、DBS和DBMS的基本概念;
讲解了存放在数据库中数据的特点有:永久存储、有组织、可共享;
介绍了属于数据库系统这个概念范围的组成部分有数据库管理系统、数据库、应用开发工具、应用程序。
数据库技术:数据库技术是数据库管理的有效技术,研究如何对数据进行科学管理,从而为人们提供可共享的、安全的、可靠的数据
DATA:数据
DB:Database 数据库
DBMS:DataBase Management System 数据库管理系统
DBS:DataBase System 数据库系统
数据(Data)
数据除了数值外,还有数据的含义,称为数据的语义。
记录
记录是在计算机中表示和存储数据的一种格式或一种方法。
数据库(Database,DB)
数据库是存放数据的仓库,是大量数据的集合。
数据库中数据的特点:永久存储、有组织、可共享
数据库管理系统(DBMS)
DBMS是一个能够科学地组织和存储数据,从而高效地获取和维护数据的系统软件,是位于用户和操作系统之间的数据管理软件,主要功能有:
- 数据定义功能
- 数据组织、存储和管理功能
- 数据操纵功能
- 数据库的事务管理和运行管理功能
- 数据库的建立和维护功能
- 与其他软件系统的通信功能
数据库系统(Database System,DBS)
数据库系统由数据库(DB)、数据库管理系统(DBS及其应用开发工具)、应用程序和数据库管理员(DBA) 组成的存储、管理、处理和维护数据的系统
数据库技术发展史
内容要点:
详细讲解了层次、网状、关系三种模型和结构化查询语言SQL语句;
讲解了的键值数据库Redis、列式数据库HBase、文档数据库MongoDB、图文数据库Graph等;
介绍了云数据库的发展趋势及相较传统数据库的易、稳、快、弹、密等特性。
数据库技术因数据管理任务的需要而产生
数据管理的发展
- 应用需求推动
- 软硬件的飞速发展为基础
- 三个阶段:人工管理、文件系统、数据库系统
角度 | 层面/阶段 | 人工管理阶段 | 文件系统阶段 | 数据库系统阶段 |
---|---|---|---|---|
背景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘,磁盘阵列 | |
软件背景 | 无操作系统 | 有文件系统 | 有数据库管理系统 | |
处理方式 | 批处理 | 联机实时处理,批处理 | 联机实时处理,分布处理,批处理 | |
特点 | 数据管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用程序 | 应用程序 | 现实世界(个人,部门,企业等) | |
数据的共享程度 | 无共享,冗余度大 | 共享性差,冗余度大 | 共享性高,冗余度小 | |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度的物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序控制 | 应用程序控制 | 有数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
数据库系统优势
- 整体数据结构化
- 数据面向整个系统而不是单个应用,被多个应用共享
- 数据的共享性高,冗余度低且易扩充
- 数据独立性高
- 物理独立性:应用程序与数据库中数据的物理存储是相互独立的
- 逻辑独立性:应用程序与数据库的逻辑结构是相互独立的
- 统一管理和控制
- 数据的安全性保护
- 数据的完整性检查
- 并发控制
- 数据库恢复
数据库系统发展特点
- 数据库的发展集中表现在数据模型的发展上
- 与其它计算机技术交叉结合
- 面向应用领域发展数据库新技术
层次,网状,关系模型
- 层次模型(本质是树)
- 有且只有一个节点没有双亲,该结点被称为根节点(root)
- 根节点以外的其他节点有且只有一个双亲节点
- 网状模型(本质是图/网)
- 允许一个以上的节点无双亲
- 一个节点可以有多于一个的双亲
- 关系模型(本质是一张二维表)
- 建立在严格的数据概念基础上
- 关系必须是规范化的
- 关系的分量必须是一个不可分的数据项
模型对比
特点 | 层次模型 | 网状模型 | 关系模型 |
---|---|---|---|
数据结构 | 格式化模型,树形结构简单清晰 | 格式化模型 | 符合规范的模型要求 |
数据操作 | 没有双亲节点,不能插入子女节点;删除双亲节点时,子女节点同时被删除 | 增加和删除节点时,也要在双亲节点中增加或删除相应的信息(如指针) | 数据的操作都是集合操作,操作对象和结果都是关系,数据操作必须满足关系的完整性约束 |
数据联系 | 存取路径反映了数据之间的联系 | 存取路径反映了数据之间的联系 | 通过关系反映数据之间的联系 |
优点 | 数据结构简单清晰;查询效率高;提供良好的完整性支持 | 能够更为直接地描述现实世界,可以反映多对多关系;具有良好的性能,存取效率较高 | 建立在严格的数学理论基础上;概念单一,用关系来表示实体和实体之间的联系;存取路径对用户透明,具有更高的独立性和保密性;简化程序员的开发工作 |
不足 | 现实世界很多非层次性联系,不适合用层次模型表示;表达多对多的时候产生很多数据冗余;结构严密,层次命令程序化 | 结构复杂,随着应用扩大,结构会变得极为复杂;对象定义和操作语言复杂,需要嵌入高级语言(COBOL,C),用户不易掌握,不易使用;存在多种路径,用户必须了解系统结构细节,增加编写代码负担 | 存取路径的隐蔽导致查询效率不如格式化数据模型;需要对用户的查询进行优化 |
结构化查询语言(SQL,Structed Query Language)
- 高级的非过程化编程语言,允许用户在高层数据结构上工作
- 不要求用户指定数据存放方法
- 不需要用户了解具体数据存放方式
- 底层结构完全不同的各类关系型数据库可以使用相同的SQL语言作为数据操作和管理的接口
其他数据模型
- 面向对象数据模型(Object Oriented Data Model, OO模型):过于复杂,没有得到开发人员认可
- XML数据模型
- RDF数据模型
数据管理技术的新挑战
5V特性:Volume(数量)、Variety(多样性)、Value(价值)、Velocity(速度)、Veracity(真实性)
管理需求:高可扩展性、高性能、容错性、高伸缩性
NoSQL技术特点和类型
NoSql(Not Only SQL)非关系型、分布式、不保证满足ACID特性的一类数据管理系统。
常见NoSQL数据库:
- Key-Value键值数据库
- Graph图数据库
- Column Family列式数据库
- Document文档数据库
分类 | 代表产品 | 典型应用场景 | 数据模型 | 优点 | 限制性 |
---|---|---|---|---|---|
键值数据库 | Redis、MemCahed | 缓存用户信息,会话信息,配置文件,购物车等 | Key指向Value,通常基于Hash table实现 | 查找速度快 | 数据无结构化,字符串或者二进制数据 |
列式数据库 | HBase、Cassandra | 日志、博客平台 | 列族式存储 | 查找速度快,课容易分布式扩展 | 不适合随机更新,不适合做有删除和更新的实时操作 |
文档型数据库 | DouchDB、MongoDB | 日志,可以存储不同模式的日志信息。基于弱模式的数据分析 | 和K-V类似,Value的数据结构要求不严格,无需预先定义表结构 | 表结构可变,扩展性好,适合非结构化对象,有些产品不支持事务操作 | |
图数据库 | Neo4j、 Infinite、Graph | 推荐引擎、关系图谱 | 图结构 | 借助图论算法处理特定领域问题 | 非图领域的应用受限 |
NoSQL不是为了取代DRBMS
- 优势显著,缺点也较明显
- 与RDBMS一起构建完整的数据库生态系统
NewSQL浅谈
NewSQL:指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景,能够支持SQL作为主要的使用语言。
分类:
- 采用了新架构重新构建产品
- 采用Transparent Sharding中间件技术
- DAAS(Database-as-a-Service,数据库即服务)
云数据库:指被优化部署到一个虚拟计算环境中的数据库
2020年,华为推出了云数据库GaussDB
传统数据库VS云数据库
传统数据库 | 云数据库 | |
---|---|---|
建设和运维成本高 | 易使用易管理,业务敏捷上线 | 易 |
扩展不灵活 | 高可靠,业务零中断,跨地域容灾备份 | 稳 |
性能冗余 | 数据读写时延低,快速响应业务需求 | 快 |
资源隔离差 | 扩展性好,快速自动弹性伸缩 | 弹 |
集成性能差 | 数据安全性好,全同态加密 | 密 |