博文

常见数据库系统之比较 - 数据库的发展和现状(2005-12-18 13:23:00)

摘要:         纵观当今的商用数据库市场,称之为群雄割据毫不为过。自20世纪70年代关系模型提出后,由于其突出的优点,迅速被商用数据库系统所采用。据统计,70年代以来新发展的DBMS系统中,近百分之九十是采用关系数据模型,其中涌现出了许多性能优良的商品化关系数据库管理系统。例如,小型数据库系统Foxpro, ACCESS, PARADOX等,大型数据库系统DB2, INGRES, ORACLE, INFORMIX, SYBASE, SQL SERVER等。80年代和90年代是RDBMS产品发展和竞争的时代。各种产品经历了从集中到分布,从单机环境到网络环境,从支持信息管理到联机事务处理(OLTP),再到联机分析处理(OLAP)的发展过程;对关系模型的支持也逐步完善;系统的功能不断增强。

  这些关系数据库产品是怎么发展起来的呢?让我们慢慢道来……

1、 对关系模型的支持

  第一阶段(70年代)的RDBMS仅支持关系数据结构和基本的关系操作(选择、投影、连接)。例如:DBASE之流。

  第二阶段(80年代),对关系操作的支持已经比较完善,但是对数据完整性的支持仍然较差。此时,SQL语言已经成为关系数据库的标准,各家对SQL标准的支持还都是不存的(几乎全不是超水平发挥)。

  第三阶段(90年代)的产品,加强了数据完成性和安全性的性能。完整性的控制在核心层实现,克服了在工具曾的完整性可能存在“旁路”的弊病。

2、 运行环境

  第一阶段在大型、中性、小型机上运行的RDBMS一般为多用户系统,用户通过终端并发地存取、共享数据资源。微机上的一般为单用户版本。

  第二阶段的产品向两个方发展。一个是提高可移植性,使之能在多种硬件平台和操作系统下工作。另一个方向是数据库联网,向分布是系统发展,支持多种网络协议。

  第三阶段的产品追求开放性,满足可移植性、可连接性、可伸缩性。

3、 系统构成

  早期的产品主要提供数据定义、数据存取、数据控制等基本的操作和数据存储组织、并发控制、安全性完整性检查、系统恢复、数据库的重新组织和重新构造等基本功能。......

阅读全文(3195) | 评论:0

Sql连接查询(2005-12-17 07:59:00)

摘要: Sql连接查询 点击数:74    发布日期:2005-12-3 12:07:00   【评论】【打印】【  
  Sql连接查询


连接查询

通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。

连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。

SQL-92标准所定义的FROM子句的连接语法格式为:

FROM join_table join_type join_table

[ON (join_condition)]

其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。

join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。

外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

交......

阅读全文(3520) | 评论:3

SQL四条最基本的数据操作语句(2005-12-17 07:56:00)

摘要: SQL四条最基本的数据操作语句 点击数:512    发布日期:2005-11-16 23:32:00  
  掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。

   练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。

  在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。

  SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。

  INSERT语句

  用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:

  INSERT INTO EMPLOYEES VALUES

   ('Smith','John','1980-06-10',

   'Los Angles',16,45000);

  通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

  我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。
......

阅读全文(3350) | 评论:3

关于Adodb.Stream的写数据库数据到客户端文件的实践(2005-11-26 12:12:00)

摘要: 关于Adodb.Stream的写数据库数据到客户端文件的实践 发布者:[飞翔] 浏览:[ 1223 ] 评论:[0]      这是一个从服务器数据库直接下数据到客户端文件的例子,文件名和扩展名可以根据需要随便写。new/temp.htm要求真实存在,其实没有什么作用,只是引导一下,否则不能对stram数据进行写操作。
    网络上流传的这方面的东西不少,但多数是copy来的,很简单的事情搞得那么复杂。真正经过实践的东东少得可怜。于是自己写了一个,虽然简单,也有些问题,但是copy下去就可以用了。有问题的朋友可以跟我联系,好一起学习。 filemystream=server.mappath("new") & "\temp.htm"
 Set MyStream=Server.CreateObject("Adodb.Stream") MyStream.Type = 1
MyStream.Mode=3
MyStream.Open
MyStream.LoadFromFile(filemystream)   Response.ContentType="application/octet-stream"
  Response.AddHeader "Content-Disposition:","attachment; filename=" & "bk.txt"
  Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)     response.write "姓名"
    response.write "账号"
    response.write "地址"
    response.write "说明"
    cr=chr(13)&chr(10)
    response.......

阅读全文(3246) | 评论:0

数据在Access与Office组件间自由流动(2005-11-22 19:31:00)

