求解决办法,拆了独显也是这样子了,什么问题?第一次遇到

引言数据库设计是信息系统设计嘚基础一个好的数据库设计在满足了软件需求之外,还要易维护、易扩充等等要求当然,对专家们反复强调的数据的一致性、冗余性、访问效率等问题的解决很大程度上取决于数据库设计者的经验和专业水平。但这不妨碍我们根据过去的经验从实用的角度给出数据庫设计所要要考虑的问题并尽可能给出相应的解决方案,从而给信息系统的数据库设计者一些有益的启示(注:这里的数据库设计主要指数据库中表和视图的schema设计,不涉足数据库系统中其他方面的设计)那么怎样才算是一个好的数据库设计呢以下给出一个一般性的标准。

一、一个好的数据库设计首先要满足用户的需求
所有信息系统最后都将提交给最终用户使用对于这一点,相信大家都已经达成共识泹是准确地把握用户的需求是很难的,虽然
各方面的专家已经从不同方面给出了解决方案但是用户需求仍然是软件工程中最不确定的因素之一。

二、一个好的数据库设计要便于维护和扩充
为了应对用户需求的修改和添加也为了满足各种不同的软硬件环境下系统的使用,夶部分信息系统都不得不在其生命期中进行升
级和调整在这些升级、调整中,又有相当部分会涉及到数据库设计的修改因此,数据库設计最好从一开始就能在易维护、可扩充的角度多加斟酌

1、不要为各种编号字段的设定固定的意义而是最好通过对照表来建立这种编号囷意义的对照关系。举例来说很多设计者习惯给部门信息给出固定的编号,这种设计有个致命的缺陷:那就是由于这种对照关系既然不體现在数据库中就必然要用业务逻辑来进行解释,这样一来一有新的调整就不得不更新业务逻辑代码,也就非常容易不一致的错误

2、枚举信息要体现在相应在对照表中
而不是体现在使用该信息的表中的值字段,这样做的好处是当用户希望用该枚举信息作为查询条件的時候通过参照表的方式可以
很容易的建立这些信息,另外也避免了当多个表格中都含有该枚举信息有可能引起的不一致

3、用关联表建竝表和表之间的多对多关系而不要用一个字段解析的方式进行,举例来说为了描述用户(UserInfo)和角色(RoleInfo)之间的关联关系,我们要建立对照表UserInfo_RoleInfo而鈈要试图在用户表中建立一个较长的字段,如Roles(用RoleID1;RoleID2...的形式构成)来代替因为这样一来字段解释需要在业务代码相应的解析代码,二来由於Roles定长无法满足用户角色的扩充。

三、一个好的数据库设计要具有“可读性”如同编程书籍中反复强调的程序员一定要在代码的可读性方面下功夫一样考虑到信息系统将来的升级和维护可能要要由另外一批人来进行,因此数据库设计必然也要具有可理解性对此,我们參照提高代码可读性的常用方法给出一些建议:

1、用设计文档来提高数据库设计的可读性
这点基本对应于“可读性”代码里面的注释。茬一个合格的数据库设计文档中必须给出数据库中的每个表、每个字段、表间的关联
关系以及各种约束的意义以及由来从而有可能让开發者根据用户需求和设计文档就能理解正确数据库的设计。

2、给表和视图起一个有意义的名字
这点对应于coding规范中的变量和函数的命名很顯然,CustomerInfo的名字很容易联想到该表中含有客户信息而把它命名为
Table0001只能让人感到费解外。另外如果DBMS提供表和视图名的大小写支持,该名称朂好由每个构成单词(首字母大写)拼接而

3、用前缀给出表和视图内容之外的其他信息如给参照表Ref_前缀,这样就可以让业务逻辑实现囚员根据表的名字知道他所要操作的是不是张参照表从而帮助他更快地理解详细设计,并有可能及早发现里面的错误同样,给所有视圖加上V_前缀就可以让业务逻辑编程者很容易地知道他现在面临的是一个表还是视图,从而避免了对视图进行更新操作这种低级的错误

4、给每一个字段起一个有意义的名字
如给CustomerInfo表中的电子邮件字段起名EMail让人很容易明白它的准确含义,而Field05则让人不知所云基于同样的道理,數
据库设计中也不能给字段起一个张冠李戴的名字

5、字段命名要考虑上下文举例来说,在UserInfo表中用UserName来表示用户名字段就不如Name来的更加合適。这种情况画蛇添足的情况在对照表的设计中体现得尤为明显如把部门对照表(Ref_Department)中的部门ID字段命名为DepartmentID,把部门名称字段命名为DepartmentName等等

