理论上是这样,软件工程师更应该关注于程序设计而非对于某一技术的掌握,编写和优化SQL应该交由数据库专家负责,这是一种关注分离。\x0d\但实际和理论相差甚远,尤其在中国:\x0d\很少公司会聘请数据库专家进行开发的工作。\x0d\而且相对的,数据库专家并不了解具体软件开发的技术,然而也没有人要求数据库专家要了解这些技术(是不是觉得对软件工程师很不公平),如果想让数据库专家能够工作起来,软件工程师就必须从设计上把业务层与持久层的分离,目前很少工程师能够做到这一点,基本上都是把SQL内嵌到业务层里了。\x0d\所以如果公司没有提供这样理想的开发环境,还是有必要熟悉SQL的。
前端当然需要学习数据库,需要基本掌握。数据库一般是后端开发负责,很多公司前端现在也在负责数据库等和后端结合,向全栈开发方向发展。
前端用到的数据库
MongoDB
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。相比较于MySql,它省去了建表等繁琐的 *** 作,可以实现类似于js的对象 *** 作。
MySQL
MySQL的开放式的架构使得用户选择性很强,同时社区开发与维护人数众多,其功能比较稳定,性能卓越,且在遵守GPL协议的前提下,可以免费使用与修改,也为MySQL的推广与使用带来了更多利好。在MySQL成长与发展过程中,支持的功能逐渐增多,性能也不断提高,对平台支持也越来越多。
MySQL是一种关系型数据库管理系统关系型数据库的特点是将数据保存在不同的表中,在将这些表放入不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度,灵活性可管理性也得到了很大提高。访问以及管理MySQL数据库的最常用标准化语言为SQL结构化查询语言。
绝大多数的使用Linux *** 作系统的大中小互联网网站都在使用MySQL作为其后端的数据库存储,从大型BAT门户,到电商平台,分类门户等无一例外都使用MySQL数据库。那么,MySQL数据库到底那些优势和特点,让大家义无反顾的选择它呢?
原因可能有以下几点:
1MySQL性能卓越,服务稳定,很少出现异常宕机2MySQL开放源代码且无版权制约,自主性及使用成本低3MySQL历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助4MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低5MySQL品牌口碑较应,使得企业无需考虑就直接用之,LAMP,LEMP流行架构。6MySQL支持多种 *** 作语言,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。
数据库开发工程师需要学习的课程有:
1、计算机导论
内容提要:为新学生提供一个关于计算机科学与技术学科的入门介绍,使他们对该学科有一个整体的认识,并了解该专业的学生应具有的基本知识和技能以及在该领域工作应有的职业道德与应遵守的法律准则。
2、数字电路与数字逻辑
内容提要:介绍数字逻辑与数字系统的基本概念、分析方法和设计原理,包括开关理论基础、组合逻辑、时序逻辑、可编程逻辑器件、数字系统等。
3、计算机组成原理与汇编语言
内容提要:以冯诺依曼计算机模型为出发点,介绍计算机的组织结构和工作原理,剖析计算机的运算器、存储器、控制器和输入输出设备的结构、工作原理和相互关系;介绍 80X86指令系统、汇编语言与汇编指令、汇编程序与汇编过程、简单汇编程序设计、汇编语言与高级语言的接口、宏汇编等。
4、计算机网络
内容提要:介绍数据通信的基本概念和计算机网络的基本原理,包括计算机网络的体系结构、数据通信的基本方法和协议、计算机网络的主要应用协议;同时介绍计算机网络系统的安全和管理知识,使学生对数据通信和计算机网络有一个全面理解。
5、计算机体系结构
内容提要:研究计算机系统结构的基本概念、基本原理、基本结构和基本分析方法,使同学在具有一定的软硬件知识基础上能综合认识计算机系统的软硬件功能分配与各种不同结构类型机器的特性和性能评价方法。为研究、开发、应用高级计算机系统打下基础。确立全面、系统的观点和学会定量分析问题的方法。
6、离散数学
内容提要:包括集合论、数理逻辑、图论、组合数学等内容,形式化的数学证明贯穿此课程。
7、高级程序设计语言
内容提要:分别以 C、C#或JAVA为例,介绍程序设计和语言,程序的基本数据结构、类型定义、简单类型和结构化类型、程序的基本控制结构、结构化程序设计、面向对象的程序设计等。
8、算法分析与设计
内容提要: 本课程延续数据结构课程的学习,从算法分析和设计的角度出发,除去传统的分类查找算法和一般的设计方法外,主要内容包括如下几个部分:算法研究的理论基础,递归分析技术,基本算法设计策略(几类经典算法学习), 多项式运算与 FFT ,串匹配,概率分析算法。 希望通过这一课程的学习,使学生能对现代的算法设计及分析的基本工具能有较全面的掌握。
9、数据结构
内容提要:介绍线性表及其链接存储结构与算法、数组与矩阵、堆栈与队列、广义表的存储结构与多元多项式表示、串与文本编辑、排序、树、图、文件结构。
10、数据库系统原理
内容提要:介绍数据库系统的基本概念、原理、方法及应用,主要包括数据库系统概论、数据库管理系统实现技术、数据库存储结构及其他类型的数据库系统。
11、编译技术
内容提要:介绍编译原理的理论和实践,包括编译程序设计、词法分析、语法分析、符号表、声明和存储管理、代码生成以及优化技术。
12、 *** 作系统
内容提要:介绍 *** 作系统的设计与实现,包括 *** 作系统各组成部分的概述、互斥性和同步性、处理器实现、调度算法、存储算法、设备管理和文件系统。
数据库开发工程师是指设计、开发、维护管理大型数据库的专业人才。
第一类是MySQL,以自由软件为主,以社团式开发为代表。版本选择40,侧重于在Linux平台(RedHat80)。MySQL数据库短小精悍,速度比较快,它是自由软件产品,现在美国国家航天局的数据库系统就是MySQL。在很多中小型的ICP有着广泛的应用。
第二类是SQL Server 2000,中小型企业数据库,界面友好,可 *** 作性强,在数据库市场占有很大的份量,SQL Server 2000是企业产品的代表,定位数据库中低端市场。
第三类是Oracle9i,中大型企业数据库,跨平台,在数据库中高市场占有很大的份量,Oracle9i介绍主要是Windows 2000平台和Linux平台(RedHat80)。Oracle9i在金融、电信、银行有很多经典应用。
以上就是关于Java程序员需要精通SQL数据库吗全部的内容,包括:Java程序员需要精通SQL数据库吗、前端需要学习数据库吗、数据库开发工程师需要学习哪些课程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)