数据库基础
数据库是由一批数据构成的有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互联系,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。
什么是数据库
数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。其种类大概有三种:层次式数据库、网络式数据库和关系式数据库。不同类的数据库按不同的数据结构来联系和组织。
对于数据库的概念,没有一个完全固定的定义,随着数据库历史的发展,定义的内容也有很大的差异,其中一种比较普遍的观点认为,数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统,即数据库包含两层含义:保存数据的“仓库”,以及数据管理的方法和技术。
数据库的特点包括,实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制能力。
表
在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行称为记录,是组织数据的单位;列被称为字段,每一列代表记录的一个属性,每个属性都有相应的描述信息,如数据结构、数据宽度等。
数据类型
数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。表中的每一个字段就是某种指定数据类型。
主键
主键(Primary Key)又称主码,用于唯一标识表中的某一个记录。可以定义表中的一列或多列为主键,主键列上不能有相同的值,也不能为空值。
数据库技术构成
数据库系统由硬件部分和软件部分共同构成,硬件主要用于存储数据库中的数据,包括计算机、存储设备。软件部分则包括 DBMS 运行的操作系统,以及支持多种语言进行开发应用的访问技术。
数据库系统
数据库系统有三个重要的组成部分。
- 数据库:用于存储数据的地方。
- 数据库管理系统:用于管理数据库的软件。
- 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
数据库(DataBase)提供了一个存储空间用以存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
数据库管理系统(DataBase Management System, DBMS)是用户创建、管理、和维护数据时所需要的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS 能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
虽然已经有了 DBMS,但是在很多情况下,DBMS 无法满足对数据管理的要求。数据库应用程序(DataBase Application)的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与 DBMS 进行通信,访问和管理 DBMS 中存储的数据,允许用户插入、修改、删除 DB 中的数据。
数据库系统如图所示:
SQL语言
对数据库进行查询和修改的语言叫做 SQL。SQL 的含义是结构化查询语言(Structured Query Language)。
SQL包含以下四个部分。
- 数据定义语言(DDL):DROP、CREATE、ALTRE 等语句。
- 数据操作语言(DML):INSERT、UPDATE、DELETE 语句。
- 数据查询语言(DQL):SELECT 语句。
- 数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK 等语句。
数据库访问接口
不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理。主要的数据库访问接口有:
-
ODBC
Open DataBase Connectivity(ODBC,开放数据库互连)技术为访问不同的 SQL 数据库提供了一个共同的接口。ODBC 使用 SQL 作为访问数据的标准。这一接口提供了最大限度的互操作性。一个应用程序可以通过共同的一组代码访问不同的 SQL 数据库管理系统(DBMS)。
-
JDBC
Java DataBase Connectivity(JDBC,Java数据库连接)用于 Java 应用程序连接数据库的标准方法,是一种用于执行 SQL 语句的 Java API,可以为多种关系型数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。
-
ADO.NET
ADO.NET 是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET 提供了对关系数据、XML 和应用程序数据的访问,允许和不同类型的数据源已经数据库进行交互。
-
PDO
PDO(PHP Data Object)为 PHP 访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
什么是 MySQL
Mysql 是一个小型关系数据库管理系统,与其他大型数据库管理系统(例如 Oracle、DB2、SQL Server 等)相比。MySQL 规模小、功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用来说已经够用,这些特性使得 MySQL 成为世界上最受欢迎的开源数据库。
MySQL 版本
针对不同的用户,MySQL 分为两个不同的版本:
- MySQL Community Server(社区版):该版本免费,但是官方不提供技术支持。
- MySQL Enterprise Server(企业版服务器):它能够以很高性价比为企业提供数据仓库应用,支持 ACID 事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。
MySQL 的命名机制由 3 个数字和 1 个后缀组成,例如:MySQL-5.7.10。
(1)第一个数字 5 是主版本号,描述了文件格式,所有版本 5 的发行版都有相同的文件格式。
(2)第二个数字 7 是发行版本,主版本号和发行级别组合在一起便构成了发行序列号。
(3) 第三个数字 10 是在此发行系列的版本号,随每次新分发版本递增。通常选择已经发行的最新版本。
MySQL 的优势
MySQl 的主要优势如下:
(1)速度:运行速度快。
(2)价格:MySQL 对多数个人来说是免费的。
(3) 容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
(4)可移植性:能够在众多不同的系统平台上,例如:Windows、Linux、Unix、Mac os 等。
(5)丰富的接口:提供了用于 C、C++、Java、Python、PHP 等语言的API。
(6)支持查询语言:MySQL 可以利用标准SQL语法和支持 ODBC(开放式数据库连接)的应用程序。
(7)安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全,并且由于 MySQL 是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。