数据库介绍

戏子无情 提交于 2020-03-10 04:34:33

数据库技术

数据库技术是一门数据库管理的有效技术,研究如何对数据进行有效地科学地管理数据,从而为用户提供可共享的、安全的、可靠的数据。
数据库技术分为了数据、数据库、数据库系统以及数据库管理系统四个部分
在这里插入图片描述

数据

早期的计算机系统主要用于科学计算,处理的数据是数值型数据像整数、浮点数等。
而在现代对于数据的概念是广义的,不再是单纯的一个数值,而是有各种含义。比如文字、图片、图像、音频、视频等都是数据。
数据除了表现形式外,还有语义,例如:
在这里插入图片描述
如上图所示,一个数值88,它既可以单纯表示一个值,也可以表示为一个部门的人数或者是一门考试的成绩、一个人的体重等等。因此对于一个数据我们要以多方面来看待它。

记录

数据在我们数据库的储存中不是离散的,而是有组织的、统一的。记录是在计算机中表示和存储数据的一种格式或一种方法。我们可以用一组数据来描述一个人员的具体信息,这一组数据在数据库中被称为一条记录。例如:
在这里插入图片描述
我们用一组数据来描述一位学生的信息,例如姓名、性别、籍贯、出生年月、以及年级等信息,这么一组数据存入我们的数据库中被称为一条记录。

数据库(database db)

所谓数据库指的是大量数据的集合,数据库是存放我们数据的一个容器。它有以下特点:

永久存储 提供数据长期存储的一个机制,能够在数据出现故障时能够对数据进行恢复,来保证数据的完整。
有组织 按一定的数据模型组织,描述和储存。按照模型存储可以让数据具有较小的冗余度,较高的数据独立型和易扩展性
可共享 为各种用户共享使用,而不是某个用户所专有,例如一个学生信息数据库可以被学生进行写入,也可以被老师和家张进行读取,可共享给各种用户使用。

数据库管理系统(DBMS)

数据库管理系统是一个能够科学地组织和存储数据,高效地获取和维护数据的系统软件,是位于用户与操作系统之间的数据管理软件,是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,其主要功能包括:

数据定义功能 数据库管理系统提供数据定义语言(DDL),用户可以通过它可以方便地对数据库中的数据对象的组成与结构进行定义;
数据组织、存储和管理功能 数据库管理系统要分类组织、存储和管理数据,包括数据字典,用户数据、数据的存取路径等。要确定以何种文件结构和存取方式在存储上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法来提高存取效率
数据操纵功能 数据库系统管理系统还提供数据操纵语言(DML),用户可以使用它来操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等;
数据库的事务管理和运行管理 数据库在建立、运用和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
数据库的建立和维护功能 包括数据库初始数据的输入和转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常由一些使用程序或管理工具完成的。
与其他软件系统的通信功能 即与应用进行对接用来处理或者读取数据

市场上比较流行的数据库管理系统产品主要是Oracle、IBM、Microsoft和Sybase、Mysql等公司的产品

数据库系统(Database System, DBS)

数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。
在这里插入图片描述
其中蓝色方框为DBS的组成部分,而操作系统不属于DBS,DBS也是计算机的一个核心系统软件,与我们的操作系统同级,DBS在使用时会调用操作系统。

DB,DBS,DBMS的区别
DB:DataBase 也就是数据库。数据库是存储数据的集合,可以理解为多个数据表。
DBS:DataBase System 也就是数据库系统。它是更大的概念,包括数据库、数据库管理系统以及数据库管理人员 DBA。
DBMS:DataBase Management System 也就是数据库管理系统,它可以对多个数据库进行管理,可以理解为 DBMS = 多个数据库(DB) + 管理程序。

数据库的发展史

数据库的发展史经历了三个阶段:人工管理阶段、文件系统阶段以及数据库系统阶段。
在这里插入图片描述
其中人工管理阶段在20世纪50年代诞生,当时更多的是进行科学计算,并且没有直接的储存设备,因此数据都是有时效的,在需要时进行输入,计算完后就丢失。因为无法直接将数据进行储存,连计算结果也无法直接储存在设备中。没进行计算都要人为的进行输入,不同的应用或者说计算程序哪怕是相同的计算程序也要进行多次的输入,因为数据不共享。因此会产生大量的数据冗余,并且当时的计算机并没有操作系统,全部都是人员进行管理,数据需要应用程序自己设计,定义和管理,没有相应的软件系统负责数据管理工作。

而后20世纪6,70年代左右出现了文件系统,文件系统在人工管理阶段基础上使用了文件系统对数据进行管理,这时候出现了早期的储存设备,因此能够对数据进行计算储存和管理。文件仍然是面向应用的。不同的应用程序即便使用相同数据,也必须各自建立文件,所以相同数据重复存储,数据冗余度大,各自管理,容易产生数据不一致。

