数据库基础知识
定义:数据库就是按照数据结构来组织、管理数据仓库。
早期分类:分别为层次式数据库、网状数据库和关系型数据库
关系行数据库的由来:虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但是在数据库独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而关系型数据库就可以较好的解决这些问题。
关系数据库定义:把复杂的数据结构归结为简单的二元关系(即二维表格形式)。
数据库的3甲:Oracle、MySQL和SQL Server,也是常用的数据库,都是典型的关系型数据库。作为一个兴趣学习者,之后的笔记将学习其中一种,触类旁通。
3种数据库的介绍转自CSDN博主「柚子君.」的原创文章
原文链接:https://blog.csdn.net/gengkui9897/article/details/89294936
MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
1、定位:
开源、多平台、关系型数据库
目前使用最广泛、流行度最高的的开源数据库。
2、特点:
(1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据,有插件式存储引擎,支持多种存储引擎格式
(2)用编译安装的方式,或者二进制包的方式,按照“安装软件-创建实例-库表用户初始化”,可以很快完成数据库部署
(3)使用标准的SQL语句进行数据库管理,简单SQL语句的并发和性能较好,对视图、存储过程、函数、触发器等支持的不是太好
(4)在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有比较多的开源监控工具来监控和记录数据库的状态,比如zabbix,nagios,cacti,lepus等
(5)逻辑备份 mysqldump/mysqldumper ,物理备份 用xtrabackup等工具进行备份;
(6)MySQL高可用有多种方案,官方有基础的master-slave主从复制,新版本的innodb cluster,第三方的有MHA等高可用方案;
(7)MySQL水平拆分,可以通过水平拆分proxy中间进行逻辑映射和拆分,扩大MySQL数据库的并发能力和吞吐量。
3、适用场景:
默认的innodb存储引擎,支持高并发,简单的绝大部分OLTP场景;
Tokudb存储引擎,使用高并发insert的场景;
Inforbright存储引擎,可以进行列压缩和OLAP统计查询场景;
4、选择注意:
使用MySQL进行OLTP业务时,需要注意数据量级,如果数据量级过大,需要进行水平拆分;
如果有OLAP需求,可以结合其他架构综合考虑。
SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。
目前最新版本是SQL Server 2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。
1、定位:
商业、Windows平台、关系型数据库
最早接触、与微软体系结合紧密的的商业数据库,属于“微软技术体系”
2、特点:
(1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据
(2)在Windows平台,用图形界面进行软件安装;
使用:在Windows平台,使用SQL Server Mangement Studio图形界面进行安装;
(3)一般通过Windows资源管理和SQL server图形工具进行系统和数据库性能显示;
(4)通常用第三方备份恢复软件进行备份恢复;
高可用:通过共享存储和双机热备的方式,可以实现SQL Server数据库的高可用;
(5) SQL Server数据库集群采用共存存储的方式,通过硬件垂直升级来对数据库集群进行扩展;
3、适用场景:
大多数OLTP场景(与微软体系配合)
4、选择注意:
SQL Server与微软技术体系结合比较紧密,绝大多数工作,都是通过图形界面完成,对于习惯使用命令行的DBA可能会有不习惯;
SQL server对双引号,大小写,元信息的管理和处理方式,与其他数据库很不相同,需要注意;
使用SQL Server满足OLTP业务,会有比较好的效果,但对于大数据量的OLAP业务,最好还是选用专门的OLAP架构,不要在同一个SQL Server实例上混用OLTP和OLAP业务;
SQL server属于商业软件,需要注意版权和licence授权费用;
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
1、定位:
商业、多平台、关系型数据库
功能最强大、最复杂、市场占比最高的商业数据库
2、特点:
(1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据
(2)Oracle单实例数据库部署相对容易,但Oracle RAC集群环境,部署的步骤和依赖条件都比较多;
(3)通常使用命令行工具,进行各种数据库的管理,通常也可以用shell脚本和python脚本提高Oracle数据库管理效率;各种管理功能,都比较强大;
(4)Oracle官方有比较全面的监控工具,常用的第三方监控平台,如zabbix,cacti,lepus等都有对Oracle数据库的各项指标的完善监控;
(5)支持冷备份和热备份,可以用 exp/imp , expdp/impdp等进行逻辑备份和恢复,可以使用强大的RMAN工具进行专业的物理热备份和恢复;
(6)Oracle数据库的高可用架构,可以用第三方双机热备软件,结合Oracle单实例实现;可以使用Oracle Dataguard,实现master和standby的备份;可以使用 Oracle RAC集群实现实例级别的高可用和负载均衡,使用ASM实现存储级别的高可用;
(7)由于Oracle集群采用共享存储的方式,一般只能通过垂直硬件升级进行升级;
3、适用场景:
绝大多数OLTP场景,部分OLAP
4、选择注意:
Oracle从架构到运维,可以说是最难的数据库,学习和使用难度较高。