数据模型中的键


关系得每个元组是互不相同的,但不同的元组在部分属性上的投影可能相同。例如学生关系中,不同的元组在年龄属性上的投影可能相同。但是,元组在有些属性上的投影是绝对不能相同的,例如学生关系中的学号属性。

1 什么是候选键(candidate key, 简称为键)

如果关系的某一属性或某一些属性的值唯一地决定其他所有属性的值,也就是唯一地决定一个元组,而其任何真子集都不具有上述性质,则这个属性或属性组称为该关系的候选键。

2 什么是超键 (super key)

若属性组虽然可决定其他属性的值,但它的真子集也有此性质,则这种属性组称为超键。

3 什么是主键 (primary key)

一个关系至少有一候选键,也可能有多个候选键,一般从候选键中挑选一个作为主键 。 主键的值可以用来识别和区分元组,它应该是唯一的,即每个元组的主键的值是不能相同的。

在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选键,称为全键(all-key)。包含在任何一个候选键中的属性称为主属性(prime attribute)。在关系模式中,常在主键的主属性下加下划线,以标出主键。不包含在任何候选键中的属性称为非主属性(non-prime attribute)。

例如,在学生关系中,只有学号是主属性,而其他属性都是非主属性。姓名虽然有时用来识别学生,但由于有同名的可能,因此姓名不能作为主键。

4 什么是外键(foreign key)

如果关系中的属性或属性组不是本关系的键,而是引用其它关系的键,则称为次关系的外键。

Perl函数


  • 数组:chomp, join, keys, map, pop, push, reverse, shift, sort, splice, split, unshift, values
  • 数据库:dbmclose, dbmopen
  • 目录:chdir, closedir, mkdir, opendir, readdir, rewinddir, rmdir, seekdir, telldir
  • 文件:binmode, chdir, chmod, chown, chroot, close, eof, fnctl, fileno, flock, getc, glob, ioctl, link, lstat, open, print, printf, read, readdir, readlink, rename, rmdir, seek, select, stat, symlink, sysopen, sysread, syswrite, tell, truncate, umask, unlink, utime, write
  • 组:endgrent, getgrent, getgrgid, getgrname, getpgrp, setgrent, setpgrp
  • Hash: delete, each, exists, keys, values
  • 主机:endhostent, gethostbyaddr, gethostbyname, sethostent
  • 输入:getc, read, sysread
  • 处理器间通讯:msgctl, msgget, msgrcv, msgsnd, pipe, semctl, semget, semop, shmctl, shmget, hmread, shmwrite
  • 数学:abs, atan2, cos, exp, hex, int, log, oct, rand, sin, sqrt, srand
  • 消息队列:msgctl, msgget, msgrcv, msgsnd
  • 其他:bless, defined, do, eval, formline, import, ref, scalar, syscall, tie, tied, undef, untie, wantarray
  • 网络:endnetent, getnetbyaddr, getnetbyname, getnetent, setnetent

(全文…)

一次性筷子包藏着怎样的祸心?


日前,联合国在丹麦首都哥本哈根召开气候变化大会。于是,全球气候变暖再度成为全世界的关注焦点。“低碳经济”、“低碳生活”几乎成为人类的最为急迫的共同期盼。
一次性筷子不啻低碳生活之反义词!
一次性筷子是日本人发明的。然而,日本的一次性筷子却主要来源于中国。尽管日本是世界上森林覆盖率最高的国家之一,可人家并不砍伐自己的树木。而中国是全世界森林覆盖率最低的国家之一,却每年生产大约450亿双一次性筷子,出口到日本等国家和地区,出口总量186.0939万箱。这需要每年砍伐2500万棵成材树。按照目前的速度砍下去,中国可能在20年内就要砍掉所有森林。您可别忘了,销往国内市场可是更为客观的数量呢!尽管我们每年都过“植树节”,也植树造林,就那效率,实实的让人不敢乐观!
试问国人,我们是不是该对一次性筷子说“不”了?
1840年,英国人制造了鸦片,强行走私到中国。鸦片这玩意儿,抽一口儿,便飘飘欲仙,舒服死了。这么好的东西,英国人自己不享用,让中国人吸。中国人不吸,就发动“鸦片战争”打你。英国佬是个啥想法,仅仅是为了赚钱?而今,日本人发明了一次性筷子,多好的赚钱机会,多少个就业岗位!可人家却让中国生产。日本人怎么那么傻!但愿我是以小人之心度君子之腹,真不知小日本儿有没有包藏什么长远的祸心!

