前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Access数据库表设计步骤

Access数据库表设计步骤

作者头像
无言之月
发布于 2019-10-13 07:35:11
发布于 2019-10-13 07:35:11
4.2K0
举报

大家好,上节介绍了Access数据库表中常见的概念,Access数据库中表的部分主要难点就在于表的设计,本节主要是串联一下Access数据库中表设计时的大概步骤,只先了解即可,具体的内容部分后面根据分解的知识点展开讲解。

一、分析建立数据库的目的

在创建数据库时,首先要简单分析明确建立数据库的目,即分析数据库中需要管理的内容。可以罗列一些需要用到的字段。

比如为图书馆建立数据库,数据库管理的内容是书籍和读者,有借书日期,还书日期,出版商,作者、库存数量、被借次数、读者编号等内容。

这些都是初步的分析表和字段的需求,但具体建立什么表和字段还不是很明确。

二、、确定数据库中的表和字段

首先说明下在设计Access数据库的表时,追求的目标是设计性能优良的数据库表,减少数据的冗余和错误。

因而在设计数据库表时可以遵循一些规范的规则,这些规则就是范式。(关系型数据库目前通常有6层范式,从最低要求的第一范式1NF,以此类推,一直到最高要求的6NF。)

那么如何设计数据库中的表格和字段?首先结合上一步的分析来套用概念模型,最常用的概念模型是实体-联系(Entity-Relationship)方法,即E-R模型。可以根据它画出E-R图,明确要设计的数据库中的实体、属性和联系等。然后来初步确定建立那几张表,然后再结合数据库范式,将数据库逐步优化,看是否需要再建立新的表。

1、概念模型

概念模型方法是用来模拟设计数据库,最常用的概念模型是实体-联系(Entity-Relationship)方法,即E-R模型。可以据此画出E-R图。

在E-R模型中主要包括三个内容:1、实体,即现实中客观存在并相互区别的事物, 2、属性,即实体具体的某一特征。3、联系,即实体与实体间的联系。

在图书馆数据库管理表设计时,书籍和借阅人就是两个不同的实体。书籍的属性包括图书编号、名称、作者、单价、库存数量、被借次数等。而读者的属性包括年龄、读者编号、联系方式等等。而书籍和读者之间的联系是借阅、而借阅就涉及借阅日期、还书日期等等。

据此可以确定就是书籍和读者两张表格,各自的属性可以作为各自的字段。但图书馆中一个名称的书通常有好几本库存,相同的书籍编号,它们可能被不同的人借阅,那么书籍的借阅日期和还书日期可能就是不同的。是应该放在书籍或者读者的哪张表呢?这其实涉及表与表关系,以及结合数据库范式优化表的问题。

2、数据库范式

上面在确定数据库中的大概的表和字段时,需要结合数据库范式来优化表。范式有6层范式,但通常达到第三层范式就可以作为性能优良的数据库。下面简单说下1NF、2NF、3NF的要求。

第一范式INF是要求没有重复的列。

第二范式2NF是在1NF的基础上,要求属性必须完全依赖于主键。

第三范式3NF是要求在2NF的基础上,要求属性不依赖于其他非主属性。

上面确定了基础的表后就需要结合数据库范式进行优化,减少数据的冗余和错误。看是否需要再将分解出其他表格。数据库范式初学者不容易理解,后续介绍数据库规范时会详细介绍,

三、确定字段数据类型和字段属性

确定了数据库中的表和对应的字段后,新建字段时候需要选择字段的数据类型。上节有演示过,然后具体的每个字段需要设置字段的属性。

四、确定主键

选择合适的字段作为主键,上节介绍过主键要求是唯一不能为空,可以是一个也可以是多个字段。可以选择单个主键,也可以选择复合主键。也可以使用替代主键。区别后续会做介绍说明。

五、确定表与表之间的关系

