首页 > 其他分享 >系统架构设计师教程 第二章 计算机系统基础知识-2.3计算机软件

系统架构设计师教程 第二章 计算机系统基础知识-2.3计算机软件

时间:2024-07-09 11:26:50浏览次数:19  
标签:计算机软件 操作系统 数据库 基础知识 关系数据库 2.3 设计 数据

在这里插入图片描述

系统架构设计师教程 第二章 计算机系统基础知识-2.3计算机软件

2.3 计算机软件

    计算机软件是指由一系列指令、数据和文档组成的程序,能够使计算机完成特定任务或功能的程序和数据。

2.3.1 计算机软件概述

    软件可以分为系统软件和应用软件两大类。系统软件是管理和控制计算机硬件和提供支撑服务的程序,如操作系统、驱动程序、编程语言等;应用软件是为用户提供功能或服务的程序,如办公软件、图形设计软件、游戏等。软件开发通常包括需求分析、设计、编码、测试、部署等阶段,是计算机科学领域的重要分支之一。

2.3.2 操作系统

    操作系统是计算机系统的资源管理者,它是管理计算机硬件和软件资源的软件。

2.3.2.1 操作系统的组成

    操作系统主要由以下几个组成部分组成:
    1. 内核(Kernel):内核是操作系统的核心部分,负责管理计算机的硬件资源(如处理器、内存、磁盘、网络等)并提供必要的接口供应用程序访问这些资源。
    2. 系统调用(System Calls):系统调用是应用程序和操作系统之间进行通信的接口。应用程序可以通过系统调用请求操作系统提供服务和资源。
    3. 文件系统(File System):文件系统是操作系统用来管理存储设备中文件和目录的一种机制。它负责文件的创建、读取、写入、删除等操作。
    4. 进程管理(Process Management):操作系统负责管理和调度系统中的进程,包括进程的创建、调度、终止等操作。
    5. 内存管理(Memory Management):内存管理模块负责将内存空间分配给不同的进程,并控制内存的分配和释放。
    6. 设备驱动程序(Device Drivers):设备驱动程序是连接操作系统和计算机硬件设备的软件,负责将操作系统的请求转换为硬件可以理解的命令。
    7. 用户界面(User Interface):用户界面是用户与操作系统交互的接口,包括命令行界面(CLI)和图形用户界面(GUI)等。

2.3.2.2 操作系统的作用

    操作系统是计算机系统中的一个重要组成部分,它负责管理计算机硬件资源,并为用户提供一个友好的界面以便与计算机进行交互。操作系统的作用包括以下几个方面:
    1. 资源管理:操作系统负责管理计算机的硬件资源,包括处理器、内存、硬盘、网络等。它会根据各个程序的需求,合理分配和管理这些资源,以确保计算机的性能和效率。
    2. 提供用户界面:操作系统为用户提供一个交互界面,使用户能够方便地与计算机进行沟通和操作。用户可以通过命令行界面或图形用户界面来执行各种操作。
    3. 文件管理:操作系统负责管理计算机中的文件和文件系统。它管理文件的存储、查找、访问和保护,以确保文件系统的完整性和安全性。
    4. 进程管理:操作系统管理计算机中正在运行的进程。它负责调度进程的运行顺序、分配进程所需的资源,并监控和控制进程的运行状态。
    5. 设备驱动程序:操作系统提供设备驱动程序,用于管理和控制计算机中的各种硬件设备,包括打印机、键盘、鼠标、网卡等。

    总的来说,操作系统的作用是协调和管理计算机系统中的各项资源,为用户提供一个稳定、高效和便捷的计算环墬。

2.3.2.3 操作系统的特征

    1. 并发性:操作系统能够同时处理多个任务,实现多任务并发执行。
    2. 共享性:操作系统可以实现对硬件资源的共享,让多个程序同时访问硬件资源。
    3. 虚拟性:操作系统可以通过虚拟化技术实现对硬件资源的虚拟化,让多个程序看起来就像独占了资源一样。
    4. 不确定性:指的是系统运行过程中出现的一些无法预测或控制的情况。这些情况可能导致系统行为的不稳定性或出现错误,给系统的可靠性和稳定性带来挑战。

