• 关于 电写通信工作原理 的搜索结果

回答

计算机科学与技术专业课程 课程简介 1.数字逻辑电路: “数字逻辑”是计算机专业本科生的一门主要课程,具有自身的理论体系和很强的实践性。它是计算机组成原理的主要先导课程之一,是计算机应用专业关于计算机系统结构方面的主干课程之一。 课程的主要目的是使学生了解和掌握从对数字系统提出要求开始,一直到用集成电路实现所需逻辑功能为止的整个过程的完整知识。内容有数制和编码、布尔代数和逻辑函数、组合逻辑电路的分析和设计,时序逻辑电路的分析和设计,中、大规模集成电路的应用。通过对该课程的学习,可以为计算机组成原理、微型计算机技术、计算机系统结构等课程打下坚实的基础。 2.计算机组成原理: 本课程是计算机系本科生的一门重要专业基础课。在各门硬件课程中占有举足轻重的地位。它的先修课程是《数字逻辑电路》,后继课程有《微机接口技术》、《计算机系统结构》。从课程地位来说,本课程在先修课和后继课中起着承上启下的作用。主要讲解计算机五大部件的组成及工作原理,逻辑设计与实现方法,整机的互连技术,培养学生具有初步的硬件系统分析、设计、开发和使用的能力。具体内容包括:数制与码制、基本逻辑部件、运算方法与运算器、指令系统与寻址方式,中央处理器(CPU)的工作原理及设计方法。存储系统和输入/输出(I/O)系统等。通过该课程的学习,可以使学生较深地掌握单台计算机的组成及工作原理,进一步加深对先修课程的综合理解及灵活应用,为后继课程的学习建立坚实的基础知识。 3.微机接口技术: 本课程是计算机科学与技术专业学生必修的核心课程之一,它的先修课程为数字逻辑、计算机组成原理。本课程对于训练学生掌握硬件接口设计技术,熟悉微处理器和各种接口芯片的硬件设计和软件调试技术都有重要作用,在软件方面要求掌握汇编语言,在硬件方面要掌握中断、DMA、计数器/定时器等设计技术。通过该课程的学习使学生学会微机接口设计的基本方法和技能。 4.计算机系统结构: 计算机系统结构主要是研究高性能计算机组织与结构的课程。主要包括:计算机系统结构的基本概念、指令的流水处理与向量计算机、高性能微处理器技术、并行处理机结构及算法和多处理机技术。结合现代计算机系统结构的新发展,介绍近几年来计算机系统结构所出现的一些新概念和新技术。 5.数据库概论: 数据库已是计算机系本科生不可缺少的专业基础课,它是计算机应用的重要支柱之一。该课程讲授数据库技术的特点,数据库系统的结构,三种典型数据模型及系统(以关系型系统为主)、数据库规范化理论,数据库的设计与管理,以及数据库技术的新进展等。通过本课程学习,掌握基本概念、理论和方法,学会使用数据库管理系统设计和建立数据库的初步能力,为以后实现一个数据库管理系统及进行系统的理论研究打下基础。 6.算法与数据结构: “数据结构”是计算机程序设计的重要理论技术基础,是计算机科学与技术专业的必修课,是计算机学科其它专业课的先修课程。通过学习本课程使学生掌握数据结构的基本逻辑结构和存储结构及其基本算法的设计方法,并在实际应用中能灵活使用。学会分析研究数据对象的特性,选择合适的逻辑结构、存储结构及设计相应的算法。初步掌握算法的时空分析技巧,同时进行程序设计训练。使学生学会应用抽象数据类型概念进行抽象设计。主要内容有:线性表、链表、栈、队列、数组、广义表、树与二叉树、图、查找、排序、内存管理、文件存储管理。 7.离散数学: “离散数学”是计算机科学与技术专业必修课程,其主要内容包括:命题逻辑;一阶命题逻辑;集合、关系与映射;代数系统、布尔代数 ;图论等。这些内容为学习计算机专业课程,如编译原理、数据结构提供重要的理论工具,同时也是计算机应用不可缺少的理论基础。 离散数学主要培养学生对事物的抽象思维能力和逻辑推理能力,为今后处理离散信息,从事计算机软件的开发和设计,以及计算机的其它实际应用打好数学基础。 8.操作系统: 操作系统是现代计算机系统中不可缺少的重要组成部分。它的先修课程是数据结构和计算机基础,在此基础上讲解操作系统的主要内容:CPU管理、存储器管理、作业管理、I/O设备管理和文件管理。这些基本原理告诉人们作为计算机系统中各种资源的管理者和各种活动的组织者、指挥者,操作系统是如何使整个计算机系统有条不率地高效工作,以及它为用户使用计算机系统提供了哪些便利手段。掌握了这些知识,人们就会对计算机系统的总体框架、工作流程和使用方法有了一个全面的认识,就会清楚后续专业课程所述内容在计算机系统中所处的地位和作用,这样不仅便于理解后续课程内容,而且能使人们把计算机的各部分知识有机地联系起来。此外,由于多处理机系统和计算机网络的盛行,本课程中也包含了对多处理机操作系统和网络操作系统的概述,从而使学习者可以跟上计算机技术的发展速度。 9.数据通信与计算机网: 该课程主要介绍网络基本理论和网络最新实用技术,分基础理论、实用技术和新技术三部分进行讲述。主要讲解计算机网络的功能和组成,数据传输,链路控制,多路复用,差错检测,网络体系结构,网络分层协议及局域网、广域网等。要求学生掌握数据通信的基本原理和计算机网络的体系结构,打下坚实的理论基础,培养实际应用的能力,为今后从事计算机网络的科研和设计工作打下基础。 10.高级语言程序设计: 本课程介绍了C与C++的全集。它从语法入手,同时强调程序设计的基本方法,以使学生能在较短的时间内,掌握C语言的结构化程序设计方法与C++语言的面向对象程序设计方法。主要内容有:1、过程初步;2、过程组织和管理;3、C++的数据类型;4、类与对象;5、继承;6、I/O流。 11.软件工程: 软件工程课程是计算机专业的一门主要专业课程,是培养高水平软件研制和开发人员的一门重程。该课程主要介绍软件工程的概念、原理及典型的方法技术,进述软件生存周期各阶段的任务、过程、方法和工具,讨论了软件工程使用的科学管理技术。 12.数据库应用: 通过实践方式使学生进一步掌握数据库知识和技术,掌握C/S(客户/服务)模式下的大型数据库的设计与实现,培养同行间的合作精神,学习应用合作方法。 13.软件编程实践: 主要介绍最新的常规的软件编程平台、工具和方法。本课程面向应用技术和实用技术,培养学生自学新技术的能力,在WINDOWS下的综合编程能力,实际解决问题能力。 14.计算机网络工程: 计算机技术与通信技术相结合导致了计算机网络的产生。计算机网络已成为当今大型信息系统的基础。-------------------------高等数学、大学英语、概率统计、离散数学、电路、模拟电子、数字电子、数据结构、操作系统、编译原理、计算机网络、数据库原理、软件工程、汇编语言、C++程序设计、接口技术、Java、VC++、计算机病毒分析、信息安全、等。 高数学的是微积分,线性代数,概率论与数理统计。英语是大学英语上下。还有就是专业的计算机知识,数据分析,c语言,java,还有计算机的系统分析,各种软件技术,学会写代码,程序等。

