尚大教育-参考答案:D
【尚大教育-解析】:
知识域 |
信息化基础 |
一级知识点 |
应用集成技术 |
二级知识点 |
1.7.1 数据库与数据仓库技术 |
备注 |
理解数据仓库技术 |
考频分值 |
中分值:★ |
来源出处 |
高项教程第三版P30---1.3.7 |
书上原文:目前,常见的数据库管理系统主要有 Oracle、MySQL、SQLServer、MongoDB 等,这些数据库中,前三种均为关系型数据库,而 MongoDB 是非关系型的数据库。本节简单介绍这些数据库管理系统。
【知识扩展】
考点:计算机数据库常识题,送分题。
数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库可以分关系型数据库和非关系型数据库2大类。
【知识扩展:】数据库事务必须具备ACID特性。
(1)Atomic原子性:原子性是指一个事务是一个不可再分割的工作单位,事务中的操作要么都执行,要么都不执行。
举例:A给B进行微信转账,如果B的账户因为注销或者原因冻结了,那么操作失败,则本次交易失败,A和B的账户都不会进行修改。
(2)Consistency 一致性:一致性是指在执行一个事务前和后,数据库的完整性约束没有没有被破坏。也就是说事务不能破坏数据库的完整性以及业务逻辑的一致性。
举例:业务逻辑一致性:A给B微信转账,无论是否操作成功,两者的账户余额之和应该是不变的。
数据库完整性:数据库的约束关系应该是正确的,例如唯一索引,主键等。微信转帐后的的流水单号、交易单号应该都是唯一的。
(3)Isolation 隔离性:隔离性是指多个事务并发时,每个事务应该是隔离的,一个事务不应影响其他事务的运行效果。
举例:假设A给B进行微信转账、几乎同时A又给C微信转帐。那么A、B、C之间的都是相关独立的事务。互不干扰。
事务最复杂的问题都是由隔离性引起的,但是完全的隔离是不现实的。
以假设A给B进行微信转账、几乎同时A又给C微信转帐,那么A的转帐金额必须是大于等于给A与B之和,否则无法成功转帐。
Durability 持久性:持久性意味着事务执行完成后,该事务对数据库的更改便持久到了数据库中,这个更改是永久的。
举例:假设A给B进行微信转账,那么A的帐单与流水就永久记录在数据库里面了。
以下表为关系型数据库(SQL)与非关系型数据库(NoSQL)的特性、优缺点。
典型的数据库 |
特性 |
优点 |
缺点 |
关系型数据库 SQLite、 My sql Oracle、DB2、Postgre SQL、MS SQL Server、Access、浪潮K-DB |
1、关系型数据库,是指采用了关系模型来组织 数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型, 而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 |
1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解; 2、使用方便:通用的SQL语言使得操作关系型数据库非常方便; 3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率; 4、支持SQL,可用于复杂的查询。 |
1、为了维护一致性所付出的巨大代价就是其读写性能比较差; 2、固定的表结构; 3、高并发读写需求; 4、海量数据的高效率读写; |
非关系型数据库 MongoDb、redis、 HBase |
1、使用键值对存储数; 2、分布式; 3、一般不支持ACID特性; 4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 |
1、无需经过sql层的解析,读写性能很高; 2、基于键值对,数据没有耦合性,容易扩展; 3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 |
1、不提供sql支持,学习和使用成本较高; 2、无事务处理,附加功能bi和报表等支持也不好; |
常见的关系型数据库(SQL)软件有:
1)Oracle(中文甲骨文):是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站、银行、证券、电信等都选用了Oracle系统。
2)SQL Server(Structured Query Language Server) 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。
微软产品有:Microsoft SQL Server 2012、ACCESS、VFP 等。
3)My SQL:是一个小型关系型数据库管理系统,开发者为瑞典My SQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于My sql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
4)DB2:IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2.Windows等平台下。
5)SQLITE:文件数据库,多嵌入程序使用。SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库,同时它还支持事务处理功能等等。
6)PSQL:现在被称为 PostgreSQL的对象-关系型数据库管理系统(有一段时间被称为 Postgres95)是从伯克利写的 POSTGRES 软件包发展而来的。经过十几年的发展, PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定 义类型和函数), 并且可以获得非常广阔范围的(开发)语言绑定 (包括 C,C++,Java,perl,tcl,和 python)。
7)Informix:Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
常见的非关系型数据库(NoSQL)有:
No SQL(Not Only SQL),泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
1) Membase 是NoSQL家族的一个新的重量级成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,可以下载Beta版本的Linux二进制包。
2) MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似Json的Bjson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,还支持为数据建立索引。它的特点是高性能、易部署、易使用、存储数据非常方便。
各省软考办 | ||||||||||