怎样学习数据库知识?

2024-05-17 02:19

1. 怎样学习数据库知识?

  要说数据库,一般以SQL Server作为入门的学科,它适合中小型项目开发,而现在比较流行于大型开发的有:
  Oracle
  现在具有企业大型软件的绝对占有率
  DB2 在以IBM服务的公司以及单位(中国银行)
  MySql 相对不是很正式的开发,使用MySql
  当然还有一些:Access(桌面数据库),FoxPro(中国教育),Informix的数据库系统.
  刚开始入门的时候可以找点视频教程来学习,视频教程一般讲得比较好,但不要企图于通过它达到比较高的水平。然后要学会将自己所知道的去实践,多实践。当觉得实践到一定程度而没有什么冲劲了,就去学习理论,当觉得理论知识需要发挥的时候就去实践,时间的周期不一定,没有什么定论,但自己的时间安排需要定论就可以了。
  我一直都认为在计算机行业要学会一门技术太简单了,但如果要把技术发挥到一定程度就有难处了,一定程度是什么意思,就是把技术如何发挥到具体的业务之中,会动脑筋去思考,而把技术作为相对次要的东西了。
  数据库的DBA人员需要兼有系统分析员和运筹学的业务素质。在技术上讲,我个人认为数据库的前续学科是“数据结构”。
  我现在刚学SQL Server一段时间,就自己的感想谈谈:
  1.数据库是非常快的数据处理程序,其内在的本质依旧是"文件".因为
  Windows操作系统管理机制就有:磁盘、文件、目录。Linux的方式只有文件。所以数据库重本质的角度来说是一种平台软件,是将文件翻译成逻辑语言的软件,成为我们软件程序数据交换的中心,为什么那,一个很重要的原因就是“快”,还有就是“安全”、“集成”等等。因为以前的语言程序要处理数据要编写大量算法十分麻烦而且很容易出错等等。大家就想到集成了。。。。。
  2.其实,要谈到操作数据库,简单的就太简单了,但是数据库最难的不是操作,而是在数据库的设计上。一个大型程序设计者肯定是一个数据库的高手,因为大型程序要死板地去完成它是非常困难和不理智也是不安全不稳定的,我们要充分利用自己所有的能力去挖掘其数据之间的奥秘,然后体系化数据库结构,相当于在数据库中如何层次化地建立数据结构。将需求中的矛盾事物改变成可以相互融合的。
  我说的数据库操作简单是指一般操作,如果难的操作还是有点技术的,但还是难不到那里去。下面我把我的一个小数据库程序给你看看:(下面这个程序已经建立数据库library,然后用dbo用户建立了表relatBook,并将表的第一个字段设置为“主键”PK)
  该程序想说的第一点是:程序按照标准用户写入法则写入。
  另外就是在执行多个操作的时候每一步骤的操作我们都必须为其设置错误的回滚操作。所以程序前两个段落都是一样的,在插入的时候故意出现异常,看第1和第3个语句是否能成功执行。
  从上面看出点什么没有,你我执行了三个操作,第一个操作是肯定成功的,第二个是肯定失败的,第三个跟在后面,那么你想一想第一个和第三个操作能插入数据库中吗?我这个程序没有什么意义,但只是未了说明问题。
  答案是:不能。
  为什么不能,这是SQL所支持的“事务”外完成的,这是技术问题,没有什么的,会了大家都会。为什么要这样做那,那才是要学习的前提。你想一想如果你建立了一个地区的帐物管理系统,当一个单位向另外一个单位转帐的时候,需要执行两个操作就是将一边的信息刷掉,一边的信息添加上去,而当执行一半的时候出现了某种异常中断,比如高优先级的抢占,服务器重起、停电。当时你知道有多少人在访问你的服务器,那要造成多大的数据库信息丢失,甚至于导致数据库的查询的严重失败。那么我就知道需要上面知识的支持了。
  3.为什么说上面的东西都很简单那,因为只要你会,那就可以了,而设计方面的东西是永远不是那么简单的,永远带有创新和追求,没有最高的境界。
  就一个十分常见的问题,如何在数据库中配合好人员、角色、权限、类别、级别、可操作性这几者的关系,如果是没有经验的人直接上手可能会乱来(我们最早也是这样的)。有经验的人也会设计一段时间,而且随着软件复杂性的增加,其数据库的这几者之间的复杂性就越来越复杂。所以大型软件是非常难的。就一个很简单的例子,在很多的网站中,有上百的栏目信息,而每一个栏目间又保持独立。图片的位置和图片的信息都是动态更新的。某些网站的可操作性都以树型结构提供,而树型结构的子树类别和和叶子都是不重复而不错误。而且其层数都是动态的。有些人给我说可以通过前台的判定语句来执行树型结构的生成,但我问了一个问题,如果是一个邮政编码系统,有几十万个邮政编码你在前台要写多少个case语句,而且每一次要遍历一次已经生成的树,还有用前台的case语句编写出来的树型结构其二级子树全部“定死”,而且树型结构的层树也被定死。这不是完全动态级别的网站。为以后对网站的维护带来麻烦。
  总之,数据库是一门入门容易却达到高手很难的学科,通过不断在失败中吸取经验,才能得到一些书籍上无法学会的东西,那才是真正的高手。也就是说,学技术是很快的,要会将技术运用于实际的业务分析,才可以成为一个自我型的DBA,而不是一个简单的程序员.