前面在介绍数据库优化时介绍了数据库范式的概念,对于优秀的数据库设计通常为了减少数据冗余,为此会将很多数据拆分成基于不同主键的表。需要在Access数据库中将不同的表通过主键和外键关联起来。

对应不同实体的表之间有三种类型的关系,一对一的关系,有一对多的关系,和多对多的关系。

其中如果是多对多的表关系,主要是通过中间表,将多对多的关系拆成一对一或者一对多的关系。

简单图书馆数据库中,书籍和出版商之间的关系是多对一的关系。因为出版商会出版很多书籍,但书籍通常是一个出版商出版的。书籍和借阅者之间,因为一个人可能借好几本不同的书。图书馆通常一种书有好几本会由不同的人借阅,它们的关系是多对多的关系

在设计数据库时,这种多对多的关系就表格就需要借助中间表格,比如书籍和读者之间是借阅的关系。可以新建借阅表,借阅表中有借阅单号,借阅日期,还书日期等。这样书籍和借阅表之间可以是一对一的关系,读者表和借阅表之间也可以是一对一的关系。(后续会再介绍)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
已解决:`java.security.GeneralSecurityException: 安全性相关的通用异常`
java.security.GeneralSecurityException 是一个通用的安全性异常,通常作为其他安全性异常的父类被抛出。它可能出现在多种场景中,例如:
屿小夏
2024/08/15
2300
Java对称加密算法
1、DES 已破解,不再安全,基本没有企业在用了,是对称加密算法的基石,具有学习价值。密钥长度56(JDK)、56/64(BC)。
硕人其颀
2020/06/01
1.9K0
Java对称加密算法
【Java】已解决:java.security.ProviderException
在Java开发过程中,涉及安全操作时,java.security.ProviderException是一个开发者可能会遇到的异常。这类异常通常与加密操作或安全提供程序相关。本文将深入剖析ProviderException的背景、原因,提供错误与正确的代码示例,并列出相关的注意事项,帮助读者解决这一问题。
屿小夏
2024/09/11
2150
Java 开发中实现DES/3DES/AES 三种对称加密算法方法学习
对称密码算法是当今应用范围最广,使用频率最高的加密算法。它不仅应用于软件行业,在硬件行业同样流行。各种基础设施凡是涉及到安全需求,都会优先考虑对称加密算法。
用户1289394
2018/12/05
2.1K0
Spring Boot接口参数和返回值统一加密
对敏感信息加密是软件开发的一个永恒的话题,特别现在国家这么重视个人用户信息的泄露问题。今天给大家介绍一个网友开发的Spring Boot starter。如果以后工作中遇到需要对接口的参数和返回值统一加密,说不定这个starter就可以派上用场,即使不使用这个starter,也可以参考一下别人是怎么对接口的数据进行统一加解密的。
DevOps云学堂
2019/10/18
2.5K0
Java 数据脱敏?别慌,掩护队已经上线!
大家好!今天我们要聊一聊数据脱敏。这个词听起来像特工电影里的高科技武器,其实它就是给敏感数据穿上“伪装衣”,防止“坏人”偷窥。无论是银行账号、身份证号码、邮箱地址,这些信息都需要时刻保持低调。如何低调?没错——数据脱敏,Java 已准备好为你服务!
繁依Fanyi
2024/09/12
2160
SpringCloud-数据认证加密总结
在当今分布式系统的日益复杂和信息传递的广泛网络化环境中,确保通信的安全性至关重要。数据的加密和认证作为保障信息传递安全的关键手段,在分布式系统中扮演着不可或缺的角色。Spring Cloud,作为一套构建微服务架构的强大框架,提供了多种灵活而强大的数据加密和认证方式。从传统的 MD5 散列算法到现代的 OAuth 2.0 和 JWT(JSON Web Token)标准,每种加密和认证方式都针对不同的应用场景和安全需求提供了特定的解决方案。
Damon小智
2024/03/06
2480
SpringCloud-数据认证加密总结
【Java】已解决:java.security.InvalidKeyException
在Java编程中,安全性是一个关键的考量因素。使用加密技术时,开发者有时会遇到java.security.InvalidKeyException异常。该异常通常与加密算法中的密钥使用不当有关。本文将详细分析这一问题的背景、可能的原因,并提供错误与正确的代码示例,帮助开发者理解并解决这一报错问题。
屿小夏
2025/05/24
2320
【Java报错已解决】Java.security.spec.InvalidAlgorithmParameterSpecException
在Java开发过程中,报错信息常常让开发者们头疼不已。就像Java.security.spec.InvalidAlgorithmParameterSpecException这个报错,它可能突然出现,打断开发流程,让你陷入困惑。但别担心,本文将深入剖析这个报错,并给出有效的解决方法,帮助开发者和环境配置者轻松应对。
鸽芷咕
2025/05/26
990
区块算法 | 美国联邦政府采用的AES区块标准算法
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准。密码学中的高级加密标准,又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
码神联盟
2019/03/07
9500
[Java 安全]加密算法
Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的A
静默虚空
2018/01/05
4K0
[Java 安全]加密算法
Java中的加密和解密是什么,提供一个使用加密和解密的实际案例
在Java中,加密和解密是信息安全领域中非常重要的概念,它们用于保护数据的机密性和完整性。加密是指将明文转换为密文的过程,而解密则是将密文还原为明文的过程。在实际应用中,我们通常使用一些加密算法来对数据进行加密,以保护数据的安全性。
用户1289394
2024/05/29
2440
Java中的加密和解密是什么,提供一个使用加密和解密的实际案例
JAVA中的加密算法之双向加密(一)
       加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。           双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: http://security.group.iteye.com/group/wiki/1710-one-way-encryption-algorithm 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。 算法是一组规则,规定如何进行加密和解密。因此对称式加密本身不是安全的。    常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等 对称加密一般java类中中定义成员
