全国计算机等级考试教程——二级MySQL数据库程序设计(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-31 02:36:17

点击下载

作者:全国计算机等级考试教材编写组未来教育教学与研究中心

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

全国计算机等级考试教程——二级MySQL数据库程序设计

全国计算机等级考试教程——二级MySQL数据库程序设计试读:

前言

全国计算机等级考试由教育部考试中心主办,是国内影响最大、参加人数最多的计算机水平考试。它的根本目的是以考促学,这决定了其报考门槛较低,考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况选考不同级别的考试。本书面向选考二级MySQL数据库程序设计的考生。一、为什么编写本书

计算机等级考试的准备时间短,一般从报名到参加考试只有4个月左右的时间,留给考生的复习时间有限,并且大多数考生是非计算机专业的学生或社会人员,基础比较薄弱,学习起来比较吃力。

通过对考试的研究和对数百名考生的调查分析,我们逐渐摸索出一些减少考生(尤其是初学者)学习困难的方法,以帮助考生提高学习效率,取得更好的学习效果。因此我们策划、编写了本书,并将多年研究出的教学和学习方法贯穿全书,帮助考生巩固所学知识,顺利通过考试。二、本书的优势

1.一学就会的教程

本书的知识体系都经过巧妙设计,力求将复杂问题简单化,将理论难点通俗化,让读者一看就懂,一学就会。

○针对初学者和考生的学习特点和认知规律精选内容,分散难点,降低台阶。

○例题丰富,深入浅出地讲解和分析复杂的概念和理论,力求做到概念清晰、通俗易懂。例如:(1)实体

一个实体(Entity)是现实世界客观存在的一个事物,可以是一个具体的事物,如一所房子、一个元件或一个人等,也可以是抽象的事物,如一个想法、一个计划或一个工程项目等。(2)属性

属性(Attribute)用来描述实体的特性。实体的每个特性称为一个属性。属性有属性名、属性类型、属性定义域和属性值之分。(3)码

其值能唯一地标识每个实体的属性集,称为实体的标识。在关系数据库中实体的标识称为码或者键(Key),其标识码是实体的单个属性或属性子集的值。

例如,学生的学号,既是学生的属性,又是学生的标识码。

○采用大量插图,并通过丰富多样的图例,将复杂的理论讲解得生动、易懂。

例如:进入如图2-12所示的MySQL字符集选择界面,对MySQL默认数据库语言编码进行设置,其中有三个选项。为了能够支持中文,这里选择“Manual Selected Default Character Set/Collation”选项,并在“Character Set”下拉列图2-12表框中选定为“gb2312”。

○精心为考生设计学习方案,设置各种栏目引导和帮助考生学习。

2.衔接考试的教程

我们深入分析和研究了历年考试真题,结合考试的命题规律选择内容、安排章节,坚持多考多讲、少考少讲的原则。在讲解各章节的内容之前,都详细介绍了考试的重点和难点,从而帮助考生安排学习计划,做到有的放矢。

3.书与多媒体结合的教程

本书所配的光盘主要提供两部分内容:多媒体课堂和上机真考模拟系统。多媒体课堂用视频串讲演示各种案例的操作步骤,使学习变得轻松、高效;上机真考模拟系统可模拟真实考试环境,帮助考生提前感受考试全过程。使用了本书的光盘,就等于把辅导老师请回了家。三、如何使用书中栏目

本书设计了3个小栏目,分别为“考试点津”、“请注意”和“请思考”。

1.考试点津

考试点津是从对应模块提炼的重点内容,读者可以通过它明确本部分内容的学习重点和掌握程度。

2.请注意

该栏目主要提示读者在学习过程中容易忽视的问题,以引起重视。

3.请思考

介绍完一部分内容后,以这种形式给出一些问题让读者思考,使读者能做到举一反三。

本书由中国科技大学蒋辉文主编,并且在本书编写的过程中,合肥师范学院计算机学院的李宜兵老师给予了大力支持,并提出了宝贵意见在此表示衷心的感谢。希望本书能够在备考过程中助您一臂之力,让您顺利通过考试,成为一名合格的计算机应用人才。

由于时间仓促,书中难免存在疏漏之处,恳请广大读者批评指正。本书责任编辑信箱为:lisha@ptpress.com.cn。编者2014年9月第1章数据库的基本概念与设计方法学习点拨

本章的重点内容是数据库技术的基本概念与方法。

本章将主要介绍关于数据库技术的基本概念、数据库系统的结构、数据模型和数据库设计。通过掌握这些内容,可以为以后的学习打下很好的基础。  本章学习流程图  1.1 数据库的基本概念

数据库是数据管理的有效技术,是计算机科学的重要分支,它能有效地帮助一个组织或一个企业科学地管理各类信息资源。如今,作为信息系统核心和基础的数据库技术得到了广泛的应用,越来越多的应用领域都在采用数据库进行信息资源的存储与管理。因此,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个企业、一个组织,乃至一个国家信息化程度的重要标志。

1 数据考试点津【掌握】数据库中数据的概念

数据(Data)是数据库中存储的基本对象,按一定规则排列组合的物理符号。它有多种表现形式,可以是数字、文字、图像,也可以是计算机代码,它们都可以经过数字化后存入计算机。

对信息的接收始于对数据的接收,对信息的获取只能通过对数据背景的解读。在日常生活中,人们可直接用中文、英文等自然语言描述客观事物。在计算机中,则要抽象出对这些事物感兴趣的特征,并组成一个记录来描述。例如,在学生档案中,学生信息是由学号、姓名、性别、年龄、籍贯、联系电话等特征组成,那么这些具体的特征值所构成的一条记录就是一个学生信息数据,例如:SA12011106,李明,男,25,江西,计算机学院,138××××××××。

值得注意的是,数据的描述形式还不能完全表达其内容,需要经过解释。例如,对于上面这条学生记录,了解其含义的人会得到这样的信息:李明的学号为SA12011106,今年25岁,江西人,就读于计算机学院,他的联系电话是138××××××××;而不了解其语义的人则无法理解其含义。所以,数据和关于数据的解释是不可分的,数据的解释是指对数据含义的说明,数据的含义也称数据的语义,因此数据与其语义密不可分,没有语义的数据是没有意义和不完整的。

2 数据库

顾名思义,数据库(Database,DB)是存放数据的仓库。只是这个仓库位于计算机存储设备上,而且数据是按一定格式进行存放的。针对一个具体应用,当人们收集并抽取出所需的大量数据之后,应将其保存起来以供进一步加工处理。过去人们常常把这些数据以文件的形式存放在文件柜里,而如今随着信息技术的迅猛发展,数据量急剧增加,人们需要借助计算机和数据库技术科学地保存和管理大量、复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。

数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。例如,把学生学号、姓名、年龄、年级、籍贯、联系方式等数据有序地组织并存放在计算机内,就可以构成一个学生学籍数据库。

3 数据库管理系统

数据库管理系统(Database Management System,DBMS)是位于操作系统与用户之间的一种数据管理软件,按照一定的数据模型科学地组织和存储数据,同时可以提供数据高效地获取和维护。

DBMS的主要功能包括以下几个方面。(1)数据定义功能

DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。(2)数据操纵功能

DBMS还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。(3)数据库的运行管理

数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。例如,数据的完整性检查功能保证用户输入的数据应满足相应的约束条件;数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据;数据库的并发控制功能使多个用户可在同一时刻并发地访问数据库的数据;数据库系统的故障恢复功能使数据库运行出现故障时进行数据库恢复,以保证数据库可靠地运行。(4)提供方便、有效存取数据库信息的接口和工具

编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database Administrator,DBA)可通过提供的工具对数据库进行管理。(5)数据库的建立和维护功能