怎样学习数据库知识?

2. 如何学习数据库?

我不是很清楚你说的“逻辑控制类的设计工作”或“逻辑设计的工作”是指的什么,可能是和自动化相关的内容吧。我猜测是做数据库中关于数据表结构方便的设计工作,我印象中自动化中设计的数据维度比较高,需要用很多的字段进行存储。
下面我就从计算机专业的角度介绍一下数据库的知识内容结构,你根据自己情况来选择:
一、数据库基础
1 关系理论:这部分内容是关系数据库的理论基础,包括关系的形式化描述、函数依赖、范式等理论知识等,属于纯理论内容,在课程结构上有些学校是先将,有些是后讲。总之,这部分内容我觉得就数据库的使用者来说不用掌握,要搞理论研究的需要深入学习;
2 关系模型:这部分内容是根据需求对数据库进行建模,就是创建表结构,涉及的知识包括ER模型、ER模型到关系模型的转换方法等。如果你要是做数据结构设计的话,这部分必须要学习,此外最好看一些关系理论中的范式部分。ER模型能够帮助你如何抽象现实世界的对象到信息世界。所以这部分必学
3 SQL语言:SQL语言是操作数据库中数据的关键,即使只做数据库设计,也必须掌握SQL语言,因为数据库的结构经常需要根据数据上的查询来进行设计,以保证查询具有较高的效率。所以这部分是数据库必学的内容。
4 数据库的事务管理和恢复:这部分偏向理论知识,主要是讲数据库上保证数据事务性质的一些原理,作为DBA的话一定要掌握。
5 数据库的使用:主要指针对一个特定数据库产品,能够学会如何在这个数据库系统上进行数据结构的维护和数据的操作,比如建库、建表、查询等,由于不同数据库提供的SQL和查询API是有区别的,因此一定要针对特定的数据库来学习,你提到的VF在工业控制中基本不会用到,因为规模太小了,像宝钢等大型企业都是使用Oracle这类大型数据库软件,此外还有DB2,SQLSERVER等。所以你需要学习在这些软件上的数据库操作。
二、高级数据库理论
1 数据库系统实现:主要介绍数据库内部存储数据和执行查询的原理,属于数据库领域的研究者或数据库管理员需要掌握的,当然,如果掌握这部分内容对于提高数据表结构设计也将有很大的帮助,因为知道了其中的存储访问原理。
2分布式数据库:这个就是纯理论问题了,里面涉及到的是查询算法和事务控制算法。
 
个人觉得你就集中学习第一部分的2,3,4,5小部分就可以。

3. 如何学习数据库?