(全文…)

PhotoShop技巧100条


工具面板技巧
  1.快速打开文件
  双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口。
  2.随意更换画布颜色
  选择油漆桶工具并按住Shift点击画布边缘,即可设置画布底色为当前选择的前景色。如果要还原到默认的颜色,设置前景色为25%灰度(R192,G192,B192)再次按住Shift点击画布边缘。
  3.选择工具的快捷键
  可以通过按快捷键来快速选择工具箱中的某一工具,各个工具的字母快捷键如下:
  选框-M  移动-V  套索-L  魔棒-W
  喷枪-J  画笔-B  铅笔-N  橡皮图章-S
  历史记录画笔-Y  橡皮擦-E  模糊-R  减淡-O
  钢笔-P  文字-T  度量-U  渐变-G
  油漆桶-K  吸管-I  抓手-H  缩放-Z
  默认前景和背景色-D  切换前景和背景色-X
  编辑模式切换-Q  显示模式切换-F
  另外,如果我们按住Alt键后再单击显示的工具图标,或者按住Shift键并重复按字母快捷键则可以循环选择隐藏的工具。
  4.获得精确光标
  按CapsLock键可以使画笔和磁性工具的光标显示为精确十字线,再按一次可恢复原状。
  5.显示/隐藏控制板
  按Tab键可切换显示或隐藏所有的控制板(包括工具箱),如果按Shift+Tab则工具箱不受影响,只显示或隐藏其他的控制板。
  6.快速恢复默认值
  有些不擅长Photoshop的朋友为了调整出满意的效果真是几经周折,结果发现还是原来的默认效果最好,这下傻了眼,后悔不该当初呀!怎么恢复到默认值呀?试着轻轻点按选项栏上的工具图标,然后从上下文菜单中选取“复位工具”或者“复位所有工具”。
  7.自由控制大小
  缩放工具的快捷键为“Z”,此外“Ctrl+空格键”为放大工具,“Alt+空格键”为缩小工具,但是要配合鼠标点击才可以缩放;相同按 Ctrl+“+”键以及“-”键分别也可为放大和缩小图像;Ctrl+Alt+“+”和Ctrl+Alt+“-”可以自动调整窗口以满屏缩放显示,使用此工具你就可以无论图片以多少百份比来显示的情况下都能全屏浏览!如果想要在使用缩放工具时按图片的大小自动调整窗口,可以在缩放工具的属性条中点击“满画布显示”选项。
  8.使用非HandTool(手形工具)时,按住空格键后可转换成手形工具,即可移动视窗内图像的可见范围。在手形工具上双击鼠标可以使图像以最适合的窗口大小显示,在缩放工具上双击鼠标可使图像以1:1的比例显示。
  9.在使用EraseTool(橡皮擦工具)时,按住Alt键即可将橡皮擦功能切换成恢复到指定的步骤记录状态。
  10.使用SmudgeTool(指尖工具)时,按住Alt键可由纯粹涂抹变成用前景色涂抹。

(全文…)

向SCI杂志投稿


目前,在SCI杂志上发表文章已成为国内各大学研究生毕业的门槛,对初学者来说,无论是就“如何投稿”或是“写文章”都有一定的难度。大学里有时也请一些知名教授办一些如何写文章和投稿的讲座,总起来说,三个字“不实用”。为何这般说,因为咱们是初学者,如何消化得了教授们的经验。现在,笔者介绍一些积累的小经验,供大家参考,主要是针对医学专业,而且是初学者。