2.3.2.4 操作系统的分类

    操作系统可以根据其用途和结构等方面进行分类,常见的分类方式包括:
    1. 单用户操作系统:只能支持一个用户使用的操作系统,如Windows、Mac OS等。
    2. 多用户操作系统:支持多个用户同时使用的操作系统,如UNIX、Linux等。
    3. 批处理操作系统:按照作业的要求,批量地处理一组作业的操作系统,如IBM的OS/360等。
    4. 分时操作系统:允许多用户在同一时间共享计算机资源的操作系统,如UNIX、Linux等。
    5. 实时操作系统:对系统响应时间有严格要求的操作系统,如嵌入式系统中的实时操作系统。
    6. 分布式操作系统:将计算机资源分布在多个计算机上,并协调各个节点间的通信和协作的操作系统,如UNIX、Windows等。
    7. 网络操作系统:专门设计用于网络环境下的操作系统,如网络服务器操作系统。
    8. 嵌入式操作系统:设计用于嵌入式系统中的操作系统,如RTOS等。

2.3.3 数据库

    随着应用系统的规模越来越大,现在的系统开发大部分都是基于数据库的应用,因此,作为一名系统架构设计师,要熟练地掌握数据库系统的设计方法和技术。
    本章在宏观上就系统架构设计师必须要掌握的内容进行介绍,有关细节方面的知识,如果读者感兴趣,可以参考数据库专业教程。

2.3.3.1 关系数据库

    关系数据库是一种使用关系模型来组织数据的数据库。在关系数据库中,数据以表格的形式存储,每个表格包含多个行和列,行代表记录,列代表属性。表格之间通过外键建立关系,并通过关系代数和SQL等语言实现数据查询和操作。关系数据库具有数据结构清晰、数据一致性高、数据操作灵活等特点,被广泛应用于企业和组织中用于数据管理。常见的关系数据库有Oracle、MySQL、SQL Server等。

2.3.3.1.1 关系数据库设计的特点及方法

    数据库设计是为了构建一个最优的数据库,以满足特定应用环境下的需求。
关系数据库设计具有以下特点:
    1. 结构化数据存储:关系数据库通过表格的形式存储数据,并通过行和列的方式将数据组织起来,使数据易于管理和检索。
    2. 数据完整性:关系数据库设计支持各种数据约束和完整性规则,确保数据的一致性和准确性。
    3. 数据关系的表达:关系数据库设计通过在不同表格之间建立关系,可以更好地表达数据之间的关联和依赖关系。
    4. 数据安全性:关系数据库设计可以通过访问控制和权限管理等方式保护数据的安全性,防止未经授权的访问和修改。

    目前已有的数据库设计方法可分为四类,即直观设计法、规范设计法、计算机辅助设计法和自动化设计法。直观设计法又称单步逻辑设计法,它依赖于设计者的知识、经验和技巧,缺乏工程规范的支持和科学根据,设计质量也不稳定,因此越来越不适应信息管理系统发展的需要。为了改变这种状况,1978 年 10 月来自 30 多个欧美国家的主要数据库专家在美国新奥尔良市专门讨论了数据库设计问题,提出了数据库设计规范,把数据库设计分为需求分析、概念结构设计、逻辑结构设计和物理结构设计 4 个阶段。目前,常用的规范设计方法大多起源于新奥尔良方法,如基于 3NF 的设计方法、LRA 方法、面向对象的数据库设计方法及基于视图概念的数据库设计方法等。
    架构设计师考试中,主要了解基于 3NF 的数据库设计方法即可。

2.3.3.1.2 关系数据库设计的基本步骤

    基于 3NF 的数据库设计方法是由 S.Atre 提出的数据库设计的结构化设计方法,其基本思想是在需求分析的基础上,识别并确认数据库模式中的全部属性和属性间的依赖,将它们组织成一个单一的关系模型,然后再分析模式中不符合 3NF 的约束条件,用投影和连接的办法将其分解,使达到 3NF 条件。其具体设计步骤分为 5 个阶段,如下图所示。
