关系型数据库和非关系型数据库
关系型数据库和非关系型数据库 主要区别包括:
适用性不同。关系型数据库通常采用表格形式存储数据,适合处理结构化数据;非关系型数据库采用其他数据模型,如文档、键值对、图形等,适合处理半结构化和非结构化数据。123456
数据一致性的要求不同。关系型数据库强调数据的一致性,确保数据的完整性和一致性;非关系型数据库则更加关注数据的可用性和灵活性,采用最终一致性模型,允许系统在一定时间内自动同步数据。
扩展性不同。关系型数据库的扩展性相对较差,通常只能通过升级硬件或增加节点来提高性能;非关系型数据库采用分布式架构,可以通过添加节点来水平扩展性能。
数据模型不同。关系型数据库采用ACID事务模型,保证数据的安全性和稳定性;非关系型数据库通常采用BASE模型,重视系统的可用性和性能,而不是强一致性。
数据查询语言不同。关系型数据库使用结构化查询语言(SQL)进行数据查询,支持复杂的查询和分析;非关系型数据库使用简单的键值对查询语言,如MongoDB的查询语言,限制了查询的复杂性。
绘制数据库E-R图的方法:
需求分析阶段:分析客户的业务和数据处理需求
概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整
详细设计阶段:应用三大范式审核数据库结构
代码实现阶段:物理实现数据库,编码实现应用
E-R图:Entity Relationship Diagram 也称为实体-关系图
通过一些具有特定含义的图形符号提供了实体类型、属性和联系的方法
E-R图表示映射关系时,也可以通过添加箭头区分一对多和多对一的
在业务人员与开发人员的沟通中,E-R图能够极大的提高彼此之间的沟通效率
一对多关系的两个实体
一般会各自转换为一张表,且后者对应的表引用前者对应的表
一个表中的主键对应另一个表中可重复的字段
主键的值是不能重复的,关联的字段是可以重复的
存在一个值对应一个值(一对一)或者一个值对应多个值(一对多)
一对一关系的两个实体
一般是一个主键对应一个不可重复的字段
多对多关系的两个实体
除了将多对多关系中的两个实体各自转换为表外,一般还会创建第3个表,称为连接表
将多对多关系划分为两个一对多关系,将这两个表主键都插入到第3个表中
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则
实际开发中最为常见的关系型数据库设计范式
第一范式:第一范式的目标是确保每列保持原子性 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
第二范式:第二范式的目标是确保表中的每列都和主键相关 要求每个表只描述一件事情
第三范式 :第三范式的目标是确保每列都和主键列直接相关,而不是间接相关 如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)