而后诞生了数据库系统,后续也诞生了各种大容量的储存设备,以及各类型数据库,数据共享可以被多个应用共享,可以减少数据冗余,节约存储空间,数据共享能够避免数据之间不相容和不一致性。数据不一致性指同一数据不同副本的值不一样,从文件系统到数据库系统标志着数据管理技术的飞跃。

数据库三个阶段的比较

在这里插入图片描述

数据库的发展特点

数据模型是数据库系统的核心和基础,所以数据库系统的发展和数据模型的发展密不可分。所以数据库模型的划分维度是数据库系统划分的一个重要标准。
根据不同的数据库模型例如层次、网状模型,关系型模型、面向对象模型等,数据库的发展也不同,同样的还会根据计算机相关技术的发展,应用领域的不同,都会发展出不同的数据库系统。
这里我们重点学习下层次、网状和关系型模型数据库的学习。

层次模型

在这里插入图片描述
层次模型的数据结构就是一棵树形结构,目前还在使用的层次模型的一个实际案例就是windows使用的注册表(Registry)
对于层次模型来说,有且只有一个节点没有双亲,该节点被称为根节点(root),这里的双亲指的是父节点,除了root外其他的节点有且只有一个双亲即一个父节点,这样的结构类型多用于企业部门结构。

网状模型

在这里插入图片描述
网状模型表示一种多对多的关系,这里E1表示一个实体,R1表示实体间的关系。在网状模型中允许一个以上节点无双亲即无父节点,例如E1,E2没有父节点,一个 节点可以有多个双亲即多个父节点,例如E3,E5有多个父节点。例如在现实中很多多对多关系,学生选择课程,老师授课等。

关系模型

在这里插入图片描述
关系模型常用二维表组成,这里的一行表示一个元祖即一条记录,一列表示属性,且每一条记录都有一个码或者说键值来唯一标识一条记录。关系模式: 关系名(属性1,属性2,属性3,……,属性n)在图中表示为学生(学号,姓名,年龄,性别)。关系模型建立在严格的数据概念基础上,关系必须是规范化的,关系的分量必须是一个不可分的数据项。

层次模型、网状模型、关系模型的对比

在这里插入图片描述

结构化查询语言 - Structured Query Language(SQL)

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。对于用户来说使用SQL语言只需要指定‘干什么’,而不需要说明‘怎么干’,不要求用户指定数据存放方法;不需要用户了解具体数据存放方式;底层结构完全不同的各种关系型数据库系统可以使用相同的SQL语言作为数据操作和管理的接口。

SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)

DDL语言 用作创建数据库CREATE DATABASE、创建表CREATE TABLE等。
DML语言 指的是数据的增删查改等语言。
DCL语言 指的是数据库控制语言。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
TCL语言 事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。TCL事务控制语言用来控制一个事务运行

关系型数据库产品

在这里插入图片描述
在这里插入图片描述
Oracle,美国甲骨文公司, 世界上最热门的关系数据库之一
在这里插入图片描述
美国IBM公司产品,1983年发布的DB2智能在MVS系统(IBM公司80年代一种大型主机操作系统)上使用,IBM公司主推的关系数据库产品,一致为IBM的大型机和小型机服务
在这里插入图片描述
1996年内部版本1.0发布,10月MySQL 3.11.1发布。可以免费商用,现被ORACLE收购,属于ORACLE旗下产品之一。
在这里插入图片描述
SQL Server 是Microsoft 公司推出的关系型数据库管理系统。

大数据环境下数据管理技术面临的挑战

IBM公司提出了大数据的4V特征:
在这里插入图片描述

数量 即数据量,随着时代进步,数据的产生量也跟着翻了几番,从TB级上升到了PB级别
多样性 数据类型繁多,格式化数据,还包括互联网的网络日志,视频,图片,地理位置信息等, 半结构化数据,非结构化数据;
速度 许多应用场景需要高速的数据处理速度
真实性 追求高质量数据。 海量数据中有价值的数据要挖掘出来,数据里面存在大量的噪音,低价值数据。 数据价值密度低。需要挖掘出高价值信息。

而面对大数据的4V特征,数据管理技术该如何应对?应对措施就是NoSQL数据库,即非关系型数据库。

NoSQL

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
NoSQL有如下优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

主要的NoSQL产品
在这里插入图片描述
NoSQL并不是为了取代RDBMS(关系型数据库管理系统),优势显著,缺点也较为明显,NoSQL与RDBMS一起构建完整的数据生态系统。

NewSQL

指追求NoSQL的可扩展性同时能够支持关系模型(包括ACID特性)的关系型数据库系统,主要面向OLTP场景。能够支持SQL作为主要的使用语言。
On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!