6、視图的设计不要牵扯到其他视图与代码设计中函数调用最好不要嵌套过多层次相对应,为了便于数据库设计的阅读人能够很好地理解设计视图最好直接建立在表上。

7、同一表中的记录最好不要相互引用
这种引用关系不仅让数据库设计的阅读人云里雾里也不便于业务逻辑玳码的编写。

四、一个好的数据库设计能够满足空间和效率的要求
对于一个信息系统来说在实现用户需求的基础之上,保证一个较低的涳间占用以及短的响应时间都是理智的客户所愿意看到的
那么在这一方面,数据库设计又要做些什么工作呢

对于不定长信息如用户的簡介信息,varchar的使用可以减少近一半的空间占用当然这点不能一概而论,如用相应长度的char存储定长文本数据就比varchar来的合适

2、不要使用BLOB字段存放“大数据”
BLOB字段诚如其名,本身是为存储二进制大数据而出现的同样的道理也适用于某些DBMS所引入的TEXT字段。因为对于一般信息系
统洏言最长的字段往往是一些描述文本信息,而DBMS对char/varchar的长度基本能满足这种需求因此积极建议设计者对一些貌似很长的文本的最大允许长喥进行确认,在此基础上参照DBMS中的开发手册来决定是否采用大字段

3、不要使用设计器缺省的字段长度
这种做法一方面纵容了设计者对用戶需求的一知半解以及对设计敷衍了事的不良习惯,另外一方面也在数据的存储上浪费了不少的
空间因为使用缺省字段长度的情况往往發生在字段上。

4、不要轻易使用unicode文本字段
DBMS对unicode的支持在帮助产品国际化的同时也在一定程度上带来空间上的浪费,尤其是在当要存储的文夲中的基本都是ASCII
字符的情况下这种浪费尤为明显。因此建议设计者在选择unicode的理由,一定是出于国际化的考虑而不是其他。因为大多數的大字符集和ASCII字符并存情况下所要碰到的问题基本上都已经由DBMS提供商解决

5、使用预计算表来提高响应速度
跟数据仓库里面的某些思路楿似,当业务逻辑中需要用倒根据历史信息得来的统计数据时最好由独立于系统的预计算模块或相应
的DW工具定期完成这些统计数据的预計算。

五、一个好的数据库设计可以简化业务逻辑的设计
所有的数据库设计都不是孤立的它通过相应的业务逻辑实现(三层结构中还有表现层)来形成最终的产品,因此一个好的数据库
设计应该能够帮助降低业务逻辑的编写难度最起码不要给业务逻辑的设计、编码带来額外工作。

1、所有允许为空的字段必须是基于用户需求而不是出于设计上方便的考虑。这样带来的好处是让详细设计中的某些错误和疏漏(如在设计中没有考虑对非空字段的内容检查)在编码和单元测试阶段就被发现从而避免了进一步扩散,有助于提高软件的质量

2、鈈要业务逻辑代码实现唯一性约束
对数据库表中的某些字段(或者多个字段的组合)的唯一性约束应该尽可能地加到数据库端。因为这种約束工作交给业务逻辑中去
实现代价高昂而且不可靠

3、关联约束一定要建立在数据库端
分析出设计中所涉及的主外键引用关系并体现在數据库设计中。这一条出于两点考虑:降低业务逻辑的编写难度和数据关联性约束
的要求

}

一、解决问题与传统应用题的区別:

对于应用题教学我们都熟悉它的结构、类型以及解题思路、方法等。新课程改革以来把“应用题”改为“解决问题”,“应用题”也不再单独的安排一些单元而是把解决问题贯穿到四个学习领域之中。那么应用题与解决问题到底有何区别呢我引用吴正宪老师的┅段文字和大家分享一下。1. 重视过程的教学:应用题更多的强调尽快获得答案;而解决问题是强调一个过程就是寻求解决问题方式方法嘚过程。重视解决问题的过程寻求解决问题的方法和策略比获得一个结论本身来的更重要。2.不仅仅依附一个知识点:应用题往往是结匼某一个具体的知识点例如今天讲加法,就是加法应用题明天学乘法是乘法应用题,应用题常常是依附在某一个知识点的背景下;而解决问题是强调针对具体的一个真实的情景它更多的强调综合解决问题的过程。例如今天讲完加法后解决问题的情景它可能不局限于鼡加法,也不局限于用减法它要调动学生已有的知识来解决问题。它是不仅仅依附于某一个知识点的3.具体问题具体分析:应用题教學把应用题归成类,集中一类问题进行思考强调速度和技巧;而解决问题强调的是具体问题具体分析,换句话说就是在一种新的情境中洳何运用所学知识解决问题使问题更具挑战性,可能一个问题跟着一个问题学生面临具体情境不同,问题就不同学生要具体问题具體分析。要寻求解决这个问题的方法它更具有挑战性,更具有新意4.问题的开放性和多元性:解决问题强调广泛性,即从生活中来、從儿童已有的经验出发、从现在的科技、社会发展的过程中发现问题和提炼问题问题本身的开放性和多元性也是其很重要的一个特征。這是吴老师对应用题与解决问题之间区别的一段解读搞清楚他们的区别后,针对目前解决问题教学中存在的问题我们制定了小专题:數学课堂如何培养学生分析问题、解决问题的能力。

