数据库概述
常见的数据库介绍
Oracle
Oracle 是甲骨文公司的一款关系型数据库管理系统,在数据库领域一直处于领先的地位,是目前世界上流行的关系型数据库之一,是一种高效率、可靠性好、适应高吞吐量的数据库方案。
优点:
1.Oracle 可移植性好,能在所有主流平台上运行(包括 Windows),完全支持所有工业标准。采用完全开放策略,使客户可以选择最适合解决方案,以及对开发商的全力支持
2.获得最高认证级别的 ISO 标准认证,安全性高
3.与其它数据库相比,Oracle 性能最高,保持着开放平台下 TPC-D 和 TPC-C 世界记录
4.多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客户连接
5.完全向下兼容[1],因此被广泛应用,且风险低
缺点:
1.对硬件的要求高
2.价格比较昂贵
3.管理维护麻烦
4.操作比较复杂
SQL Server
SQL Server 是 Microsoft(微软)公司推出的关系型数据库管理系统,主要应用于大型的管理系统中。
优点:
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 连接
MySQL
MySQL 是一种开放源代码的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。因为其速度、可靠性和适应性而备受关注。MySQL 是流行的关系型数据库管理系统之一。
优点:
1.性能卓越服务稳定,很少出现异常宕机
2.开放源代码且无版权制约,自主性强、使用成本低
3.历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助
4.软件体积小,安装使用简单,并且易于维护,安装及维护成本低
5.支持多种操作系统,提供多种 API 接口,支持多种开发语言
缺点:
1.最大的缺点是其安全系统,主要是复杂而非标准,只有调用 mysqladmin 来重读用户权限才会发生改变
2.不允许调试存储过程,开发和维护存储过程很难
3.不支持热备份
4.价格随平台和安装方式变化
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 可跨平台使用
缺点:
1.配置文件和参数多,且命名不规范
2.一些 DB2 产品开发不方便
3.和 Oracle 相比,命令多,且没 Oracle 统一规范的好
4.由于其设计框架的问题,如果用户对数据库的本身优化和应用程序优化做的不足,那么 DB2 容易出现锁等待现象
PostgreSQL
PostgreSQL 是一款富有特色的自由数据库管理系统,甚至可以说是最强大的自由软件数据库管理系统。该数据库管理系统支持了目前世界上最丰富的数据类型。是自由软件数据库管理系统中唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的自由软件。
优点:
1.PostgreSQL 遵循的是 BSD 协议[2],是一个完全开源、免费、同时非常强大的关系型数据库
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 数据库扩容花费时间很长
对 MySQL 历史、特点的理解
历史:
① MySQL 是一个关系型数据库管理系统,有瑞典的 MySQL AB 公司 1995 年开发;
② 2008 年,MySQL 被 SUN 公司收购;
③ 2009 年,Oracle 收购 SUN 公司,所以现在的 MySQL 也属于 Oracle 公司;
④ 2016 年,MySQL 8.0.0 版本推出;
特点:
① 开源的关系型数据库;
② 支持千万级别数据量的存储,大型数据库;
DB、DBMS、SQL 的理解
DB(Database):数据库 [ 即存储数据的"仓库",其本质是一个文件系统,它保存了一系列有组织的数据 ]
DBMS(Database Management System):数据库管理系统 [ 它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和 控制。用户通过数据库管理系统访问数据库中表内的数据 ]
SQL(Structured Query Language):结构化查询语言 [ 专门用来与数据库通信的语言 ]
非关系型数据库
键值型数据库:Redis
文档型数据库:MongoDB
搜索引擎数据库:ES(Elasticsearch)、Solr
列式数据库:Hbase
图形数据库:InfoGrid
表与表的记录之间存在哪些关联关系
一对一关系、一对多关系、多对多关系、自关联