数据库应用占到了计算机应用的70%,像计算机程序设计、网页设计、数据存储都用到了它,它有很多的产品,比如:access,SQL server,MySQL,Oracle等的。我认为数据库的学习可以这么来看,第一,认清目的,你学数据库是要做什么?是计算机编程,还是网页设计,还是你想用它来存储公司的材料信息。要是前两者,你必须学SQL语言,再选择会操作一个数据库产品比如access,来熟练操作它。但是要是后者你需要的是全面的数据库知识,SQL语言是所有的数据库产品都通用,还是一定要学,这时就不能学些简单的东西了,要学习功能更全更强的了,比如中型数据库SQL server,超大型数据库Oracle等的。这完全取决于你的需要,但是你要是为设计一个大型的电子商务网站做努力,那学access是远远不够的。第二,要想全面的学习数据库知识,应当分两个部分,第一,现在流行的关系型数据库的基础知识是一定要知道的,比如ER模型,属性,记录,联系的概念,SQL语言等的,学完之后还要掌握各个数据库的特点,比如SQL server,Oracle的特点在哪——就是这样,通用的部分+特殊的部分。希望我的介绍对你有用專属_/↘Juan 的感言: 非常感谢~!

如何学习数据库?

4. 数据库该怎么学习

额,不知道你之前有没有编程的基础,暂且当你没有吧
程序语言到是不一定需要看,但是有一点,必须具备编程的简单思想,举个例子,算1+2+3+。。。+100,这个数学算法我们都知道是1+100   2+99  。。。这么算,但是到程序中就不是这么用的,所以你简单看看C的编程思想还是挺有用的,主要是算法那部分
 
目前主流的数据库oracle,mssql,mysql,db2等等,个人觉得还是oracle 比较有前途,而且认证考试的价格也不便宜,但是不太建议你先从这个学起,当然你要是想先学这个也可以。
 
学数据库将来发展有几个方向,1个是DBA方向,将来就是做数据库优化,配置等等,因为现在的趋势就是大数据,所以优化这方面还是很重要的,二一个方向就是数据库编程,也就是在数据库操作,进行一系列的编程,以实现某个功能,这个当中最主要是要学写sql语言,虽然目前市面上的数据库类型很多,但是sql语言基本是相通的,大同小异而已,但这个学好了不是最终目的,将来你得能写存储过程呀,触发器啊,自定义函数什么的,反正也很麻烦的。
拿oracle来说,它的第三方工具很多,而它自己出品的sqlplus之类的,个人感觉很不好用。。。

5. 如何学好数据库?

数据库应用占到了计算机应用的70%,像计算机程序设计、网页设计、数据存储都用到了它,它有很多的产品,比如:access,SQL server,MySQL,Oracle等的。我认为数据库的学习可以这么来看,第一,认清目的,你学数据库是要做什么?是计算机编程,还是网页设计,还是你想用它来存储公司的材料信息。要是前两者,你必须学SQL语言,再选择会操作一个数据库产品比如access,来熟练操作它。但是要是后者你需要的是全面的数据库知识,SQL语言是所有的数据库产品都通用,还是一定要学,这时就不能学些简单的东西了,要学习功能更全更强的了,比如中型数据库SQL server,超大型数据库Oracle等的。这完全取决于你的需要,但是你要是为设计一个大型的电子商务网站做努力,那学access是远远不够的。第二,要想全面的学习数据库知识,应当分两个部分,第一,现在流行的关系型数据库的基础知识是一定要知道的,比如ER模型,属性,记录,联系的概念,SQL语言等的,学完之后还要掌握各个数据库的特点,比如SQL server,Oracle的特点在哪——就是这样,通用的部分+特殊的部分。希望我的介绍对你有用

如何学好数据库?

6. 怎么学好数据库?

《数据库原理》是一本好书。使用的是sql2005软件

多写多看多读,另外我送你一份试验操作
一、简单查询
在学生选课数据库中实现如下的数据查询操作
1. 查询数学系学生的学号和姓名
SELECT 学号,姓名 
FROM 学生
 WHERE 所在系=‘数学’