琴瑟 2019-12-02 01:22:34 0 浏览量 回答数 0

问题

【精品问答】大数据计算技术1000问

问问小秘 2019-12-01 21:57:13 3431 浏览量 回答数 1

回答

密码学简介 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施 了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提 高,近期又出现了AES、ECC等。 使用密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取。 数据完整性:防止数据被更改。 身份验证:确保数据发自特定的一方。 二. 加密算法介绍 根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。 非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。 对称加密算法 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; AES 2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。 Rijndael被选中成为将来的AES。 Rijndael是在 1999 年下半年,由研究员 Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。 美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准 (AES) 规范。 算法原理 AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。 AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16 字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相 同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据 AES与3DES的比较 算法名称 算法类型 密钥长度 速度 解密时间(建设机器每秒尝试255个密钥) 资源消耗 AES 对称block密码 128、192、256位 高 1490000亿年 低 3DES 对称feistel密码 112位或168位 低 46亿年 中 非对称算法 常见的非对称加密算法如下: RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的; DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准); ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。 ECC 在1976年,由于对称加密算法已经不能满足需要,Diffie 和Hellman发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA算法。 随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA的密钥需要不断增 加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来 代替RSA。 1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数级的难度。 算法原理——椭圆曲线上的难题 椭圆曲线上离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。 将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。 例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要 求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知 的。 对应ELGamal密码系统可以采用如下的方式在椭圆曲线上予以实现: 将明文m嵌入到E上Pm点,选一点B∈E,每一用户都选一整数a,0<a<N,N为阶数已知,a保密,aB公开。欲向A 送m,可送去下面一对数偶:[kB,Pm+k(aAB)],k是随机产生的整数。A可以从kB求得k(aAB)。通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSA,考虑如下等式: K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数] 不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。 这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privte key),K称为公开密钥(public key)。 ECC与RSA的比较 ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面: Ø 抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。 Ø 计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。 Ø 存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。 Ø 带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。 ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。 下面两张表示是RSA和ECC的安全性和速度的比较: 攻破时间 (MIPS年) RSA/DSA (密钥长度) ECC 密钥长度 RSA/ECC 密钥长度比 104 512 106 5:1 108 768 132 6:1 1011 1024 160 7:1 1020 2048 210 10:1 1078 21000 600 35:1 RSA和ECC安全模长得比较 功能 Security Builder 1.2 BSAFE 3.0 163位ECC(ms) 1,023位RSA(ms) 密钥对生成 3.8 4,708.3 签名 2.1(ECNRA) 228.4 3.0(ECDSA) 认证 9.9(ECNRA) 12.7 10.7(ECDSA) Diffie—Hellman密钥交换 7.3 1,654.0 RSA和ECC速度比较 散列算法 散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结 果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有 相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。 单向散列函数一般用于产生消息摘要,密钥加密等,常见的有: Ø MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法。 Ø SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值; SHA-1 在1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布;1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1。SHA-1是基于MD4算法的,并且它的设计在很大程度上是模仿MD4的。现在已成为公认的最安全的散列算法之一,并 被广泛使用。 算法原理 SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。 单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码 的情况下都不能产生正确的散列值,从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或 信息摘要的输出。 该算法输入报文的最大长度不超过264位,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。 通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的 明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表 示明文未被改动,如果不一致表示明文已被篡改。 MAC (信息认证代码)就是一个散列结果,其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性。MAC的产生参见下图。 输入信息 密码 散列函数 信息认证代码 SHA-1与MD5的比较 因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同: Ø 对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。 Ø 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。 Ø 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。 对称与非对称算法比较 以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同: Ø 在管理方面:公钥密码算法只需要较少的资源就可以实现目的,在密钥的分配上,两者之间相差一个指数级别(一个是n一个是n2)。所以私钥密码算法不适应广域网的使用,而且更重要的一点是它不支持数字签名。 Ø 在安全方面:由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但从计算机的发展角度来看。公钥更具有优越性。 Ø 从速度上来看:AES的软件实现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。 三. 加密算法的选择 前面的章节已经介绍了对称解密算法和非对称加密算法,有很多人疑惑:那我们在实际使用的过程中究竟该使用哪一种比较好呢。 我们应该根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。 对称加密算法不能实现签名,因此签名只能非对称算法。 由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。 在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。 如果在选定了加密算法后,那采用多少位的密钥呢。一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。 四. 密码学在现代的应用 随着密码学商业应用的普及,公钥密码学受到前所未有的重视。除传统的密码应用系统外,PKI系统以公钥密码技术为主,提供加密、签名、认证、密钥管理、分配等功能。 保密通信:保密通信是密码学产生的动因。使用公私钥密码体制进行保密通信时,信息接收者只有知道对应的密钥才可以解密该信息。 数字签名:数字签名技术可以代替传统的手写签名,而且从安全的角度考虑,数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有广泛的应用环境。 秘密共享:秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息,分发给n个成员,只有 k(k≤n)个合法成员的共享因子才可以恢复该秘密信息,其中任何一个或m(m≤k)个成员合作都不知道该秘密信息。利用秘密共享技术可以控制任何需要多 个人共同控制的秘密信息、命令等。 认证功能:在公开的信道上进行敏感信息的传输,采用签名技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现对通信主体的身份验证。 密钥管理:密钥是保密系统中更为脆弱而重要的环节,公钥密码体制是解决密钥管理工作的有力工具;利用公钥密码体制进行密钥协商和产生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制进行密钥分发、保护、密钥托管、密钥恢复等。 基于公钥密码体制可以实现以上通用功能以外,还可以设计实现以下的系统:安全电子商务系统、电子现金系统、电子选举系统、电子招投标系统、电子彩票系统等。 公钥密码体制的产生是密码学由传统的政府、军事等应用领域走向商用、民用的基础,同时互联网、电子商务的发展为密码学的发展开辟了更为广阔的前景。 五. 加密算法的未来 随着计算方法的改进,计算机运行速度的加快,网络的发展,越来越多的算法被破解。 在2004年国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做的破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,令在场的国际顶尖密码学专家都为之震惊,意味着这些算法将从应用中淘汰。随后,SHA-1也被宣告被破解。 历史上有三次对DES有影响的攻击实验。1997年,利用当时各国 7万台计算机,历时96天破解了DES的密钥。1998年,电子边境基金会 (EFF)用25万美元制造的专用计算机,用56小时破解了DES的密钥。1999年,EFF用22小时15分完成了破解工作。因此。曾经有过卓越贡献的 DES也不能满足我们日益增长的需求了。 最近,一组研究人员成功的把一个512位的整数分解因子,宣告了RSA的破解。 我们说数据的安全是相对的,可以说在一定时期一定条件下是安全的,随着硬件和网络的发展,或者是另一个王小云的出现,目前的常用加密算法都有可能在 短时间内被破解,那时我们不得不使用更长的密钥或更加先进的算法,才能保证数据的安全,因此加密算法依然需要不断发展和完善,提供更高的加密安全强度和运 算速度。 纵观这两种算法一个从DES到3DES再到AES,一个从RSA到ECC。其发展角度无不是从密钥的简单性,成本的低廉性,管理的简易性,算法的复 杂性,保密的安全性以及计算的快速性这几个方面去考虑。因此,未来算法的发展也必定是从这几个角度出发的,而且在实际操作中往往把这两种算法结合起来,也 需将来一种集两种算法优点于一身的新型算法将会出现,到那个时候,电子商务的实现必将更加的快捷和安全。

