Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103781990
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-04-20 20:39:58

    您可能会注意到,已经读了本书这么多页,但是还没有看到几句行话和术语。虽然我们大致提了一下怎样利用样例数据库,但事实上,关于什么是“数据库”,我们一点东西都还没有介绍。不过,我们现在打算设计该数据库,然后开始实现它,这样就不能再避而不谈数据库术语了。介绍数据库术语就是本节的目的。本节介绍的一些术语全书都要用到,因此必须对其熟悉。所幸的是,关系数据库中的许多概念是相当简单的。事实上,关系数据库的吸引力主要来源于其基本概念的简单性。
    1.3.1基本术语
    在数据库世界中,MySQL归类为关系数据库管理系统(RDBMS)。所谓关系数据库管理系统的含义如下:
    ■ 数据库(RDBMS 中的“DB”)是存储信息的仓库,以一种简单的、规则的方式进行组织:
    ■ 数据库中的数据集组织为表。
    ■ 每个表由行和列组成。
    ■ 表中每行为一个记录。
    ■ 记录可包含几段信息;表中每一列对应这些信息中的一段。
    ■ 管理系统(“MS”)是允许通过插入、检索、修改或删除记录来使用数据的软件。
    ■ “关系”(“R”)一词表示一种特殊种类的DB MS,它通过寻找相互之间的共同元素使存放在一个表中的信息关联到存放在另一个表中的信息。关系数据库的能力在于它能够从这些表中方便地取出数据,并将关联各表中的信息相结合得出问题的答案,这些答案只依据单个表的信息是不可能得到的。这里有一个例子,示出了关系数据库怎样将数据组织成表并将一个表中的信息与另一个表中的信息相关联。假定您管理一个含有标题广告服务的Web 站点。您与公司有协议,这些公司希望有人在拜访您的站点上的网页时显示他们的广告。每当一个拜访者点击您的页面一次,您就向该拜访者的浏览器提供了嵌在页面中的广告的一次服务,并且给公司估算一点费
用。为了表示这些信息,要保存三个表(请参阅图1- 1)。一个是company 表,它含有公司名、编号、地址和电话号码等列。另一个是ad 表,它列出广告编号、拥有该广告的公司的编号以及每次点击时的计费数。第三个hit 表按广告编号记录广告点击次数以及广告提供服务的日期。
    利用单个表的信息可以回答某些问题。为了确定签协议的公司数目,只需对company 表中的行数计数即可。类似地,为了确定某个给定时间段中的点击次数,只需查看hit 表即可。其他问题要更为复杂一些,而且必须考虑多个表以确定答案。例如,为了确定Pickles.公司的每个广告在7月14日点击了多少次,应该按如下步骤使用这些表:
    1) 查询company 表中的公司名(Pickles, Inc)以找到公司编号( 14)。
    2) 利用公司编号查找ad 表中匹配的记录以便能够确定相关的广告编号。有两个这样的广告,48 和10 1。
    3) 对ad 表中匹配的每个记录,利用该记录中的广告编号查找hit 表中在所需日期范围内的匹配记录,然后对匹配的记录进行计数。广告编号为48 的匹配记录有三个,广告编号为101的匹配记录有两个。听起来很复杂!而这正是关系数据库系统所擅长的。这种复杂性在某种程度可以说是一种幻觉,因为上述每一步只不过是一个简单的匹配操作,它通过将一个表的行中的值与另一个表的行中的值相匹配,把一个表与另一个表相关联。这个简单的操作可以各种方式使用来回答各种各样的问题。每个公司有多少个不同的广告?哪个公司的广告最受欢迎?每个广告带来的收入是多少?当前记账期中每个公司的总费用是多少?现在我们已经介绍了关系数据库的理论,足以理解本书其余部分了,我们不必探究第三范式、实体关系图以及所有这一类的东西。如果您确实需要了解这些东西,那就太令人恐怖了,而且这也不是地方。建议您从阅读C.J.Date 和E . F.Codd 的某些书籍入手。
 

阅读(343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~