在这里插入图片描述
    1. 定义需求:首先要明确数据库的使用目的和所需功能,确定需要存储的数据类型和数据量,以及用户的访问需求。
    2. 设计概念模型:根据需求分析,设计数据库的概念模型,包括实体-关系图(Entity-Relationship Diagram, ERD)和实体之间的关系。
    3. 范式化设计:将概念模型进行范式化设计,确保数据库表的结构符合各种范式的要求,以提高数据的一致性和减少冗余。
    4. 物理设计:确定数据库中数据的存储方式、索引和分区策略等物理设计方案,以提高数据库的性能和可靠性。
    5. 数据库实施:根据设计好的数据库模型和物理设计方案,创建数据库表结构、索引等,

标签:计算机软件,操作系统,数据库,基础知识,关系数据库,2.3,设计,数据
From: https://blog.csdn.net/Remon/article/details/140287481

相关文章

  • Linux 基础知识
    Smiling&Weeping----站在这,难免被遗忘    Linux基础命令这一部分我会带着大家了解Linux的一些基础操作,还有使用一些工具。让大家能够在遇到问题的时候,可以自行解决,如果大家有遇到什么问题的话,也可以在这里评论,我会及时给......
  • ip和端口基础知识
     TCP/IP体系结构-网络通信的基础 HTTP协议-网站访问的基础 其他协议-HTTPS、ARP、ICMP、DNS①什么是ip地址 <1>IP地址是电子设备在互联网上的唯一标识 <2>用来在互联网中寻找电脑②内网ip和公网ip <1>内网ip:路由以内的网络,可以连接互联网,但是互联网无法直接......
  • Scala的基础知识点
    scala特点Scala介绍Scala是把函数式编程思想和面向对象编程思想结合的一种编程语言大数据计算引擎Spark由Scala编写Scala特点多范式面向对象函数式编程兼容JAVA类库调用互操作语法简洁代码行短类型推断抽象控制静态类型化可检验安全重构支持并发......
  • 【学习笔记】网络设备(华为交换机)基础知识2——常用设备管理命令
    一、前期准备提示:下面所有学习内容都是基于以下条件完成的条件1.已经可以正常访问交换机的命令行接口Console口本地访问教程参考①:使用第三方工具(secureCRT软件)通过console口本地访问访问交换机的详细操作过程Telnet访问、通过SSH访问教程参考②:使用命令提示符和......
  • CSS基础知识总结(4)
    1、使用CSS绘制一些简单的图形。A:正方形#square{width:100px;height:100px;background-color:red;}B:圆形1#square{2width:100px;3height:100px;4border......
  • 其他计算机系统基础知识
    计算机语言计算机语言是指用于人与计算机之间交流的一种语言,是人与计算机之间传递信息的媒介。计算机语言主要由一套指令组成,而这种指令一般包括表达式、流程控制和集合三大部分内容。表达式又包含变量、常量、字面量和运算符。流程控制有分支、循环、函数和异常。集合包括......
  • 微信小程序开发基础知识5----自定义组件
    一、组件的创建与引用1、创建组件①在项目的根目录中,鼠标右键,创建components->test文件夹②)在新建的components->test文件夹上,鼠标右键,点击“新建Component'③键入组件的名称之后回车,会自动生成组件对应的4个文件,后名分别为.js,json,.wxml和.wxss2、引用组件组......
  • CSS基础知识总结(3)
    1、如何从外面引入我们喜欢的字体?引用在线字体:这里需要引入一个网站:https://fonts.google.com/从这个网站中,我们可以找到自己想要的字体,然后点击进去,选择Getfont,,后面我们再Getembedcode;我们再把它提供给我们的字体链接复制到我们HTML文件的相应位置。就可以了。把字体下载......
  • c++基础知识——常量和变量
    常量1.常量的性质在程序运行的过程中,其值不改变的量称为常量。常量分为两种:一类直接写出它的值,称为字面值常量,如123,'abc',true等;一类是使用const修饰的对象。2.整形字面值常量整形字面值常量采用我们平常使用的十进制整数表示。如138,0,-512等,都是整形常量,二18.1,32.6等不是整......
  • Linux系统的基础知识和常用命令
    1、什么是Linux?是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。......