1.1 数据库基础知识
1.1.1 数据库相关的基本概念
数据、数据库、数据库管理系统、数据库系统是与数据库技术最为密切相关的基本概念。
1.数据
描述事物的符号记录称为数据(Data)。
2.数据库
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,系统易于扩展,并可以为多个用户共享。
3.数据库管理系统
数据管理系统(DataBase Management System,DBMS)是位于操作系统与用户之间的一层数据管理软件,是数据库系统的核心。
DBMS按照一定的数据模型科学地组织和存储数据,能够高效地获取数据,提供安全性和完整性等统一控制机制,有效的管理、维护数据,是数据库系统的核心。DBMS的主要功能包括数据定义、数据操纵、数据库建立和维护、数据库运行管理等。
(1)数据定义
DBMS提供数据定义语言(Data Definition Language,DDL)。用户通过DDL可以对数据库中的对象进行定义。
(2)数据操纵
DBMS提供数据操纵语言(Data Maniulation Language,DML)。使用DML,能够操纵数据,实现对数据库的基本操作。
(3)数据库的建立和维护功能
数据库的建立和维护功能主要包括数据库初始数据的输入、转换、数据库的转储、恢复、数据库的重组织功能和性能监视、分析等。
(4)数据库的运行管理
数据库的建立、运行和维护等工作由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
(5)提供方便、有效存取数据库信息的接口和工具
编程人员可通过程序开发工具与数据库接口编写数据库应用程序。数据库管理员(DataBase Administrator,DBA)可通过相应的软件工具对数据库进行管理。
4.数据库系统
数据库系统(DataBase System,DBS)是指引入数据库技术的计算机系统。
在不引起混淆的情况下,常将数据库系统简称为数据库
1.1.2 数据库系统的特点
1.1.3 数据库系统的结构
若从数据库用户视图来看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构。
若从数据库管理系统的角度来看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器结构和并行结构,这是数据库系统的外部体系结构。
若从数据系统应用的角度来看,目前数据库系统常见的结构有客户/服务器结构和浏览器/服务器结构,这是数据库系统整体的运行结构。
1.1.4 数据模型
数据库中的数据是有一定结构的,这种结构用数据模型(Data Model)表示。根据不同的应用目的,数据模型可以分为概念模型、逻辑模型和物理模型。
1.概念模型
概念模型用来描述现实世界的事物,与具体的计算机系统无关。现实世界是存在与人脑的之外的客观世界。在设计数据库时,用概念模型来抽象、表现现实世界的各种事情及其联系。
客观存在并相互区别的事物称为实体。实体可以是实际的事物,也可以是抽象的概念,如商品、学生、部门、课程、比赛等都可以作为实体。
设两个实体集A、B,实体集之间的联系有一对一、一对多、多对多三种类型。
2.逻辑模型
逻辑模型是具体的DBMS所支持的数据模型。主要的逻辑数据模型有层次模型、网状模型、关系模型、面向对象模型等。
(1)层次模型
层次模型是数据库系统最早使用的一种数据模型,它的数据结构是一棵“有向树”,树的每个结点对应一个记录集,也就是现实世界的实体集。
(2)网状模型
网状模型以网状结构表示实体与实体之间的联系。网状模型是层次模型的扩展,允许结点有多于一个父结点,并可以有一个以上的结点没有父结点。
(3)关系模型
关系模型是用二维表结构来表示实体及实体间联系的模型,并以二维表格的形式组织数据库中的数据。
(4)面向对象模型
面向对象方法与数据库相结合所构成的数据模型称为面向对象模型。面向对象模型既是概念模型又是逻辑模型。面向对象数据模型用面向对象的观点来描述现实世界实体的逻辑组织、对象间的联系,其表达能力丰富,具有对象可复用、维护方便等优点,是正在发展的数据模型,也是数据库的发展方向之一。
3.物理模型
物理模型用于描述数据在存储介质上的组织结构。每一种逻辑数据模型在实现时都有与其相对应的物理数据模型。物理数据模型不但有DBMS的设计决定,而且与操作系统、计算机硬件密切相关。
1.2 关系数据库
关系数据库是目前应用最广泛的数据库,它以关系模型作为逻辑数据模型,采用关系作为数据的组织方式,其数据库操作建立在关系代数的基础上,具有坚实的数学基础。关系数据库具有较高的数据独立性,当数据的存储结构发生变化时,不会影响应用程序,这样,能大大减小系统维护的工作量。
1.2.1 基本概念
关系的数据结构就是二维表。无论是实体,还是实体之间的联系,都用关系表示。从用户角度看,关系数据库以二维表格的形式组织数据。
1.表
表也称为关系,有表名,构成表的各个列(如学号、姓名等)及若干行数据(各个学生的具体信息)组成。
每个表有唯一的表名,表中每一行数据描述一个学生的基本信息。表的结构称为关系模式。
2.列
表中的列也称作字段或属性。表中每一列都有一个名称,称为字段名、属性名或列名。每一列表示实体的一个属性,具有相同的数据类型。
注意:在一个数据库中,表名必须唯一;在表中,字段名必须唯一,不同表中可以出现相同的字段名;表和字段的命名应尽量有意义,并尽量简单。
3.行
表中的数据是按行存储的。表中的行也称作元组或记录。表中的额一行即为一个元组,每行由若干字段值组成,每个字段值描述该对象的一个属性或特征。
4.关键字
关键字是表中能够唯一确定一个元组的属性或属性组。关键字也称作码或主键。
5.候选键
如果一个表中具有多个能够唯一标识一个元组的属性,则这些属性也称为候选键。
6.外部关键字
外部关键字也称作外键。如过表的一个字段不是本表的主键或候选键,而是另外一个表的主键或候选键,则该字段称为外键。
7.域
域表示属性的取值范围。
8.数据类型
表中每个列都有相应的数据类型,它限制(或容许)该列中存储的数据。每个字段表示同类信息,具有相同的数据类型。
1.2.2 基本性质
关系数据库具有下列性质:
关系必须满足最基本的要求,即:每一列都必须是不可再分的数据项。
表的任意两个元组不能完全相同。即使完全相同的记录,在数据库中也必须予以区别。
表中每一列是同一数据类型,且列的值来自相同的域。
不同列的值可以出自同一个域,但列名不能相同。
表中列的顺序可以任意交换,行的顺序也可以任意交换。
1.3 数据库设计基础
数据库设计是建立数据库及其应用系统的一项重要工作,也是信息系统开发和建设中的核心技术。
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库,使之能够有效地存储数据,满足各种用户地应用需求、信息需求和处理需求。
在数据库领域里,通常把使用数据库的各类系统统称为数据库应用系统。
1.3.1 数据库设计的步骤
比较常用的数据库设计方法将数据库设计分为六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。
1.需求分析
进行数据库设计首先必须了解、分析用户的应用需求,确定用户要实现什么功能,涉及哪些数据,对数据有什么处理要求,等等。
2.概念结构设计
通过对用户需求及数据的分析与综合,形成独立于具体的DBMS的概念模型,这就是概念结构设计。
3.逻辑结构设计
逻辑结构设计是把概念结构转换为某个DBMS所支持的数据模型,并进行优化。
4.物理结构设计
数据库的物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构。
5.数据库实施
在数据库实施阶段,设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑结构和物理结构设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6.数据库运行和维护
数据库应用系统经过试运行后即可投入正式运行。在数据库运行期间,需要不断对其进行维护、调整、修改、评价。对数据库经常性的维护工作主要由数据库管理员DBA完成,包括数据库的备份与恢复、数据库的安全性、完整性控制等。
1.3.2 关系数据库设计的方法
关系数据库的设计遵从数据库设计的步骤。
1.概念结构的设计方法
概念结构设计就是将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程,它是整个数据库设计的关键。
2.逻辑结构的设计方法
逻辑结构设计的任务就是把该你那结构设计阶段已设计好的基本E-R图转换为关系模型。
关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体间的联系三个要素所组成的。所以,将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为某种关系模式。这种转换一般遵守一下原则:
(1)一个实体型转换为一个关系模式。实体的属性作为关系的属性,实体的码作为关系的码。
(2)一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系个体本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(3)一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则于该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码;如果与某一端实体对应的关系模式合并,则需要在该关系的属性,而关系的码为N端实体的码。
(4)一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。
(5)三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
(6)具有相同码的关系模式可合并
基于上述E-R图转换为关系模式的方法,可将图1.4所示的E-R图转换为下面五种关系,其实主键用下划线标识。
用户(用户ID,用户名,口令,年龄,所属用户组,所在部门)
用户组(用户组ID,用户组名,用户组描述)
部门(部门ID,部门名,部门所在地,部门领导)
权限(权限ID,权限名称,权限链接)
拥有(ID号,用户组ID,权限ID)
1.4 MySQL概述
MySQL是一个关系数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。
1.4.1 MySQL 系统特性
MySQL数据库管理系统具有以下一些特性:
MySQL系统使用C和C++编写,并使用了多种编译器进行测试,保证了源代码具有可移植性。
支持多种操作系统平台。
为多种编程语言提供了应用程序编程接口(API)
支持多线程服务,可充分利用CPU资源。
优化的SQL查询算法,能有效地提高查询速度。
既能够作为一个单独的应用程序运行,也能够作为一个库而嵌入到其他的软件中。
提供多语言支持
提供多种连接数据库的途径
提供用于管理、检查、优化数据库操作的管理工具
可以支持拥有上千万条记录的大型数据库应用,数据类型丰富。
支持多种存储引擎