《第2章 数据库设计课件》由会员分享,可在线阅读,更多相关《第2章 数据库设计课件(45页珍藏版)》请在金锄头文库上搜索。
1、第2章 应用系统的数据存储表,2.1.1创建新数据库,开发Access数据库应用系统的第一步工作是建立Access数据库对象。创建数据库操作的结果将在磁盘上建立一个MDB扩展名的文件,在创建数据库之前,最好建立一个用于保存应用系统的文件夹,并把MDB文件存放到该文件夹下,以便今后的管理。 1使用“数据库向导”创建数据库 2使用模板创建数据库 3创建空的数据库,2.2建立表,2.2.1建表原则 2.2.2数据类型 2.2.3建立表结构 2.2.4设置字段属性 2.2.5建立表间关系 2.2.6向表中输入记录,2.2.1建表原则,表是与特定主题(或者称为特定类别,如图书或人员信息)有关的数据的集合
2、。对每个主题使用一个单独的表意味着用户只需存储该数据一次,这样既可以复用数据,也可以保证数据的一致性。在设计表时,应该按以下设计原则对信息进行分类: 每个表应该只包含关于一个主题的信息。 表中不应包含重复信息,表间也不应有重复信息。 为了确保表结构设计合理,通常要对表进行规范化设计。通过规范化设计,可以消除表中存在的冗余,保证一个表围绕一个主题。 对表来说,存在着多种不同的规范化形式。从规范化的宽松到严格,分别为第一范式、第二范式、第三范式等等。,第一范式,一个满足第一规范化形式的关系中的每一个属性(字段)都是不可分的数据项。第一规范化形式简称为第一范式或1NF。,不符合1NF的设计,-销售人
3、员-字段包含两个基本数据。,第二范式,如果在一个满足1NF的关系中,所有非关键字数据元素都完全依赖于关键字(而非部分依赖)则称这个关系满足第二规范化形式,简称2NF。,选课(学号, 姓名, 课程, 成绩, 学分) 学号+课程 可选做复合关键字 “选课”表不符合2NF,因为存在以下依赖: 姓名 依赖于 关键字之一学号 学分 依赖于 关键字之一课程,第三范式,对于那些满足2NF的关系,且其非主属性之间不存函数依赖(即:不存在一个非主关键字,可以确定另外一些非主关键字),则称这个关系满足第三规范化形式,简称三范式或3NF。 学生(学号,姓名,学院,学院电话) 学号为关键字,其它属性都完全依赖于学号。
4、2NF 学院电话依赖于非关键字“学院”。不符合3NF,ER图(Entity-Relationship, 实体-联系),以图的形式表示出实体以及实体之间的联系。 实体型:用矩形表示,矩形框内写明实体名; 属性:用椭圆形表示,用线与实体连接起来; 联系:用菱形表示,用线连接到两个实体。,学生,姓名,学号,性别,课程,课程号,课程名,学分,班级,选修,m,n,使用Microsoft Visio软件制作的数据库模型图,2.2.2数据类型,通过设计表结构确定了表中包含的字段后,还要为每个字段确定合适的Access数据类型,以便在计算机中存储这些数据。,“文本”(Text)数据类型:,“文本”数据类型可以
5、是文本或文本与数字的组合,例如地址;也可以是不需要计算的数字,例如电话号码、零件编号或邮编。文本字段的默认字段大小是 50 个字符。,“备注”(Memo)数据类型:,“备注” 数据类型保存长文本及数字,例如备注或说明。如果需要保存多于 255 个字符的数据时,应使用备注数据类型。备注字段最多可以保存 64,000 个字符。,“数字”(Number)数据类型:,“数字” 数据类型可用来进行算术计算的数字数据,涉及货币的计算除外(使用“货币”类型)。 设置“字段大小”属性可以定义一个特定的数字类型。下表是几种常见的数字类型数据的范围。默认的数字字段大小范围是“双精度型”。,表2.5 数字类型数据的
6、范围,“日期/时间”(Date/Time)数据类型: “日期/时间” 数据类型用来保存日期和时间。该类型数据字段长度固定为8 个字节。 “货币”(Currency)数据类型: “货币” 数据类型保存货币值。使用货币数据类型可以避免计算时四舍五入。精确到小数点左方 15 位数及右方 4 位数。该类型数据字段长度固定为8 个字节。 “自动编号”(AutoNumber)数据类型: 在添加“自动编号” 数据类型的记录时Access自动插入的唯一顺序(每次递增 1)或随机编号。,“是/否”(Boolean)数据类型: “是/否” 数据类型的字段只包含两个值中的一个,例如“是/否”、“真/假”、“开/关”
7、。该类型数据字段长度固定为1位。 “OLE 对象”(OLE Object): “OLE 对象”是在其他程序中使用 OLE 协议创建的对象(例如 Microsoft Word 文档、Microsoft EXCEL 电子表格、图像、声音或其他二进制数据)。可以将这些对象链接或嵌入 Microsoft Access 表中。必须在窗体或报表中使用绑定对象框来显示 OLE 对象。OLE 对象字段最大可为 1 GB(受磁盘空间限制)。,“超级链接”(Hyperlink)数据类型: “超级链接” 数据可以是 UNC(Universal Naming Conversion,通用命名标准) 路径或 URL(Un
8、iform Resource Locator,统一资源定位器)。字段长度最多 64,000 个字符。 “查阅向导” 数据类型: 创建允许用户使用组合框选择来自其他表或来自值列表中的值的字段。在数据类型列表中选择此选项,将启动向导进行定义。,2.2.3建立表结构,数据表对象的结构是指数据表的框架,也称为数据表对象的属性。主要包括: 字段名称:用于标识表中的一列。即数据表中的一列称为一个字段,而每一个字段均具有唯一的名字,被称为字段名称。 数据类型:根据关系数据库理论,一个数据表中的同一列数据必须具有共同的数据特征,称为字段的数据类型。 字段大小:一个数据表中的一列所能容纳的字符个数被称为列宽,在
9、Access中被称为字段大小,采用字节数予以表示。 字段的其他属性:上述三个属性是字段对象的最基本属性。此外,数据表中的字段对象还具有其他一些属性,包括“索引”、“格式”等等。这些属性值的设置将决定各个字段对象在被操作时的特性。,创建表结构的操作,1使用“数据表”视图创建新表 2使用“设计视图”创建新表 使用“设计视图”创建表对象,是最灵活的方法,也是创建表最常用的方法。使用其它方法创建的表对象,通常只是一个草稿,也都需要进一步在“设计视图”中继续修改完善。,图2.11 “人员信息表”设计视图,2.2.4设置字段属性,在Access表对象中,一个字段的属性是这个字段特征值的集合,该特征值集合将
10、控制字段的工作方式和表现形式。在表对象的“设计视图”中,可以设置各个字段的属性,从而决定字段的数据存储、处理和显示方式。 字段属性可分为常规属性和查阅属性两类。,1字段的常规属性,字段常规属性如图2.12所示。以下分别介绍各个常规属性的含义。在这些常规属性中,“字段大小”属性、“格式”属性和“索引”属性是三个最基本的属性,也是最常用的属性。,图2.12 “常规”属性选项卡,字段大小,只有当字段数据类型设置为“文本”或“数字”时,这个字段的“字段大小”属性才是可设置的,其可设置的值将随着该字段数据类型的不同设定而不同。 当设定字段类型为文本类型时,字段大小的可设置值为1255,表示该字段最多可容
11、纳的字符个数最少为1个字符,最多为255个字符。,数字型字段大小的设置,格式,格式属性用于定义数字、日期、时间及文本等数据显示及打印的方式。对不同的字段数据类型使用不同的设置。 例如,如果一个“日期型”字段,可以将它的格式属性设置为图2.13中的任意一种。如果设置格式属性为“长日期”,则输入“1988-1-10”,将显示为“1988年1月10日”。,输入法模式,“输入法模式”属性仅针对文本数据类型的字段有效,可有两个设置值:“输入法开启”与“输入法关闭”,分别表示进入该字段的输入域时自动启动汉字输入法和自动关闭汉字输入法。例如,可以在“人员信息表”的姓名字段设置“输入法开启”属性,使得进入该字
12、段的输入域时自动启动汉字输入法,以便输入汉字姓名。,输入掩码,使用“输入掩码”属性,可以使数据输入更容易,并且可以控制用户在文本框类型的控件中的输入值。 通常使用“输入掩码向导”帮助完成设置该属性的工作。 如果不使用“输入掩码向导”,还可以在“设计”视图的属性列表中直接输入掩码。,输入掩码属性字符集,标题,“标题”属性值将在显示表中数据时,出现在字段名称的位置,取代字段名称。即在显示表中数据时,表列的栏目名将是“标题”属性值,而不是“字段名称”值。,默认值,在表中新增加一个记录,并尚未填入数据时,如果希望Access自动为某字段填入一个特定的数据,则应为该字段设定“默认值”属性值。此处设置的默
13、认值将成为新增记录中Access为该字段自动填入的值。,有效性规则和有效性文本,“有效性规则”属性用于指定对输入到记录中本字段中数据的要求。 当输入的数据违反了“有效性规则”的设置时,将给用户显示“有效性文本”设置的提示信息。 可用“生成器”帮助完成有效性规则的设置。,有效性规则 - 表达式,数值的表达 数字:1,2, 文本:Hello 日期:#2010-3-15# 比较的表达 =, , =, 逻辑的表达 And, Or, Not,示例: 大于或等于0 =0 500到800之间(含边界) =500 And #2000-1-1#,索引,有以下取值: “无”,表示本字段无索引; “有(有重复)”,
14、表示本字段有索引,且各记录中的数据可以重复; “有(无重复)”,表示本字段有索引,且各记录中的数据不允许重复。,数据,索引,字段的查阅属性,设置字段的查阅属性,可以使该字段的内容取自于一组固定的数据。用户向带有查阅属性的字段中输入数据时,该字段提供一个列表,用户可以从列表中选择数据作为该字段的值。,2.2.5建立表间关系,在数据库应用系统中,一个数据库通常包含若干个表,用以存放不同主题的数据集合。这些数据集之间存在着相互联接的关系。 在 Microsoft Access 数据库中为每个主题都设置了不同的表后,必须告诉 Microsoft Access 如何再将这些信息合并在一起。这要通过在表间
15、定义关系来完成。,1.关系的工作方式,关系是通过匹配关键字和外关键字中的数据来完成的。 在大多数情况下,这些匹配的字段是一个表的主键,对于每一记录提供唯一的标识符,并且在另一个表中有一个外部键和它匹配。,2.关系的类型,表之间的关系有三种类型: 一对多关系 多对多关系 一对一关系,3.参照完整性概述,参照完整性是一套规则系统,能确保相关表中各行之间关系的有效性,并且确保不会意外删除或更改相关的数据。 当实施参照完整性时,必须遵守以下规则: 如果在相关表的主键中没有值,则不能在相关表的外键列中输入值。但是,可以在外键列中输入一个空值。 如果某行在相关表中存在相匹配的行,则不能从主键表中删除该行。
16、,如果某行有相关行,则不能更改主键表中主键的值。 级联更新:对于在表之间实施参照完整性的关系,不管何时更改主键表中记录的主键,Microsoft Access 都会自动在所有相关的记录中将主键更新为新值。 级联删除:对于在表之间实施参照完整性的关系,当删除主键表中的记录时,相关表(一个或多个)中的所有相关记录也随之删除。,4定义关系的操作,创建表之间的关系时,相关联的字段不一定要有相同的名称,但必须有相同的字段类型。 例外: 除非主键字段是个“自动编号”字段,而且仅当“自动编号”字段与“数字”字段的“字段大小”属性相同时,才可以将“自动编号”字段与“数字”字段进行匹配。 例如,如果一个“自动编号”字段和一个“数字”字段的“字段大小”属性均为“长整型”,则它们是可以匹配的。,2.2.6向表中输入记录,建立了表结构之后,就可以向表中输入数据记录了。在Access中,可以利用“数据表”视图向表中输入数据,也可以通过导入操作,将其他数据库中的表复制到本数据库中。,1输入数据,在数据表视图中输入数据是在全屏幕编辑方式下输入数据,比较简单易用,不再一一叙