数据库简介
文件存储
对数据的存储需求一直存在。保存数据的方式,经历了手工管理、文件管理等阶段,直至数据库管理阶段。
文件存储方式保存数据的弊端:
- 缺乏对数据的整体管理,数据不便修改;
- 不利于数据分析和共享;
- 数据量急剧增长,大量数据不可能长期保存在文件中。
数据库应运而生,是人们存放数据、访问数据、操作数据的存储仓库。
DB和DBMS
数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。
数据库管理系统(Database Management System,简称DBMS):管理数据库的软件。
数据库建立了数据之间的联系,使用结构化的方式组织和处理数据,能够统一、集中及独立的管理数据,使数据的存取独立于使用数据的程序,实现了数据共享。
数据库的典型特征包括:数据的结构化,数据间的共享,减少数据的冗余度,以及数据的独立性。
数据库成为数据的知识仓库,并对这些数据的存储、访问、安全、数据一致性、并发操作及备份恢复负责。
关系数据库简介
关系是一个数学概念,描述两个元素间的关联或对应关系。所以关系型数据库,即是使用关系模型把数据组织到数据表(Table)中。现实世界可以用数据来描述。
主流数据库产品:
Oracle(Oracle)
DB2(IBM)
SQL Server(MS)
MySQL(Oracle)
表的概念
在关系数据库中,数据被存放于二维数据表(Table)中。
一个关系数据库由多个数据表组成,数据表是关系数据库的基本存储结构,由行和列组成,行(Row)也就是横排数据,也经常被称作记录(Record),列(Column)就是纵列数据,也被称作字段(Field)。表和表之间是存在关联关系的。
主流关系型数据库
Oracle数据库概述
Oracle是当今著名的Oracle(甲骨文)公司的数据库产品,它是世界上第一个商品化的关系型数据库管理系统,也是第一个推出和数据库结合的第四代语言开发工具的数据库产品。
Oracle采用标准的SQL结构化查询语言,支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX、WINDOWS、OS/2等多种平台。Oracle公司的软件产品丰富,包括Oracle服务器产品,Oracle开发工具和Oracle应用软件。其中最著名的就是Oracle数据库,目前最新的版本是Oracle 12c。
DB2数据库概述
DB2是IBM的关系型数据库管理系统,DB2有很多不同的版本,可以运行在从掌上产品到大型机不同的终端机器上。DB2 Universal Database Personal Edition和DB2 Universal Database Workgroup Edition分别是为OS/2和Windows系统的单用户和多用户提供的数据库管理系统。
DB2在高端数据库的主要竞争对手是Oracle。
Sybase数据库
Sybase是美国Sybase公司研制的一种关系型数据库系统,是较早采用C/S技术的数据库厂商,是一种典型的UNIX或Windows NT平台上客户机/服务器环境下的大型数据库系统。 Sybase通常与Sybase SQL Anywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在国内大中型系统中具有广泛的应用。
SYBASE主要有三种版本,一是UNIX操作系统下运行的版本,二是Novell Netware环境下运行的版本,三是Windows NT环境下运行的版本。对UNIX操作系统目前广泛应用的为SYBASE 10 及SYABSE 11 for SCO UNIX。
2010年Sybase被SAP收购。
SQL Server数据库概述
Microsoft SQL Server是运行在Windows NT服务器上,支持C/S结构的数据库管理系统。它采用标准SQL语言,微软公司对它进行了部分扩充而成为事务SQL(Transact-SQL)。
SQL Server最早是微软为了要和IBM竞争时,与Sybase合作所产生的,其最早的发展者是Sybase,和Sybase数据库完全兼容。在与Sybase终止合作关系后,微软自主开发出SQL Server 6.0版,往后的SQL Server即均由微软自行研发。最新的版本是SQL Server 2012,上一版本是2008。
Microsoft SQL Server几个初始版本适用于中小企业的数据库管理,但是后来它的应用范围有所扩展,已经触及到大型、跨国企业的数据库管理。
MySQL数据库概述
MySQL是一个开放源码的小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。
与其它的大型数据库例如Oracle、IBM DB2等相比,MySQL自有它的不足之处,如规模小、功能有限等,但对于一般个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2008年1月16日,Sun正式收购MySQL。2009年4月20日,SUN被Oracle公司收购。目前的最新版本是MySQL5.7。
SQL概述
结构化查询语言
SQL(Structured Query Language) 是结构化查询语言的缩写。
SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据,所有数据库都使用相同或者相似的语言。
SQL可分为:
数据定义语言(DDL) : Data Definition Language
数据操纵语言(DML) : Data Manipulation Language
事务控制语言(TCL) : Transaction Control Language
数据查询语言(DQL) : Data Query Language
数据控制语言(DCL) : Data Control Language
执行SQL语句时,用户只需要知道其逻辑含义,而不需要知道SQL语句的具体执行步骤。
数据定义语言(DDL)
用于建立、修改、删除数据库对象,包括创建语句(CREATE)、修改语句(ALTER)、删除语句(DROP),比如使用CREATE TABLE创建表,使用ALTER TABLE修改表,使用DROPTABLE删除表等动作。这类语言不需要事务的参与,自动提交。
数据操作语言(DML)
用于改变数据库数据,包括INSERT、UPDATE、DELETE三条语句。其中,INSERT语句用于将数据插入到数据库中,UPDATE语句用于更新数据库中已存在的数据,DELETE用于删除数据库中已存在的数据。DML语言和事务是相关的,执行完DML操作后必须经过事务控制语句提交后才真正的将改变应用到数据库中。
事务控制语言(TCL)
用来维护数据一致性的语句,包括提交(COMMIT)、回滚(ROLLBACK)、保存点(SAVEPOINT)三条语句,其中COMMIT用来确认已经进行的数据库改变, ROLLBACK语句用来取消已经进行的数据库改变,当执行DML操作后(也就是上面说的增加、修改、删除等动作),可以使用COMMIT语句来确认这种改变,或者使用ROLLBACK取消这种改变。SAVEPOINT语句用来设置保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变。
数据查询语言(DQL)
用来查询所需要的数据。使用最广泛,语法灵活复杂。
数据控制语言(DCL)
用于执行权限的授予和收回操作、创建用户等,包括授予(GRANT)语句,收回(REVOKE)语句,CREATE USER语句,其中GRANT用于给用户或角色授予权限, REVOKE用于收回用户或角色已有的权限。DCL语句也不需要事务的参与,是自动提交的。
感觉一篇不错的文章
[从关系型数据库到非关系型数据库](http://blog.csdn.net/robinjwong/article/details/18502195)