系统架构设计师-学习第五天
数据库
早期数据库种类有3种, 分别是层次式数据库、网络式数据库和关系型数据库。目前最常见的数据库种类是关系型数据库和非关系型数据库。根据数据库存储体系分类, 还可分为关系型数据库、键值(Key-Value)数据库、列存储数据库、文档数据库和搜索引擎数据库等类型。
关系数据库
数据模型是数据特征的抽象, 它是对数据库组织方式的一种模型化表示, 是数据库系统的核心与基础。它具有数据结构、数据操作和完整性约束条件三要素。
关系数据库设计的特点及方法
- 特点:从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点; 静态结构设计与动态行为设计分离; 试探性; 反复性和多步性。
- 设计方式:直观设计法、规范设计法、计算机辅助设计法和自动化设计法。
关系数据库设计的基本步骤
数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护6个阶段,如图所示。
分布式数据库
分布式数据库系统(Distributed DataBase System, DDBS)是针对地理上分散, 而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为完全分布式数据库系统。
分布式数据库设计的特点
数据的集中控制性、数据独立性、数据冗余可控性、场地自治性和存取的有效性。
分布式数据库体系结构
4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。
常用数据库管理系统
计算机科学技术不断发展,数据库管理系统也不断发展进化, MySQL AB 公司(2009 年被Oracle 公司收购) 的 MySQL、Microsoft公司的 Access等是小型关系数据库管理系统的代表, Oracle 公司的Oracle、Microsoft公司的 SQL Server、IBM 公司的 DB2等是功能强大的大型关系数据库管理系统的代表。
大型数据库管理系统的特点
- 基于网络环境的数据库管理系统。可以用于 C/S结构的数据库应用系统,也可以用于结构的数据库应用系统。
- 支持大规模的应用。可支持数千个并发用户、多达上百万的事务处理和超过数百GB的数据容量。
- 提供的自动锁功能使得并发用户可以安全而高效地访问数据。
- 可以保证系统的高度安全性。
- 提供方便而灵活的数据备份和恢复方法及设备镜像功能,还可以利用操作系统提供容错功能,确保设计良好的应用中的数据在发生意外的情况下可以最大限度地被恢复。
- 提供多种维护数据完整性的手段。
- 提供了方便易用的分布式处理功能。
中间件
中间件分类
- 通信处理(消息) 中间件
- 事务处理(交易)中间件
- 数据存取管理中间件
- Web服务器中间件
- 安全中间件
- 跨平台和架构的中间件
- 专用平台中间件
- 网络中间件
软件构件
构件又称为组件,是一个自包容、可复用的程序集。构件是一个程序集, 或者说是一组程序的集合。这个集合可能会以各种方式体现出来,如源程序或二进制的代码。
软件构件的组装模型
随着软件构件技术的发展,人们开始尝试利用软件构件进行搭积木式的开发,即构件组装模型。
商用构件的标准规范
当前, 主流的商用构件标准规范包括对象管理组织(Object Management Group, OMG)的CORBA、Sun的J2EE 和Microsoft 的DNA。
嵌入式系统及软件
嵌入式系统的组成
嵌入式处理器
由于嵌入式系统一般是在恶劣的环境条件下工作,与一般处理器相比,嵌入式处理器应可抵抗恶劣环境的影响,比如高温、寒冷、电磁、加速度等环境因素。为适应恶劣环境, 嵌入式处理器芯片除满足低功耗、体积小等需求外, 根据不同环境需求, 其工艺可分为民用、工业和军用等三个档次。
相关支撑硬件
相关支撑硬件是指除嵌入式处理器以外的构成系统的其他硬件, 包括存储器、定时器、总线、IO接口以及相关专用硬件。
嵌入式操作系统
嵌入式操作系统是指运行在嵌入式系统中的基础软件,主要用于管理计算机资源和应用软件。与通用操作系统不同,嵌入式操作系统应具备实时性、可剪裁性和安全性等特征。
支撑软件
支撑软件是指为应用软件开发与运行提供公共服务、软件开发、调试能力的软件, 支撑软件的公共服务通常运行在操作系统之上,以库的方式被应用软件所引用。
应用软件
应用软件是指为完成嵌入式系统的某一特定目标所开发的软件。
嵌入式系统的特点
- 专用性强。嵌入式系统面向特定应用需求,能够把通用CPU 中许多由板卡完成的任务集成在芯片内部, 从而有利于嵌入式系统的小型化。
- 技术融合。嵌入式系统将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体应用相结合,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
- 软硬一体软件为主。软件是嵌入式系统的主体,有IP核。嵌入式系统的硬件和软件都可以高效地设计,量体裁衣, 去除冗余,可以在同样的硅片面积上实现更高的性能。
- 比通用计算机资源少。由于嵌入式系统通常只完成少数几个任务。设计时考虑到其经济性, 不能使用通用CPU, 这就意味着管理的资源少, 成本低,结构更简单。
- 程序代码固化在非易失存储器中。为了提高执行速度和系统可靠性, 嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中, 而不是存在磁盘中。
- 需专门开发工具和环境。嵌入式系统本身不具备开发能力, 即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
- 体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。
- 对安全性和可靠性的要求高。
嵌入式系统的分类
根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种, 而实时系统又可分为强实时(Hard Real-Time) 系统和弱实时(WeakReal-Time) 系统。
如果从安全性要求看, 嵌入式系统还可分为安全攸关(Safety-Critical 或 Life-Critical)系统和非安全攸关系统。
嵌入式软件的组成
- 硬件层
- 抽象层
- 操作系统层
- 中间件(Middleware)层
- 应用层
嵌入式软件的主要特点
- 可剪裁性
- 可配置性
- 强实时性
- 安全性(Safety)
- 可靠性
- 高确定性