2. 查询女学生的个人信息
SELECT * 
FROM 学生 
WHERE 性别=‘女’
3. 查询选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列
SELECT 学号,成绩
 FROM 选修 
WHERE 课程号=‘C1’
ORDER BY 成绩 DESC,学号 ASC
4. 查询选修课程C1且成绩在90分以上的学生学号和成绩。
SELECT 学号,成绩
 FROM 选修 
WHERE 课程号=‘C1’AND 成绩>90
5. 查询数学系或计算机系姓张的学生的信息。
SELECT * 
FROM 学生 
WHERE(所在系=‘数学’OR所在系=‘计算机’) AND 姓名 LIKE ‘张%’
6. 查询缺少了成绩的学生的学号和课程号
SELECT 学号,成绩
 FROM 选修 
WHERE 成绩 IS NULL
二、联接查询
1在学生选课数据库中实现如下的数据查询操作
(1)求选修C1课程且成绩为90分以上的学生学号、姓名及成绩
SELECT 学生.学号,姓名,成绩
 FROM 选修 ,学生
WHERE 学生.学号=选修.学号 AND 课程号=‘C1’AND 成绩>90

(2)查询每门课程的间接先行课(即先行课的先行课)
SELECT A.课程号,A.课程名,B.先行课
 FROM 课程 A,课程B
WHERE A.先行课=B.课程号


三数据库的嵌套查询实验
实验目的:使学生进一步掌握SQL Server查询分析器的使用方法,加深对SQL嵌套查询语句的理解
实验要求:将查询需求用Transact-SQL语言表示;在SQL Server查询分析器的输入区中输入Transact-SQL查询语句;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。
实验内容:在学生选课数据库中,使用IN、比较符、ANY、ALL和EXISTS操作符实现嵌套查询操作
1.查询选修了高等数学的学生学号和姓名
SELECT 学号,姓名 
FROM 学生
 WHERE 学号 IN (SELECT 学号
FROM 选修
WHERE 课程号 IN (SELECT 课程号
FROM 课程
WHERE 课程名=‘高等数学’)) 

2.查询C1课程的成绩高于张三的学生学号和成绩
SELECT 学号,成绩
 FROM 选修 
WHERE 课程号=‘C1’AND 成绩>=(SELECT成绩
                             FROM 选修 ,学生
WHERE学生.学号=选修.学号 AND 课程号=‘C1’AND 姓名=‘张三’)


3.求其他系中比计算机系学生年龄都小的学生
SELECT *
 FROM 学生
WHERE 所在系‘计算机’AND 年龄<=ALL(SELECT年龄
                             FROM学生
                             WHERE 所在系=‘计算机’)

4.查询选修了C2课程的学生姓名
SELECT 姓名
 FROM 学生
WHERE EXITS (SELECT * 
FROM 选修 
WHERE 学生.学号=选修.学号 AND 课程号=‘C2’)

四数据库的组合查询和统计查询
实验目的: 
使学生熟练掌握SQL Server查询分析器的使用方法,加深对SQL查询语句的理解。熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验要求:将查询需求用Transact-SQL语言表示;在SQL Server查询分析器的输入区中输入Transact-SQL查询语句;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。
实验内容: 
一.在学生选课数据库中,实现如下的数据查询
1.求学生的总人数
SELECT COUNT(*)
FROM 学生
2.查询课程号为C1的课程的最高分
SELECT MAX(成绩)
FROM 选修
WHERE 课程号=‘C1’
3.列出每门课程的平均成绩(只列出平均成绩>70),并按平均成绩降序排列
SELECT 课程号,AVG(成绩)
FROM 选修
GROUP BY 课程号 HAVING AVG(成绩)〉70
ORDER BY AVG(成绩)DESC

4.查询选修人数超过40人的课程号和课程名
SELECT课程号,课程名
FROM 课程
WHERE 课程号 IN 
(SELECT 课程号 
 FROM 选修
GROUP BY 课程号 HAVING COUNT(*)>40)