liujae 2019-12-02 01:26:38 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

回答

数据库课程设计 “数据库课程设计”是数据库系统及应用课程的后续实验课,是进一步巩固学生的数据库知识,加强学生的实际动手能力和提高学生综合素质。 一、 课程设计目的 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的: 1. 加深对数据库原理、程序设计语言的理论知识的理解和应用水平; 2. 在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高; 3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力; 4. 为毕业设计和以后工作打下必要基础。 二、课程设计要求 运用数据库原理的基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。 1. 用E-R图设计选定题目的信息模型; 2. 设计相应的关系模型,确定数据库结构; 3. 分析关系模式各属于第几范式,阐明理由; 4. 设计应用系统的系统结构图,确定系统功能; 5. 通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制; 6. 为参照关系设计插入、删除、修改触发器; 7. 实现应用程序设计、编程、优化功能; 8. 对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求; 9. 分析遇到的问题,总结并写出课程设计报告; 10. 自我评价 三、实验环境 开发环境VC++、C#、ASP或JAVA;ODBC/JDBC;数据库SQL Server 四、上机实现内容 1. 创建数据库的结构 2. 创建各基本表的结构 3. 编制系统各功能模块,完成数据的管理(增、删、改)及统计查询。对于程序运行界面不做考核的重点。 五、课程设计考核 1.对学生到实验室的情况进行不定时统计; 2.出勤率+课程设计报告+课程设计所开发的应用系统+其他(上机抽查和提问)=综合评定成绩。 3.课程设计结束时请将下列资料上交: (1) 课程设计报告; (2) 所开发的应用系统的源程序、安装和使用说明; (3) 将(1)(2)中的资料压缩成一个压缩包,压缩包文件的命名规则:班级+学号(末2位)+姓名(例如:计科090101王鹏晓); (4) 班长将本班每人的(3)中的压缩包刻录成光盘连同打印的课程设计报告收齐,交给任课教师。 附录﹑课程设计题目 题目1:课程设计选题管理系统(1,24) 包括三大模块:  课程设计题目维护与查询:题目的添加、修改和删除;按题目类型、名称和关键字查询以及已选与未选题目的查询;  学生信息维护与查询;  学生选题维护与管理:学生选题及查询; 具体功能细化:  前台学生选题:学生上网登录系统进行选题;  前台教师出题:  教师添加、修改和删除题目;  教师确认学生的选题;  后台管理出题和选题  添加用户及权限 题目2:书店管理系统(23) 包括四大模块:  售书(图书销售管理及销售统计,查询)  进书(通过书目,向发行商下定单订购图书)  库存(图书库存,统计)  相关查询 题目3:图书馆管理系统(11) 包括四大模块:  图书的查询  借书  还书  图书的预约 题目4:库存管理系统(8) 包括四大模块:  商品目录建立  商品入库管理  商品出库管理  商品库存查询 题目5:工资管理系统(1 人)41 包括四大模块:  系统数据初始化  员工基本信息数据的输入、修改、删除;  员工个人信息及工资表的查询;  员工工资的计算; 参考数据如下:  员工基本状况:包括员工号、员工姓名、性别、所在部门、工资级别、工资等级等。  工资级别和工资金额:包括工资等级、工资额。  企业部门及工作岗位信息:包括部门名称、工作岗位名称、工作岗位工资等。  工龄和工资金额:包括工龄及对应工资额。  公司福利表:包括福利名称、福利值。  工资信息:包括员工号、员工姓名、员工基础工资、员工岗位工资、员工工龄工资、公司福利、员工实得工资。 题目6:酒店客房管理系统 (1 人)14,26 包括四大模块:  前台操作:包括开房登记、退房结账和房状态查看  预订管理:包括预订房间、预订入住和解除预订  信息查询:包括在住客人列表、预订客人列表和历史客人列表  报表统计:包括开房记录统计、退房结账和预订房间统计  员工基本信息数据的输入、修改、删除; 参考数据如下:  住店管理:客人姓名、证件号码、房号、入住时期、预计离开日期、结账离开日期、应付金额  客人信息:姓名、性别、证件类型、证件号码、联系电话  房间信息:房号、房类型、价格、押金、房状态 预订房间  客人姓名、性别、房类型、房号、价格、证件类型、证件号码、联系电话、入住日期、预计离开日期、历史信息 题目7:旅行社管理信息系统(1 人)3 包括如下模块:  旅游团队、团队团员及旅游路线相关信息的输入  旅游团队、团队团员及旅游路线相关信息的维护(修改、浏览、删除和撤销)  旅游团队管理信息的查询(如按团队编号)  团队团员基本情况的查询(可选多种方式)  旅游路线相关信息的查询(如按线路编号)  旅游路线排行榜发布。  数据备份,更改密码。 参考数据如下:  团员信息表(路线编号,团队编号,团员编号,姓名,性别,电话,通信地址,身份证号码, 团费交否,备注)  线路信息表(路线名称,团费,简介,图形,路线编号)  团队信息表(团队编号,路线编号,团员人数,出发日期,返程日期)  旅游团队信息表(团队编号,团队负责人,团员人数,建团时间,是否出发,团费,盈亏) 密码信息(操作员,密码) 题目8:报刊订阅管理系统 (1 人)25,35 包括如下模块:  登录功能:登录统为身份验证登录。分为管理员登录和一般用户登录。分别通过不 同的用户名和密码进入报刊订阅管理界面,新的用户需要注册。  录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦 提交就存入到后台数据库中;普通用户自行注册进行可以修改个人信息。  订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不 可订阅报刊,必须以用户身份订阅报刊。  查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门 分类查询。查询出的信息显示在界面上,并且可以预览和打印出结果。  统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订 阅信息进行统计;普通用户可以统计出自己的订阅情况,并且可以预览和打印出结果。  系统维护功能:数据的安全管理,主要是依靠管理员对数据库里的信息进行备份和恢 复,数据库备份后,如果出了什么意外可以恢复数据库到当时备份的状态,这提高了系统和 数据的安全性,有利于系统的维护 参考数据如下:  管理员表(Adminuser) :管理员名、密码。  部门表(Department) :部门号,部门名。  用户表(Users) :用户账号、密码、真实姓名、身 份证号、联系电话,联系地址,部门号(和部门表有关)等。  报刊类别表(NewspaperClass) :分类编号、 分类名称。  报刊信息表(Newspaper) :报刊代号、报刊名称、出版 报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。  订单表(Order) :订单编号、用户编号、报刊代号、订阅份数、订阅月数等。 题目9:计算机等级考试教务管理系统(2 人)32 包括四大模块:  用户设置:对考点代码,考点名称进行设置,设置用户与密码;系统复位:即清除上一次考试数据(在之前存入历史)  报名管理: 报各库录入(姓名不能不空,之间不能有空格) 增加、删除、修改、浏览  准考证管理:准考证生成规则:xxx+yy+zz+kk,其中 XXX 为考点代码;YY 为语言代码,XX 为考场号,KK 为座位号 同一级别、语言应根据报名初始库信息按随机数生成准考证,同一考点最多可有 99*30=2970 名考生;如已生成准考证号,再重新生成准考证号,应该给予提示。 准考证打印  考务管理:考生信息查询、浏览、打印  成绩管理:成绩数据录入、接收 成绩合成(总成绩=笔试成绩*0.6+上机成绩*0.4),按大于或等于 60 合格 参考数据如下:  初始报名表(准考证号(为空) ,报名号(主键) ,级别+语言种类(外键) ,姓名,性别, 出生年份,民族,身份证号,联系地址,联系电话,照片,备注,参加培训)  含准考证号的报名表(准考证号(为主键) ,报名号,级别+语言种类(外键) ,姓名,性别, 出生年份,民族,身份证号,联系地址,联系电话,照片,备注,参加培训)  成绩表(准考证号,笔试成绩,上机成绩,总成绩) 级别语言代码表(级别语言代码,级别+语言)  用户信息表(考点代码,考点名称,用户名,密码) 题目10:人事管理系统(1 人)21 包括四大模块:  登录管理:包括操作员管理,口令设置,权限管理  人员管理:包括人事数据维护、人事信息查询和人事信息统计  工资管理  部门管理:包括部门表,职称表和年份表  查询及报表打印 参考数据如下:  人事表(编号,姓名,性别,出生日期,工作日期,部门代码,职称,婚否,简历,相片)  工资表(基本工资,岗位津贴,奖励,应发工资,水电,保险,实发工资)  部门表(代码,部门名称)  职称表(职称代码,职称名称)  年份表(年份代码,年份名称)  操作员表(操作员代码,操作员姓名,口令,部门,电话) 系统日志表(操作员代号,操作员姓名,登录时间,离开时间) 题目11:商品销售管理系统(1 人)19 包括四大模块:  用户登录  基本信息管理:包括销售情况、商品信息、库存表、员工表等信息的录入、浏览、修改、撤销、删除和查询等  商品销售管理:包括商品售出、退回和入库  盘点:包括库存盘点、当日销售盘点 参考数据如下:  商品信息表(商品编号,商品名称,品牌,型号,销售单价) 商品编号=类别代码(1 位)+品名代码(1 位)+品牌代码(2 位)+型号代码(2 位)  销售情况表(成交编号,商品编号,销售数量,总金额,销售日期,员工编号)  库存表(商品编号,供货商编号,进货日期,进货价,库存数量)  员工表(员工编号,员工姓名,性别,基本工资,职务,密码)  供货商表(供货商编号,供货商名称,所在地,联系电话)  员工资料表(员工编号,员工姓名,是否党员,简历,照片) 题目12:学生成绩管理系统(1 人)29 包括四大模块:  基本数据管理:包括院系管理,专业管理(设置院系下面的专业),班级管理(设置专业下面的班级),课程管理(设置相应专业下面的课程)  学生信息管理:包括基本信息录入、基本信息修改  学生成绩管理:包括学生成绩录入、学生成绩修改  信息查询:包括基本信息查询、成绩信息查询、学校人数统计  系统管理:用户管理、数据备份和系统帮助 参考数据如下:  院系信息(院系代码,院系名称)  院系专业信息(班级、院系代码,专业)  学生基本信息(班号,学号,姓名,性别,出生年月,籍贯,政治面貌,身份证号,入学年月,家庭地址,邮政编码,图片信息,备注)  学生成绩表(学号,课号,成绩,备注)  课程表(课号,课程名称,学期,备注)  班表(班号,班级名称)  用户信息表(用户名,密码,用户标识) 题目13:火车售票管理系统(4 人)36 包括四大模块:  售票管理  订票管理  信息查询  系统维护 参考数据如下:  车次信息表(车次,始发站,终点站,发车时间,到达时间)  订票信息表(车次,座位号,发车时期,发车时间,座位等级,票价)  车次座位等级分配及座位占用表(车次,座位号,座位等级,票价,占用标志)  用户信息表(用户名,密码,用户标识) 题目14:小型物业管理系统(1 人) 包括四大模块:  房源管理:对原始资料的录入、修改、查询和刷新。一般用户可以查询与房间有关 的统计资料;物业主管可其进行增、删、改、插等操作  租房管理:对房产出租,退租以及租房面积调整。其中物业主管可对其进行房租金 额计算和收款操作,一般用户对其查询  水电处理:根据租房资料,结合当月水、电量进行分摊,完成应收水电费。其中物 业主管对其进行计算,其他查询  交款处理:提供收款和发票打印以及交款数据查询  查询处理:对租房资料、交款资料,发票资料进行查询 参考数据如下:  房源资料(名称,面积,月租,物业,仓库)  租房资料(名称,面积,单位,月租,物业,押金,仓库)  水电资料(单位,电量,水量,电费,水费)  交费资料(收费项目,应收日期,应收金额,已收金额,未收金额,本次收款)  发票资料(单位,房租,电费,水费,物业)  权限资料(用户,密码,房源管理,租房管理,水电管理,交费管理,发票管理,系统维护) 其中系统管理员,有权进行系统维护;单位内部物业主管,有权进行物业资源调配、单元出 租,退租和收款开票操作;物业管理员,有权进行水电处理和收款处理等操行;租户代表, 有权进行种类费的查询操作 题目15:机房收费管理系统(1 人)7,34 包括四大模块:  登录模块  上机管理模块 说明:上机登记时,余额不足 3 元或卡处于挂失状态,则拒绝登记 每位同学的一次上机形成一条记录,每 36S 遍历一次上机记录表,对表中所有正上机字段为 TRUE 的记录的上机用时增加 36S,同时从上机卡表的余额减少  上机卡管理模块  充值挂失模块  查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学 生上机的次数、上机总时数、每次上机平均时间;挂失和查询余 参考数据如下:  上机卡(卡号,姓名,专业班级,余额,状态) 状态的取值有:正常(能自费上机)  挂失上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码),上机用时记录学生上机时间(S);正上机是一个布尔型,为 True 表示正上机,每 36 秒刷新 其上机用时并扣除上机费用,为 False 表示上机结束。上机记录表永久保存,用于事后查询 和统计 管理员(代码,姓名,口令)  题目16:高校药房管理(1 人)31 包括四大模块:  基础数据处理:包括医生和药剂师名单的录入,修改,删除及查询  营业数据处理:包括药品进货上柜,处理划价,配药,柜存药品查询,处方综合查 询,交接班结转清。 参考数据如下:  药品信息表(货号,货名,计量单位,进货数量,进货单价,出售单价,进货日期,收货人 和供应商)  处方信息(编号,患者姓名,医生姓名,药剂师姓名,处方日期,配药日期) 处方药品信息(处方编号,药品货号,计量单位,配药数量,销售单价,已配药否)  医生名单和药剂师名单表(姓名)  题目17:考勤管理系统(2 人)40 包括四大模块:  记录每个员工每天所有进入公司的时刻和离开公司的时刻。  每天结束时自动统计当天的工作时间  每天结束时自动统计当天迟到或早退的次数。  对于弹性工作制,每天结束时自动统计当月的工时,并自动算出当月欠缺或富余的 时间  每个月末统计该月的工作时间判断是束足够  每个月末统计该月的工作天数并判断是否足够  管理人员查询并修改工作时间(特殊情况下修改)  管理人员账户管理(如设置密码等)  管理人员设定早退及迟到的条件,每个月的工作时间  管理人员设定每个月的工作日期及放假日期 参考数据如下:  员工信息(工号,姓名,年龄,入职时间,职位,性别,密码)  配置信息(上班时间小时,上班时间分钟,下班时间小时,下班时间分钟,每天工作时间)  每月统计数据表(工号,姓名,剩余的时间,迟到的次数,早退的次数,工作天数)  每天统计信息表(工号,姓名,小时,分钟,动作,时间) 其中动作指的时入或离开公司  题目18:单位房产管理系统(2 人)33,10 包括四大模块:  系统模块:完成数据库维护、系统关闭功能  物业费用模块:完成本月物业的计费、历史资料查询和财务部门接口传送数据、物 业相关费用单价设置  房屋资源模块:对房屋资源进行添加、列表显示、查询  职工信息模块:对职工进行添加、列表显示、查询以及相应部门、职务进行维护  帮助模块:对用户使用本系统提供在线帮助 参考数据如下:  职工(编号,姓名,性别,参加工作时间,行政职务,专业技术职务,评上最高行政职务时 间,评上最高专业技术职务时间,双职工姓名,现居住房号,档案号,房产证号,所在部门 编号,是否为户主)  部门(编号,部门名称) 住房级别表(编号,级别,住房标准,控制标准,级别分类)  房产情况(编号,房号,使用面积,现居住人 id,上一个居住人 id,最早居住人 ID,阳台面积)  物业费用(编号,房号,水基数,水现在值,电基数,电现在值,燃气基数,燃气现在值, 当前年份,当前月份)  价格标准(编号,水单价,电单价,燃气单价) 题目19:标准化考试系统 (2 人)15,39 功能要求: 设计一个简单的标准化考试系统,仅有单项选择题、多项选择题和判断题功能即可。 包括四大模块:  题库管理:实现试题的录入、修改、删除功能;  考试子系统:能够实现考生做题、结果自动存入到数据库中,有时间提示;  选择身份(登录)功能:系统能够记录考生输入的登录信息及交卷信息;  自动评分功能:考生交卷后能自动评分;  查看成绩功能:能够查询考生相关信息(包含成绩等)。 参考数据如下: 其它可供选择的题目: 网上教务评教系统130,127,133 16 学生日常行为评分管理系统232,110,230 网上鲜花店 38 基于BS结构的工艺品销售系统12 基于BS结构的校园二手物品交易网站 37 大学生就业管理系统201,208,234 题库及试卷管理系统 数据库原理及应用 课程设计报告 题目: 课程设计选题管理系统 所在学院: 班 级: 学 号: 姓 名: 李四 指导教师: 2011年12月 日 目录 一、 概述 二、需求分析 三、概念设计 四、逻辑设计 五、系统实现 六、小结 一、概述

