【软件工程笔记4】——数据库内容

数据的选择应该考虑哪些因素:

·应用程序正常投用时存储的数据量有多大?

·负载高峰时支持多少并发用户?

·应用程序需要怎样的可用性、可扩展性、延迟、吞吐量和数据一致性?

·数据库 schema 多久改一次?

·用户的地理分布如何?

·数据的自然“形态”是怎样的?

·需要在线事务处理(OLTP)、分析查询(OLAP)还是都支持?

·生产环境中预期读写比是多少?

·需要查询地理信息或者全文检索吗?

·首选编程语言是什么?

·预算是怎样的?如果有预算,是否包含授权和合同费用?

·存储数据是否有法律限制?

MySQL

特点

·功能强大;

·支持跨平台;

·运行速度快;

·支持面向对象;

·安全性高;

·成本低;

·支持各种开发语言;

·数据库存储容量大;

·支持强大的内置函数;

适用场景

①通用型OLTP数据库

②电子商务应用

③LAMP开源堆栈

MongoDB

特点

·易拓展性;

·网站数据具有高性能;

·存储动态性;

·读写速度快;

   

适用场景

·社交场景,使用 MongoDB存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。

·游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。

·物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。

·物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

·视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。

适用场景特点

  • 数据量大
  • 写入操作频繁(读写都很频繁)
  • 价值较低的数据,对事务性要求不高

Redis

特点

·速度快

·简单稳定

·语言多

  

适用场景

·缓存

·数据的共享分布式

·分布式锁

·全局ID

·计数器

·限流

·位统计

·时间轴

·消息队列

·抽奖

·点赞、签到、打卡

·商品标签

·好友关系、用户关注、推荐模型

·排行榜

·倒排索引

·显示最新的项目列表

软件体系结构

软件设计原则——模块化

  模块化产品设计方法的原理是,在对一定范围内的不同功能或相同功能、不同性能、不同规格的产品进行功能分析的基础上,划分并设计出一系列功能模块,通过模块的选择和组合构成不同的顾客定制的产品,以满足市场的不同需求。

软件过程中的内聚和耦合

   对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。

  有软硬件之间的耦合,还有软件各模块之间的耦合。

耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

※内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系; 耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值