第一步,好的idea决定你的文章能投到什么水平的杂志。咱们这里不说good idea,这与咱们没啥关系,咱们是初学者。但不管你写什么,重要的一点是,你一定要多看一些有关这方面的文章。多看文章的好处是你能找到你不同于他们的地方,比方说腹腔镜阑尾切除术,简单吧。它涉及可写的东西多了去了,体位、套管的数量、器械的不同、病人的情况,并发症,随访。每个人写都会有自己的一套内容,你的任务就是看看你的病例、手术与甲的哪些一样,乙的哪些一样,丙的哪些一样…,十来份全文的足够了。你脑子里有了模模糊糊的轮廓。

第二步,找你要投稿的杂志,这应该是在写稿之前发生的,不过好多人还是在写稿之后,提前找好可能更有目的性。找杂志很重要,有几个窍门,多找一些欧洲小国家或是亚非拉国家的杂志,比方希腊,比利时,乌克兰,土耳其等等。影响因子低一些的,尤其是临床杂志,因为临床杂志的文章创新性不强,影响因子接近1分的已经很好了,一般0.3或0.4对初学者就算不错了。要是还不介意更低的话,找SCI上有的,但在pub med上查不到的,这种杂志影响因子很低,几乎为零,但中标率接近100%,它们的网站得到Google上找(不要只是将Google用于搜索一些乱七八糟的东西)。提醒大家注意的是,最后一定要再看看你用的是不是当年最新版的SCI影响因子表,因为经常有去年还被收录的杂志今年就没有了,现在大学的网站一般都有最新的,从最新的表上再查查你要投的杂志到底有没有。有则万事OK,没有的话必须再找另一个,否则到时候可能遇到麻烦。另外笔者猜测收版面费的杂志可能会容易一些吧,向英国的一些杂志,因为国外的作者一般都不情愿投到这种杂志,他们可能没法报销,不像中国(还是社会主义优越)。

第三步开写了,别打中文草稿,否则写出来就是Chinese English。英语不好怎么办,没关系,你不是看了好多类似的文章了吗,比着写就是了,我说比着写可不是让大家去抄人家的,我说的是句师、语法等,有的人可能嫌麻烦,但这时候慢就是快,一篇文章大约也就2-3千字,一句一句照着写,其实花不了多少功夫,而且修改的时间会大大减少,等你写完就发现真的像是 Brain English。另外,写的时候要求按照杂志要求的格式写,一遍成功。事先查到该杂志发表的与你文章相关的文章,尽量引用,给人家的影响因子做做贡献,对自己的文章不也有好处吗。

(全文…)

SCJP备考


1.知识背景和概况:
首先,我不是程序员,在大学做毕业设计的时候用Java做过一个系统,后来基本上没碰过Java了,2000年的时候上过北大的SCJP培训,当时觉得简直是白花钱,讲的太简单了。后来由于种种原因一直拖着没考,今年总算把这个心愿给了了。如果你曾经使用Java开发过东西,应该水平就不在我之下:-)
虽然SCJP不是很难,但是如果你不专门复习准备的话,即使你经常使用Java开发,也未必就能过,和以前参加过的MCSE考试相比,我总的感觉是:SCJP考试的覆盖面要广的多,Java的各种概念都考到了。最初觉得应该跟准备MCSE似的,看一周的书,就去考试,后来发现这个想法是不现实的。最终我准备了3个月,当然主要因为工作忙,没有整块的时间看书,我也不是那种特别刻苦的人:-) 如果时间充裕,1个月的准备时间应该是足够了。按照我下面说的准备,没必要花钱去参加培训。