摘要: 数据在Access与Office组件间自由流动 作者:未知    文章来源:未知    点击数: 224    更新时间:2005-6-26 Access是Office组件的重要成员,其主要功能是数据库的管理和应用。由于其普及率和易用性都不及其他成员,所以大家常常会觉得Access的操作不太方便。如果我们能够实现Access与Office组件其他成员之间进行数据交流,就能达到取长补短、提高工作效率的目的。 在Word中打开Access的表 如果想把Access中的表转换成为Word中能够读取的文件格式,以便利用Word进行处理,可以采用以下3种方式: 一、利用剪贴板 在Access中,打开要转换的表并查询。将鼠标指针拖过所选记录的行选择器(在窗口的最左端,当鼠标置于其上时,鼠标指针会变成向右方向的箭头),可以选择一组记录;将鼠标指针拖过所选字段的字段选择器(在窗口的最上端,当鼠标置于其上时,鼠标指针会变成向下方向的箭头),可以选择一组字段;当用鼠标单击左上角的字段选择器和行选择器的交叉处时,可选中所有记录或者说是选中所有字段。进行上述3种情况之一的选择以后,再单击工具栏上的“复制”,将所选内容复制到剪贴板中。随后打开Word,单击工具栏上的“粘贴”,即可将Access表或者查询结果复制成Word表格。如果您觉得被复制进来的深色底纹表头影响视觉效果,可以选中该行后,执行“格式”菜单下的“边框和底纹”命令,再选择“底纹”*“无填充色”。 二、导出为RTF文件 在Access中,打开要转换的表或者查询结果,选择“文件”*“导出”,将“保存类型”指定为“Rich Text Format”。在Word中,执行“文件”菜单下的“打开”命令或者直接按下工具栏上的“打开”按钮,在随后弹出的“打开”对话框中,单击“文件类型”旁边的下拉列表,将其指定为“RTF格式”,找到前面保存的RTF文件双击即可打开。 三、直接插入数据库 在Word中,单击“视图”*“工具栏”,选中“数据库”(或者将鼠标置于Word窗口的菜单栏或工具栏上右击,在弹出的快捷菜单中选中“数据库”一项),并在Word中打开Access的表或者查......

阅读全文(3721) | 评论:0

ACCESS集锦(珍藏)(2005-11-22 17:56:00)

摘要: ACCESS集锦 作者:未知    文章来源:未知    点击数: 472    更新时间:2005-6-26     1、使窗体或报表的文本框随文字的多少自动加大或缩小:
            文本框属性“可以扩大”
    2、控制某字段只能填写某些内容:也许你想让使用程序的人只能在某个字段里a,那么你就得控制他不难让他填b。具体表达式为
            =Instr("abc",[A])>0
    3、并置几个字段:也许你填表时有两个字段分别是“湖北大学”、“数学专业”,但当你在打印报表时却想让这两个了段变为一个字段放在一起,即“湖北大学数学专业”,那么最好的办法就是并置。表达式为:
            =([A]&[B])或者=([A]&""&[B])
    4、查询中的计算字段:也许在您的表中有两个数字字段,然后您想在报表中出现一个关于这两个字段关系的字段,那么简单的方法就是计算,这计算可以加,可以减,可以乘,可以除,视情况而定。表达式为:
            名称:[A]*[B](这里假设相乘,“名称”可自定)
    5、计算年龄表达式:有人喜欢在表中设计录入一个人的年龄,这不是聪明的做法。因为每个人的年龄是在不断增加的,到下一年再重新进行大批量重新录入,那就没有电脑的智能作用。最好的做法是在表中设计一个身份证号码......

阅读全文(3954) | 评论:0

炮轰网站数据库 (2005-11-12 16:26:00)