数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常由一些实用程序来完成。

4 数据库系统

完整的数据库系统结构关系如图1-1所示。图1-1 数据库系统结构  1.2 数据库的特点考试点津【掌握】数据库的特点

数据库技术是应数据管理任务的需要而产生的。在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理和文件系统阶段后,发展到今天的数据库系统阶段。其中,数据库系统主要有下面几个方面的特点。(1)数据结构化

在数据库系统中,数据不再针对某一应用,而是面向组织,具有整体的结构化。不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录,并且数据库中的结构化数据由DBMS统一管理。DBMS既管理数据的物理结构,也管理数据的逻辑结构;既考虑数据本身,也考虑数据之间的联系。(2)数据共享性好

数据库系统是从整体和全局的角度上看待和描述数据。在数据库系统中,数据不是仅仅用来描述某个应用,而是面向整个系统,因此数据可以同时被多个用户和多个应用共享使用。例如对于同样一份学生信息数据,不仅教师可以查看,教务处工作人员也可以查看。数据共享可以节约存储空间。(3)数据冗余度小

数据冗余是指在一个数据集合中重复出现的数据。因为数据库系统面向整个系统,不仅数据的共享性好,同时也可以大大减少数据冗余,还能够避免由于数据冗余造成同一数据重复存储而导致修改时的困难——这可能造成数据的不一致性,即不同的副本由于不同的修改而产生差异。(4)数据独立性高

数据独立性是数据库系统最重要的目标之一,即数据独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。

也就是说数据库上的数据怎样存储由DBMS管理,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。

也就是说当数据库的逻辑结构改变时,用户程序也可以不变。这有利于在数据库结构修改时保持应用程序尽可能地不改变或少改变,减少应用人员的开发工作量。(5)数据由DBMS统一管理和控制

为了适应共享数据的环境,DBMS还提供了数据控制功能,包括数据的安全性、完整性以及数据库的并发和恢复的控制。

