数据库小知识
1.数据库要从哪些知识入手
我是教数据库的老师,我的感受是数据库学习,开始学习一些基本概念,比如数据库,表,主键,外键,约束等等。然后找一个数据库的软件,比如Visual Foxpro、SQL Server 2005等,然后在上面建立数据库,建立表,建立表见关系,做主键和外键之间的连接等。
然后学习T-sql语言,编辑一些查询程序,做一些存储过程,触发器的小实例,这样可以练习数据库编程。
最后就是弄一个大的项目案例仔细研究,模仿得做出来它了。当然做好数据库后,要找个软件做前台的应用程序,一般用ASP.NET或者VB等等(编程语言很多的)设计应用程序界面,然后和数据库相连。这个部分要找一个现成的实例照着做。
学的过程中,遇到问题是难免的,多到网上提问,或者请教会数据库的人,逐渐的学习,就能掌握数据库技术了。
只言片语,仅供参考!
2.数据库基础知识
基础理论:进程、线程、纤程、死锁、事务、日志、范式理论,这些知识建议看看数据库概论
实用技能里面:T-SQL语法,PL-SQL语法(T-sql在mssqlserver的帮助文档里就有,plsql在oracle的帮助文档里就有)
主流数据库的使用:MSSqlServer2000/2005/2008,Oracle9i/10g,mysql5等等,各数据库的帮助文档里都有使用方法,小技巧之类的也可以下载电子书或者书店里随便选,到处都是。
技能提升:数据库运维、HA(高可用)、数据挖掘、数据仓库,这些知识内容,除了耐心看书以外,还要耐心工作积累实战经验。
3.学习数据库之前应该具备哪些知识
我认为学习就好像医生给病人看病.
讲的是对症下药.
首先你要明确,你用的数据库只要应用在哪方面的.
如果只是开发网络.如留言板之类,(或是开发一些比较小的财务软件)我建议用Access学习也很简单很直观.
关于多少时间学会.很难回答你.学无止境.人家比尔*盖次还在不断学习.你就不能认真点啊.现在日子难混啊。什么都讲增值(一般一个星期可以搞定)
MS SQL、Oracle是大型数据库,目前企业中用得最多.
都是结构化查询语言(SQL).懂一门基本上大同小异
想学习的就进入下面的网址.是洪恩的,很不错
先学习简单的,如果简单的都不会谈什么复杂的.
/pc/oa/ac2k/ac2k0104.htm
4.如何学习数据库知识
要说数据库,一般以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,而不。
5.数据库设计中有哪些小技巧
1。
原始单据与实体之间的关系 可以是一对 一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。
在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。
明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。
这就是“一张原始单证对应多个实体”的典型例子。 2。
主键与外键 一般而言,一个实体不能既无主键又无外键。在E?R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。
主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。
因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。 3。
基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性: (1) 原子性。基本表中的字段是不可再分解的。
(2) 原始性。基本表中的记录是原始数据(基础数据)的记录。
(3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。
(4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。
理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。 4。
范式标准 基本表及其字段之间的关系, 应尽量满足第三范式。 但是,满足第三范式的数据库设计,往往不是最好的设计。
为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 〖例2〗:有一张存放商品的基本表,如表1所示。
“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。 但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。
在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。
表1 商品表的表结构 商品名称 商品型号 单价 数量 金额 电视机 29? 2,500 40 100,000 5。 通俗地理解三个范式 通俗地理解三个范式,对于数据库设计大有好处。
在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。 没有冗余的数据库设计可以做到。
但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。
降低范式就是增加字段,允许冗余。 6。
要善于识别与正确处理多对多的关系 若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。
这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。
这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。 一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。
6.数据库知识我该怎么学
这个得看你基础,还有,你的终极目标是什么?
数据库分好多种,什么sqlserver,oracle等等吧,其实大部分情况下语法都差不多,只是略有点区别。其实这个需要多练,单表的增删改查要做好,其次就是些函数的应用,比如日期函数,聚合函数,操作字符串函数等,这个必须要达到熟练以上的水平。单表的练好了,再考虑多表的join连接等等,然后再试着学写存储过程,函数,触发器,这几个算是进阶的内容了,但是还是有前提,就是上边的你必须练好了,而且还要有一些编程的思想。当你对这些都差不多了,最后才能考虑优化的事情,也就好比你懂了语句在数据库中是怎么运行的,然后你才知道怎么去优化。你要是需要的话,我可以平时简单指导你一点,但不会太多,有些东西你自己弄出来了,比别人帮你搞定,你要记忆的深刻一点。
哎,手打啊
电子书我这也有一点,但是需要根据你对症下药
7.数据库入门学习
基本上操作各种数据库不近相同,其中access是小型数据库,sqlserver与oracal是中型的,DB是大型数据库。
1、学习数据库的SQL语句,每个数据库基本上上不多,但是都有自己的不同,有的时间类型用‘’标识有的用#等。但是基本的SQL都是一样的select ,update,Insert,Delete,基本上学会了基础的,就学习高深一点的,如何联合表查询,编辑,修改。多看看网上的资料与视频,像SQL Server数据库设计和开发基础篇视频课程等等。
2、这些熟悉以后,就要学习一下数据库的一些常用的系统函数,再之后就是要学习,存储过程,函数,触发器,事务。基本数据库这部分就没有什么问题了,只要不做高级的科研什么的,这些知识就都够了。要想学好数据库,就要多联系,自己创建一个带有逻辑的符合第三范式以上的数据库,然后写写SQL、触发器、存储过程、试图等。最重要的就是,把他们之间的逻辑搞清楚。
3、如果您想学SQL,您可以到可以看一本好象是《轻松掌握SQL》第三版。那本书对标准SQL92的学习比较的合适,而且用例详实。适合初,中级的朋友看看。
8.数据库基础知识
基础理论:进程、线程、纤程、死锁、事务、日志、范式理论,这些知识建议看看数据库概论实用技能里面:T-SQL语法,PL-SQL语法(T-sql在mssqlserver的帮助文档里就有,plsql在oracle的帮助文档里就有)主流数据库的使用:MSSqlServer2000/2005/2008,Oracle9i/10g,mysql5等等,各数据库的帮助文档里都有使用方法,小技巧之类的也可以下载电子书或者书店里随便选,到处都是。
技能提升:数据库运维、HA(高可用)、数据挖掘、数据仓库,这些知识内容,除了耐心看书以外,还要耐心工作积累实战经验。