2.看书!
我是学计算机的,也用过Java,这次考试可以说没有什么功利性目的,因此不想到处找考试题然后混过去,因此看书是必须的,先down两本好教材:
1.Java2 Certification Tutorial:
http://automation.seu.edu.cn/auto/content/tutorial.zip
2.Complete Java2 Certificate:
http://automation.seu.edu.cn/auto/content/Complete%20Java2%20Certificate.zip
第一本是一个简明教程(其实也挺大的),基本上是针对SCJP 的考试大纲设计的,而且讲了很多容易混淆的东西,很不错,第2本是一个600多页的大书,但是基本上只有前一半是针对SCJP 的,后面是针对SCJD的,有这两本书,足够了,不用再看别的书。
我的建议是先通读一遍后面这第2本书,仔细的复习一便,然后分章节的看第一本书,第一本书附带了一个练习题系统,可以看完一章,做一章的题目,检查一下自己对各种基本概念的掌握程度,发现问题就再看书。要注意的是,这个练习题有些部分超出了SCJP的要求,但是对于扎实的掌握知识是很有帮助的,建议做完,搞懂。这个Java2 Certification Tutorial中有两个问题:1是没有IO部分,2是练习题中有些排版造成的错误,不过错误很明显。
别忘了下载一个SUN的JDK,做实验用,当然用别的Java IDE也可以,但是我比较喜欢纯粹的命令行的JDK.
3.做题!
理论上,看完了书,掌握差不多了,就可以去考试了,不过这个….总感觉不塌实,你要是能这么考过去,那真是很单纯的SCJP,呵呵,所以,怎么说,还是要做些模拟题的。一方面,你可以看看自己知识掌握的情况,另一方面,可以看看SUN出题的时候是多么的阴险:-)
先来这三套:
http://automation.seu.edu.cn/auto/content/Mock%20exam%201.pdf
http://automation.seu.edu.cn/auto/content/Mock%20exam%202.pdf
http://automation.seu.edu.cn/auto/content/Mock%20exam%203.pdf
这三套题目就是Complete Java2 Certificate的作者弄的,公认是最接近SCJP真实难度和范围的模拟题目,建议做一套以后,对着答案把自己没掌握清楚的难点记下来,然后复习,弄清楚,再作第二套…如此往复,应该可以把知识都弄清楚,弄扎实。如果你做这些题目都能对80%,就基本上没问题了。
网上各种模拟题目很多,可以看看,比如:JCert4.0
http://automation.seu.edu.cn/auto/content/JCertify40.exe
这个测试题难度不大,但是界面与SCJP实际考试差不多。可以做做。
4.什么叫基础
SCJP是考基础的,但是基础不等于就是简单,比如下面这个例子:
String a = “JAVA”;
String b = “JAVA”;
String c = new String(”JAVA”);
String d = “JA”;
String e = “VA”;
String f = “JA”+”VA”;
String g = d+e;
String h = c;
你觉得如果判断 a==b, a==c, a==f, a==g, c==f, c==g, c==h 哪些是true, 哪些是false呢?你需要充分地了解Java String Object的原理才能回答这个问题。
还有这个:
int a=0;
int b[]=new int[5];
int c=3;
b[a]=a=c;
最终a=?, b[0]还是b[3]被赋值呢?
另外,线程,程序流控制,访问权限控制,Inner Class 等等部分,都可以出很多这种题目。当然,如果你真在SCJP考试里遇到的全是这个水平的考题,我觉得你可以投诉了:-)。但是你还是要力求把各种基本概念都完全弄清楚的。
5.关于真题
这好象是一个敏感的问题,完全靠背真题考试,是我比较反感的。而且SCJP的考试题库也是在不断变化的,因此全指望背题是不可靠的。现在网上比较流行的SCJP真题是著名的147真题。我就不提供下载地址了。不过需要注意的是,网上流行的真题的答案里经常有错误,需要自己把握。
看真题的一个比较可取的方法仍然是理解和吃透,多动手做实验,多想想这些题目可能的变化,这样可以有助于你进一步扎实的掌握Java的基本概念。毕竟147的题目还是有水平的。
6 考试!
如果上面的准备工作都做好了,你应该可以轻易的拿下SCJP考试,这个考试是2个小时,59道题,有选择,有可能有填空(很简单的,填写运行结果的) 对61%就PASS,对于充分准备的你,这简直太简单了。简单说一下考试报名的过程:
正式的过程应该是你首先联络SUN的培训中心(北京,上海,广州),询问如何报名参加SCJP考试,他们会告诉你一个银行帐号,你把1250元转入,然后把个

