1. 什么是数据库操作系统
之前总听人家说什么 MySQL 数据库、SQL Server 数据库、Oracle 数据库等等。我在想,数据库都有那么多种,他们有什么区别呢?哪个数据库更好呢?我以后该学哪种呢?相信很多没入门或者正要入门的小伙伴们都会有这样的疑问。
现在我终于知道了,我把自己给误导了! MySQL、SQL Server、Oracle 等都是一个数据库管理系统(Database Management System,DBMS),它们都是负责实施对数据库的统一管理和控制,比如数据组织、数据操纵、数据维护、数据控制及保护和数据服务等。
DBMS 是一种建立在操作系统之上的一个大型软件系统(就像 windows 系统上的 office 一样,是一个软件)。我们并不能直接像访问和操作 Excel 工作表一样直接访问和操作数据库文件,而是需要通过使用 DBMS,让它替我们访问和操纵数据库。
MySql、SQL Server、Oracle 等 DBMS 都是使用 SQL 语言的,但任意两种DBMS 实现的 SQL 都不完全相同,也就是说 DBMS 之间的语句不是完全可移植的。即使是这样,我们也不必太过担心,它们使用的都是 SQL 语言,我们只要花一点点时间来适应某个 DBMS 的特点就可以了。
2 DBMS有什么功能
无论是哪种 DBMS, 它们都可以实现下面这些功能。
2.1 数据定义
SQL 语言中包含有数据定义语言(Data Definition Language,DDL),用以定义数据库及其组成元素的结构。
DDL 供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL 主要用于建立、修改数据库的库结构。
DDL 所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典(Data Dictionary)中。
2.2 数据操纵
SQL 语言中包含有数据操纵语言(Data Manipulation Language,DML),可以操纵数据库中的数据,对数据进行插入、修改、删除、查询、统计和排序等操作。
数据操纵语言通常又分为两类:一类是嵌入主语言,由于这种语言本身不能独立使用,故称为宿主型的语言;另一类是交互式命令语言,由于这种语言本身能独立使用,故又称为自主型或自含型的语言。
2.3 数据控制
SQL 语言中包含有数据控制语言(Data Control Language,DCL),用来设置或更改数据库用户或角色权限。
比如在一个教务系统中,学生这个角色只能查询到自己的学科成绩,而不能查看别人的成绩,更不能录入或更改成绩。而教师这个角色可以增加,修改,或删除其学生的成绩。这里就有学生和教师两种权限。
2.4 运行管理
DBMS 提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。
2.5 数据组织与存取
DBMS 提供了在外围设备上数据的组织与存取方法。
2.6 数据库建立与维护
数据库建立是指数据的载入、转储、重组与恢复等。
数据库的维护是指数据库及其组成元素的结构修改、数据备份等。
2.7 数据库的传输。
DBMS 提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
3 DBMS的代表
虽然我也才刚刚入门,只装了一个 SQL Server 2012,没有使用过其它的DBMS。但我在网上和书上了解过一些主流的DBMS,在这里写出来,希望对还没有来得及上网或看书了解DBMS的初学者一些帮助。
3.1 Microsoft SQL Server
Microsoft SQL Server 是微软公司开发的基于关系型数据库的DBMS。SQL Server 2012 可以满足不同用户对数据的敢为和应用需求,包括支持来自于不同网络环境的数据交换、自动化分析、与计算。
它的一些优点如下:
- 真正的客户机/服务器体系结构
- 图形化的用户界面,使系统管理和数据库管理更加直观、简单
- 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
- 与 WinNT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等,SQL Server 也可以很好地与 Microsoft BackOffice 产品集成。
- 有很好的伸缩性,可以跨平台使用。
- 提供数据仓库功能,这个功能只在 Oracle 和其他昂贵的 DBMS 中才有。
3.2 MySQL
MySQL 是最受欢迎的开源DBMS 之一,它由 MySQL AB 公司开发、发布和支持,以简单易用、免费等特点而得到广泛的应用。
它的主要特点如下:
- MySQL 具有 DBMS 的全部基本功能。例如,提供数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,支持 SQL 语句的直接执行。
- MySQL 是免费的,任何人都可以免费使用。
- MySQL 是开放源代码的,任何人只要遵守GPL (General Public License,通用性公开许可证)的规则都可以使用和修改MySQL的源代码。
- MySQL 为客户端提供了不同的程序接口和链接库,如 C、C++、java、Perl、PHP。也提供了简单的管理工具,如 MySQL Admin。
- MySQL 是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
3.3 Oracle
Oracle 数据库是以 SQL 为基础的大型DBMS,有美国Oracle公司推出,是最流行的 DBMS 之一。
它的主要特点如下:
- Oracle 自版本 7 以来引入共享SQL 和多线索服务器体系结构,减少了Oracle 的资源占用,增强了Oracle的能力,使之在抵挡软硬件上较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。
- Oracle 提供基于角色分工的安全保密管理,在数据库管理、完整性检索、安全性、一致性方面都有良好的表现。
- 支持大容量多媒体数据,如二进制图形、声音、动画以及多维数据结构。
- 具有分布式数据管理能力,可通过网格读写远程数据库中的数据。
- 提供与第三代高级语言的接口软件,能在 C 、C++ 等主语言中嵌入SQL语句及过程化语句,对数据库中的数据进行操纵。利用它的前台开发工具如 Power Build 、 SQL * Forms,可以快速地开发基于客户端地应用程序,并具有良好的移植性。
Oracle 主要适用于大中型系统。