·数据的安全性是指保护数据,以防止不合法的使用造成的数据泄密和破坏,使每个用户只能按规定对某些数据以某些方式进行使用和处理。

·数据的完整性是对数据的正确性、有效性和相容性要求,即控制数据在一定的范围内有效或要求数据之间满足一定的关系。

·数据库的并发控制是指当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误结果,并使数据库的完整性遭到破坏,因而对多用户的并发操作加以控制和协调。

·数据库的恢复是将数据库从错误状态恢复到某一已知的正确状态的功能。计算机产生的硬件故障、操作员的失误以及人为的破坏都会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失,DBMS必须具有将数据库恢复的功能。  1.3 数据库的结构

在数据库系统中,有各种不同类型的人员或用户需要与数据库打交道。他们从不同的角度以各自的观点来看待数据库,且所处的立足点也不在同一水平线上,从而形成了数据库系统不同的视图结构。因此,数据库系统的结构可以有多种不同的层次或不同的视角。数据库体系结构从不同的视角分为以下几类。(1)数据库用户的角度

从数据库用户的角度来看,数据库系统通常采用三级模式结构——内模式、模式和外模式。这是数据库领域公认的标准结构。此类结构属于数据库管理系统内部的系统结构。(2)数据库管理系统的角度

从数据库管理系统的角度来看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器结构和并行结构。此类结构属于数据库系统的外部体系结构。(3)数据库系统应用的角度

从数据库系统应用的角度来看,目前数据库系统常见有客户/服务器结构和浏览器/服务器结构。此类结构属于数据库系统整体的运行结构。

本节主要介绍两类数据库结构,一类是从数据库用户角度划分的三级模式结构,另一类是从数据库系统应用角度划分的客户/服务器结构和浏览器/服务器结构。1.3.1 数据库系统的三级模式结构考试点津【掌握】数据库系统的三级模式结构

人们为数据库设计了一个严谨的体系机构。数据库领域公认的标准结构是三级模式结构:内模式、模式、外模式。三级模式结构能有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性。

1 内模式

内模式(Internal Schema)也称为存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低级的逻辑描述。它描述了数据在存储介质上的存储方式,对应着实际存储在外存储介质上的数据库。

内模式中定义了所有内部记录类型、索引和文件的组织方式,以及所有的数据控制方面的细节。一般与这样一些工作相关:数据和索引的存储空间分配;用于存储的记录描述;记录的放置;数据压缩和数据加密技术。

一个数据库只有一个内模式。DBMS提供内模式描述语言(内模式DDL)来严格定义内模式。

2 模式

模式(Schema)是数据库系统三级模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也不涉及具体的应用程序、所使用的应用开发工具及程序设计语言(如PHP、Perl、C、Python)等。

模式实际上是数据库数据在逻辑级上的视图,又称概念模式或逻辑模式,对应于概念级。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,综合考虑所有用户的需求,并将这些需求有机地结合成一个逻辑整体。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义,体现、反映了数据库系统的整体观。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系与约束,以及定义与数据有关的安全性、完整性要求。

3 外模式