摘要: 炮轰网站数据库
说到一个网站的命脉,非数据库莫属,网站数据库里面通常包含了整个网站的新闻、文章、注册用户、密码等信息,对于一些企业、政府类型的网站,里面甚至包含了重要的商业资料,所以加强一个网站的安全性,最根本的就是保护数据库不要被攻击剽窃掉。
  目前比较流行的数据库攻击方法莫过于“爆库”。“爆库”,顾名思义就是利用强行的手段,使目标网站的数据库路径暴露出来,从而成功下载数据库,窥视其中的隐私数据,对网站安全造成危害。
  这里笔者就以对“动力文章系统”进行“爆库”攻击为例,介绍一下“爆库”的操作方法及防范要领。
  小提示:动力文章系统是一套非常流行的整站程序,采用Asp+Access构造,其美观和功能都是一流。很多企业、政府的网站都是采用它为基准进行修改而来的,可惜它虽然功能、美观上都是一流水准,但是却存在目前流行的“爆库”漏洞。
  一、开始爆库
  1.寻找下手目标
  动力文章系统存在数据库连接文件conn.asp请求错误,可以利用它来爆出任何采用动力文章系统的网站的数据库路径,并进行下载。网上采用动力文章系统的网站成千上万,随便找几个下手的目标吧!打开百度搜索引擎(http://www.baidu.com),输入关键字:动力文章系统声明,即可搜索到非常多的动力文章系统的文章,随便打开一个进行爆库实战:http://www.targent.org/jizhetuan/wenzhangguanli/。
  2.爆库前的必要设置
在进行爆库实战之前,先对IE浏览器进行一番设置,这个设置关系到数据库路径是否被爆出。单击IE浏览器工具栏中的“工具”按钮,在下拉菜单中选择“Internet选项”,打开Internet选项设置面板,单击切换到“高级”标签,然后找到“显示友好HTTP错误信息”,将这个选项去掉(如图1)。   小提示:可能有的读者会问,为什么要将“显示友好HTTP错误信息”去掉?这是因为只有去掉它,才能显示错误信息的真实信息,否则浏览器返回的错误信息是诸如此类信息:505错误,405错......

阅读全文(3867) | 评论:0

数据库下载攻防大全(2005-11-12 16:19:00)

摘要:防止你的数据库下载的几个方法 现在总结如下有效方法:     1. 修改数据库名。这是常用方法,将数据库名该成怪异名字或长名字,以防别人猜测。一旦被人猜到,别人还是能下载数据库文件,但几率不大。如将数据库database.mdb改成dslfjds$^&ijjkgf.mdb等      2. 修改数据库后缀。一般改成database.asp 、database.asa、 database.inc、 database.cgi、 database.dll等等,注意要在IIS中设置这些后缀的文件不能被解析。       3. 将数据库database.mdb改成#database.mdb 。 这是最简单有效的办法。      分析:假设别人得到你的数据库地址串将是:   http://www.yourserver.com/yourfolder/#database.mdb       但实际上他得到是:http://www.yourserver.com/yourfolder/       因为#在这里起到间断符的作用,地址串遇到#号,自动认为访问地址串结束。注意:不要设置目录可访问。用这种方法,不管别人用何种工具都无法下载,如flashget,网络蚂蚁等。       注:只要数据库文件名任何地方含有'#',别人都无法正常下载。同理,空格号也可以起到'#'号作用,但必须是文件名中间出现空格。       4. 将数据库连接文件放到其他虚拟目录下。       5. 将 Access数据库加密。       以上只列出常用之法,为增加保险性,可以几种方法同时使用。       数据库下载漏洞攻击技术 var arrBaiduCproConfig=new Array(); arrBaiduCproConfig['uid'] = 2214; arrBaiduCproConfig['n'] = 'sayyescpr'; arrBaiduCproConfig['tm'] = 48; arrBaiduCproConfig['cm'......

阅读全文(4581) | 评论:0

在VB6.0中使ACCESS数据库在网络使用中保持同步(2005-10-15 12:06:00)

摘要:在VB6.0中使ACCESS数据库在网络使用中保持同步 作者: 倪秉书 评价: 上站日期: 2001-09-01 内容说明: 来源:   
  同步(Synchronization)是数据库在网络环境中应用所要涉及到的一个重要概念。其基本过程大致分以下几个步骤:首先把一个数据库设为可复制副本属性,使其成为设计正本(VB中称设计原版,ACCESS中称设计母版);然后根据应用程序的实现需要从设计正本复制出多个副本(VB中称复本),这些副本组成一个副本集合(设计正本也被看做是第一个的、初始的副本);最后在集中任何复本的数据或结构被更改会时启用同步机制把改变发送并且应用于此复本集中的其他成员,使得副本集中的成员在数据或结构上保持一致性。实现同步的这一过程被称为同步化。VB6.0为实现同步,在数据库对象中提供了多个属性与方法来实现这一过程,以下介绍主要的几个属性与方法,分别对应同步化的几个步骤: 
  1.Replicable属性: 
  
  Replicable属性用来使一个数据库对象或数据库中的表对象、查询对象等对象成为可复制副本的,即成为设计正本。但数据库对象并不提供Replicable这一属性,因此首先要用CreatePropety方法来创建它,然后把它添加到对象的属性集中,最后再给它赋值,使数据库成为设计正本。对于数据库对象而言,把Replicable属性设置为“T”将使数据库对象成为可复制的。以下代码将使VB6.0安装目录下附带的Nwind.mdb数据库成为一个设计正本(为确保安全建议在操作前备份这一库文件): 
  
  Private Sub Command1_Click()
  Dim dbNwind As Database   
    '如果末引用DAO则一定要先引用
  Dim prpNew As Property
  Set dbNwind = OpenDatabase("Nwind.mdb", True)
  ......

阅读全文(3217) | 评论:1

在Access数据库中实现密码管理的另一种方式 (2005-10-15 11:57:00)

摘要: 在Access数据库中实现密码管理的另一种方式 作者: 王小娟 评价: 上站日期: 2001-09-01 内容说明: 来源:
  大 家 都 知 道, 数 据 库 的 安 全 性 是 很 重 要 的, 它 直 接 影 响 到 数 据 库 的 广 泛 应 用。 用 户 可 以 采 用 任 意 一 种 方 法 来 保 护 数 据 库 应 用 程 序, 也 可 以 将 几 种 方 法 结 合 起 来 使 用。 利 用Access 数 据 库 自 身 提 供 的 加 密 功 能 及 其 他 保 护 方 法 是 很 容 易 的, 我 就 不 多 说 了。 在Access 数 据 库 中, 嵌 入 了 一 种 很 强 的 数 据 库 操 作 语 言 — —Visual Basi......

阅读全文(3067) | 评论:0