下载此文档

数据库应用基础系列- 第1章 数据库基础--.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
数据库应用基础系列- 第1章 数据库基础--.doc数据库应用基础系列: 第1章数据库基础>>
一个肤浅的定义什么是数据库?这是一个很难回答的问题,经典的教科书往往都是从信息、数据说起,直到数据库。这里我想直接给出一个不准确的,肤浅的定义(这也是最早的FoxBASE时代,绝大多数人对数据库的认识):
【定义】:(1)一个库便是一张二维表格,表由表头(字段)与表的内容(记录)组成。(2)建立在该表上的操作主要包括:检索、插入、删除、更新。
这个定义与现有数据库存在很大差异,但并不影响作为这部分内容的开端。从上面的定义中我们可以看到,数据库中记录信息的表与建立在表上的操作是密不可分的。另外,常见的库操作有四种:检索、插入、删除、更新。
遭遇异常在这个原始的概念驱使下,很多人就开始了数据库的设计历程,让我们来看这样一个例子:
【要求】:构建一用来描述在校学生的数据库,要求记录的学生如下属性:学号、姓名、年龄、系别。
很多人会觉得这太简单了,在上面的数据库概念的指引下,我们可以很容易的给出如下设计:
表 1-1 初始的数据库设计
学号姓名年龄系别1张三20经管系2李四22机械系3王五21经管系4赵六23自动化该设计很好的将学号、姓名、年龄、系别属性记录了下来,并且支持检索、插入、删除、更新操作。然而这是不是一个完美的设计呢?在讨论之前让我们先回答几个问题(尽管很多人对以下几个问题嗤之以鼻)。
问题1:学校有几个系?(答:3个)
问题2:经管系有几个学生?(答:2个)
每次讲到这里,总有很多学生对此不屑一顾,当我问到你们是怎么知道的?时候,很多人只是说看出来的呗。其实这两个问题不是用看出来就可以解释清楚的。最好的回答应当是数出来的(晕!)。问题1的答案是通过去掉系别列中的重复行后,数一数剩余的行数得到的。问题2的答案是通过数一数系别为经管系的行数得到的。那好,我们先把这两种解题方法放在这里以备后面查阅。
让我们再来看看建立在该表上的几种操作,检索已经说过了,这里不再提,我们看看插入、删除以及更新操作,这里有如下几个要求:
1、国家刚刚审批通过允许学校开设一个新的系艺术系,然而艺术系的学生要等到两个月后才能招进来。
2、李四毕业了,不再是在校学生了,将其删除。
3、经管系现要更名成经济管理学院。
呵呵,我们已经开始遭遇插入异常、删除异常、更新异常了。如何插入一个没有学生的系呢?这是一个两难的问题。由于学校有艺术系,为了能够在检索学校有几个系时检索到4,我们不得不插入一行,该行的系别字段记录上艺术系,而艺术系没有学生,所以我们还得让学号、姓名、年龄字段空着(如表 1 2所示)。
表 1-2 插入艺术系
学号姓名年龄系别1张三20经管系2李四22机械系3王五21经管系4赵六23自动化(空)(空)(空)艺术系此时如果我再问艺术系有几个学生时,恐怕有些人的脸色就不那么好看了吧。这回通过数一数系别为艺术系的行数就无法得到准确的艺术系人数答案了。因此解题逻辑不得不也发生变化:如果人数为1,判断学号、姓名、年龄是否为空,如果为空则为0人,否则为1人。你觉得这回的检索还那么简单吗?
再来看删除操作也不是想删就删了。如果你把李四一行删除,你会惊奇的发现机械系没有了!所以也不得不修改删除逻辑,如果某系只剩下最后一条记录,就不能删除了

数据库应用基础系列- 第1章 数据库基础-- 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人pppccc8
  • 文件大小63 KB
  • 时间2018-01-02