`

外键的简单认识

阅读更多
外键的作用很重要,最好在数据库中使用。举一个例子比较明白。

比如有两张表格,一个是学生档案,另一个是上学期间的成绩单

档案中会有:学号,姓名。(学号为主键)  
成绩单有(简化过的):学期号,学号,平均分数(学期号,学号两个同时为主键,学号同时为外键)  
为了保证成绩单上的数据有效,所以要求录入学号时,必需保证档案中有这个学号,否则就不能录入。  
从而保证了成绩单上的成绩数据的引用完整,否则将会是垃圾数据。



用程序控制,有很多缺点;录入成绩单时为了保证学号有效,首先要搜索档案,当档案很大时会影响效率。程序控制并不能保证百分之百引用完整性,尤其是并发操作。



说一个特例(主要是说明程序控制不好):  
A录入成绩单,B在编辑档案。  
当A录入张三的成绩,保存时,搜索张三存在,于是程序下一步就要存盘,但这时B恰好把张三删除了。但A那边的程序并不知道,于是就把一条垃圾数据存进数据库中了。  
此例的操作流程正确与否不重要,但说明了程序控制并不是好方法。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xianyu_0418/archive/2009/08/21/4469072.aspx
分享到:
评论

相关推荐

    21天学会SQL

    9.2 使用简单SELECT语句查询数据 171 9.2.1 查询表中所有数据 171 9.2.2 查询表中指定字段的数据 172 9.2.3 查询结果中去除重复信息 174 9.2.4 根据现有列值计算新列值 174 9.2.5 命名新列 175 9.2.6 将查询结果保存...

    SQL语言艺术

    索引与外键 同一字段,多个索引 系统生成键 索引访问的不同特点 4 机动灵活:思考SQL语句 SQL的本质 掌握SQL艺术的五大要素 过滤 5 了如指掌:理解物理实现 物理结构的类型 冲突的目标 把索引当成数据仓库 记录强制...

    数据库设计思想.docx

    正确认识数据冗余 主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现, 才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复...

    图书馆数据库管理系统.doc

    对于前者要求建立数据一致性和完整性强、安 全性好的库,而对于后者则要求应用程序功能完备,并简单易使用。因此,文章结合图 书馆数据库的要求,对SQL Server 2000数据库系统、SQL语言原理和VisualBasic6.0技术进行...

    SQLServer数据库设计.pdf

    凡是 可以互相区别⽽且可以被⼈们认识的事、物、概念等统统抽象为实体。多个相同的类型的实体可以称为实体集(Entity set)。因此,在E-R 数据模型中,也有型与值之分;实体可以作为型来定义,每个实体可以是它的...

    执法案件管理系统-数据库设计.docx

    引言 编写此文档目的 此文档主要是指导开发人员进行系统开发,指导实施人员对执法案件管理系统数据库结构有一定的了解,指导数据库人员可以对执法案件管理系统的数据库表结构有一定的认识和应用。 命名 语言 命名...

    SQL数据库设计.doc

    凡是可以互相区别而且可以被人们认识的事、物 、概念等统统抽象为实体。多个相同的类型的实体可以称为实体集(Entity set)。因此,在E- R数据模型中,也有型与值之分;实体可以作为型来定义,每个实体可以是它的...

    精通sql结构化查询语句

    第1章 SQL语言的概述 1.1 认识SQL语言 1.1.1 什么是SQL语言 1.1.2 SQL的历史与发展 1.1.3 SQL的功能和优点 1.2 认识数据库 1.2.1 什么是数据库 1.2.2 数据库系统的结构 1.2.3 数据库系统的工作流程 1.2.4 常见的SQL...

    Powerbuilder9.0实用教程源代码

    1.5 用5分钟制作一个简单实例 22 1.5.1 实例运行界面 22 1.5.2 新建一个工作空间对象 22 1.5.3 新建一个应用程序对象 23 1.5.4 创建窗体 23 1.5.5 为应用程序添加open事件代码 25 1.6 小结 27 1.7 习题 27 ...

    收获不知Oracle

    1.2.2 角色自我认识有讲究 9 1.3 明白学以致用方有意义 11 第2章震惊,体验物理体系之旅 13 2.1 必须提及的系列知识 13 2.2 物理体系从老余开店慢慢铺开 16 2.2.1 老余的三个小故事 16 2.2.1.1 顾客的尺寸 16 2.2....

Global site tag (gtag.js) - Google Analytics