Oracle之关系型数据库
什么是关系型数据库?
(1)关系型数据库是依据关系模型来创建的数据库。
(2)所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
(3)关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)。
(4)关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库。
(5)关系模型包括数据结构(数据存储的问题,二维表)、操作指令集合(SQL语句)、完整性约束(表内数据约束、表与表之间的约束)。
常见的关系型数据库:
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL
关系型数据库的特点:
安全(因为存储在磁盘中,不会说突然断电数据就没有了)。
容易理解(建立在关系模型上)。
但不节省空间(因为建立在关系模型上,就要遵循某些规则,好比数据中某字段值即使为空仍要分配空间)。
现在已经存在了很多优秀的商业数据库,如甲骨文(Oracle)公司的 Oracle 数据库、IBM 公司的 DB2 数据库、微软公司的 SQL Server 数据库和 Access 数据库。同时,还有很多优秀的开源数据库,如 MySQL 数据库,PostgreSQL 数据库等。下面介绍这些常见的数据库。
Oracle数据库
Oracle Database,又名Oracle RDBMS,或简称Oracle。Oracle 是甲骨文公司的一款关系型数据库管理系统,在数据库领域一直处于领先地位的产品,是目前世界上流行的关系型数据库之一,是一种高效率、可靠性好、适应高吞吐量的数据库方案。
优点:
(1)Oracle 可移植性好,能在所有主流平台上运行(包括 Windows),完全支持所有工业标准。采用完全开放策略,使客户可以选择最适合解决方案。以及对开发商的全力支持。
(2)获得最高认证级别的 ISO 标准认证,安全性高。
(3)与其它数据库相比,Oracle 性能最高。保持着开放平台下 TPC-D 和 TPC-C 世界记录。
(4)多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客户连接 。
(5)完全向下兼容,因此被广泛应用,且风险低 。
缺点:
(1)对硬件的要求高。
(2)价格比较昂贵。
(3)管理维护麻烦。
(4)操作比较复杂。
使用场景
大部分企事业单位都用oracle,在电信行业占用最大的份额。
SQL Server
美国Microsoft公司推出的一种关系型数据库管理系统。SQL Server是一个可扩展的、高性能的、为分布式客户机(处理应用程序、请求服务的计算机)/服务器(处理数据库的计算机)计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。主要应用于大型的管理系统中
优点:
(1)与微软的 Windows 系列操作系统的兼容性很好。
(2)高性能设计,可充分利用 WindowsNT 的优势。
(3)系统管理先进,支持 Windows 图形化管理工具,支持本地和远程的系统管理和配置。
(4)强壮的事务处理功能,采用各种方法保证数据的完整性。
(5)支持对称多处理器结构、存储过程、ODBC,并具有自主的 SQL 语言。
缺点:
(1)SQL Server 只能在 Windows 系统上运行,没有丝毫开放性。
(2)没有获得任何安全证书。
(3)多用户时性能不佳 。
(4)只支持 C/S 模式,SQL Server C/S 结构只支持 Windows 客户用 ADO、DAO、OLEDB、ODBC 连接。
使用场景:
主机操作系统为window,主要用于web网站的建设,承载中小型web后台数据。在租赁的虚拟主机中一般会预安装SQL Server作为数据库软件。
MySQL
MySQL 是一种开放源代码的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。因为其速度、可靠性和适应性而备受关注。MySQL 是流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的应用软件之一。
优点:
(1)性能卓越服务稳定,很少出现异常宕机
(2)开放源代码且无版权制约,自主性强、使用成本低。
(3)历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。
(4)软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
(5)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;
(6)提供多种 API 接口,支持C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等多种开发语言。
(7)MySQL使用标准的SQL数据语言形式;
(8)Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
(9)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
缺点:
(1)MySQL 最大的缺点是其安全系统,主要是复杂而非标准,只有调用 mysqladmin 来重读用户权限才会发生改变。
(2)MySQL 不允许调试存储过程,开发和维护存储过程很难。
(3)MySQL 不支持热备份。
(4)MySQL 的价格随平台和安装方式变化。
使用场景:
广泛地应用在Internet上的中小型网站中
LAMP(Linux+Apache+Mysql+Php)
mysql的优势在于免费,如果业务系统数据库不是极其庞大,可用mysql
Microsoft Access
Access 是由 Microsoft(微软)发布的小型关系数据库管理系统,是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。
优点:
(1)存储方式简单,易于维护管理。Access 的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb 或 .accdb)的数据库文件中,便于用户的操作和管理。
(2)Access 是一个面向对象的开发工具,这种基于面向对象的开发方式,使得开发应用程序更为简便。
(3)界面友好、易操作。Access 是一个可视化工具,风格与 Windows 完全一样,用户想要生成对象应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
(4)集成环境,可以处理多种数据信息。Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
(5)支持广泛,易于扩展,弹性大。Access 是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发。即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。
缺点:
(1)不支持并发处理。
(2)数据库存储量小安全性不够高。
(3)Access 是小型数据库,当数据量过大时,一般百M以上(纯数据,不包括窗体、报表等客户端对象)性能会变差。
(4)虽然理论上支持 255 个并发用户,但实际上根本支持不了那么多,如果以只读方式访问大概在 100 个用户左右,而如果是并发编辑,则大概在10-20个用户。
(5)单表记录数过百万时,性能就会变得较差,如果加上设计不良,这个限度还要降低。
(6)不能编译成可执行文件(.exe),必须要安装 Access 运行环境才能使用。
使用场景:
适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。
DB2
DB2 是美国 IBM 公司开发的一款支持多媒体、Web 的关系型数据库管理系统。主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。
优点:
(1)相比较 MySQL 和 Oracle 两种数据库来说,DB2 提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模地应用程序执行能力,具有与平台无关的基本功能和 SQL 命令。
(2)DB2 采用了数据分级技术,能够使大型数据很方便的下载到数据库服务器,使数据库本地化和远程连接透明化。
(3)拥有非常完备的查询优化器,改善了查询性能,并支持多任务并行查询。
(4)具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统更加使用。
(5)DB2 可跨平台使用,多层结构,支持ODBC,JDBC等客户。
(6)操作简单,同时提供GUI和命令行,在WindowsNT和unix下操作相同。
缺点:
(1)配置文件和参数多,且命名不规范。
(2)一些 DB2 产品开发不方便。
(3)和 Oracle 相比,命令多,且没 Oracle 统一规范的好。
(4)由于其设计框架的问题,如果用户对数据库的本身优化和应用程序优化做的不足,那么 DB2 容易出现锁等待现象。
使用场景:
在巨型企业得到广泛的应用,向下兼容性好。风险小。
PostgreSQL
PostgreSQL 是一款富有特色的自由数据库管理系统,甚至可以说是最强大的自由软件数据库管理系统。该数据库管理系统支持了目前世界上最丰富的数据类型。是自由软件数据库管理系统中唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的自由软件。
优点:
(1)PostgreSQL 遵循的是 BSD 协议,是一个完全开源、免费、同时非常强大的关系型数据库。
(2)与 PostgreSQL 配合的有很多分布式集群软件,如 pgpool、pgcluster、slony、plploxy 等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这些 MySQL 则比较难实现。
(3)PostgreSQL 源代码写的很清晰,易读性比 MySQL 强,所以很多公司基本都是以 PostgreSQL 做二次开发的。
(4)PostgreSQL 是多进程的,而 MySQL 是多线程的。并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL 的总体处理性能不如 PostgreSQL,原因是 MySQL 的线程无法充分利用 CPU 的能力。
(5)PostgreSQL 有很强大的查询优化器,支持很复杂的查询处理。
缺点:
(1)对于简单而繁重的读取操作,相比较其它数据库来说,PostgreSQL 性能较低。
(2)PostgreSQL 数据库扩容花费时间很长。
使用场景:
(1)企业数据库
如 ERP、交易系统、财务系统涉及资金、客户等信息,数据不能丢失且业务逻辑复杂,选择 PostgreSQL 作为数据底层存储,一是可以帮助您在数据一致性前提下提供高可用性,二是可以用简单的编程实现复杂的业务逻辑。
(2)含 LBS 的应用
大型游戏、O2O 等应用需要支持世界地图、附近的商家,两个点的距离等能力,PostGIS 增加了对地理对象的支持,允许您以 SQL 运行位置查询,而不需要复杂的编码,帮助您更轻松理顺逻辑,更便捷的实现 LBS,提高用户粘性。
(3)数据仓库和大数据
PostgreSQL 更多数据类型和强大的计算能力,能够帮助您更简单搭建数据库仓库或大数据分析平台,为企业运营加分。
(4)建站或 App
PostgreSQL 良好的性能和强大的功能,可以有效的提高网站性能,降低开发难度。
Oracle之关系型数据库的更多相关文章
- [DB] 关系型数据库
名词 数据库(database):保存有组织的数据的容器,是通过DBMS创建的容器 表(table):某种特定类型数据的结构化清单 元组(tuple):行,一条数据库记录,对应一个事物 属性(prop ...
- 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型1970年提出的,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型. 简单来说,关系模型指的 ...
- 关系和非关系型数据库区别(以及oracle和mysql的区别)
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐 ...
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出的,在之后的几十年中,关系模型的概念得到了充分的发展并逐 ...
- [Oracle] 关系型数据库排序算法和数据结构以及关联查询
关系型数据库排序算法和数据结构以及关联查询 1. Merge sort 理解merge sort算法将有助于更好地理解数据库join操作 - merge join 算法逻辑 将2个有序的大小为N/2的 ...
- 非关系型数据库(NoSql)
最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...
- 关系型数据库与NoSQL数据库
关系型数据库的优缺点 优点: 可以做事务处理,从而保证了数据的一致性: 可以进行JOIN等多表查询: 由于以SQL标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处). 缺点: 大量数据的写 ...
- SQLite vs MySQL vs PostgreSQL:关系型数据库比较
自1970年埃德加·科德提出关系模型之后,关系型数据库便开始出现,经过了40多年的演化,如今的关系型数据库种类繁多,功能强大,使用广泛.面对如此之多的关系型数据库,我们应该如何权衡找出适合自己应用场景 ...
- 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库
都说Hibernate框架的使用可以很容易的让你的研发平台支持多种不同类型的数据库,但实践表明,这里的“容易”,是相对的. 想让研发平台支持多种数据库,并不是一件简单的事,也可以这么说:并不是只要使用 ...
随机推荐
- gin框架中中间件的编写与使用
概念 一个完整的系统可能包括鉴权认证.权限管理.安全检查.日志记录等多维度的系统支持. 中间件位与服务器和实际业务处理程序之间,其含义就相当于在请求和具体的业务处理逻辑之间增加某些操作,这种以额外增加 ...
- Go 面向对象之结构体
#### Go 面向对象之结构体最近有四天没更新公众号,有一些事情耽误了,生活就是这样,总会一些事情让人措不及防; ***山浓水浅,坐看流年***1. Go 也支持面向对象编程(OOP) 但是它和传统 ...
- mysql的innodb缓存使用率统计
show 方式去查看: show status like '%innodb_buffer_pool_pages%'; 计算方式: (total-free)/total * %100: sql方式查看: ...
- Redis学习笔记(二)redis 底层数据结构
在上一节提到的图中,我们知道,可以通过 redisObject 对象的 type 和 encoding 属性.可以决定Redis 主要的底层数据结构:SDS.QuickList.ZipList.Has ...
- HBuilderX频繁关闭,导致启动不了?
根据官方给出的指南(http://ask.dcloud.net.cn/article/35583),在我的电脑打开%appdata%下面的会有HBuilderX目录,把这个目录删除或改名就可以启动了:
- Uwl.Admin.Core开源框架(三) 使用RabbitMQ
Uwl.Admin.Core中使用RabbitMQ消息队列: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Reposito ...
- js中数组的添加和移除
1.引入js文件 <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>2.HTML中代 ...
- CSS 3D的魅力
用户1093975发表于Web项目聚集地订阅 151 在这篇文章中: 前言: demo1 demo2 结语: 本文介绍了CSS来实现3D效果,并且有详细代码和解释.建议大家只字不差的阅读.本文的作者是 ...
- K8s二进制部署单节点 master组件 node组件 ——头悬梁
K8s二进制部署单节点 master组件 node组件 --头悬梁 1.master组件部署 2.node 组件部署 k8s集群搭建: etcd集群 flannel网络插件 搭建maste ...
- Nginx的优化与防盗链
Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...