7. 如何学好数据库

如果学习好SQL语言,基本的开发是没有什么问题的。当然,这也是您学习数据库的基础和开始。
 
      如果您以后的职业取向或定位在应用软件的开发,再简单地学习数据库系统构架已经是没有什么大的工作障碍了。 
     
      如果您立志专门从事数据库的开发,您就得学习不同商业数据库的的构架极其SQL语言的扩充,当然,不是非要得花很长的时间去研究,剖析。最好您有一定应用目的,基于应用的学习在知识了解的速度上有所保障,且能够对此商业数据库的基本应应用有重点,有目的的掌握。
 
      当然,您必须对数据库的基础理论有着非常扎实的功底,因为在中国的公司里,分工即使再明确,也要求数据库开发人员必须设计库,表结构,开发存储过程等。如果您天马行空地设计了一个非常糟糕的数据库,您以后的开发工作也非常的困难,更不用说应用程序员门的艰难处境了,最后到产品库的时候,给客户的可能是一个用银河也束手无策的垃圾库。
 
       哈哈,夸张了点呀!另外,CASE工具,你掌握一两个,提高效率嘛,多出来的时间陪陪MM也好呀,放松精神,心理减压。有利于身心健康!
 
      如果,您的最终目标是作一个高收入的DBA的话,麻烦您一定要有最少2年的数据库的专门经历。拜托给点专业精神,要知道您身系真个系统的安危,如果没有3把刷子,您两把总得有吧。想想您,有操作系统的功底吗/对所用数据库的系统构架熟悉吗/了解备份策略吗?了解安全策略吗?了解优化策略吗?

      如果都是NO,NO ,NO,NO ,NO的话,您回家卖红薯吧。要知道把您卖了,也抵不上那些应用因为宕机,崩溃而造成的损失。
 
      说实话,我鄙视,从内心鄙视那些急功近利的刚从学校出来就想着挣大钱,而削尖脑袋考OCP的家伙。没有水平就算了,要知道因为他的无能可能造成损失,或对其他同事的负面影响有多大!!
      在国内开发性公司,一般DBA是一个TEAM的核心人物!要设计库,表,各项策略,协同开发,随随便便的一个学生,没有工作经历,没有大应用的经历,凭着过人的记忆力背下N多的仿真题,然后拿个硕士的光环迷住别人的眼睛。搞定! 
      咳,是俺有些愤世嫉俗了!不好意思,在此我没有任何小看刚刚毕业的兄弟。毕竟,偶也是刚刚跨出校门不久的人。只是希望各位踏实地干点数据库开发,有点系统整体应用的意识后,再考DBA不迟。不然,您即使考过了OCP,蒙过了HR的头,也蒙不过和你共同作战的同事门的眼睛。遭人背地耻笑,当面挖苦又何必呢,何苦呢?
      最后,咱会到各位战友的FAQ的主题上,没有最好的书,但有很好的书。 在数据库理论基础上,有一本《数据库系统概念》,中英版皆为原版,字体端正。而且,对照着看,您会英语,数据库一同提高,何乐而不为呢,不过,您得有大量的时间去钻研。
 
      如果您是学生的话,我强烈推荐,至少这是小弟我的成长经历。 如果您没有时间的话,老萨,或王珊老师的书,适合与工作的,但对数据库不是非常的了解,您看看无妨。 
      如果您想学SQL,您可以到可以看一本好象是《轻松掌握SQL》第三版。那本书对标准SQL92的学习比较的合适,而且用例详实。适合初,中级的朋友看看。
      另外,您有时间看看OS方面的书,WIN2000管理,和UNIX的系统管理对您或许有帮助

如何学好数据库

8. 如何才能学好数据库

要多看些书籍,在看的时候要理解,不要去死记硬背,这样没有任何的效果,要去理解它,要多问自己为什么?它为什么要这样写。通过这样的为什么和自己去动手去写它,重点是要去理解它,这样你肯定会学好的。
最新文章
热门文章
推荐阅读