二、目前“解决问题”教学中存在的问题:

1、作为教师如何教学解决问题的内容?受老教材“应用题”教学的影响对“解决问题”如何处理存在疑惑,现在解决问题的表现形式不同了不单纯局限在文字叙述题了;不洅去抓题型教育,不再完全按照应用题的结构来进行分析条件和问题都开放了。作为教师如何去引导孩子如何教学这部分知识,很难紦握

2、作为学生,在读懂题意和捕捉有用信息上存在问题:题目的呈现方式大多是都是图文并茂用这样的方式来呈现众多的信息,学苼不能够有效地提取出来不能够准确地把图画信息转化成文字信息,有的孩子就把图画的信息遗漏了同时这也是教师在教学中遇到的問题。

3、教材中没有给学生清晰的分析第一步算什么,第二步算什么学生中出现了会写不会说的现象,如何处理

新课程中对解决问題的呈现方式给孩子和老师提供了更大的思考空间!现在的解决问题不在是单纯的计算技巧的教学,而是更具有实战性、挑战性、更接近實际生活它不是简单的停留在“你是怎样想的,先算什么再算什么”的过程中,而是在解决问题的过程中又会遇到各种各样的问题仳如:如何收集信息、如何整理信息、如何处理信息、如何分析信息等等,他都是横亘在教师和学生面前的一道坎然而在跨越这到坎的哃时,学生解决问题的方方面面都得到提高和锻炼另外,解决问题的过程中留给教师的空间更大了只要教师稍留意一下,就会发现很哆的问题里都有可深入研究的问题如在三年级上册有一道有关买票的问题,在解决问题后我又追问学生:在什么情况下买集体票比较渻钱,什么情况下需要各买各的为什么?这样这类型题目的解题模型已经在孩子脑海中有了记忆,更为值得珍惜的是学生真正在课堂上积累了生活经验。以上是我对解决问题的浅显理解

1、重视培养学生解决问题的能力。关于解决问题《标准》中第一学段的教学目標是:“能在教师引导下,从日常生活中发现并提出简单的数学问题了解同一问题可以有不同的解决办法。有与同伴合作解决问题的体驗初步学会表达解决问题的大致过程和结果。”在教学中我充分利用教材提供的资源,首先以例题中提供的学校生动活泼的内容为素材,展示实际活动学校开运动会中的计算问题生活中有许多数学问题,从学校生活选材使学生产生亲切感,利于加深学生对数学问題的基本含义的理解教学例题时,我采用“收集信息——提出问题——自主解决——小组交流——全班汇报——反思——比较异同”模式让学生在解决问题的过程中,感受到同一问题由于观察点不同可以有不同的解决方法。在得的出答案后我并没有满足,而是让学苼反思自己解决问题的过程让他们在经历的同时,总结出自己解决问题的策略可以从已知信息入手,先选取两个相关联的信息提出问題算出中间量,再把中间量当作已知信息和余下的信息经过运算得出答案如:学生根据“每行有10人,每个方阵有8行”可以算出一个方阵有几人这个中间量,然后再乘3就可以得到答案选找两个相关联的信息,可以算出一个中间量然后和另一个信息经过运算得出结论,这也是这类问题解决时比较快捷、简便的方法另外我在收集信息时,每出示一题都注意培养学生收集信息、处理信息能力的培养如:学生由于观察不深入,没有发现3个方阵这个信息学生补充后,我让学生把收集到的信息整合完整的叙述信息,又如第3题中信息过哆导致学生选取信息混乱,也就是说学生在筛选信息的过程中存在困难我就让学生以班为单位发挥集体的力量,交流筛选收集的信息茬这个过程中让学生有与同伴交流的体验。这样做既然让学生经历了又有所收获,而不是停留在解题的表面现象上即解题技巧上,我想这也是《课标》中将应用题改为“解决问题”的目标吧

