已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
备课记录 备课记录 2011 讲授章节 题目 互动 教学目标 2 分 1 完整性的概念 2 使用约束 3 使用规则 4 使用默认使用 identity 列 5 例子 6 作业 回顾旧知识 2 分 复习 提问 测试 演示 什么是数据的完整性 新课教学 围绕目标 展开设计 4 分 必须讲的理论知识 1 完整性的概念 数据完整性是指存储在数据库中的数据正确无误 并且相关数据具有一致性 数据完整性是指存储在数据库中的数据正确无误 并且相关数据具有一致性 数据库中的数据是否完整 关系到数据库系统能否真实的反映现实世界 数据库中的数据是否完整 关系到数据库系统能否真实的反映现实世界 例如 在 学生 表中学生的学号要具有惟一性 学生性别只能是男或女 其所在系部 专业 班级必须是存在的 否则 就会出现数据库中的数据与现实不符的现象 如果数据库中总存在不完整的数据 那么它就没有存在的必要了 因此实现数 据的完整性在数据库管理系统中十分重要 2 分类 根据数据完整性机制所作用的数据库对象和范围不同 数据完整性可分 实体完整性 域完整性 引用完整性 用户定义完整性 1 实体完整性 实体是指表中的记录 行 一个实体就是表中的一条记录 实体完整性 实体完整性 要求在表中不能存在完全相同的记录 而且每条记录都要具有一个非空且不重要求在表中不能存在完全相同的记录 而且每条记录都要具有一个非空且不重 复的主键值复的主键值 这样就可以保证数据所代表的任何事物都不存在重复 可以区分 例如 学生表中的学号必须惟一 并且不能为空 这样就可以保证学生记录的 惟一性 实现实体完整性的方法主要有主键约束 惟一索引 惟一约束和指定实现实体完整性的方法主要有主键约束 惟一索引 惟一约束和指定 IDENTITY 属性 属性 2 域完整性 也称为列完整性 指定一个数据集对某一个列是否有效和确定是否允许为也称为列完整性 指定一个数据集对某一个列是否有效和确定是否允许为 空值空值 域完整性要求向表中指定列输入的数据必须具有正确的数据类型 格式正确的数据类型 格式 以及有效的数据范围 以及有效的数据范围 例如 假设现实中学生的成绩为百分制 则在 课程注 册 表中 对成绩列输入数据时 不能出现字符 也不能输入小于 0 或大于 重点标注 提问 2 至 4 人 问题 1 互动 2 鼓励学 生操作 演示 3 设计题 目 学 生分组 4 检验学 习掌握 效果 100 的数值 实现域完整性的方法主要有实现域完整性的方法主要有 CHECK 约束 外键约束 默认约束 约束 外键约束 默认约束 非空约束非空约束 规则以及在建表时设置的数据类型 规则以及在建表时设置的数据类型 3 引用完整性 引用完整性又称为参照完整性 引用完整性是指作用于有关联的两个或有关联的两个或 两个以上的表两个以上的表 通过使用主键和外键或主键和唯一键之间的关系通过使用主键和外键或主键和唯一键之间的关系 使表中的键 值在所有表中保持一致 s 实现引用完整性的方法主要有外键约束 4 用户定义的完整性 用户定义的完整性是应用领域需要遵守的约束条件 其允许用户定义不 属于其他任何完整性分类的特定业务规则 所有的完整性类型都支持用户定义 完整性 使用约束 1 约束 约束是 SQL Server 提供的自动强制数据完整性的一种方法 它是通过定 义列的取值规则来维护数据的完整性 2 约束的类型 1 PRIMARY KEY 主键 约束 主键约束用来强制数据的实体完整性 它是在表中定义一个主键主键约束用来强制数据的实体完整性 它是在表中定义一个主键 来唯一标识表中的每行记录 来唯一标识表中的每行记录 主键约束有如下特点 每个表中只能有一个 主键 主键可以是一列 也可以是多列的组合 主键值必须唯一并且不能 为空 对于多列组合的主键 某列值可以重复 但列的组合值必须唯一 2 UNIQUE 唯一 约束 唯一约束用来强制数据的实体完整性 它主要用来限制表的非主唯一约束用来强制数据的实体完整性 它主要用来限制表的非主 键列中不允许输入重复值 键列中不允许输入重复值 唯一约束有如下特点 一个表中可以定义多个 唯一约束 每个唯一约束可以定义到一列上 也可以定义到多列上 空值 可以出现在某列中一次 3 NOT NULL 非空 约束 非空约束用来强制数据的域完整性 它用于设定某列值不能为空 非空约束用来强制数据的域完整性 它用于设定某列值不能为空 如 果指定某列不能为空 则在进行插入记录时 此列必须要插入数据 4 CHECK 检查 约束 检查约束用来强制数据的域完整性 它使用逻辑表达式来限制表中检查约束用来强制数据的域完整性 它使用逻辑表达式来限制表中 的列可以接受哪些数据值的列可以接受哪些数据值 5 DEFAULT 默认 约束 默认约束用来强制数据的域完整性 它为表中某列建立一个默认值 默认约束用来强制数据的域完整性 它为表中某列建立一个默认值 当用户插入记录时 如果没有为该列提供输入值 则系统会自动将默认值当用户插入记录时 如果没有为该列提供输入值 则系统会自动将默认值 赋给该列 赋给该列 默认值可以是常量 内置函数或表达式 使用默认约束可以提 高输入记录的速度 6 FOREIGN KEY 外健 约束 外键是指一个表中的一列或列组合 它虽不是该表的主键 但却是外键是指一个表中的一列或列组合 它虽不是该表的主键 但却是 另一个表的主键 通过外键约束可以为相关联的两个表建立联系 实现数另一个表的主键 通过外键约束可以为相关联的两个表建立联系 实现数 据的引用完整性 维护两表之间数据的一致性关系 据的引用完整性 维护两表之间数据的一致性关系 3 列约束与表约束 当约束被定义于某个表的一列时称为列约束 定义于某个表的多列时称 为表约束 当一个约束中必须包含一个以上的列时 必须使用表约束 4 创建主键约束 1 使用 SQL Server Management Studio 创建 1 启动 SQL Server Management Studio 在 对象资源管理器 窗口中 依次展开数据库 student 表节点 选择 教学计划 表 单击右键 在弹出的快捷菜单中选择 修改 命令 打开 表设计器 对话框 2 在 表设计器 对话框中 选择需要设为主键的字段 如果需要选择 多个字段时 可以按住 Ctrl 键 同时用鼠标单击每个要选择的字段 在此 依次选择课程号 专业代码和专业学级字段 3 选好字段后 右键单击选择的某个字段 在弹出的快捷菜单中选择 设置主键 命 4 执行命令后 在作为主键的字段前有一个钥匙样图标 也可以 在选择好字段后 单击工具栏中的 钥匙 工具按钮 设置主键 5 设置主键完成 创建表时创建主键 create table man4 id int constraint py primary key 包含两个列的主键 create table student sid int kid int constraint pyq primary key sid kid 在已有的表中创建主键 alter table man5 add constraint py primary key id 或者 alter table stu add primary key id 删除主键 alter table student drop py 5 UNIQUE 约束 当表中存在主键 为保证其它的字段值也惟一时 应该创建惟一约束 一个表中可以创建多个惟一约束 惟一约束是一列 也可以是多列的 组合 在惟一约束列中 空值可以出现一次 UNIQUE 约束主要是用来确保不受主键约束的列上的数据的惟一性 主键与 UNIQUE 约束的区别主要为 UNIQUE 约束 主要用在非主键的一列或多列上要求数据惟一的情况 约束 主要用在非主键的一列或多列上要求数据惟一的情况 UNIQUE 约束 允许该列上存在约束 允许该列上存在 NULL 值 而主键决不允许出现这种情值 而主键决不允许出现这种情 况 况 可以在一个表上设置多个可以在一个表上设置多个 UNIQUE 约束 而在一个表中只能设置一个主约束 而在一个表中只能设置一个主 键约束 键约束 1 使用 SQL Server Management Studio 创建惟一约束 案例 在 student 数据库中 为 系部 表中的 系部名称 字段创建一个惟一约 束 1 在 对象资源管理器 窗口中 依次展开数据库 student 表节点 右键 单击 系部 表 在弹出的快捷菜单中单击 修改 命令 打开 表设计器 对话框 在 表设计器 中 右键单击任意字段 在弹出的快捷菜单中单击 索引 键 命令 打开 索引 键 对话框 2 单击 添加 命令按钮 系统给出系统默认的惟一约束名 IX 系部 显 示在 选定的主 惟一或索引 列表框中 单击选中惟一约束名 IX 系部 在其 右侧的 属性 窗口中 可以修改约束名称 设置约束列等 3 单击 属性 窗口中 常规 中的 列 属性 在其右侧出现 按钮 单击该按 钮 打开 索引列 对话框 在列名下拉列表框中选择 系部名称 在排序顺序 中选择 降序 设置创建惟一约束的列名 4 设置完成后 单击 确定 按钮 回到 索引 键 对话框 修改 常规 属性 中 是惟一的 属性值为 是 最后 关闭 索引 键 对话框和 表设计器 对话框 保存设置 完成惟一约束创建 alter table man add constraint un unique cid 或者 alter table stu add unique name 6 CHECK 约束 CHECK 核查 约束通过检查输入表列的数据的值来维护值域的完整 性 核查约束通过对一个逻辑表达式的结果进行判断来对数据进行核 查 注意 可以在一列上设置多个核查约束 也可以将一个核查约束应用 于多列 当一列受多个核查约束控制时 所有的约束按照创建 的顺序 依次进行数据有效性的核查 一般来说 可以在下面两种情况下 设置核查约束无效 在执行 INSERT 语句或 UPDATE 语句过程 事先知道对数据的增 加或修改将违反核查约束的规定 但这些操作又是必须的 在复制进行时 在进行不同服务器间的复制操作的过程中 由于 两个服务器之间设置的核查约束不一致 如果不事先 使核查约束 无效 则有可能使某些数据无法进行复制 右击 check 约束进行设置 create table man4 id int not null sex char 2 default 男 check sex 男 or sex 女 或者 alter table man add check age 20 and age 30 7 默认约束 default 用户在输入数据时 如果没有给某列赋值 该列的默认约束将自动为该列指定 默认值 默认值可以是常量 内置函数或表达式 使用默认约束可以提高输入 记录的速度 1 使用 SQL Server Management Studio 创建默认约束 案例 在 student 数据库中 为 教学计划 表的 课程类型 字段创建默认值 其默认值为 公共必修 其操作步骤如下 1 启动 SQL Server Management Studio 在 对象资源管理器 窗口中 依次 展开数据库 student 表节点 2 右键单击 教学计划 表 在弹出的快捷菜单中选择 修改 命令 打开 表 设计器 对话框 如课本图 7 2 所示 3 单击需要设置默认的列 如 课程类型 在下面列属性设置栏的 默认 值或绑定 选项对应的输入框中 输入默认值即可 如 公共必修 4 设置完成后 关闭表设计器 create table person id int not null sex char 2 default 男 或者 alter table person3 add constraint persons sex default 男 for sex 或者 alter table stu add default 男 for sex 8 外键约束 外键主要用来维护两个表之间的一致性关系 外键的建立主要是通过 将一个表中的主键所在列包含在另一个表中 这些列就是另一个表的 外键 外键约束不仅可以与另一张表上的主键约束建立联系 也可以与另一 张表上的 UNIQUE 约束建立联系 外键约束上允许存在为 NULL 的值 则针对该列的外键约束核查将被 忽略 外键同时也限制了对主键所在表的数据进行修改 当主键所在的表的 数据被另一张表的外键所引用时 用户将无法对主键里的数据进行修 改或删除 除非事先删除或修改引用的数据 当一个新的数据加入到表格中 或对表格中已经存在的外键上的数据 进行修改时 新的数据必须存在于另一张表的主键上 1 使用 SQL Server Management Studio 创建外键约束 案例 在 student 数据库中 为 学生 表的 班级代码 列创建外键约束 从 而保证在 学生 表中输入有效的 班级代码 其操作步骤如下 1 启动 SQL Server Management Studio 在 对象资源管理器 窗口 中 依次展开数据库 student 表节点 2 右键单击 学生 表 在弹出的快捷菜单中选择 修改 命令 打开 表设 计器 对话框 在 表设计器 中 右键单击任意字段 在弹出的快捷菜单中单 击 关系 命令 打开 外键关系 对话框 3 单击 添加 命令按钮 系统给出默认的外键约束名 FK 学生 学生 显示在 选定的关系 列表中 4 单击 FK 学生 学生 外键约束名 在其右侧的 属性 窗口中单击 表和 列规范 属性 然后 再单击该属性右侧的 按钮 打开 表和列 对话框 如 图 7 7 所示 5 在 表和列 对话框中 修改外键的名称 选择主键表及表中的主键 以 及外键表中的外键 修改后结果如图 7 7 所示 单击 确定 命令按钮 回到 外键关系 对话框 如图 7 8 所示 6 单击 关闭 按钮 完成外键的设置 create table aa id int primary key sid int foreign key references man id 追加外键约束 alter table stu add foreign key cid references class id 建表三大范式 建表三大范式 第一范式 1NF 无重复的列 所谓第一范式是指数据库表的每一列都是不分割的基本数据项 同一列中不能所谓第一范式是指数据库表的每一列都是不分割的基本数据项 同一列中不能 有多个值 即实体中的某个属性不能有多个值或不能有重复的属性 有多个值 即实体中的某个属性不能有多个值或不能有重复的属性 如果出现 重复的属性 就可能需要定义一个新的实体 新的实体由重复的属性构成 新 实体由重复的属性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数控磨工安全操作评优考核试卷含答案
- 工业气瓶防倾倒措施及其依据
- 河北省2026届高三年级上册一轮复习阶段性检测化学(A卷)试卷(含答案)
- 频率范围设定的技术指导
- 高效解耦控制算法开发实施规范
- 湖北省黄石市2025-2026学年九年级(上)10月月考化学试卷(含答案)
- 教育学毕业论文探析
- 教育领域研究剖析
- 揭秘光的行为
- 第十三章 三角形全章压轴题专项卷(必考点分类集训)(人教版2024)(解析版)
- 大跨度钢结构厂房吊装方案
- 2025年挖掘机驾驶员岗位招聘面试参考试题及参考答案
- 2025年中央八项规定精神学习教育题库及答案
- 老年人进食照护课件
- 焊工证复审考试题及答案
- 福建省福州市【统招专升本】计算机真题(含答案)
- 统编版九年级上册语文期末复习:全册重点考点手册
- 慢性心力衰竭患者姑息治疗与安宁疗护方案
- 2025内蒙古巴彦淖尔市交通投资(集团)有限公司(第二批)招聘40人笔试考试参考试题及答案解析
- 烘焙主管述职报告
- 广东信息技术考试题目及答案
评论
0/150
提交评论