第3章数据存储设计与Access数据库管理 当数据存储方式采用关系数据库时,数据存储设计需要完成关系数据库的设计,建立信息系统的数据库。而在计算机上建立关系数据库则由DBMS来完成,关系DBMS都是基于关系模型的。本章将进一步通过“图书销售”案例介绍关系数据库设计的基本步骤和方法。采用的DBMS是Microsoft公司Office办公套件中流行的桌面数据库管理系统Access 2016,本章还将介绍Access的主要特点、Access 2016的界面和操作方法以及Access数据库的有关概念、创建方法及基本管理操作。 3.1数据库设计方法 用户建立自己的数据库是为了满足自身的需求,当现有的数据处理手段和方法不能满足用户的业务、管理的实际需要时,用户就需要开发新的数据处理系统。如果采用数据库作为数据管理技术,则开发的数据处理系统就是数据库系统。 3.1.1数据库设计的定义 数据库是数据库系统的重要组成部分。设计符合用户需要、性能优异的数据库,成为开发数据库系统的关键。 数据库设计是指对于给定的应用环境,设计构造最优的数据库结构,建立数据库及其应用系统,使之能有效地存储数据,对数据进行操作和管理,以满足用户各种需求的过程。 3.1.2数据库设计的步骤 结构化设计方法,将开发过程看成一个生命周期,因此也称为生命周期方法。其核心思想是将开发过程分成若干个步骤,主要包括系统需求的调查与分析、概念设计、逻辑设计、物理设计、实施与测试、运行维护等。 (1) 系统需求的调查与分析。在这一步骤,设计人员要调查现有系统的情况,了解用户对新系统的信息需求和功能需求,对系统要处理的数据收集完整,并进行分析整理和分类组织,写出需求分析报告。 (2) 概念设计。在系统需求分析的基础上设计出全系统的面向用户的概念数据模型,作为用户和设计人员之间的“桥梁”。这个模型既能够清晰地反映系统中的数据及其联系,又能够方便地向计算机支持的数据模型转化。 (3) 逻辑设计。将概念模型转化为DBMS支持的数据模型,但该模型并不依赖于特定的DBMS。目前,数据库一般都使用关系模型。 (4) 物理设计。将逻辑设计的数据模型与选定的DBMS结合,设计出能在计算机上实现的数据库模式。 (5) 实施与测试。应用DBMS在计算机上建立物理数据库,通过测试之后投入实际运行。 (6) 运行维护。对数据库的日常运行进行管理维护,以保障数据库系统的正常运转。 数据库设计的基本目标是建立信息系统的数据库,而在计算机上建立数据库必须由DBMS来完成,目前几乎所有的DBMS都是基于关系模型的。因此,在数据库设计过程中,最主要的是正确掌握用户需求,然后在此基础上设计出关系模型。 然而,关系模型面向DBMS,它与实际应用领域所使用的概念和方法有较大的距离。用户对关系模型不一定了解,而数据库设计人员也不一定熟悉用户的业务领域,因此,这两类人员之间存在沟通问题。并且,应用领域很复杂,往往要经过多次反复的调查、分析才能弄清用户需求,因此,根据用户要求一步到位地建立系统的关系模型较为困难。 由于用户是开发数据处理系统的提出者和最终使用者,为保证设计正确和满足用户要求,用户必须参与系统的开发设计。因此,在建立关系模型前,应先建立一个概念模型。 概念模型使用用户易于理解的概念、符号、表达方式来描述事物及其联系,它与任何实际的DBMS都没有关联,是面向用户的; 同时,概念模型又易于向DBMS支持的数据模型转化。概念模型也是对客观事物及其联系的抽象,也是一种数据模型。概念模型是现实世界向面向计算机的数据世界转化的过渡,目前,常用的概念模型为实体联系模型。因此,概念设计成为数据库设计过程中非常重要的环节。 用户可以用3个世界来描述数据库设计的过程。用户所在的实际领域称为现实世界; 概念模型以概念和符号为表达方式,所在的层次为信息世界; 关系模型位于数据世界。 通过对现实世界调查分析,然后建立起信息系统的概念模型,就从现实世界进入信息世界; 通过将概念模型转化为关系模型进入数据世界,然后由DBMS建立起最终的物理数据库。数据库设计的整个变化过程如图3.1所示。 图3.1数据库设计过程示意 3.2实体联系模型及转化 实体联系(EntityRelationship,ER)模型是目前常用的概念模型,它有一套基本的概念、符号和表示方法,面向用户,并且很方便向其他数据模型转化。 3.2.1ER模型的基本概念 在ER模型中,主要包括实体、属性、域、实体型、实体集、实体码以及实体集之间的联系等概念。 1. 实体与属性 实体(Entity)指现实世界中任何可相互区别的事物。人们通过描述实体的特征(即属性)来描述实体。在建立信息系统概念模型时,实体就是系统关注的对象。 属性(Attribute)指实体某一方面的特性。一个实体由若干个属性来描述。通过给属性取值,可以确定具体的实体。例如,对于员工实体,需要描述工号、姓名、性别、生日、职务、薪金等属性。给定{“0301”,“李建设”,“男”,“19781015”,“经理”,¥6650}一组值,就确定了一个实体。所以,实体靠属性来描述。为了表述方便,每个属性都有一个名称,称为属性名,例如“工号”“姓名”等。 2. 域 每个属性都有对取值范围的限定,属性的取值范围称为域(Domain)。例如,性别的取值范围是{“男”,“女”},职务的取值范围是{“总经理”,“经理”,“主任”,“组长”,“业务员”,“见习员”},薪金的取值范围是 [1000~10000]等。域是值的集合。 3. 实体型与实体集 信息系统要处理众多的同类实体。例如在销售管理系统中,每个员工都是一个实体,而所有员工实体的属性构成都相同。将同类实体的属性构成加以抽象,就得到实体型的概念。用实体名及其属性名集合来描述同类实体,称为实体型(Entity Type)。例如,员工(工号,姓名,性别,生日,职务,薪金)定义了员工实体型。 每个实体的具体取值就是实体值。例如上面员工“李建设”的相关取值就是一个实体值,可见,型描述同类个体的共性,值是每个个体的具体内容。 对于同一个对象使用不同的实体型,表明我们所关注的内容不同。同样是员工,当用(工号,姓名,性别,年龄,身高,体重,视力)等属性来表示时,是针对员工的健康信息。 同型实体的集合称为实体集(Entity Set)。例如,所有员工实体的集合构成员工实体集。在以后的应用中,无须强调时一般不区分实体型或实体集,都简称为实体。 4. 实体码 实体集中的每个实体都可相互区分,即每个实体的取值不完全相同。用来唯一确定或区分实体集中每一个实体的属性或属性组合称为实体码(Entity Key),或称为实体标识符。例如,在员工实体集中指定一个工号值,就可以确定唯一一个员工。所以,工号可作为员工实体集的码。 实体码对于数据处理非常重要,如果实体集中不存在这样的属性,设计人员往往会增加一个这样的标识属性。 5. 实体集之间的联系 现实世界中事物不是孤立存在而是相互关联的,事物的这种关联性在信息世界的体现就是实体联系。实体集之间的联系方式可以分为以下3类。 (1) 一对一联系。两个实体集A、B,若A中的任意一个实体最多与B中的一个实体发生联系,而B中的任意一个实体最多与A中的一个实体发生联系,则称实体集A与实体集B有一对一联系,记为1∶1。例如,乘客实体集与火车票实体集的持有联系,院长实体集与学院实体集的领导联系等。 (2) 一对多联系。两个实体集A、B,若A中至少有一个实体与B中一个以上的实体发生联系,而B中的任意一个实体最多与A中的一个实体发生联系,则称实体集A与实体集B有一对多联系,记为1∶n。例如,学院与专业的设置联系,部门与员工的聘用联系等。 (3) 多对多联系。两个实体集A、B,若A中至少有一个实体与B中一个以上的实体发生联系,而B中至少有一个实体与A中一个以上的实体发生联系,则称实体集A与实体集B有多对多联系,记为m∶n。例如,学生与课程的选修联系、销售员与商品的销售联系等。 当一个联系发生时,可能会产生一些新的属性,这些属性属于联系而不属于某个实体。例如,学生选修课程会产生成绩属性,销售商品会产生数量和金额属性。 联系反映的是实体集之间实体对应的情况。若一个联系发生在两个实体集之间,称为二元联系; 若联系发生在一个实体集内部,例如球队集的比赛联系,则称为一元联系或递归联系; 联系也可以同时在3个或更多实体集之间发生,称为多元联系。例如在销售联系中,销售员、商品、顾客通过一个销售行为联系在一起,从而使销售联系成为三元联系。 3.2.2ER图 ER模型通过描述系统中的所有实体及其属性以及实体间的联系来建立MIS的概念模型。1976年,P.P.Chen提出实体联系方法,用实体联系(ER)图来表示实体联系模型。由于ER图简便直观,这种表示方法得到了广泛的应用。依照一定的原则,ER图可以方便地转化为关系模型。 在ER图中,只用到很少几种符号。在画系统ER图时,将所有的实体型及其属性、实体间的联系全部画在一起,便得到了系统的ER模型。下面是画ER图时使用的符号及其含义。 矩形框中写上实体名表示实体型。 椭圆框中写上属性名,在实体或联系和它的属性间连上连线,在作为实体码的属性下面画一条下画线。 菱形框中写上联系名,用连线将相关实体连起来,并标上联系类别。 如果一个系统的ER图中实体和属性较多,为了简化最终的ER图,可以将各实体及其属性单独画出,在联系图中只画出实体间的联系。 【例3.1】设计例2.1中的“教学管理”数据库的ER图。 ① 识别实体。实体是独立存在的对象,教学管理系统中的实体包括学院、专业、学生、课程,它们的属性如下所述。  学院实体。其属性为学院编号、学院名称、院长、办公电话。  专业实体。其属性为专业编号、专业名称、专业类别。  学生实体。其属性为学号、姓名、性别、生日、民族、籍贯、简历、登记照。  课程实体。其属性为课程编号、课程名称、课程类别、学分。 ② 确定实体间的联系。教学管理系统中各实体间的联系如下所述。  学院与专业发生1∶n联系。一个专业只由一个学院设置,一个学院可以有若干个专业。  学院与课程发生1∶n联系。一门课程只由一个学院开设,一个学院开设多门课程。  学生与专业发生n∶1联系。每名学生主修一个专业,一个专业有多名学生就读。  课程与学生发生m∶n联系。一名学生可选修多门课程,并获得一个成绩,一门课程有多名学生选修。 ③ 画出ER图,教学管理系统的ER图如图3.2所示。 图3.2教学管理系统ER图 注意: 在ER图中,每个实体只出现一次,实体名不可以重复。 3.2.3ER模型向关系模型的转化 ER模型需要转化为关系模型才能被DBMS所支持。转化方法可以归纳为以下几点: (1) 每个实体型都转化为一个关系模式,即 给该实体型取一个关系模式名,实体型的属性成为关系模式的属性,实体码成为关系模式的主键。 (2) 实体间的每一种联系都转化为一个关系模式,即 给联系取一个关系模式名,与联系相关的各实体的码成为该关系模式的属性,联系自身的属性成为该关系模式其余的属性。 (3) 对以上转化后得到的关系模式结构按照联系的不同类别进行优化。 联系有3种类型,转化为关系模式后,与其他关系模式可进行合并优化。 (1) 1∶1的联系,一般不必单独成为一个关系模式,可以将它与联系中的任何一方实体转化成的关系模式合并(一般与元组较少的关系合并)。 (2) 1∶n的联系也没有必要单独作为一个关系模式,可将其与联系中的n方实体转化成的关系模式合并。 (3) m∶n的联系必须单独成为一个关系模式,不能与任何一方实体合并。 按照以上方法,将例3.1的ER模型转化为关系模型,得到例2.2的关系模型。 3.2.4设计ER模型的进一步探讨 当信息系统比较复杂时,设计正确的ER模型非常必要,但也是较为困难的事情。其基本方法是从局部到整体,先将每个局部应用的ER图设计出来,然后再进行优化集成。 设计ER模型的关键是识别初始的实体和联系。一般而言,在现实世界中独立存在的对象就是实体,一般用名词命名; 而反映企业或用户业务、行为的对象,大多涉及不同的实体,一般用动词命名,这就是联系。 实体或联系一般都需要使用属性来描述。根据前述ER模型转化为关系模型的方法可知,实体或联系的属性要转化为关系的属性。在关系模型中,属性是不可分的原子属性,因此,在ER模型中的属性也应是不可分的。 但在初始ER模型中,实体或联系的属性可能不是原子属性,对于这类属性,必须进行处理和转化。 对于实体或联系的属性,根据其取值的特点可进行以下分类: (1) 简单属性和复合属性。简单属性也称原子属性,是指不能再分为更小部分的属性。而复合属性是指有内部结构,可以进一步划分为更小组成部分的属性。 (2) 单值属性和多值属性。如果某属性在任何时候都只能有单独的一个值,则称该属性为单值属性,否则为多值属性。 (3) 允许和不允许取空值属性。允许取空值指允许实体在某个属性上没有值,这时使用空值(Null)来表示。Null表示属性值未知或不存在。属性不允许取空值,则意味着所有实体在该属性上都有确定的取值。 (4) 基本属性和派生属性。派生属性的值是从其他相关属性的值计算出来的。 在最终ER图中,必须消去多值和复合属性,因此需要对它们进一步处理。一般情况下,单值复合属性可以按子属性分解为简单属性; 多值简单属性可以将多值转化为多个单值简单属性(适合值较少的情况),或者将多值属性转化为实体对待; 多值复合属性则需要转化为实体来处理。 3.2.5术语对照 数据库设计过程经过了从概念模型到关系模型,再到利用DBMS(例如Access)建立计算机上物理数据库的各个环节。 在各个不同环节,为了保持概念的独立性和完整性,分别使用了不同的术语。为了方便读者进行比较,这里将常用的术语对照列出,如表3.1所示。 表3.1术语对照表 实体联系模型关 系 模 型Access数据库 实体集关系表 实体型关系模式表结构 实体元组记录(行) 属性属性字段(列) 域域数据类型 实体码候选键、主键不重复索引、主键 联系外键外键(关系) 注意: 本书除实体联系模型和关系理论部分以外,其他地方都使用Access数据库中的术语。 3.3图书销售管理数据库设计 “进、销、存”是很多企业的主要业务类型,而在管理信息系统中,“进、销、存”是最典型的模式。本节重点介绍某中小型书店图书销售管理系统的数据库设计。 3.3.1需求调查与分析 根据系统开发方法,首先需要根据用户需求展开系统调查分析,并在此基础上写出系统的系统调查与需求分析报告。该报告是在对现有的信息处理和管理业务进行调查分析的基础上,结合用户对将要开发的系统的要求,提出新系统的基本目标。 该报告的内容主要包括企业组织结构、用户业务分析、数据流图、数据字典等,需要将用户需求的具体内容表述清楚。 用户需求主要由两个部分组成,即信息需求和功能需求。 信息需求即新系统应该收集、整理、存储、处理的所有数据,包括从最基本的数据项(例如图书名)到关联在一起的数据集合(例如图书信息,由书名、作者、出版社、定价等若干项数据组成)。系统调查与需求分析报告对此都应该给出详细、准确、完整、无异义的描述。 由于信息在系统中会有处理要求和状态的变化,与信息需求联系在一起的就是处理功能需求。功能需求是新系统应该实现的业务功能,例如数据的输入与修改、查询汇总、报表打印等。 1. 组织结构 对于组织结构进行分析有助于分析业务范围与业务流程。书店组织结构如图3.3所示。 图3.3书店组织结构 其中,书库是保存图书的地方; 购书/服务部负责采购计划、读者服务、图书预订等业务; 售书部负责图书的销售; 财务部负责资金管理; 人事部负责员工管理与业务考核。 2. 业务分析 对于信息处理系统来说,划分系统边界很重要,即划分哪些功能由计算机来完成、哪些工作在计算机外完成,这些划分要通过业务分析来确定。同时,业务流程中涉及的相关数据也通过业务分析得到归类和明确。在业务分析的基础上,可以确定数据流图和数据字典。 图书销售管理系统主要包含以下业务内容: (1) 进书业务。采购员根据事先的订书单采购图书,然后将图书入库,同时登记图书入库数据。 本项业务涉及的数据单据有进书单(含有进书单明细)以及书库账本。 (2) 售书业务。销售人员根据读者所购图书填写售书单,同时修改相应图书库存数据。 图3.4所示为某书店售书单小票的样式,售书单的前面是销售单号、交易时间数据,中间是本单的售书明细,后面是应收金额、收银员等数据。 图3.4售书单小票的样式 本项业务涉及和产生的数据单据有售书单(包括售书明细)以及书库账本。 (3) 图书查询服务业务。根据读者需要,提供本书店特定的图书及库存信息。 本项业务涉及的主要数据单据是书库账本。 (4) 综合管理业务。综合管理业务包括进书、销售、库存数据的查询、汇总和报表输出等。 本项业务涉及所有的进书数据、销售数据和库存数据等。 3. 系统数据分析 上面的分析将系统业务归纳为4项。在业务分析的基础上,应该画出系统的数据流图,然后在此基础上就可以建立系统的数据字典。数据流图和数据字典是需求分析使用的工具,本节不讨论数据流图和数据字典的完整概念和应用,仅对最后建立数据库所需要的数据进行分析说明。 在上述4项业务中涉及的业务数据包括进书数据、库存数据、销售数据。在这些数据中包含有图书数据、员工数据等,而图书数据与出版社有关,员工与部门有关。 这样,将所有的数据进行归类分析,书店图书销售管理系统要处理的数据如下所述。 (1) 部门数据。其组成为部门编号、部门名、办公电话。 (2) 员工数据。其组成为工号、姓名、性别、生日、职务、所属部门、薪金。 (3) 出版社数据。其组成为出版社编号、出版社名、地址、联系电话、联系人。 (4) 基本图书数据。其组成为图书编号、ISBN、书名、作者、出版社、版次、出版日期、定价、图书类别。 (5) 售书单及明细。其组成为售书单号、日期、{售书明细}、金额、业务员。 (6) 书库账本。其组成为图书编号、库存数量、平均进价折扣、备注。 对于这些需要处理的数据对象,每种对象由其相应属性来描述。这些属性有的是基本数据项,有的是数据项集合(由“{}”括起来)。 例如,{售书明细}由序号、图书编号、售价、折扣、数量、金额等属性组成。 当所有数据对象都归纳完毕后,就可以编制数据字典了。在数据字典中,要对所有这些数据项、数据项集合等的命名、取值方式、范围、作用等进行明确且无异义的说明。 4. 处理功能分析 (1) 进书功能。当进书业务发生时,将所进图书存入书库,然后输入进书数据,并根据进书单修改库存数据。新进的图书可能是以前有库存的,也可能是以前没有库存的。对于以前没有库存的图书,需要添加新图书的库存记录。对于已有图书,则修改库存的数量。 (2) 售书功能。如果有图书销售业务发生,要打印销售单,同时修改图书库存数据。 (3) 图书查询服务功能。图书查询服务功能为读者提供查询平台。 (4) 综合管理功能。管理人员需要定期或不定期地汇总统计或查询进书数据、销售数据、库存数据,并按照管理要求制作业务报表。 上述内容是对需求分析报告及数据字典主要内容的概述。数据字典是数据库设计最重要的成果和基础。只有将数据字典编制正确,才能保证数据库设计符合用户要求。 进书业务和售书业务的数据特征很相似,为了简化设计,以下设计省略进书管理部分,读者可根据售书管理的分析自行设计和添加。 说明: 进、销、存是复杂的企业业务。为了突出重点,便于教学,这里进行了大量的简化,略去许多相关业务和细节分析,但核心的数据处理功能基本上得到完整体现。本节的主要目的是介绍数据模型设计,若读者需要更专业和全面的需求分析文档,可参阅其他资料。 3.3.2概念设计与逻辑设计 1. 概念模型设计 在完成需求分析的基础上,接下来进行概念模型设计。 【例3.2】分析并设计图书销售管理数据库的ER图。 ① 识别初始实体,确定实体的属性,标明实体码。 实体是现实世界中独立的、确定的对象,本系统中可以确定的实体类别有部门、员工、出版社、图书以及书库,它们的属性如下所述。  部门实体。其属性为部门编号、部门名、办公电话。  员工实体。其属性为工号、姓名、性别、生日。  出版社实体。其属性为出版社编号、出版社名、地址、联系电话、联系人。  图书实体。其属性为图书编号、书名、作者。  书库实体。其属性包括编号、地点等,这里假定只有一个书库,这样书库的属性可以不予考虑。 ② 确定初始的实体间联系及其属性。  部门与员工发生“聘用”联系。这里规定一个员工只能在一个部门任职,因此部门与员工是1∶n联系。当联系发生时,产生职务、薪金属性。  出版社与图书发生“出版”联系。一本图书只能在一家出版社出版,这是1∶n联系。当联系发生时,产生ISBN、版次、出版时间、定价、图书类别等属性。  图书与书库发生“保存”联系。如果有多个书库,就要区分某种图书保存在哪个编号的书库中。这里假定只有一个书库,所以所有的图书都保存在一个地点,书库与图书是1∶n联系。“保存”联系产生存书折扣、数量、备注等属性。  员工和图书发生“售出”联系。售书单是联系的属性(省略“购进”联系的分析)。 ③ 将以上分析用初始ER图表示。 初始实体及属性如图3.5所示。 图3.5图书销售管理数据库的实体及属性 图3.6为部门与员工联系图。图3.7为图书与出版社、图书与书库联系图。 图3.6部门与员工联系图 图3.7图书与出版社、图书与书库联系图 当员工在书店售书时,由于一个员工可以售出多种图书,一种图书可以从多名员工那里售出,因此员工与图书的“售出”联系是m∶n联系,产生“售书单”属性。图3.8为员工与图书售出联系的ER图。 图3.8员工与图书售出联系的ER图 仔细分析“售书单”属性,可以发现该属性与其他实体或联系的属性有很大的区别。其他的属性都是不可分的、单个值的属性。而“售书单”不是一个单一的数据,它由多项内容构成,本身是有结构的(见图3.4),因此该属性为多值复合属性。 由于ER图将来要转化为关系模型,而关系中的属性必须是原子的,因此必须对ER图的非原子单值属性进行专门处理。 对于单值的复合属性,一般将组合属性的子属性分解为独立属性。例如,假设“薪金”由“基本工资”和“奖金”组成,那么取消“薪金”,直接将“基本工资”和“奖金”变成独立的属性就可以了。 对于多值属性,一般将这个“属性”变成“实体”来对待,这样,它与原实体的关系就变成了实体间的联系。 图3.8中的“售书单”是多值的组合属性,将其看作“售书单”实体,实体的属性由售书单中单值的属性组成。“售书单”实体分别与“员工”和“图书”发生联系。一名员工可负责多份售书单,而一份售书单只由一名员工负责,两者之间是1∶n联系; 一份售书单中可包含多种图书,一种图书可由不同的售书单售出,两者之间是m∶n联系。这样,图3.8所示的ER图就设计为图3.9所示的样子。 图3.9售书单相关联系的ER图 其中,售书单的“金额”属性是本单中所有图书销售金额的合计,即 金额=∑(数量×定价×折扣) 通常,“金额”属性称为“导出”属性,由于可以从其他属性导出,在数据库中一般略去。 根据以上分析,在实体属性图中增加“售书单”实体,如图3.10所示。 图3.10售书单实体及属性图 这样,得到图书销售管理数据库的ER图。实体属性图如图3.5和图3.10所示,综合图3.6~图3.10,略去联系图中的所有属性,得到如图3.11所示的最终ER图。 图3.11图书销售管理数据库的ER图 注意: 该图中略去了与“进书业务”相关的部分。 2. 逻辑模型设计 ER模型是面向用户的概念模型,是数据库设计过程中概念设计的结果。下面以ER模型为基础,将其转化为关系模型。 【例3.3】将例3.2中的图书销售管理ER模型转化为关系模式表示的关系模型。 ① 将每个实体型转化为一个关系模式,得到部门、出版社、员工、图书、售书单的关系模式,关系的属性就是实体图中的属性(书库不需要单独列出)。 ② 将ER图中的联系转化为关系模式。 ER图中有5个联系,因此得到5个由联系转化而来的关系模式,它们分别如下所述。 聘用(部门编号,工号,职务,薪金) 出版(出版社编号,图书编号,ISBN,版次,出版日期,定价,图书类别) 保存(图书编号,数量,存书折扣,备注) 负责(工号,售书单号) 售出(售书单号,图书编号,序号,数量,售价折扣) 在这些联系中,由1∶n联系得到的关系模式可以与n方实体合并,在合并时要注意属性的唯一性。这样,“聘用”与员工合并; “出版” “保存”与图书合并; “负责”与售书单合并(合并时重名的不同属性要改名,关系模式名和其他属性名也可酌情修改)。 保留“售出”联系的模式,并结合需求分析改名为“售书明细”。 这样,得到以下一组关系模式,它们构成了图书销售管理数据库的关系结构模式: 部门(部门编号,部门名,办公电话) 员工(工号,姓名,性别,生日,部门编号,职务,薪金) 出版社(出版社编号,出版社名,地址,联系电话,联系人) 图书(图书编号,ISBN,书名,作者,出版社编号,版次,出版时间,图书类别,定价,折扣,数量,备注) 售书单(售书单号,售书日期,工号) 售书明细(售书单号,图书编号,序号,数量,售价折扣) 相对于ER模型中有实体、实体间的联系,在关系模型中都是用关系这一种方式来表示的,所以关系模型的数据表示和数据结构都十分简单。 关系模型的主要特点之一是将各实体数据分别放在不同的关系中而不是放在一个集成的关系内,这使数据存储的重复程度降到最低。例如员工、图书等关系中存放各自的数据,售书单和售书明细中只存放工号、图书编号,通过工号和图书编号来引用其他关系的数据,这样数据存储的冗余度最小,也便于维护数据库和保持数据的一致性。 在确定关系模式后,根据实际情况载入相应的数据,就可以得到对应于关系模式的关系了。一个关系模式下可以有一到多个关系。本节实例每个模式下只有一个关系,直接用模式名作为关系名,然后添加元组数据。表3.2展示了出版社关系。 表3.2出版社关系 出版社编号出 版 社 名地址联系电话联系人 1002大学教育出版社北京市东城区沙滩街01064660880赵伟 1010清华大学出版社北京市海淀区中关村01065602345路照祥 2120电子技术出版社上海市浦东区建设大道02154326777张正发 2703湖北科技出版社湖北省武汉市武昌区黄鹤路02787808866范雅萍 2705大学教育出版社武汉市洪山区学院路02783056656刘山 建立关系模型是数据库逻辑设计的成果。 设计好关系模型后,结合特定的DBMS就可以进行物理设计,并在计算机上建立物理数据库。 3.4Access概述 3.4.1Access的发展 微软公司最初主要的业务领域在操作系统方面,后来,它相继进入到办公软件、开发工具、数据库等领域,陆续开发了Word、Excel等Office软件和Access数据库管理系统。 Office第1版于1989年发布,而最早的Access 1.0 版于1992年11月发布。起初,Access是一个独立的产品,后来微软公司在1996年12月发布的Office 97将Access加入其中,使其成为重要的一员。 其后,微软公司不断更新Office版本。Access 2016是在2015年9月22日由微软公司发布的数据库管理系统。它是微软办公软件包Office 2016的组件之一,是把数据库引擎的图形用户界面和软件开发工具结合在一起的数据库管理系统。 Access在很多地方得到广泛使用,主要体现在以下两个方面。 1. 用于进行数据分析 Access 2016有强大的数据处理和统计分析能力,尤其是处理上万条记录,甚至十几万条记录时速度快且操作方便,这一点是 Excel无法相比的。 2. 用于开发小型系统 相对于 Oracle、SQL Server等大型数据库开发软件,Access属于小型软件,主要针对小型企业用户。使用 Access开发数据库,如生产管理、人事管理、库存管理等各类企业管理数据库系统,其最大的优点是易学和低成本,尤其是非计算机专业的人员也能学会。因此,Access 2016非常适合初学者作为学习数据库入门知识、掌握数据库管理工具的首选数据库软件。 3.4.2Access的启动和退出 1. 启动Access Access的启动和退出与其他Windows程序类似,其主要启动方法有以下几种: (1) 单击“开始”按钮,选择“所有程序”→Microsoft Office→Microsoft Access 2016命令。 (2) 若桌面上有Access快捷图标,则双击该图标。 (3) 双击与Access关联的数据库文件。 在启动Access 但未打开数据库,即通过第(1)、(2)种方式启动Access时,将进入Backstage 视图。 2. 退出Access 在Access窗口中,退出Access的主要操作方法有以下几种: (1) 单击窗口右上角的“关闭”按钮。 (2) 单击窗口左上角的Access图标,在弹出的控制菜单中选择“关闭”命令。 (3) 选择“文件”选项卡,在Backstage 视图中选择“关闭”命令。 (4) 按Alt+F4组合键。 3.4.3Access的用户界面 Access 2016延续了Office 2013套件的风格,与 Office 2013其他组件的界面基本相似,但是更为复杂。当用户新建一个数据库或者打开一个包含表的数据库时,可以看见完整的数据库界面,如图3.12所示。 图3.12Access 2016的工作界面 Access 2016用户界面的3个主要组件的功能如下: (1) Backstage视图。Backstage视图是功能区中“文件”选项卡上显示的命令集合。 (2) 功能区。功能区是一个包含多组命令且横跨程序窗口顶部的带状选项卡区域,替代 Access以前版本中存在的菜单栏和工具栏的主要功能。它主要由多个选项卡组成,这些选项卡上有多个按钮组。 (3) 导航窗格。导航窗格是Access程序窗口左侧的窗格,用于组织和在其中使用数据库对象。 这3种界面元素提供了供用户创建和使用数据库的环境。 1. Backstage视图 Backstage视图是Access 2016中增加的新功能,它是功能区中“文件”选项卡上显示的命令集合,可以创建新数据库、打开现有数据库、通过SharePoint Server将数据库发布到 Web,以及执行很多文件和数据库维护任务。 1) “新建”命令的Backstage视图 直接启动Access,或选择“文件”选项卡,会出现Backstage视图界面,如图3.13所示。 图3.13启动Access后的Backstage视图界面 在窗口左侧列出了可以执行的命令,灰色命令表示在当前状态下不可选。 (1) “新建”命令: 用于建立新的数据库,其右侧列出了多种模板,便于用户按照模板快速建立特定类型的数据库。用户也可以单击“空白数据库”选项,然后一步步建立一个全新的数据库。 (2) “打开”命令: 用于打开已创建的数据库,其右侧的“最近”下的数据库列表是曾打开过的数据库,选择某个数据库单击可直接打开。 (3) “账户”命令: 用于设置用户账户个人信息,或者对Access软件进行产品激活或更新。 (4) “反馈”命令: 用于向供应商发送“微笑”“哭脸”和“建议”,其中“建议”可以用于发送操作截图和用户建议。 (5) “选项”命令: 用于对Access进行设置。 2) 打开已有数据库的Backstage视图 若已经打开了数据库,例如打开“教学管理”数据库,选择“文件”选项卡,进入当前数据库的Backstage视图,如图3.14所示。 图3.14当前数据库的Backstage视图界面 此时,原来一些不可选的命令变为可选状态。其中,“另存为”命令可将当前数据库重新存储; “关闭”命令用于关闭当前数据库; “信息”命令显示可对当前数据库进行“压缩并修复”“用密码进行加密”的操作; “打印”命令可实现对象的打印输出操作; “保存”命令可实现对当前数据库文件的保存操作, “另存为”命令可实现对当前数据库的文件另存为“模板”“打包并签署”“备份”“SharePoint共享”等多种操作。 对于一些命令的具体操作将在后续章节做进一步介绍。 2. 功能区 进入Access,横跨程序窗口顶部的带状选项卡区域就是功能区,如图3.15所示。 图3.15功能区 功能区提供了Access 2016中主要的命令界面。功能区的主要特点之一是,将早期版本的需要使用菜单栏、工具栏、任务窗格和其他用户界面组件才能显示的任务或入口点集中在一个地方,这样,用户只需要在一个位置查找命令,而不用四处查找命令了。在数据库的使用过程中,功能区是用户经常使用的区域。 功能区包括将相关常用命令分组在一起的主选项卡、只在使用时才出现的上下文命令选项卡,以及快速访问工具栏(可以自定义的小工具栏,可以将用户常用的命令放入其中)。 功能区主选项卡包括“文件”“开始”“创建”“外部数据”和“数据库工具”。每个选项卡都包含多组相关命令,这些命令组展现了其他一些新的界面元素(例如样式库,它是一种新的控件类型,能够以可视方式表示选择)。 功能区上提供的命令还反映了当前活动对象。有些功能区选项卡只在某些情况下出现,例如,只有在设计视图中已打开对象的情况下,“设计”选项卡才会出现。因此,功能区的选项卡是动态的。 在功能区选项卡上,某些按钮提供选项样式库,而其他按钮将启动命令。 1) 功能区的主要命令选项卡 Access功能区中主要有5个命令选项卡,即“文件”“开始”“创建”“外部数据”和“数据库工具”,通过单击选项卡上的标签进入选定的选项卡。 在每个选项卡中都有不同的操作工具。 (1) “开始”选项卡。 在“开始”选项卡中,有“视图”组、“文本格式”组等,用户可以通过这些组中的工具对数据库对象进行操作和设置。 利用“开始”选项卡中的工具,可以完成以下功能。 ① 选择不同的视图。 ② 从剪贴板复制和粘贴。 ③ 设置当前的字体格式、字体对齐方式。 ④ 操作数据记录(刷新、新建、保存、删除、汇总、拼写检查等)。 ⑤ 对记录进行排序和筛选。 ⑥ 查找记录。 (2) “创建”选项卡。 利用“创建”选项卡中的工具,用户可以创建数据表、窗体和查询等数据库对象,主要完成以下功能。 ① 插入新的空白表。 ② 使用表模板创建新表。 ③ 在SharePoint网站上创建列表,在链接至新创建的列表的数据库中创建表。 ④ 在设计视图中创建新的空白表。 ⑤ 基于活动表或查询创建新窗体。 ⑥ 创建新的数据透视表或图表。 ⑦ 基于活动表或查询创建新报表。 ⑧ 创建新的查询、宏、模块或类模块。 (3) “外部数据”选项卡。 利用“外部数据”选项卡中的工具,可以完成以下功能。 ① 导入或链接到外部数据。 ② 导出数据。 ③ 通过电子邮件发送指定格式数据。 ④ 使用联机SharePoint列表实现数据的导入导出。 (4) “数据库工具”选项卡。 利用“数据库工具”选项卡中的工具,可以完成以下功能。 ① 压缩或修复数据库。 ② 启动Visual Basic编辑器或运行宏。 ③ 创建和查看表关系。 ④ 显示/隐藏对象相关性。 ⑤ 运行数据库文档或分析性能。 ⑥ 拆分Access数据库或将数据移至Share Point网站。 ⑦ 管理Access加载项。 2) 上下文命令选项卡 有一些选项卡属于上下文命令选项卡,即根据用户正在使用的对象或正在执行的任务而显示的命令选项卡。例如,当用户在创建表进入数据表的设计视图时,会出现“表格工具”下的“设计”选项卡; 当在报表设计视图中创建一个报表时,会出现“报表设计工具”下的4个选项卡,如图3.16所示。 图3.16功能区的上下文命令选项卡 有关的选项卡和功能及其应用将在后续章节中进一步介绍。 3) 快速访问工具栏 快速访问工具栏是出现在窗口顶部Access图标右边的标准工具栏( ),它将最常用的操作命令按钮(例如“保存”“撤销”等)显示在其中,用户可单击按钮进行快速操作。另外,用户还可以定制该工具栏。 如图3.17所示,单击快速访问工具栏右边的下三角按钮,显示“自定义快速访问工具栏”菜单,用户可以在该菜单中选择某一命令,将其设置为快速访问工具栏中显示的图标。 图3.17自定义快速访问工具栏 4) 快捷键 执行命令的方法有多种,最快速、最直接的方法是使用与命令关联的键盘快捷方式。在功能区中可以使用键盘快捷方式,Access早期版本中的所有键盘快捷方式仍可使用。在Access 2016中,“键盘访问系统”取代了早期版本的菜单加速键。此系统使用包含单个字母或字母组合的小型指示器,这些指示器在用户按下Alt 键时显示在功能区中。这些指示器显示用什么键盘快捷方式激活下方的控件。 3. 导航窗格 导航窗格位于Access窗口的左侧,如图3.18所示。 导航窗格用于组织归类数据库对象。在打开数据库或创建新数据库时,数据库对象的名称将显示在导航窗格中。数据库对象包括表、查询、窗体、报表、宏和模块。导航窗格是打开或更改数据库对象设计的主要入口。 导航窗格将数据库对象划分为多个类别,各类别中又包含多个组。某些类别是预定义的,可以从多种组选项中进行选择,还可以在导航窗格中创建用户自定义组方案。默认情况下,新数据库使用“对象类型”类别,该类别包含对应于各种数据库对象的组。 单击导航窗格右上方的下三角按钮,显示“浏览类别”菜单,如图3.19所示。在其中可以选择不同的查看对象的方式。例如仅查看表,选择“表”命令。 图3.18导航窗格 图3.19导航窗格的“浏览类别”菜单 导航窗格是操作数据库对象的入口。若要打开数据库对象或对数据库对象应用命令,在导航窗格中右击该对象,然后从快捷菜单中选择一个命令即可。快捷菜单中的命令因对象类型的不同而不同。 如果要显示“部门”表,通过导航窗格有多种操作方法。例如: (1) 在导航窗格中选择“部门”表双击,则在右侧窗格中将显示“部门”表的数据。 (2) 选择“部门”表,然后按Enter键。 (3) 选择“部门”表,然后右击,在弹出的快捷菜单中选择“打开”命令。 在处理数据库对象时,可以根据需要显示或隐藏导航窗格,重复单击导航窗格右上角的 按钮或按 F11键即可。 对于导航窗格,还可以进行定制,操作方法如下所述。 (1) 打开数据库,然后选择“文件”选项卡,进入Backstage视图。 (2) 选择“选项”命令,弹出“Access选项”对话框,选择“当前数据库”选项,如图3.20所示。 图3.20“Access选项”对话框 (3) 在Access中打开数据库时默认显示导航窗格,如果取消选中“显示导航窗格”复选框,则打开数据库时将不会再看到导航窗格。如果想重新显示导航窗格,需要进入“Access选项”对话框重新设置。 (4) 单击“导航选项”按钮,弹出“导航选项”对话框,如图3.21所示。在该对话框中可以对导航的类别、对象打开方式等进行设置。 图3.21“导航选项”对话框 注意: 导航窗格在Web浏览器中不可用。若要将导航窗格与Web数据库一起使用,必须先使用Access打开该数据库。 4. 其他界面类型 在Access主窗口中,不同的对象有不同的界面类型。 1) 选项卡式文档 当打开多个对象时,Access默认将表、查询、窗体、报表以及关系等对象采用选项卡的方式显示,如图3.22所示。用户也可以通过设置Access 选项,更改对象的显示方式。 图3.22选项卡式显示 其操作方法如下所述。 (1) 打开数据库,然后选择“文件”选项卡,进入Backstage视图。 (2) 选择“选项”命令,弹出“Access选项”对话框,选择“当前数据库”选项,如图3.20所示。 (3) 在“文档窗口选项”下选中“重叠窗口”单选按钮,然后单击“确定”按钮,可以用重叠窗口来代替选项卡式文档显示数据库对象。不过,如果要更改选项卡式文档设置,必须关闭数据库然后重新打开,新设置才能生效。 注意: 显示文档选项卡设置针对单个数据库,必须为每个数据库单独设置此选项。 2) 状态栏 窗口下部为状态栏,用于提示一些当前操作的状态信息。图3.23为设计视图时的状态提示。 图3.23状态栏 3.5创建Access数据库 3.5.1Access数据库基础 Access突出的特点就是作为一个桌面数据库管理系统,Access将开发数据库系统的众多功能集成在一起,提供了可视化交互操作方式。因此,Access不仅是一个DBMS,也是数据库系统的开发工具,功能完备、强大,而且使用简单。 1. Access数据库对象 Access将一个数据库系统的组成部分分成6种数据库对象,这6种对象共同组成Access数据库。因此,在Access中数据库是一个容器,是其他数据库对象的集合,也是这些对象的总称。 Access数据库的6种对象是表、查询、窗体、报表、宏和模块。 (1) 表。数据库首先是数据的集合。表是实现数据组织、存储和管理的对象,数据库中的所有数据都是以表为单位进行组织管理的,数据库实际上是由若干个相关联的表组成的。表也是查询、窗体、报表等对象的数据源,其他对象都是围绕表对象来实现相应的数据处理功能,因此,表是Access数据库的核心和基础。 建立一个数据库,首先要定义该数据库的各种表。由于数据库表之间相互关联,建立表也要定义表之间的关系。 (2) 查询。查询是实现数据处理的对象。查询的对象是表,查询的结果也是表的形式,因此,用户可以针对查询结果继续进行查询。实现查询要使用数据库语言,关系数据库的语言为结构化查询语言(SQL)。将定义查询的SQL语句保存下来,就得到了查询对象。 因为查询结果是表的形式,所以查询对象也可以作为进一步处理的对象。但查询对象并不真正存储数据,因此,查询对象可以理解为“虚表”,是对表数据的加工和再组织。这种特点改善了数据库中数据的可用性和安全性。 (3) 窗体。窗体用来作为数据输入输出的界面对象。在Access中虽然可以直接操作表,但表的结构和格式往往不满足应用的要求,并且表中的数据往往需要进一步处理。将设计好的窗体保存下来以便于重复使用,就得到了窗体对象。 窗体的基本元素是控件,用户可以设计任何符合应用需要的、各种格式的、简单美观的窗体。在窗体中可以驱动宏和模块对象,即可以编程,从而根据要求任意处理数据。 (4) 报表。报表对象用来设计实现数据的格式化打印输出,在报表对象中也可以实现对数据的统计运算处理。 (5) 宏。宏是一系列操作命令的组合。为了实现某种功能,可能需要将一系列操作组织起来,作为一个整体执行。也就是说,事先将这些操作命令组织好,命名并保存,就得到宏。宏所使用的命令都是Access已经预置好的,按照它们的格式使用即可。 (6) 模块。模块是利用程序设计语言VBA(Visual Basic Application)编写的实现特定功能的程序集合,可以实现任何需要程序才能完成的功能。 以上6种对象共同组成Access数据库(早期Access版本有7个对象,在Access 2010中取消了页对象)。其中,表和查询是关于数据组织、管理和表达的,表是基础,因为数据通过表来组织和存储,而查询实现了数据的检索、运算处理和集成; 窗体可用来查看、添加和更新表中的数据; 报表以特定版式分析或打印数据,窗体和报表实现了数据格式化的输入输出功能; 宏和模块是Access数据库较高级的功能,用于实现对数据的复杂操作和运算、处理。本书后续内容将分章介绍各对象的应用方法。 当然,在开发一个数据库系统时,并不一定要同时用到所有这些对象。 2. Access数据库的存储 数据库对象都是逻辑概念,而Access中的数据和数据库对象以文件形式存储,称为数据库文件,其扩展名为.accdb(2007之前的版本,数据库文件的扩展名为.mdb)。一个数据库保存在一个文件中。 这样存储提高了数据库的易用性和安全性,用户在建立和使用各种对象时无须考虑对象的存储格式。 3.5.2创建数据库 使用Access建立数据库系统的一般步骤如下所述。 (1) 进行数据库设计,完成数据库模型设计。 (2) 创建数据库文件,作为整个数据库的容器和工作平台。 (3) 建立表对象,以组织、存储数据。 (4) 根据需要建立查询对象,完成数据的处理和再组织。 (5) 根据需要设计创建窗体、报表,编写宏和模块的代码,实现输入输出界面设计和复杂的数据处理功能。 对于一个具体系统的开发来说,以上步骤并非都必须要有,但数据库文件和表的创建是必不可少的。 创建数据库的基本工作是,选择好数据库文件要保存的路径,并为数据库文件命名。在Access中创建数据库有两种方法: 一是创建空白数据库; 二是使用模板创建数据库。 1. 创建空白数据库 创建空白数据库是建立一个数据库系统的基础,是数据库操作的起点。 【例3.4】创建空白的图书销售数据库,生成相应的数据库文件。 操作步骤如下所述。 ① 在Windows下为数据库文件的存储准备好文件夹,这里的文件夹是D盘根目录下的BOOKSALE。 ② 启动Access,进入Backstage 视图,如图3.13所示。 ③ 在“文件”选项卡中选择“新建”命令,然后在中间窗格中单击“空白数据库”选项。 ④ 在弹出的“空白数据库”对话框中,单击窗口右侧的“文件名”文本框右边的文件夹浏览按钮 ,弹出“文件新建数据库”对话框,如图3.24所示。选择D盘下的BOOKSALE文件夹,在“文件名”文本框中输入“图书销售”,然后单击“确定”按钮。 ⑤ 返回“空白数据库”对话框,单击“创建”按钮,空白数据库“图书销售”就建立起来了。然后,就可以在新建的数据库容器中建立其他数据库对象了,如图3.25所示。 2. 使用模板创建数据库 在Access中,还可以使用模板创建数据库。 1) 根据样板模板新建数据库 Access 2016产品附带有很多模板,Access 模板是预先设计的数据库,它们含有专业人员设计的表、窗体和报表,可为用户创建新数据库提供很大的便利。 操作步骤如下所述。 (1) 进入Backstage视图,选择“新建”命令,然后浏览中间窗格可用模板,如图3.26所示。 (2) 找到要使用的模板,然后单击该模板。 图3.24“文件新建数据库”对话框 图3.25初始的数据库界面 图3.26Access 2016模板 (3) 在弹出的模板对话框中,在“文件名”文本框中输入路径和文件名,或者使用文件夹浏览按钮设置路径和文件名。 (4) 单击“创建”按钮。 Access 将按照模板创建新的数据库并打开该数据库,这时,模板中已有的各种表和其他对象都会自动建好,用户根据需要修改数据库对象即可。 2) “搜索联机模板”新建数据库 用户可以在Backstage视图中,通过“搜索联机模板”获得更多Access 模板,从“搜索联机模板”创建数据库的操作步骤如下所述。 (1) 进入Backstage 视图,选择“新建”命令。 (2) 使用Access提供的“搜索联机模板”搜索框搜索模板。例如在搜索框中输入“个人”,并单击“搜索”按钮,如图3.27所示。 图3.27“搜索联机模板”搜索“个人”使用“项目”模板 (3) 在搜索结果中选择合适的模板,例如选择“项目”模板。接下来在右侧的“文件名”文本框中输入路径和文件名,或者使用文件夹浏览按钮设置路径和文件名。 (4) 单击“创建”按钮。 Access将自动下载模板,并根据该模板创建新数据库,将该数据库存储到用户定义的文件夹中,然后打开该数据库。 用户使用模板可以简化创建数据库的操作,但前提是用户必须很熟悉模板的结构,并且模板与自己要建立的数据库有很高的相似性,否则依据模板建立的数据库需要大量修改,不一定能提高操作效率。 3.6Access数据库管理 数据库是集中存储数据的地方。对于信息处理来说,数据是最重要的资源,随着时间的增加,数据库中存储的数据会越来越多。因此,对数据库的管理非常重要。 3.6.1数据库的打开与关闭 通常,已经建立好的数据库以文件形式存储在外存上,每次使用时首先需要将其打开。Access提供了多种打开数据库的方法。对于桌面数据库,一般不会长时间地不间断操作使用,因此,在操作完毕后应及时关闭数据库。 1. 打开数据库 用户可用多种方法打开数据库,下面介绍3种常用的方法。 1) 方法1 若在Windows中找到了数据库文件,直接双击该文件,将启动Access并打开数据库。 2) 方法2 其操作步骤如下所述。 (1) 启动Access,进入Backstage视图,如图3.13所示。 (2) 选择“打开”命令,弹出“打开”对话框,如图3.28所示。 图3.28“打开”对话框 (3) 单击“浏览”按钮,在弹出的“打开”对话框中查找指定的文件夹路径,选择要打开的数据库文件,如图3.29所示,然后单击“打开”按钮,打开数据库,并进入数据库窗口。 图3.29“打开”对话框 当一个数据库被创建或打开后,Access 会将该数据库的文件名和位置添加到最近使用文档的内部列表中,并显示在Backstage视图中。这样,当下次再打开时,可以使用方法3。 3) 方法3 若该数据库出现在Backstage视图的文件列表中(见图3.28右侧的“图书销售.accdb”“教学管理.accdb”),则进入Access的Backstage视图,选择列出的数据库文件并单击,即可打开选定的文件。 2. 数据库文件的默认路径设置 文件处理是经常要做的工作。无论是创建数据库文件还是打开数据库,都需要查找文件路径。Access或其他Office软件都有默认文件夹,一般是“我的文档(My Document)”。一般来说,用户总是将自己定义的文件放在指定的文件夹中,因此有必要修改文件的默认文件夹,以提高工作效率。 在Backstage视图中选择“选项”命令,弹出“Access选项”对话框,选择“常规”选项,如图3.30所示。 图3.30“Access选项”对话框 在“默认数据库文件夹”文本框中输入要作为Access默认文件夹的路径,例如输入“D:\BOOKSALE\”,单击“确定”按钮。这样,下次再启动Access时,“D:\BOOKSALE\”就成为了默认路径。 3. 关闭数据库 数据库使用完毕后应及时关闭。关闭数据库有以下两种方法。 (1) 在Backstage视图中选择“关闭数据库”命令,关闭当前数据库。 (2) 在退出Access的时候,将关闭当前数据库。 3.6.2数据库管理 在使用数据库的过程中,对于数据库的完整性和安全性的管理非常重要。数据库的完整性是指在任何情况下都能够保证数据库的正确性和可用性,不会由于各种原因而受到损坏。数据库的安全性是指数据库应该由具有合法权限的人来使用,防止数据库中的数据被非法泄露、更改和破坏。 1. 数据库的备份与恢复 对于数据库中数据的完整性保护,最简单、有效的方法是进行备份。备份即将数据库文件在另外一个地方保存一份副本。当数据库由于故障或人为原因被破坏后,将副本恢复即可。不过用户要注意,一般的事务数据库中的数据经常发生变化,例如银行储户管理数据库,每天都会发生很大的变化,所以,数据库备份不是一次性的而是经常和长期要做的工作。 对于大型数据库系统,应该有很完善的备份恢复策略和机制。Access数据库一般是中小型数据库,因此备份和恢复比较简单。 最简单的方法当然是利用操作系统(Windows)的文件复制功能。用户可以在修改数据库后,立即将数据库文件复制到另外一个地方存储。若当前数据库被破坏,通过副本将备份文件恢复即可。 另外,Access也提供了备份和恢复数据库的方法。 【例3.5】备份“图书销售”数据库到“D:\数据库备份”文件夹下。 操作步骤如下所述。 (1) 在D:盘创建“数据库备份”文件夹。 (2) 打开“图书销售”数据库,选择“文件”命令进入Backstage视图窗口,然后单击“另存为”按钮,选择“备份数据库”选项,如图3.31所示。 图3.31“另存为”的“备份数据库” (3) 单击右下侧的“另存为”按钮,弹出“另存为”对话框,定位到“D:\数据库备份”文件夹,如图3.32所示,单击“保存”按钮,实现备份。 图3.32“另存为”对话框 备份文件实际上是将当前数据库文件加上日期后另外存储一个副本。一般来说,副本的文件位置不应该与当前数据库文件在同一磁盘上。如果同一日期有多次备份,则自动命名时会加上序号。 当需要使用备份的数据库文件恢复还原数据库时,将备份副本复制到数据库文件夹即可。如果需要改名,重新命名文件即可。 如果用户只需要备份数据库中的特定对象,例如表、报表等,可以在备份文件夹下先创建一个空的数据库,然后通过导入与导出功能,将需要备份的对象导入备份数据库(导入与导出方法见后面的有关章节)。 2. 查看和编辑数据库 对于打开的数据库,可以查看其相关信息,并编辑相应的说明信息。 查看和编辑数据库的操作方法如下所述。 (1) 打开数据库,进入当前数据库的Backstage视图, 单击“信息”选项,如图3.33所示。 图3.33单击“信息”选项后的界面 (2) 单击右侧的“查看和编辑数据库属性”选项,弹出 数据库的属性对话框,如图3.34所示。通过该对话框,用户可以了解当前数据库的信息,在“摘要”选项卡中编辑关于当前数据库的说明文字。 图3.34数据库属性对话框 本章小结 本章介绍了数据存储中关系数据库的设计方法和详细步骤,并以Access 2016为例,详细地介绍了Access的特点、Access 2016的启动和工作界面,以及数据库的概念、存储、创建和管理等操作。在进行数据库设计时的概念设计步骤中,用户可以使用实体联系(ER)模型描述信息系统的需求。在接下来的逻辑设计步骤中完成ER模型向关系模型的转化, 最终建立起数据库的关系模型。选择某款关系型DBMS,如Access 2016,就可以很容易地依据关系模型建立起关系数据库,并对数据进行存储和处理。 思考题 1. 简述数据库设计的基本步骤和方法。 2. 简述ER模型中实体、属性、域、实体码、实体集、实体型和实体联系的概念。 3. ER模型的属性有几种情形?怎样使非单值原子属性转化为单值原子属性? 4. 试将“进书业务”的数据加入本章示例中。如何设计进书部分ER模型?如何转化为关系模型? 5. Access是什么套装软件中的一部分?其主要功能是什么? 6. 列举启动Access的几种方法。 7. Access的操作界面主要由哪几部分组成? 8. 功能区有何特点? 9. Backstage视图有何作用? 10. Access数据库如何存储? 11. Access数据库有几种数据库对象?每种对象的基本作用是什么? 12. 什么是导航窗格?如何隐藏导航窗格? 13. 创建Access数据库的基本方法有哪几种? 14. 如何设置打开数据库文件的默认路径? 15. 为什么要进行数据库备份?简述备份Access数据库的几种方法及其主要操作过程。 16. 怎样查看当前数据库的属性?