前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
加密与安全_探索对称加密算法
对称加密算法是一种加密技术,使用相同的密钥来进行加密和解密数据。在这种算法中,发送方使用密钥将明文(未加密的数据)转换为密文(加密的数据),而接收方使用相同的密钥将密文还原为明文。
小小工匠
2024/05/26
3040
加密与安全_探索对称加密算法
哈希算法是对称算法还是非对称算法_对称加密和非对称加密原理
作用:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法的目的:为了验证原始数据是否被篡改。 哈希算法最重要的特点就是: 相同的输入一定得到相同的输出; 不同的输入大概率得到不同的输出。
全栈程序员站长
2022/11/01
1.3K0
手敲代码实现对称加密
编程思维
2023/08/21
2810
手敲代码实现对称加密
盘点几个安卓逆向之常用加密算法
大家好,我是码农星期八。本教程只用于学习探讨,不允许任何人使用技术进行违法操作,阅读教程即表示同意!
Python进阶者
2022/06/05
1.1K0
盘点几个安卓逆向之常用加密算法
使用加密算法报错异常:java.security.InvalidKeyException: Illegal key size
java.security.InvalidKeyException: Illegal key size
鲲志说
2025/04/07
2080
常见的加密算法
前端使用开源CryptoJS (crypto.js) 为 JavaScript加密算法,Github地址(https://github.com/brix/crypto-js)。目前已支持的算法包括:
分母为零
2019/07/04
1.8K0
【Android】Android加密和解密方式
不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。 如信息摘要(Message Digest)和安全散列(Secure Hash)算法属于此类,常见的算法包括 MD5、SHA1、PBKDF2、bcrypt 等。 特点: 使用MD5和SHA进行加解密:
全栈程序员站长
2022/08/30
7230
Java中的加密与安全,你了解多少
  什么是数据安全?假如Bob要给Alice发送一封邮件,在发送邮件的过程中,黑客可能会窃取到邮件的内容,所以我们需要防窃听;黑客也有可能会篡改邮件的内容,所以Alice必须要有能有去识别邮件是否被篡改;最后,黑客也可能假冒Bob给Alice发送邮件,所以Alice还必须有能力识别出伪造的邮件。所以数据安全的几个要点就是:防窃听、防篡改和防伪造。 古代的加密方式:
程序员波特
2024/01/19
2750
Java中的加密与安全,你了解多少
快速了解常用的对称加密算法,再也不用担心面试官的刨根问底
加密算法通常被分为两种:对称加密和非对称加密。其中,对称加密算法在加密和解密时使用的密钥相同;非对称加密算法在加密和解密时使用的密钥不同,分为公钥和私钥。此外,还有一类叫做消息摘要算法,是对数据进行摘要并且不可逆的算法。
万猫学社
2022/04/22
5220
请看,常见的加密算法及详解都在这里!
加密算法,是现在每个软件项目里必须用到的内容。广泛应用在包括了用户登入、数字签名、数据传输等多个场合。那大家都知道那些呢?今天我把常见的加密算法全部整理在这里,供大家学习参考。
攻城狮的那点事
2019/12/10
1.5K0
周末给女友讲了遍加密算法,没想到...
哈哈哈,其实只是周末看了小舞而已啦,铁铁们没追更的,赶快去补一下这集,特效炸裂。好了,不扯了,进入正题,最近做的项目,涉及到一些加密算法的选择,小羽在这里顺便也给大家做个总结,一起加深对加密的相关认识。
浅羽技术
2020/12/17
5550
周末给女友讲了遍加密算法,没想到...
php des加密用java解析不了 改个模式 加个IV php密钥/IV要求都是8位
php des加密用java解析不了 改个模式 加个IV  php密钥/IV要求都是8位
oktokeep
2024/10/09
1340
Android-加解密
不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。 如信息摘要(Message Digest)和安全散列(Secure Hash)算法属于此类,常见的算法包括 MD5、SHA1、PBKDF2、bcrypt 等。 特点:
android_薛之涛
2018/12/19
1.2K0
Android-加解密
基于SpringBoot的AES加密算法接口处理
Advanced Encryption Standard缩写:AES,译为高级加密标准。
关忆北.
2021/12/07
3.1K0
基于SpringBoot的AES加密算法接口处理
[Java 安全]加密算法
Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的A
静默虚空
2018/01/05
4K0
[Java 安全]加密算法
常用的加密算法DES3、AES & RSA
DES3,通常指的是三重数据加密算法(Triple Data Encryption Algorithm,3DES)或称为Triple DES,是一种对称加密算法。它是基于原有的DES(Data Encryption Standard)算法扩展而来,通过三次DES加密来增强安全性。
BUG弄潮儿
2024/05/11
6290
常用的加密算法DES3、AES & RSA
Java对称加密算法
1、DES 已破解,不再安全,基本没有企业在用了,是对称加密算法的基石,具有学习价值。密钥长度56(JDK)、56/64(BC)。
硕人其颀
2020/06/01
1.9K0
Java对称加密算法
SpringBoot 实现 RAS+AES 自动接口解密
目前常用的加密方式就对称性加密和非对称性加密,加密解密的操作的肯定是大家知道的,最重要的使用什么加密解密方式,制定什么样的加密策略;考虑到我技术水平和接口的速度,采用的是RAS非对称加密和AES对称加密一起用!!!!
程序员蜗牛
2024/05/10
2410
SpringBoot 实现 RAS+AES 自动接口解密
python笔记43-加解密AES/CBC/pkcs7padding
有些公司对接口的安全要求比较高,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回。
上海-悠悠
2019/10/24
3.7K0
java——加密、解密算法
  1. 对称加密算法: 密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高。 优点: 算法公开、计算量小、加密速度快、加密效率高 缺点: 在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。   2. 非对称加密算法: 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 优点: 安全 缺点: 速度较慢
不愿意做鱼的小鲸鱼
2022/09/26
3.1K0
java——加密、解密算法
推荐阅读
相关推荐
加密与安全_探索对称加密算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档