数据库基本概念(一)

来源:互联网 发布:herom2数据转换gom 编辑:程序博客网 时间:2024/06/06 00:05

 数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)。

           人们通常用数据库这个术语来代表他们使用
     的数据库软件。这是不正确的,它是引起混淆的根源。确切
     地说,数据库软件应称为DBMS(数据库管理系统)。数据库
     是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备
     上的文件,但也可以不是。在很大程度上说,数据库究竟是
     文件还是别的什么东西并不重要,因为你并不直接访问数据
     库;你使用的是DBMS,它替你访问数据库。表名 表名的唯一性取决于多个因素,如     

     数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名,
    但在不同的数据库中却可以使用相同的表名。

表(table) 某种特定类型数据的结构化清单。

        这里关键的一点在于,存储在表中的数据是一种类型的数据或一个
清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这
样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。
数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,
这表示数据库中没有其他表具有相同的名字。

       表具有一些特性,这些特性定义了数据在表中如何存储,如可以存
储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表
的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及
整个数据库(和其中表的关系)。模式(schema) 关于数据库和表的布局及特性的信息。

      模式(schema) 关于数据库和表的布局及特性的信息。
是模式还是数据库? 有时,模式用作数据库的同义词。遗憾
的是,模式的含义通常在上下文中并不是很清晰。本书中,模

式指的是上面给出的定义。

     表由列组成。列中存储着表中某部分的信息。
列(column) 表中的一个字段。所有表都是由一个或多个列组
成的。

理解列的最好办法是将数据库表想象为一个网格。

     数据类型(datatype) 所容许的数据的类型。每个表列都有相
应的数据类型,它限制(或容许)该列中存储的数据

     行(row) 表中的一个记录

     表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。

     主键:表中每一行都应该有可以唯一标识自己的一列(或一组列)

主键(primary key) 一列(或一组列),其值能够唯一区分表
中每个行。

    主键用来表示
一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安
全的方法保证只涉及相关的行。

    表中的任何列都可以作为主键,只要它满足以下条件:
  任意两行都不具有相同的主键值;
  每个行都必须具有一个主键值(主键列不允许NULL值)。

主键通常定义在表的一列上,但这并不是必需的,也可以一起使用
多个列作为主键。在使用多列作为主键时,上述条件必须应用到(构成主
键的所有列),所有列值的组合必须是唯一的(但单个列的值可以不唯一)。


主键的最好习惯 数据库内强制实施的规则外,应该坚持的
几个普遍认可的最好习惯为:
  不更新主键列中的值;
  不重用主键列的值;
  不在主键列中使用可能会更改的值。(例如,如果使用一个
名字作为主键以标识某个供应商,当该供应商合并和更改其
名字时,必须更改这个主键。)