(全文…)

按位运算符


按位运算符是两个独立的比特数,用AND/OR去决定位和位的结果。有3个按位运算符:
& AND
| 包括OR
^ 除去OR
&比较相应的比特在两个数或比较两个布尔值,将它们用比特对待。若果两个比特是1,最后的比特值也是1.如果只有一个是1,结果是0.再次,对比特操作符,我们必须将数值转换成比特表示。如表:
X    Y    & (AND)    | (OR)    ^ (XOR)
0    0    0        0        0
0    1    0        1        1
1    0    0        1        1
1    1    1        1        0
比较10和9两个数值
1010 & 1001 = 1000
得到的结果是8
class Bitwise {
   public static void main(String [] args) {
      int x = 10 & 9; // 1010 and 1001
      System.out.println(”1010 & 1001 = ” + x);
   }
}
运行结果
c:\Java Projects\Bitwise>java Bitwise
1010 & 1001 = 8
| OR操作符合& AND操作符不同;当比较相应的比特,如果有一个是,结果是1,反之亦然。如

(全文…)

移位运算符


>> 右移
<< 左移
>>> 右移包含负比特
移位运算符移动一个数字的比特去右边或左边,产生新的数值。移位运算符只用于整型数值(不包括浮点型)。为确定移位的结果,需要将数值转换为比特值。
整数型8,开始,我们必须将这数值用比特表示:
0000    0000    0000    0000    0000    0000    0000    1000
int是一个32位整型,所以所有32位必须表示出来。如果我们用一个比特移动到右边,用>>运算符,新的比特数:
0000    0000    0000    0000    0000    0000    0000    0100
这时候,用十进制表示就是4.用java代码表示为:
class BitShift {
   public static void main(String [] args) {
      int x = 8;
      System.out.println(”Before shift x equals ” + x);
      x = x >> 1;
      System.out.println(”After shift x equals ” + x);
   }
}
运行结果
c:\Java Projects\BitShift>java BitShift
Before shift x equals 8
After shift x equals 4

移位运算符能用于所有整型数值,不管它们的表示方式为(八进制,十进制,或者十六进制)。左移也是相同的方式,除非所有的比特位都移到了相反的方向。下面是十六进制的移位:
class BitShift {
   public static void main(String [] args) {
      int x = 0×80000000;
      System.out.println(“Before shift x equals “ + x);
      x = x << 1;
      System.out.println(“After shift x equals “ + x);
   }
}
为理解上面的例子,有必要将十六进制转换为比特值。幸运的是从十六进制转换为二进制很简单,每个十六进制数字用4比特位表示,如:
8    0    0    0    0    0    0    0
1000 0000 0000 0000 0000 0000 0000 0000

(全文…)

沈红斌介绍