外模式(External Schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。它由若干个外部记录类型组成。

外模式也称子模式(Subschema)或用户模式,对应于用户级,反映了数据库的用户观。

外模式通常是模式的子集。一个数据库有多个外模式。不同用户的应用需求、得到数据的方式、对数据保密要求都存在差异,则对应的外模式描述就不同。外模式是保证数据库安全性和保密性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据,其余的数据不可见。

用户可以通过外模式描述语言来描述、定义对应于用户的数据(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行操作。1.3.2 数据独立性和三级模式结构的两层映像考试点津【掌握】三级模式结构的两层映像和数据独立性

数据库的三级模式是数据库在三个级别上的抽象,三级模式使各层数据保持独立。

·层次独立性:数据库的整体逻辑结构和特征的描述(概念结构)是独立于数据库其他层次结构(内/外模式)的描述。

·存储模式独立性:数据库的内部存储模式依赖于概念模式,但存储模式独立于外部模式,也独立于具体的存储设备。

·外模式独立性:用户逻辑结构(外模式)是在全局逻辑结构描述的基础上定义的,它面向具体的应用程序,独立于内部模式和存储设备。

·应用程序独立性:特定的应用程序是在外模式描述的逻辑结构上编写的,它依赖于特定的外模式,与数据库的模式和存储结构独立。请注意三级模式和两层映像是必考点,考生要熟记并且要注意其中的差别。

在数据库系统中,数据的具体物理实现留给内模式,使用户与全局设计者不必关心数据库的具体实现与物理背景。数据库系统的三级模式将数据的具体组织留给DBMS管理,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。为了能够实现三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像。(1)外模式/模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有多个外模式。对于每个外模式,数据库系统都有一个从外模式到模式的映像,它定义了外模式与模式之间的对应关系。这些映像定义通常包含在各自的外模式描述中。

当模式发生变化时(如增加新的关系、新的属性或改变属性的数据类型等),可以通过外模式定义语句,调整外模式/模式映像定义,从而保持外模式不变。由于应用程序是依据数据的外模式编写的,因此应用程序也不必修改,从而保证了程序与数据的逻辑独立性,使得外模式不受概念模式变化的影响。(2)模式/内模式映像

模式/内模式映像定义了数据库的逻辑结构与存储结构之间的对应关系。当数据库的存储结构发生改变,比如选择了另一种存储结构,只需要对模式/内模式映像做相应的调整,就可以保持模式不变,从而使应用程序也不必修改,保证了数据与程序的物理独立性。

正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性,使得数据的定义和描述可以从应用程序中分离出去。1.3.3 数据库系统的运行与应用结构考试点津【掌握】数据库系统的应用结构

从数据库系统应用角度来看,数据库系统常见的运行与应用结构用结构有:客户/服务器结构、浏览器/服务器结构。

1 客户/服务器结构

在客户/服务器(Client/Server,C/S)结构中,数据库的使用者(如DBA、程序设计者)通过命令行客户端、图形化界面管理工具或应用程序等连接到数据库管理系统,可以通过数据库管理系统查询和处理存储在底层数据库中的各种数据。

数据库使用者与命令行客户端、图形化界面管理工具或应用程序等直接交互,而不与数据库管理系统直接联系。在这种结构中,命令行客户端、图形化界面管理工具或应用程序等称为“客户端”或者“前台”,主要完成与数据库使用者的交互任务;而数据库管理系统则称为“服务器”或者“后台”,主要负责数据管理。这种结构经常被称为“C/S”结构。

在客户/服务器模式中,客户端和服务器可以同时工作在同一台计算机上,这种工作方式称为“单机方式”;也可以“网络方式”运行,即服务器被安装和部署在网络中某一台机器上,而客户端被安装和部署在网络中不同的一台或多台主机上。客户端应用程序的开发,目前常用的语言工具主要有Visual C++、Delphi、.NET框架、Visual Basic、Python等。

2 浏览器/服务器结构

浏览器/服务器(Brower/Server,B/S)结构是一种基于Web应用的客户/服务器结构,也称三层客户/服务器结构。

在数据库系统中,将数据库管理系统的客户端进一步细分为“表示层”和“处理层”。其中,“表示层”是数据库使用者的操作和展示界面,通常是各种浏览器,减轻数据库系统中客户端的工作负担;而“处理层”也称“中间层”,主要负责处理数据库使用者的具体应用逻辑,它与后台的数据库管理系统共同组成功能更加丰富的“胖服务器”。数据库系统的这种工作模式就称为浏览器/服务器模式。

基于浏览器/服务器结构的数据库应用系统一般是基于Web开发的,例如百度、淘宝等网站都是采用B/S数据库系统结构,主要使用的开发语言有PHP、JSP、Peal、C#等。

C/S和B/S两种结构有各自的优势,C/S在图形的表现能力上以及运行的速度上强于B/S模式,缺点是需要专门的客户端,不能跨平台。B/S基于网页语言,与操作系统无关,所以跨平台是它的优势,可以算是轻量级开发和使用的平台。未来发展趋势,是将B/S与C/S的优势完美地结合起来,也就是说,该平台的应用系统既能以B/S的方式发布运行,同时又具有C/S方式的极强可操作性。

图1-2给出了结合B/S结构和C/S结构的简单例子。图1-2 B/S结构和C/S结构  1.4 数据模型

由于计算机不能直接处理现实世界中的具体事物,所以需要将具体事物转换成计算机能够处理的数据。在数据库中,就是用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息的。

数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人们所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三方面的要求比较困难,在数据库系统中针对不同的使用对象和应用目的,通常采用逐步抽象的方法,在不同层次采用不同的数据模型。一般可分为下面三层。(1)概念层

概念层是数据抽象级别的最高层,是按用户的观点对现实世界建模。概念层的数据模型称为概念数据模型,简称概念模型。概念模型独立于任何DBMS,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。

常用的概念模型有实体-联系模型(Entity-Relationship Model,E-R模型)。(2)逻辑层

逻辑层是数据抽象层的中间层,描述数据库数据整体的逻辑结构。逻辑层的数据抽象称为逻辑数据模型,是基于计算机系统的观点来对数据进行建模和表示。

不同的DBMS支持不同的逻辑数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)、面向对象数据模型(Object Oriented Model)和关系数据模型(Relational Model)。(3)物理层

物理层是数据抽象的最低层,用来描述数据物理存储结构和存储方法。物理层的数据抽象称为物理数据模型,不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。物理数据结构一般都向用户屏蔽,不必了解其实现细节。1.4.1 概念模型考试点津【掌握】概念模型

概念数据模型是面向用户、面向现实世界的数据模型,与DBMS无关。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。它是用户与数据设计人员之间进行交流的语言。因此概念模型一方面具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面它还应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。

1 信息世界中的基本概念(1)实体

一个实体(Entity)是现实世界客观存在的一个事物。它可以是一个具体的事物,如一所房子、一个元件或一个人等,也可以是抽象的事物,如一个想法、一个计划或一个工程项目等。(2)属性

属性(Attribute)用来描述实体的特性。实体的每个特性称为一个属性。属性有属性名、属性类型、属性定义域和属性值之分。(3)码

其值能唯一地标识每个实体的属性集,称为实体的标识。在关系数据库中实体的标识称为码或者键(Key),其标识码是实体的单个属性或属性子集的值。

例如,学生的学号,既是学生的属性又是学生的标识码。(4)域

域(Domain)是值的集合,属性的取值范围称为该属性的域。(5)实体型

具有相同属性的实体必然具有共同的特征和性质。用实体名与属性名集合来抽象和刻画同类实体,称为实体型(Entity Type),同型实体的集合称为实体集(Entity Set)。(6)联系

在现实世界中,事物之间的相互联系(Relationship)是客观存在的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。两个实体型之间的联系通常可以分为以下三类。

①一对一联系

如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如学校和校长这两个实体之间的关系,如果一个学校只能有一个正校长,一个校长不能同时兼任其他学校校长,则学校和校长之间的关系为1:1联系,如图1-3所示。图1-3 一对一联系

②一对多联系

如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系;反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:N。例如班级和学生这两个实体之间的关系,每个班级有很多学生,而每个学生只能对应一个班级,则班级和学生为1:N联系,如图1-4所示。图1-4 一对多联系

③多对多联系

如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中也有M个实体与之联系,则称实体集A与实体集B具有多对多联系,记为M:N。例如学生和任课老师两个实体之间的关系,每个学生可以选多个老师的课程,同样每个老师也教授多个学生,如图1-5所示。图1-5 多对多联系

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。同样,多对多联系可以分解为一对多联系,一对多联系也可以分解为一对一联系。

2 概念模型的表示方法

概念模型就是对信息世界的建模,所以概念模型应该能够方便、准确地表示出信息世界中的常用概念。概念模型的表示方法很多,其中最常用的是实体-联系方法。该方法用E-R图来描述现实世界的概念模型。E-R方法也称E-R模型,如图1-6所示。图1-6 E-R模型

E-R图提供了表示信息世界中实体、属性和联系的方法。(1)实体型:用矩形框表示,在框中记入实体名。(2)联系:用菱形框表示,在框中记入联系名。(3)属性:用椭圆形框表示,将属性名记入框中。对于主属性名,则在其名称下划一下划线。(4)连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连,并在直线上标注联系的类型。对于一对一联系,要在两个实体连线方向各写1;对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写M,N。

实体-联系方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。1.4.2 关系模型考试点津【掌握】关系模型

关系模型具有简单、明快的数据建模概念,是目前最重要的一种数据模型。关系数据库就是采用关系模型作为数据组织方式。它是用二维表结构来表示实体及实体间联系的模型,并以二维表格的形式组织数据库中的数据。

1 关系模型中的基本概念

关系模型包含下列一些重要的数据结构和术语。(1)关系

一个关系逻辑上对应一张二维表(格)。可以为每个关系取一个名称进行标识。与之同义的术语是“表”。(2)元组

表中的行称为元组,组成元组的元素称为分量。(3)属性

表中的列称为属性。属性具有型和值两层含义:属性的型指属性名和属性取值域;属性值指属性具体的取值。同一关系中的属性名(即列名)不能相同。属性用于表示实体的特征。(4)主键

用户选作标识元组的一个候选键称为主键,也称为关键字。如果关系中只有一个候选键,这个唯一的候选键就是主键。(5)域

域是一组具有相同的数据类型的值的集合。例如:整数、{男、女}等。(6)表

它由行和列组成。可以为每个表取一个表名进行标识。(7)行

表中的一条记录。表中的数据是按行存储的。(8)列

表中的一个字段。所有表都是由一个或多个列组成的。(9)外键

表中的一列或一组列,其包含另一张表的主键值,主要用于定义两个表之间的关系。与之同义的术语是“外部码”。(10)关系模式

对关系的描述称为关系模式。关系模式的定义包括模式名、属性名、值域以及模式的主键,一般表示为“关系名(属性1,属性2,…,属性n)”。

2 关系模型规范化的基本方法

关系模型规范化设计的基本方法是:通过对关系模式进行分解,用一组等价的关系子模式来代替原有的关系模式,消除数据依赖和多值中不合理的部分,使得一个关系仅描述一个实体或者实体间的一种联系。这一过程必须确保不破坏原有数据,并可将分解后的关系通过自然连接,恢复到原有关系。具体的说,规范化设计就是按不同范式,将一个二维表不断的分解成多个二维表并建立表之间的关联,最终达到一个表只描述一个实体或者实体间的一种联系的目标。在实际应用中,要求数据库中的每张表都必须满足一定的规范条件,这些规范条件从对表的基本约束到严格要求依次分为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF范式,它们对表的规范化设计规则分别如下。请注意关系规范化是考试中的难点,考生要理解各种范式的内在含义不和区别。(1)第一范式

定义:任给关系R,如果R中每个列与行的交点处的取值都是不可再分的基本元素,则R达到第一范式,简称1NF。

约束规则:表中每个列只包含具有原子性的值,即关系的每一个分量必须是一个不可分的数据项。(2)第二范式

定义:如果一个关系达到第一范式,且不存在任何非主属性对候选关键字的部分函数依赖,则称此关系达到第二范式,简称2NF。

约束规则一:首先要符合第一范式。

约束规则二:没有部分函数依赖性,即表中不存在非主键的列依赖于组合主键某个部分的现象。(3)第三范式

定义:如果一个关系达到第二范式且不存在非主属性对候选关键字的传递函数依赖,则称为达到第三范式,简称3NF。

约束规则一:首先要符合第二范式。

约束规则二:没有传递函数依赖性,即表中不存在任何非主键列与其他非主键列相互关联的现象。(4)BCNF范式

定义:如果一个关系R中的所有属性都不传递依赖于R的任何候选关键字,或者说关系R中的每个决定因数都是候选关键字时,则称关系R属于BCNF范式。

约束规则一:首先要符合第三范式。

约束规则二:表中不存在主键列对主键的部分函数依赖和传递函数依赖。

一个低一级范式的关系模式,通过模式分解逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的分离,转换为若干个高一级范式的关系模式的集合,这种过程就是关系规范化。其对表的规范化过程具体描述如下。

·通过消除非主键列对主键的部分函数依赖,将1NF表规范为2NF表。

·通过消除非主键列对主键的传递函数依赖,将2NF表规范为3NF表。

·通过消除主键列对主键的部分函数依赖和传递函数依赖,将3NF表规范为BCNF表。

3 关系规范化设计的特点

规范化设计的优点很明显,避免了大量的数据冗余,节省了空间,保持数据的一致性和完整性,增强数据库的稳定性、伸缩性和适应性,加快了增、删、改的速度。它的最大缺点是,由于模式分解很细,在实际应用中很多经常一起使用的信息放在数据库的不同表中,在进行查询操作时要把多个表连接在一起才能获得所需要的信息,表连接的工作量非常大。

同时在关系模型中,满足关系规范化要求的表与表之间会存在以下三种形式的联系。(1)一对一的关联

一对一的关联从概念上表达的是一个数据对象与另外一个数据对象之间仅表现为一对一的关系;某个表中的一行数据行与另一个表中的某一数据行相对应。(2)一对多的关联

一对多的关联从概念上表达的是一个数据对象与另外一个数据对象之间表现为一对多的关系;某个表中的一行数据行可与另一个表中的多条数据行相对应。(3)多对多的关联

多对多的关联从概念上表达的是一个数据对象与另外的一个数据对象表现为多对多的关系;某个表的一行数据可能与另外一个表的多行数据对应,同时另外一个表的一行和这个表的多行对应。  1.5 数据库设计考试点津【掌握】数据库设计

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。

按照数据库规范设计的方法,可将数据库设计分为六个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护。本节主要以关系数据库的设计为学习目标,重点介绍概念结构设计、逻辑结构设计、物理设计这三个阶段的设计方法和过程。1.5.1 概念结构设计

概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。通过概念设计得到的概念模型是从现实世界的角度对所要解决的问题的描述,不依赖于具体的硬件环境和DBMS。在实际数据库设计中,概念结构设计就是将需求分析得到的用户需求抽象为信息结构的过程,它是整个数据库设计的关键。通常使用E-R图来描述现实世界的概念模型,在上节中已经接触到E-R图,如图1-6所描述了二个实体关系。图1-7给出了稍微复杂的实体关系图,它是某房地产交易中客户、业务员和合同三者之间的E-R图。图1-7 实体关系图

该E-R图中,描述了房地产交易中“客户”,“业务员”和“合同”三个实体,以及每个实体所涉及的多个属性,另外还有三个实体之间的联系,分别是“业务员”和“客户”的一对多关系,“业务员”和“合同”的一对多关系,“客户”和“合同”的一对一关系。1.5.2 逻辑结构设计

概念结构是独立于任何一种(逻辑)数据模型的信息结构。在关系数据库设计中,逻辑结构设计的任务就是把概念结构设计阶段得到的概念模型转换为具体的DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计一般分为三步进行。

1 从基本E-R图向关系模型的转换

数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中的实体、实体的属性和实体之间的联系转化为关系模式。关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体间的联系三个要素所组成的。所以,将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为某种关系模式。这种转换一般遵守以下几点原则。请注意E-R图向关系模型的转化是一个考试热点,考生要做到熟练掌握。(1)一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码。(2)一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(3)一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。(4)一个多对多联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(5)三个或三个以上实体间的一个多元联系可以转换为一个关系模式,与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(6)具有相同码的关系模式可合并。

基于上述E-R图转换为关系模型的方法,可将图1-7所示的E-R图转换为上面描述的几种关系,其中主码用下画线标出。

·业务员(员工号,姓名,年龄)

·客户(客户编号,购房地址,有效时间,员工号)

·合同(员工号,客户编号)

其中员工号可以唯一确定一位员工,因此员工号是主码;客户编号唯一确定一位客户,因此客户编号是主码;而在客户和业务员的关系中,可以在客户关系中增加一个员工号作为外码。在合同关系中,员工号和客户编号称为多字段主码。

2 数据模型的优化

数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,适当地修改、调整数据模型的结构,这就是数据模型的优化。优化通常以规范化理论为指导,关系数据模型的优化方法如下。(1)确定数据依赖。(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一进行分析,确定各关系模式属于第几范式。(4)按照需求分析这些模式是否合适,是否需要合并或分解。(5)对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

规范化理论是数据库设计人员判断关系模式优劣的依据,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。

3 设计用户子模式

将概念模型转换为全局逻辑模式之后,可根据局部应用需求,利用视图(View)设计更符合局部用户需要的用户外模式。1.5.3 物理设计考试点津【了解】物理设计

数据库最终要存储在物理设备上。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。物理结构依赖于给定的DBMS和硬件系统,因此设计人员必须充分了解所用DBMS的内部特征,特别是存储结构和存取方法;充分了解应用环境,例如关注系统的处理频率和响应时间要求;以及充分了解外存设备的特性。数据库的物理设计通常分为两步。(1)确定数据库的物理结构

这在关系数据库中主要是指存取方法和存储结构,例如设计关系、索引等数据库文件的物理存储结构。(2)对物理结构进行评价

评价的重点是时间和空间效率。如果评价结果满足原设计要求,则可进入到物理实施阶段,否则需要重新设计或修改物理结构,有时甚至需要返回逻辑设计阶段修改数据模型。  课后总复习选择题1.数据库管理系统提供的数据控制功能包括( )。

A.数据的完整性

B.恢复和并发控制

C.数据的安全性

D.以上所有各项2.下列关于数据的描述中,错误的是( )。

A.数据是描述事物的符号记录

B.数据和它的语义是不可分的

C.数据指的就是数字

D.数据是数据库中存储的基本对象3.下列关于数据库系统三级模式结构的描述中,正确的是( )。

A.一个数据库可以有多个模式

B.一个数据库可以有多个外模式

C.一个数据库可以有多个内模式

D.一个数据库可以有多个模式和外模式4.模式/内模式映像保证数据库系统中的数据能够具有较高的( )。

A.逻辑独立性

B.物理独立性

C.共享性

D.结构化5.下列关于E-R图向关系模式转换的描述中,正确的是( )。

A.一个多对多的联系可以与任意一端实体对应的关系合并

B.三个实体间的一个联系可以转换为三个关系模式

C.一个一对多的联系只能转换为一个独立的关系模式

D.一个实体型通常转换为一个关系模式6.下列关于数据库的叙述中,错误的是( )。

A.数据库中只保存数据

B.数据库中的数据具有较高的数据独立性

C.数据库按照一定的数据模型组织数据

D.数据库是大量有组织、可共享数据的集合7.DBS的中文含义是( )。

A.数据库系统

B.数据库管理员

C.数据库管理系统

D.数据定义语言8.数据库系统的三级模式结构是( )。

A.模式,外模式,内模式

B.外模式,子模式,内模式

C.模式,逻辑模式,物理模式

D.逻辑模式,物理模式,子模式9.下列不属于数据库设计阶段的工作是( )。

A.详细结构设计

B.概念结构设计

C.逻辑结构设计

D.物理结构设计10.设有E-R图,含有A、B两个实体,A、B之间联系的类型是M:N,则将该E-R图转换为关系模式时,关系模式的数量是( )。

A.3

B.2

C.1

D.411.在数据库系统的三级模式结构中,一个数据库可以有多个( )。

A.模式

B.外模式

C.内模式

D.以上皆正确12.常见的数据库系统运行与应用结构包括( )。

A.C/S和B/S

B.B2B和B2C

C.C/S和P2P

D.B/S13.关于E-R图,以下描述中正确的是( )。

A.实体可以包含多个属性,但联系不能包含自己的属性

B.联系仅存在于两个实体之间,即只有二元联系

C.两个实体之间的联系可分为1:1、1:N、M:N三种

D.通常使用E-R图建立数据库的物理模型14.根据关系模式的完整性规则,以下关于主键的叙述中正确的是( )。

A.主键不能包含两个字段

B.主键不能作为另一个关系的外键

C.主键不允许取空值

D.主键可以取重复值15.数据库、数据库管理系统和数据库系统三者之间的关系是( )。

A.数据库包括数据库管理系统和数据库系统

B.数据库系统包括数据库和数据库管理系统

C.数据库管理系统包括数据库和数据库系统

D.不能相互包括16.下列关于外键的叙述中,错误的是( )。

A.外键是在一个或一组属性上定义的约束

B.外键的取值可以为空

C.外键是所参照关系的主键或唯一性索引的属性列

D.外键是唯一标识元组的一个或一组属性17.下列关于数据库系统特点的叙述中,错误的是( )。

A.非结构化数据存储

B.数据共享性好

C.数据独立性高

D.数据由数据库管理系统统一管理控制18.在数据库系统的三级模式结构中,一个数据库只能有一个( )。

A.模式和外模式

B.模式和内模式

C.子模式

D.外模式19.定义数据库全局逻辑结构与存储结构之间对应关系的是( )。

A.模式/内模式映像

B.外模式/内模式映像

C.外模式/模式映像

D.以上都不正确20.在讨论关系模型时,与“属性”同义的术语是( )。

A.元组

B.列

C.表

D.关系21.表中不存在非主键列对主键的部分函数依赖,则该表符合( )。

A.1NF

B.2NF

C.3NF

D.BCNF22.下列关于数据的叙述中,错误的是( )。

A.数据的种类分为文字、图形和图像三类

B.数字只是最简单的一种数据

C.数据是描述事物的符号记录

D.数据是数据库中存储的基本对象23.下列不属于数据库管理系统主要功能的是( )。

A.数据计算功能

B.数据定义功能

C.数据操作功能

D.数据库的维护功能24.下列关于数据库的叙述中,不准确的是( )。

A.数据库中存放的对象是数据表

B.数据库是存放数据的仓库

C.数据库是长期存储在计算机内的、有组织的数据集合

D.数据库中存放的对象可为用户共享第2章MySQL简介学习点拨

本章的重点内容是MySQL概述。

本章将主要介绍MySQL系统特性、MySQL服务器的安装和配置、MySQL服务器的启动与关闭、MySQL客户端管理工具和MySQL的语言结构。在学习过程中要多上机操作,才能熟悉系统的安装等操作。  本章学习流程图

本章介绍MySQL相关的基础知识,主要包括MySQL的系统特性、安装和配置过程、数据库服务器的启动和关闭、客户端管理工具,以及MySQL的语言结构。  2.1 MySQL的特点考试点津【了解】MySQL数据库的特点

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL使用的SQL语言是用于访问数据库的最常用标准化语言。由于MySQL数据库体积小、速度快、总体拥有成本低、开放源码,使MySQL数据库有着广泛的应用,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache服务器可组成良好的开发环境。

MySQL数据库管理系统具有以下一些系统特性。(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。(2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、Open BSD、OS/2 Wrap、Solaris、Windows等多种操作系统。(3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。(4)支持多线程,可充分利用CPU资源。(5)优化的SQL查询算法,有效地提高查询速度。(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入到其他的软件中。(7)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。(8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。(9)提供用于管理、检查、优化数据库操作的管理工具。(l0)可以处理拥有上千万条记录的大型数据库。(11)支持多种存储引擎。

目前采用MySQL数据库构建网站与信息管理系统的应用环境主要有如下两种架构方式。(1)LAMP(Linux+Apache+MySQL+PHP/Perl/Python)。

·Linux。Linux是免费开源软件,这意味着源代码可用的操作系统。

·Apache。Apache是使用中最受欢迎的一个开放源码的Web服务器软件。

·MySQL。MySQL是多线程、多用户的SQL数据库管理系统。

·PHP、Perl或Python。PHP是一种编程语言,最初设计用于生成动态网站,是主要用于服务器端的应用程序软件。Perl是一种脚本工具性语言,借取了C等很多其他程序语言的特性,逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理等。Python也是一种脚本语言,已有20多年的历史,Google推出的云计算环境,首先发布的就是Python平台。(2)WAMP(Windows+Apache+MySQL+PHP/Perl/Python),其中A、M、PAMP代表的软件和LAMP中的相同,其中的W为微软公司的Windows操作系统。  2.2 安装配置MySQL服务器考试点津【掌握】MySQL数据库的安装配置

用户可以根据自身的操作系统类型,从http://dev.MySQL.com/downloads/MySQL/上免费下载对应的MySQL服务器安装包。本书以版本MySQL5.5.25a为例,介绍其在Windows 7操作系统下的安装和配置过程。

具体安装步骤如下。(1)在本地计算机中下载Windows(x86,32-bit)版的MySQL5.5.25a之后,双击安装文件直接进入MySQL安装界面,如图2-1所示。图2-1 MySQL安装界面(2)单击“Next”按钮,进入如图2-2所示的MySQL许可证协议界面,这里需要选择“I accept the terms in the License Agreement”复选框。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载