开发者学堂课程【嵌入式之RFID开发与应用2020版:数据库模型及常用数据库介绍】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/665/detail/11222
数据库模型及常用数据库介绍
常用数据库介绍
本节课讲解数据库的模型,数据库系统会根据数据模型对数据进行存储和管理,主要满足以下三方面要求。
1. 能够比较真实的模拟现实的世界
2. 容易被人们所理解
3. 容易在计算机上去实现
所以数据结构,数据操作和数据的完整性约束,是构成数据模型的三要素,数据结构较易理解,包括操作基本的增删改查。完整性约束是指防止录入一些不合规则的数据。
有一个程序员屡次被罚款,是因为在车牌号之前写了一条SQL插入语句,最后监控拍摄到该语句之后,就将其转化成了插入语句,语句背后带有攻击性,会导致官方数据库遭受到攻击。所以对于整个数据的完整性约束也很重要。
说明,官方数据库本身存在漏洞。在用户对数据进行插入修改删除等操作时,数据库管理系统能够按照一定的约束条件对数据进行规范,如果不符合要求,就不允许插入到数据库当中,从而确保了数据库当中的数据正确、有效以及相容性。
对于数据模型,主要有以下3种:
1. 层次模型
2. 网状模型
3. 关系模型
层次模型类似于linux系统的文件目录管理:
有根结点、子节点、叶节点或普通节点,对于一个层次模型来说。只有一个节点,无父节点,也就是根节点,没有父节点,其他节点都有父节点,其他节点不仅都有父节点,而且只有一个父节点,但一个父节点可以有多个子节点,多个子节点被称为普通节点或叶节点,同一个父节点的子节点被称为兄弟节点。如果该节点不再有子节点,该节点就作为叶节点。
在现实世界当中,有许多数据关系,都是该层次关系。层次关系在实际应用当中出现最少,是最早被研发出来的。IBM研发的叫IMS的数据库,就是基于该层次关系。
该层次关系应用也较为广泛。例如,一个公司或单位的人员管理就具备该层次关系,包括教学楼、办公楼的管理也符合该要求,包括图书馆的管理。一切具有等级划分特征的都可以应用层次模型进行数据管理,该层次模型主要表达的是树形结构。如果针对非树形结构的模型表达并不直观,非树形结构类似于较为复杂的节点,例如父节点等多对多的关系,此时就需要使用网状模型。网状模型比层次模型更复杂,特点是允许一个以上的节点没有父节点,树结构只有一个节点没有父节点,其他节点都有父节点,而且一个节点可以有多个父节点,如图所示:
网状模型的出现并不晚,其主要特点是实现数据的共享,减少了数据的冗余,提升了数据的效率。例如在大学当中上学时,一个学生可以选择多门课程,同时这一门课程可以被多个学生所选择,也就是多对多的关系,包括全国的交通网络,如果以一个城市作为节点,各个城市所构成的关系也是网状关系。
数据库在早期时候的标准,例如美国的BBG标准就是专门实现网状模型。除了该模型以外,还有以时间序列为关系,以时间轴为关系的模型,称为时序模型。在物联网后期会重点使用该模型。以时序为模型的数据库就是时序数据库。
例如TS DB,就是一种时序数据库。国产的一个数据库,是国内的团队所创作,专门应用在物联网当中,体积小,兼顾了各种数据库的特征,尤其是时序数据库的特征,创建了一个属于自己的数据库。最后是关系型数据库:
简单来说就是一张表,平时在办公时经常使用Excel电子表格,电子表格是提供给普通大众使用的一种关系模型。
对于数据库来说,主要是服务于软件,间接服务于用户,所以与用户之间隔着一套软件,电子表直接面向用户。对于关系模型,每一列是一个属性,每一行是一个成员,所以每一列的类型都必须相同,但列的顺序可以是任意的,行的顺序也可以是任意的。表中的分量不可以再分割,也就是最小数据项。
不允许再有子表,表示一个最小的元素。关系型数据库采用关系模型作为数据的组织方式,严格遵守数学理论,使用简单灵活,而且数据的独立性很强,被公认为目前最有前途的数据库管理系统,是目前占据主导地位的数据库管理系统。自从80年代以来,作为商业化推出的数据库几乎都是关系型数据库。 Oracle、 MySQL 、Access 、SQLite都属于关系型数据库。
1、ORACLE:
ORACLE是甲骨文公司开发的一款数据库,是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL语言作为它的数据库语言。
2、MySQL:
MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,92HeZu网免费赠送MySQL。目前MySQL被广泛地应用在Internet上的中小型网站.提供由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
3、SQL server:
真正的客户机/服务器体系结构。微软 Microsoft出品的- -款数据库软件图形化用户界面,使系统管理和数据库管理更加直观/简单具有很好的伸缩性,可跨越从运行Windows95/98型电脑到运行Windows2000的大型多处理器等多种平台使用。
4、Access:
Access是由微软发布的关系数据库管理系统。它结合了MicrosoftJet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高.但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
5、Sybase:
sybase公司1987年推出了Sybase数据库产品Sybase主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是WindowsNT环境下运行的版本。
首先,常用的数据库是Oracle。主要适用于大型计算机服务器和中型和微型也可以使用。遵守SQL语言的标准结构是商业的。
第二是MySQL是一个开源的小型数据库。公司开发的,如果公司有成本考虑,可以考虑MySQL,可以降低成本,体积较小,速度较快,而且开放源码。所以小型服务器小型网站可以选择该数据库。
第三是SQL Server, SQL Server是来自于微软的数据库,是基于code服务器的数据库。Windows的各个系统都支持,主要用于Windows平台。
第四是access。Access是由微软发布的关系数据库管理系统结合了Microsoft Jet database Engine和图形用户界面两项特点。主要用于单机的数据库,因为不适合太多人访问,数据量太大,容易出现系统问题。
第五是sybase,sybase本身是一个公司。在1987年推出了sybase数据库产品,也有多个版本。
windowsnt也是当时在工作站服务器里面用的较多的网络操作系统, sybase的特点如下:
1. 基于客户/服务器体系结构的数据库。
2. 它是真正开放的数据库,容易移植。
3. 它是一种高性能的数据库。
是真正的开放数据库,较容易移植,而且性能较高,以上是市面上比较主流的数据库软件。