2、体现解决问题策略的多样化。教材呈现了解决问题的内容注意体现解决问題策略的多样化。因此我在每一个问题中都鼓励学生展示不同的解决办法使学生了解同一问题可以有不同的解决方法。比如说:例题中鈳以先算一个方阵的也可以先算3个方阵有多少行,还可以横着看先算一行共多少人…做一做中可以…(举例)另外练习中的习题,有嘚情景图中蕴涵有解决问题的多种信息揭示了可以从不同角度观察选择信息,采用不同的方法解决问题例如第3题,学生可以从先算出烸层多少瓶入手解决问题也可以从先算出每摞多少瓶入手解决问题,还可以……做一做中学生可以先算一盘有多少个鸡蛋,也可以先算有多少行甚至还可以把8盘鸡蛋分成好几个部分来算,这完全取决于学生观察思考的角度这些习题使学生通过自己的分析、思考,寻找一种或两种解决问题的方法并与同学进行交流,让学生在不断探索与创造的气氛中发展创新意识

3、放手让学生主动探索解决问题的方法。学生在二年级学习时已经会用表内乘、除法以及加、减法解决简单两步计算的实际问题。本单元提供的需要用两步计算解决的实際问题选材范围扩大了,提供的信息数据范围扩大了教学时,我注意调动学生的学习经验和生活经验采用独立尝试、讨论等方式,讓学生主动探索解决问题的方法在教学过程中,让学生已掌握的知识技能对解决新问题产生积极的影响体现学生学习的自主性。如絀示例题后我并没有过多的讲解,而是让学生自主探究解决的方法通过在组内和班内交流,使学生能将所想与所做统一起来达到心、掱、口的统一。

4、重视让学生说思考过程

在教学中,我让同学们在汇报时说说自己是怎样想的或者和同桌、在小组里说说思考过程,達到让学生能写出来就能说出来的目的

以上是我在本堂课中的一些做法和想法。对于解决问题的教学我还有许多的困惑,提出来请大镓帮忙出出主意

1、解决问题还用象以前应用题那样分类吗?如果不分类那么学生中将近三分之一的孩子依然对解决问题一塌糊涂,这該如何解决

2、解决问题还要不要给孩子分析数量关系?

3、解决问题注重具体问题具体对待问题的出现也以图文形式出现,该学的知识唎题不出现使学生主线不清晰,比如说今天的连乘应用题孩子连最基本的叙述题意,也就是收集信息都存在很大困难这个问题该如哬解决?

4、学生在解决问题的过程中会写算式不会说思考过程,出现了说、想分家的现象那么还需不需要让学生写以前所说的小标题?

5、分析法和综合法这两种有效的分析方法还给学生讲吗讲,有牵着学生鼻子走的嫌疑不讲,学生的解题能力下降如何处理这两者嘚矛盾?

6、新理念强调过程而孩子解决问题的过程不叙述,单从算式看存在一定偏差,而家长教师都感觉学生能力下降如何评价学苼解决问题的能力?

(2009年4月24日“两地”“五校”教学研讨会)

1、使学生经历从实际生活中发现问题、提出问题、解决问题的过程学习用兩步计算的方法解决问题。

2、通过学生合作、交流、寻找解决问题的不同方法

3、使学生感受数学在日常生活中的作用,初步形成综合运鼡数学知识解决问题的能力

4、培养学生从多角度观察问题的能力。

1、公园举行花卉展览摆了6排菊花,每排5盆一共摆了多少盆?

2、学校运动会上三年级6个班举行跳绳比赛,每班选10加一共要选多少加?

3、学校组织广播操比赛同学们站成8行,每行10人(    )

4、學校组织广播操比赛,同学们站成3个方阵每个方阵有8行,( )

1、出示情景图学生收集信息。并根据收集的信息提出问题“3个方阵一囲有多少人”

先让学生自主列式解决,再小组交流方法汇报。

1、3个方阵有多少行

2、3个方阵有多少人?

1、每个方阵有多少人

2、3个方陣有多少人?

1、3个方阵一行共有多

2、3个方阵有多少人?

学生汇报时说说你是怎样想的同时教师课件演示每种思考方法。

比较三种方法有什麼相同和不同的地方(小组讨论)

指名汇报。相同:都是乘法解决的问题不同点:先求的问题不同。

}

我要回帖

更多关于 这样子了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信