沈红斌同志出生于1979年8月,长期致力于模式识别、数据挖掘以及生物信息学的研究,一篇研究论文发表在Nature杂志《Nature Protocols》上,在其他国际/国内著名期刊《Bioinformatics》、《Journal of proteome research》、《Biochemical and Biophysical research communications》、《计算机学报》、《软件学报》等上发表学术论文40余篇(含两篇国际期刊综述文章),被SCI收录 34篇,EI收录10篇;SCI 影响因子累计逾90,单篇影响因子6.0以上的论文4篇;共被SCI他人引用221余次,单篇被他人SCI引用超过20次的论文5篇,多篇论文被《Developmental Cell》等国际顶级期刊论文所引用;一篇论文被选作国际著名期刊《Journal of Cellular Biochemistry》封面论文。该同志受邀为国际期刊《Expert Review of Proteomics》撰写综述文章。该同志的文章 “Nuc-PLoc: A new web-server for predicting protein subnuclear localization by fusing PseAA composition and PsePSSM”以及“Review: Recent progresses in protein subcellular location prediction”分别被选为杂志《Protein Engineering, Design and Selection》2007年11月份以及《Analytical Biochemistry》2007年7月-9月最受关注的论文。

沈红斌担任国际期刊《Journal of Biomedical Science and Engineering》编委,长期担任如IEEE Trans. On SMC (part B),Bioinformatics等18个国内外期刊的审稿专家,担任BIBE07国际学术会议组委会成员。该同志获得2005年度江苏省百篇优秀硕士论文奖,2005年国家优秀奖奖学金,2006年“中国惠普优秀学生奖学金(特别优秀奖)”,2006年上海市、上海交通大学“三好学生”,2007年度上海交通大学优秀毕业研究生等荣誉。2007年1月,受哈佛大学医学院邀请,沈红斌同志赴美从事“基于智能计算的膜蛋白结构分析”等方面的研究。该同志在研究过程中建立了10余个生物信息科学服务网站,在国际上引起了广泛的注意,累计在线服务20,000余次。

研究兴趣

生物信息学、结构生物学、数据挖掘、模式识别、药物辅助设计

研究经历

1997.9-2001.7: 华东船舶工业学院计算机系,学士

2001.9-2004.3: 华东船舶工业学院计算机系,硕士

2004.3-2006.11:上海交通大学图像处理与模式识别研究所,博士;

2004.5-2005.9: Philips东亚研究实验室(上海)访问学者;

2007.1-2008.2: 哈佛大学医学院博士后

2008.2-至今: 上海交通大学副教授(破格晋升)

基金

(全文…)

Biochemical and Biophysical Research Communications (BBRC)投稿


 

Biochemical and Biophysical Research Communications(BBRC)是学术出版社(Academic Press)出版的综合性通讯类生物医学期刊。据历年统计,杂志SCI影响因子(Impact factor)在2.9与3.3之间。其收载论文特点是强调新颖性,即论文研究成果的首创性。尽管是通讯类的杂志,刊发的论文要求数据量并不大,但编委并不因此牺牲论文的完整性。更重要的是,BBRC对非欧美来源的论文还比较友好。
hypoxia就此谈谈BBRC可能的几个拒载原因:
1。论文缺乏新颖性,无新的发现(实验论点重复别人已发表的文献,或经过简单推理就能从已知的国际文献中能推理获得)
2。论文提出的论点不能通过该实验方案所证实(逻辑推理问题,实验方法学理论的欠缺,比如引用陈旧而被证明有欠缺的实验方法)
3。论文数据表达方式不符杂志的质量要求(主要是图表是否另附、是否清晰打印,打印介质是否大小恰当以便印刷,legend是否完整)
4。实验数据量太小(BBRC不成文的下限:分子细胞生物in vitro实验n>3,器官、动物in vivo实验n>6,重复n>3)
5。实验数据的统计处理不恰当(数据统计检验方法是否合适)
6。英文语法错误太多,表达不当(尽管BBRC对英文的要求比其它同等级的杂志要低,论文写出后还是要多参照同类的英文论文修改数次,尽量避免语法错误)。
7。论文的文字格式不符(特别是reference应参照BBRC已出版的论文进行撰写,并确保正确性)

Page 1 of 2112345678910»20...Last »

绿程网坚持自由、开放、共享的原则

围绕web开发生物分析提供免费的在线编程教程生物教程等资源。