玄学酱 2019-12-02 01:22:25 0 浏览量 回答数 0

回答

前言 这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。 你们也知道丙丙一直都是创作鬼才来的,所以我肯定不会一本正经的写,我想了好几个切入点,最后决定用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,我甚至还收集配套视频和资料,暖男石锤啊,这期是呕心沥血之作,不要白嫖了。 正文 在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。 Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。 不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。 前端 你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻瓜,肤浅。 我们可不能闭门造车,谁告诉你后端就不学点前端了? 前端现在很多也了解后端的技术栈的,你想我们去一个网站,最先接触的,最先看到的是啥? 没错就是前端,在大学你要是找不到专门的前端同学,去做系统肯定也要自己顶一下前端的,那我觉得最基本的技术栈得熟悉和了解吧,丙丙现在也是偶尔会开发一下我们的管理系统主要是VUE和React。 在这里我列举了我目前觉得比较简单和我们后端可以了解的技术栈,都是比较基础的。 作为一名后端了解部分前端知识还是很有必要的,在以后开发的时候,公司有前端那能帮助你前后端联调更顺畅,如果没前端你自己也能顶一下简单的页面。 HTML、CSS、JS、Ajax我觉得是必须掌握的点,看着简单其实深究或者去操作的话还是有很多东西的,其他作为扩展有兴趣可以了解,反正入门简单,只是精通很难很难。 在这一层不光有这些还有Http协议和Servlet,request、response、cookie、session这些也会伴随你整个技术生涯,理解他们对后面的你肯定有不少好处。 Tip:我这里最后删除了JSP相关的技术,我个人觉得没必要学了,很多公司除了老项目之外,新项目都不会使用那些技术了。 前端在我看来比后端难,技术迭代比较快,知识好像也没特定的体系,所以面试大厂的前端很多朋友都说难,不是技术多难,而是知识多且复杂,找不到一个完整的体系,相比之下后端明朗很多,我后面就开始讲后端了。 网关层: 互联网发展到现在,涌现了很多互联网公司,技术更新迭代了很多个版本,从早期的单机时代,到现在超大规模的互联网时代,几亿人参与的春运,几千亿成交规模的双十一,无数互联网前辈的造就了现在互联网的辉煌。 微服务,分布式,负载均衡等我们经常提到的这些名词都是这些技术在场景背后支撑。 单机顶不住,我们就多找点服务器,但是怎么将流量均匀的打到这些服务器上呢? 负载均衡,LVS 我们机器都是IP访问的,那怎么通过我们申请的域名去请求到服务器呢? DNS 大家刷的抖音,B站,快手等等视频服务商,是怎么保证同时为全国的用户提供快速的体验? CDN 我们这么多系统和服务,还有这么多中间件的调度怎么去管理调度等等? zk 这么多的服务器,怎么对外统一访问呢,就可能需要知道反向代理的服务器。 Nginx 这一层做了反向负载、服务路由、服务治理、流量管理、安全隔离、服务容错等等都做了,大家公司的内外网隔离也是这一层做的。 我之前还接触过一些比较有意思的项目,所有对外的接口都是加密的,几十个服务会经过网关解密,找到真的路由再去请求。 这一层的知识点其实也不少,你往后面学会发现分布式事务,分布式锁,还有很多中间件都离不开zk这一层,我们继续往下看。 服务层: 这一层有点东西了,算是整个框架的核心,如果你跟我帅丙一样以后都是从事后端开发的话,我们基本上整个技术生涯,大部分时间都在跟这一层的技术栈打交道了,各种琳琅满目的中间件,计算机基础知识,Linux操作,算法数据结构,架构框架,研发工具等等。 我想在看这个文章的各位,计算机基础肯定都是学过的吧,如果大学的时候没好好学,我觉得还是有必要再看看的。 为什么我们网页能保证安全可靠的传输,你可能会了解到HTTP,TCP协议,什么三次握手,四次挥手。 还有进程、线程、协程,什么内存屏障,指令乱序,分支预测,CPU亲和性等等,在之后的编程生涯,如果你能掌握这些东西,会让你在遇到很多问题的时候瞬间get到点,而不是像个无头苍蝇一样乱撞(然而丙丙还做得不够)。 了解这些计算机知识后,你就需要接触编程语言了,大学的C语言基础会让你学什么语言入门都会快点,我选择了面向对象的JAVA,但是也不知道为啥现在还没对象。 JAVA的基础也一样重要,面向对象(包括类、对象、方法、继承、封装、抽象、 多态、消息解析等),常见API,数据结构,集合框架,设计模式(包括创建型、结构型、行为型),多线程和并发,I/O流,Stream,网络编程你都需要了解。 代码会写了,你就要开始学习一些能帮助你把系统变得更加规范的框架,SSM可以会让你的开发更加便捷,结构层次更加分明。 写代码的时候你会发现你大学用的Eclipse在公司看不到了,你跟大家一样去用了IDEA,第一天这是什么玩意,一周后,真香,但是这玩意收费有点贵,那免费的VSCode真的就是不错的选择了。 代码写的时候你会接触代码的仓库管理工具maven、Gradle,提交代码的时候会去写项目版本管理工具Git。 代码提交之后,发布之后你会发现很多东西需要自己去服务器亲自排查,那Linux的知识点就可以在里面灵活运用了,查看进程,查看文件,各种Vim操作等等。 系统的优化很多地方没优化的空间了,你可能会尝试从算法,或者优化数据结构去优化,你看到了HashMap的源码,想去了解红黑树,然后在算法网上看到了二叉树搜索树和各种常见的算法问题,刷多了,你也能总结出精华所在,什么贪心,分治,动态规划等。 这么多个服务,你发现HTTP请求已经开始有点不满足你的需求了,你想开发更便捷,像访问本地服务一样访问远程服务,所以我们去了解了Dubbo,Spring cloud。 了解Dubbo的过程中,你发现了RPC的精华所在,所以你去接触到了高性能的NIO框架,Netty。 代码写好了,服务也能通信了,但是你发现你的代码链路好长,都耦合在一起了,所以你接触了消息队列,这种异步的处理方式,真香。 他还可以帮你在突发流量的时候用队列做缓冲,但是你发现分布式的情况,事务就不好管理了,你就了解到了分布式事务,什么两段式,三段式,TCC,XA,阿里云的全局事务服务GTS等等。 分布式事务的时候你会想去了解RocketMQ,因为他自带了分布式事务的解决方案,大数据的场景你又看到了Kafka。 我上面提到过zk,像Dubbo、Kafka等中间件都是用它做注册中心的,所以很多技术栈最后都组成了一个知识体系,你先了解了体系中的每一员,你才能把它们联系起来。 服务的交互都从进程内通信变成了远程通信,所以性能必然会受到一些影响。 此外由于很多不确定性的因素,例如网络拥塞、Server 端服务器宕机、挖掘机铲断机房光纤等等,需要许多额外的功能和措施才能保证微服务流畅稳定的工作。 **Spring Cloud **中就有 Hystrix 熔断器、Ribbon客户端负载均衡器、Eureka注册中心等等都是用来解决这些问题的微服务组件。 你感觉学习得差不多了,你发现各大论坛博客出现了一些前沿技术,比如容器化,你可能就会去了解容器化的知识,像**Docker,Kubernetes(K8s)**等。 微服务之所以能够快速发展,很重要的一个原因就是:容器化技术的发展和容器管理系统的成熟。 这一层的东西呢其实远远不止这些的,我不过多赘述,写多了像个劝退师一样,但是大家也不用慌,大部分的技术都是慢慢接触了,工作中慢慢去了解,去深入的。 好啦我们继续沿着图往下看,那再往下是啥呢? 数据层: 数据库可能是整个系统中最值钱的部分了,在我码文字的前一天,刚好发生了微盟程序员删库跑路的操作,删库跑路其实是我们在网上最常用的笑话,没想到还是照进了现实。 这里也提一点点吧,36小时的故障,其实在互联网公司应该是个笑话了吧,权限控制没做好类似rm -rf 、fdisk、drop等等这样的高危命令是可以实时拦截掉的,备份,全量备份,增量备份,延迟备份,异地容灾全部都考虑一下应该也不至于这样,一家上市公司还是有点点不应该。 数据库基本的事务隔离级别,索引,SQL,主被同步,读写分离等都可能是你学的时候要了解到的。 上面我们提到了安全,不要把鸡蛋放一个篮子的道理大家应该都知道,那分库的意义就很明显了,然后你会发现时间久了表的数据大了,就会想到去接触分表,什么TDDL、Sharding-JDBC、DRDS这些插件都会接触到。 你发现流量大的时候,或者热点数据打到数据库还是有点顶不住,压力太大了,那非关系型数据库就进场了,Redis当然是首选,但是MongoDB、memcache也有各自的应用场景。 Redis使用后,真香,真快,但是你会开始担心最开始提到的安全问题,这玩意快是因为在内存中操作,那断点了数据丢了怎么办?你就开始阅读官方文档,了解RDB,AOF这些持久化机制,线上用的时候还会遇到缓存雪崩击穿、穿透等等问题。 单机不满足你就用了,他的集群模式,用了集群可能也担心集群的健康状态,所以就得去了解哨兵,他的主从同步,时间久了Key多了,就得了解内存淘汰机制…… 他的大容量存储有问题,你可能需要去了解Pika…. 其实远远没完,每个的点我都点到为止,但是其实要深究每个点都要学很久,我们接着往下看。 实时/离线/大数据 等你把几种关系型非关系型数据库的知识点,整理清楚后,你会发现数据还是大啊,而且数据的场景越来越多多样化了,那大数据的各种中间件你就得了解了。 你会发现很多场景,不需要实时的数据,比如你查你的支付宝去年的,上个月的账单,这些都是不会变化的数据,没必要实时,那你可能会接触像ODPS这样的中间件去做数据的离线分析。 然后你可能会接触Hadoop系列相关的东西,比如于Hadoop(HDFS)的一个数据仓库工具Hive,是建立在 Hadoop 文件系统之上的分布式面向列的数据库HBase 。 写多的场景,适合做一些简单查询,用他们又有点大材小用,那Cassandra就再合适不过了。 离线的数据分析没办法满足一些实时的常见,类似风控,那Flink你也得略知一二,他的窗口思想还是很有意思。 数据接触完了,计算引擎Spark你是不是也不能放过…… 搜索引擎: 传统关系型数据库和NoSQL非关系型数据都没办法解决一些问题,比如我们在百度,淘宝搜索东西的时候,往往都是几个关键字在一起一起搜索东西的,在数据库除非把几次的结果做交集,不然很难去实现。 那全文检索引擎就诞生了,解决了搜索的问题,你得思考怎么把数据库的东西实时同步到ES中去,那你可能会思考到logstash去定时跑脚本同步,又或者去接触伪装成一台MySQL从服务的Canal,他会去订阅MySQL主服务的binlog,然后自己解析了去操作Es中的数据。 这些都搞定了,那可视化的后台查询又怎么解决呢?Kibana,他他是一个可视化的平台,甚至对Es集群的健康管理都做了可视化,很多公司的日志查询系统都是用它做的。 学习路线 看了这么久你是不是发现,帅丙只是一直在介绍每个层级的技术栈,并没说到具体的一个路线,那是因为我想让大家先有个认知或者说是扫盲吧,我一样用脑图的方式汇总一下吧,如果图片被平台二压了。 资料/学习网站 Tip:本来这一栏有很多我准备的资料的,但是都是外链,或者不合适的分享方式,博客的运营小姐姐提醒了我,所以大家去公众号回复【路线】好了。 絮叨 如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。 如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。 丙丙发现在工作中发现我身边的人真的就是实力越强的越努力,最高级的自律,享受孤独(周末的歪哥)。 总结 我提到的技术栈你想全部了解,我觉得初步了解可能几个月就够了,这里的了解仅限于你知道它,知道他是干嘛的,知道怎么去使用它,并不是说深入了解他的底层原理,了解他的常见问题,熟悉问题的解决方案等等。 你想做到后者,基本上只能靠时间上的日积月累,或者不断的去尝试积累经验,也没什么速成的东西,欲速则不达大家也是知道的。 技术这条路,说实话很枯燥,很辛苦,但是待遇也会高于其他一些基础岗位。 所实话我大学学这个就是为了兴趣,我从小对电子,对计算机都比较热爱,但是现在打磨得,现在就是为了钱吧,是不是很现实?若家境殷实,谁愿颠沛流离。 但是至少丙丙因为做软件,改变了家庭的窘境,自己日子也向小康一步步迈过去。 说做程序员改变了我和我家人的一生可能夸张了,但是我总有一种下班辈子会因为我选择走这条路而改变的错觉。 我是敖丙,一个在互联网苟且偷生的工具人。 创作不易,本期硬核,不想被白嫖,各位的「三连」就是丙丙创作的最大动力,我们下次见! 本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。 该回答来自:敖丙

剑曼红尘 2020-03-06 11:35:37 0 浏览量 回答数 0

问题

全球级的分布式数据库 Google Spanner原理 热:报错

kun坤 2020-06-09 15:26:35 4 浏览量 回答数 1

问题

Nginx性能为什么如此吊

小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3

问题

荆门开诊断证明-scc

游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

问题

学术界关于HBase在物联网/车联网/互联网/金融/高能物理等八大场景的理论研究

pandacats 2019-12-18 16:06:18 1 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播