幽鸿
2020/04/01
4K0
JAVA中的加密算法之双向加密(一)
java之jce「建议收藏」
Java Cryptography Extension(JCE)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。
全栈程序员站长
2022/07/05
2.6K0
Java不同类型密钥库之PKCS12和JCEKS
摘要:密钥库是一个存放加密密钥和证书的存储设施,它们经常用于SSL通信来标明服务器和客户机的身份,本文所列的为Java密钥库中的PKCS12和JCEKS类型。介绍了其存储和加载密钥、证书所使用的代码片段。
BUG弄潮儿
2022/06/30
2.2K0
SM4加密解密_iunlocker解锁网站
内容主要参考自:https://blog.csdn.net/weixin_34411563/article/details/86000381
全栈程序员站长
2022/11/08
1.3K0
SM4加密解密_iunlocker解锁网站
Spring 配置数据库用户名密码加密
对于一般的spring框架,经常要用到数据源配置,如果是用xml配置的话,一般都是如下形式
汤高
2019/05/26
2.6K0
带你详细了解AES算法《附带java、vue实现》
AES的加解密过程和DES一样,都是通过分组加密、分组解密。所谓分组加密,就是将待加解密的内容按照128位进行分组,将密钥按照128位、192位、256位进行分组,分别将分组后的明文与相应分组后的密钥进行加解密。
Java king
2023/03/07
2K0
带你详细了解AES算法《附带java、vue实现》
加密解密(DES)
DES(Data Encryption Standard)是一种对称加密算法,它是最早被广泛采用的加密标准之一。下面是DES算法的特点、算法原理和应用场景的详细介绍,并提供了使用Java代码实现DES加密和解密的示例。
一百减一是零
2024/07/30
4370
【Java小工匠聊密码学】--对称加密--AES
  AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。
Java小工匠
2018/08/10
9500
推荐阅读
相关推荐
已解决:`java.security.GeneralSecurityException: 安全性相关的通用异常`
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档