数据库应用技术 SQL Server 2005.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
第六章 数据库技术基础 本章要点  数据库系统概述 数据库系统概述  关系数据库 关系数据库  数据库设计 数据库设计.
Chapter 3: SQL.
2012年9月等级考试辅导 数据库设计基础.
Access数据库基础与应用(第2版).
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
An Introduction to Database System
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第3章 关系数据库的基本理论 冯万利.
Principles and Applications of the Database
河北化工医药职业技术学院 数据库原理及应用教案.
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结.
An Introduction to Database System An Introduction To Database System
数据库原理及设计 --作业.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
软件设计师培训.
Database Principles & Applications
第5章 数据库基础 5.1 数据库系统概述 5.2 数据模型 5.3 关系模型 5.4 关系数据库 5.5 常见的关系数据库管理系统简介.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第4章 数据库技术及应用 软件开发技术基础 计算机教学实验中心 2006.
第2章 关系数据库系统.
An Introduction to Database System An Introduction to Database System
第7章 关系数据库规范化理论 7.1 函数依赖 7.2 关系规范化 7.3 关系模式的分解准则.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
《Visual FoxPro程序设计基础》
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
作业4讲评.
第五章 数据库完整性 5.1 实体的完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
数据库技术 第二章 关系数据库 中国科学技术大学网络学院 阚卫华.
第 2 章 規劃關聯式資料庫.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
管理信息结构SMI.
元素替换法 ——行列式按行(列)展开(推论)
SQL SERVER 一些经典语句 1.
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
An Introduction to Database System
第2章 关系数据库数学模型 本章导读: 2.1 关系模型概述 2.2 关系代数的原理 2.3 关系代数 2.4 关系演算
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第2章数据基础知识 2.1数据库基本概念 2.1.1数据库技术的发展
第二章 Java语言基础.
数据库设计是信息系统的核心组成部分 从现实世界到数据世界的转换的过程
实验二讲评 … 张榆….
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
数据库系统概论 An Introduction to Database System
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
An Introduction to Database System An Introduction to Database System
C语言程序设计 主讲教师:陆幼利.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VB与Access数据库的连接.
项目二:HTML语言基础.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
Visual Basic程序设计 第13章 访问数据库
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第五章关系数据库设计理论 5.1 数据依赖 5.2 范式 5.3 关系模式的规范化.
An Introduction to Database System
第3章 关系数据库 内容提要 关系模型的数据结构 关系模型的常用术语 关系数据库的完整性概念 数据库的关系运算 函数依赖的定义
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
基于列存储的RDF数据管理 朱敏
§4.5 最大公因式的矩阵求法( Ⅱ ).
Chapter 14 Databases.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

数据库应用技术 SQL Server 2005

第2章 关系数据库 能力目标: 任务设计: 能运用关系数据模型的基本知识将概念模型转换为关系模型。 SQL Server 2005 能力目标: 能运用关系数据模型的基本知识将概念模型转换为关系模型。 能应用关系规范化方法对关系模型进行规范化和优化。 能够根据完整性规则对关系模型进行实体完整性、用户定义完整性和参照完整性的设计。 初步认识SQL语言和T-SQL语言。 任务设计: 将项目的E-R数据模型转换为关系模型。 对转换的关系模型进行规范化(3NF)和优化。 根据项目需求进行主码设置、外码设置和约束设置。

第2章 关系数据库 知识要求: 关系数据模型的基本定义和基本术语。 关系的集合运算并、交、差和笛卡尔积。 关系的投影、选择和连接运算。 SQL Server 2005 知识要求: 关系数据模型的基本定义和基本术语。 关系的集合运算并、交、差和笛卡尔积。 关系的投影、选择和连接运算。 关系模型完整性规则的概念。 概念模型到关系模型转换的基本方法。 关系规范化的基本概念和关系的规范化方法。

2.1 关系模型概述 SQL Server 2005 关系模型组成要素 1 关系模型特点 2

2.1.1 关系模型组成要素 关系数据结构 关系操作集合 关系完整性约束 SQL Server 2005 关系数据结构 数据结构是所研究的对象类型的集合。描述系统的静态特征。DBMS的DDL实现数据库的数据结构定义功能。 关系操作集合 数据操作是指对数据库中各种数据对象允许执行的操作的集合。 主要有检索和更新(包括插入、删除、修改)。描述系统的动态特征。 DBMS的DML实现数据库的数据操作功能。 关系完整性约束 数据的约束条件是一组完整性规则的集合。完整性规则是数据模型中数据及其联系所具有的制约和依存规则,保证数据的正确性、有效性和一致性。 DBMS的DDL和DML实现数据库的数据完整性约束功能。

2.1.3 关系模型的特点 数据结构单一或模型概念单一化 采用集合运算 数据完全独立 数学理论支持 实体和实体之间的联系用关系表示 SQL Server 2005 数据结构单一或模型概念单一化 实体和实体之间的联系用关系表示 关系的定义也是关系(元关系) 关系的运算对象和运算结果还是关系 采用集合运算 关系是元组的集合,所以对关系的运算就是集合运算 运算对象和结果都是集合,可采用数学上的集合运算 数据完全独立 只需告诉系统“做什么”,不需要给出“怎么做” 程序和数据各自独立 数学理论支持 有集合论、数理逻辑做基础 以数学理论为依据对数据进行严格定义、运算和规范化

2.2 关系数据结构 SQL Server 2005 1 关系 2 关系术语 3 关系术语与其他术语的对照

关系的基本定义 2.2.1 关系 关系是满足一定条件的二维表,称为关系(relation),在关系模型中, SQL Server 2005 关系的基本定义 关系是满足一定条件的二维表,称为关系(relation),在关系模型中, 无论概念世界中的实体还是实体之间的联系均由关系(表)来表示。 例如:学生情况表 Student,表2-1 。 SID Sname Sex Birthday Specialtyt 2005216001 赵成刚 男 1986年5月 计算机应用 2005216002 李敬 女 1986年1月 软件技术 2005216003 郭洪亮 1986年4月 电子商务 2005216004 吕珊珊 1987年10月 计算机网络 2005216005 高全英 1987年7月 2005216006 郝莎 1985年8月 2005216007 张峰 1986年9月 2005216111 吴秋娟 1986年8月

2.2.2 关系术语 关系术语 关系:每个二维表称为一个关系 例如:学生情况表Student SQL Server 2005 关系术语 关系:每个二维表称为一个关系 例如:学生情况表Student 关系型:表的所有列标题,描述实体或联系的型 例如:(SID,Sname,Sex,Birthday,Specialty) 关系值:表的列对应的数据,描述实体或联系的值 例如:2005216003 ,郭洪亮,男,1986年4月, 电子商务 2005216004 ,吕珊珊,女,1987年10月,计算机网络 元组:表中的一行,描述一个实体或联系 例如:2005216004,吕珊珊,女,1987年10月,计算机网络

2.2.2 关系术语 关系术语 属性:表中的一列的标题 例如:SID,Sname SQL Server 2005 关系术语 属性:表中的一列的标题 例如:SID,Sname 属性值:表中的一列对应的数据,描述实体或联系的特征 例如:2005216003,郭洪亮 域:属性的取值范围 主码:表中的某个属性或属性组,能惟一确定一个元组,即确定一个实体 例如:SID 关系模式:对关系的描述,表示为关系名(属性1,属性2,… ,属性n) 例如:Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)

2.2.2 关系术语 SQL Server 2005 关系术语 候选码(Candidate Key):若关系中的某一属性或属性组的值能惟一的标识一个元组,则称该属性或属性组为候选码,候选码可以有多个。 例如:关系Student中的属性SID和Sname(假设没有重名的学生),关系SC中的属性组SID, CID 外码(Foreign Key,FK):一个关系中的属性或属性组不是本关系的主码,而是另一关系的主码,则称该属性或属性组是该关系的外码。也称为外关键字。 例如:关系SC中的属性SID和CID 主属性:能作为候选码的属性。 例如:关系Student中的属性SID 和Sname(假设没有重名的学生),关系SC中的属性SID和CID 非主属性:除了主属性的其他属性。 例如:关系Student中的属性Sex,Birthday,Specialty 关系SC中的属性Grade

2.2.3 关系术语与其他术语的对照 概念模型中 关系理论中 关系数据库中 某些软件中 实体集 Entity set 关系 Relation SQL Server 2005 概念模型中 关系理论中 关系数据库中 某些软件中 实体集 Entity set 关系 Relation 表 Table 表或数据库文件 实体 Entity 元组 Tuple 行 Row 记录 Record 属性 Attribute 列 Column 字段 Field 主码 Primary key 关键字

2.3 关系数据操作 SQL Server 2005 关系数据操作是以关系代数为基础的,用对关系的运算来表达各种操作。一类是传统的集合运算:并、交、差等,另一类是专门用于数据库操作的关系运算:选择、投影和连接等。

2.3.1 传统的集合运算 设:有两个关系R和S,具有相同的结构,t是元组变量,关系R为喜欢跳舞的学生,S为喜欢唱歌的学生。 SQL Server 2005 设:有两个关系R和S,具有相同的结构,t是元组变量,关系R为喜欢跳舞的学生,S为喜欢唱歌的学生。 表2-3 喜欢跳舞的学生关系R Sname Sex 李敬 女 高全英 吴秋娟 穆金华 男 张欣欣 王婷 表2-4 喜欢唱歌的学生关系S Sname Sex 赵成刚 男 张峰 吴秋娟 女 穆金华 孙政先 王婷 吕文昆 孙炜

2.3.1 传统的集合运算 并(Union) 公式:R∪S={t│t∈R∨ t ∈S } 语义:t 元组属于R或者属于S。 SQL Server 2005 表2-5 R∪S Sname Sex 李敬 女 高全英 吴秋娟 穆金华 男 张欣欣 王婷 赵成刚 张峰 孙政先 吕文昆 孙炜 并(Union) 公式:R∪S={t│t∈R∨ t ∈S } 语义:t 元组属于R或者属于S。 例2-1:喜欢跳舞或喜欢唱歌的学生, R∪S的关系如表2-5所示。

2.3.1 传统的集合运算 差(Difference) 公式:R-S={t│t∈R∧ tS } 语义:t 元组属于R,但不属于S。 SQL Server 2005 差(Difference) 公式:R-S={t│t∈R∧ tS } 语义:t 元组属于R,但不属于S。 例2-2:喜欢跳舞但是不喜欢唱歌的学生,R-S的关系如表2-6所示。 表2-6 R-S Sname Sex 李敬 女 高全英 张欣欣

2.3.1 传统的集合运算 交(Intersection) 公式:R∩S={t│t∈R∧ t ∈S } 语义:t 元组属于R并且属于S。 SQL Server 2005 交(Intersection) 公式:R∩S={t│t∈R∧ t ∈S } 语义:t 元组属于R并且属于S。 例2-3:既喜欢跳舞也喜欢唱歌的学生,R∩S的关系如表2-7所示。 表2-7 R∩S Sname Sex 吴秋娟 女 穆金华 男 王婷

2.3.1 传统的集合运算 笛卡尔积(Cartesian Product) 设:关系R为n列(n个属性),k1行(k1个元组); SQL Server 2005 笛卡尔积(Cartesian Product) 设:关系R为n列(n个属性),k1行(k1个元组); 关系S为m列(m个属性),k2行(k2个元组)。 公式:R×S={tRtS │tR ∈R ∧ tS ∈S } 语义:笛卡尔积仍是一个关系,该关系的结构是R和S结构之连接,即前n个属性来自R,后m个属性来自S,该关系的值是由R中的每个元组连接S中的每个元组所构成元组的集合。 注意:新关系的属性个数等于n+m,元组个数等于k1*k2。

2.3.1 传统的集合运算 例2-4 :设关系R和S如表2-8和表2-9所示,R×S如表2-10所示。 表2-8 学生关系R SQL Server 2005 例2-4 :设关系R和S如表2-8和表2-9所示,R×S如表2-10所示。 表2-8 学生关系R SID Sname 2005216001 赵成刚 2005216002 李敬 表2-9 课程关系S CID Cname 16020010 C语言程序设计 16020011 图像处理 16020012 网页设计 表2-10 学生选课新关系 R×S SID Sname CID Cname 2005216001 赵成刚 16020010 C语言程序设计 16020011 图像处理 16020012 网页设计 2005216002 李敬

2.3.2 专门的集合运算 投影(Projection) 设:t是关系R中的一个元组,A是要从R中投影出的属性子集。 SQL Server 2005 投影(Projection) 设:t是关系R中的一个元组,A是要从R中投影出的属性子集。 公式:∏A(R)={ t.A│t ∈R } 语义:从关系R中按所需顺序选取若干个属性构成新关系。 注意:新关系的元组数小于等于原关系的元组数,新关系的属性数不多于原关系中的。

2.3.2 专门的集合运算 例2-5:列出学生情况表R(表2-11)的学生姓名和性别的情况,投影运算结果如表2-12所示。 SQL Server 2005 例2-5:列出学生情况表R(表2-11)的学生姓名和性别的情况,投影运算结果如表2-12所示。 表2-12 ∏Sname,Sex (R) Sname Sex 赵成刚 男 李敬 女 郭洪亮 吕珊珊 高全英 郝莎 张峰 吴秋娟 表2-11 关系R SID Sname Sex Birthday Specialty 2005216001 赵成刚 男 1986年5月 计算机应用 2005216002 李敬 女 1986年1月 软件技术 2005216003 郭洪亮 1986年4月 电子商务 2005216004 吕珊珊 1987年10月 计算机网络 2005216005 高全英 1987年7月 2005216006 郝莎 1985年8月 2005216007 张峰 1986年9月 2005216111 吴秋娟 1986年8月

2.3.2 专门的集合运算 选择(Selection) 表2-13 σSex=’男’(R) SQL Server 2005 选择(Selection) 设:t是关系R中的一个元组,F(t)为元组逻辑表达式。 公式:σF(t)(R)={ t│t∈R ∧F(t)=’true’} 语义:从关系中找出满足条件的那些元组称为选择。 注意:运算结果的元组数不多于原关系中的元组数。 例2-6:在学生情况表2.10 R中选择出男生,如表2-13所示。 表2-13 σSex=’男’(R) SID Sname Sex Birthday Specialty 2005216001 赵成刚 男 1986年5月 计算机应用 2005216003 郭洪亮 1986年4月 电子商务 2005216007 张峰 1986年9月 软件技术

2.3.2 专门的集合运算 连接(Join) 等值连接 自然连接 设:A,B分别是关系R和S中的属性,t是连接关系中的一个元组。 SQL Server 2005 连接(Join) 设:A,B分别是关系R和S中的属性,t是连接关系中的一个元组。 公式:R S=σR.AθS.B ( R×S) AθS 语义:两个关系R和S按相应属性值的比较条件连接起来,生成一个新关系,也称为θ连接。 等值连接 R×S+选择(θ为=) 按照两关系中对应属性值相等的条件所进行的连接 自然连接 等值连接+去重复属性 记作:R S

2.3.2 专门的集合运算 SQL Server 2005 例2-7:设学生、选课和课程表如表2-14、表2-15、表2-16所示,学生选课的情况为S SC C的结果,如表2-17所示。 表2-14 S SID Sname 2005216111 吴秋娟 2005216112 穆金华 2005216115 张欣欣 表2-16 C CID Cname 16020010 C语言程序设计 16020011 图像处理 16020012 网页设计 16020013 数据结构 16020014 数据库原理与应用 16020015 专业英语 16020016 软件文档的编写 16020017 美工基础 16020018 面向对象程序设计 表2-15 SC SID CID 2005216111 16020010 16020013 2005216112 16020014 2005216115 16020011

2.3.2 专门的集合运算 自然连接结果如下: 表2-17 S SC C SID Sname CID Cname 2005216111 SQL Server 2005 自然连接结果如下: 表2-17 S SC C SID Sname CID Cname 2005216111 吴秋娟 16020010 C语言程序设计 16020013 数据结构 2005216112 穆金华 16020014 数据库原理与应用 2005216115 张欣欣 16020011 图像处理

2.3.3 综合运算 例:查询出赵成刚的学号,所选课程号和成绩。 ∏SID,CID,Grade(σSname=’ 赵成刚’(S SC)) SQL Server 2005 例:查询出赵成刚的学号,所选课程号和成绩。 ∏SID,CID,Grade(σSname=’ 赵成刚’(S SC)) (∏SID(σSname=’ 赵成刚’(S))) SC 运算结果如下表所示: 表2-20新关系运算结果 SID CID Grade 2005216001 16020010 90 16020011 85 16020012 96 注意:按照选择 → 投影 → 连接的运算顺序可以减少运算时间,避免增加时间复杂性。

2.4 关系完整性 实体完整性(Entity Integrity) 规则:若属性A是基本关系R的主码,则属性A不能取空值。 SQL Server 2005 实体完整性(Entity Integrity) 规则:若属性A是基本关系R的主码,则属性A不能取空值。 例如:建立一个课程情况表(Course),属性学号CID为主码,惟一 且不能为空值。 CREATE TABLE Course ( CID char(8) NOT NULL PRIMARY KEY, --实体完整性控制 Cname nchar(30) NULL, Credit decimal(3,1) NULL, )

2.4 关系完整性 参照完整性(Reference Integrity) SQL Server 2005 参照完整性(Reference Integrity) 规则:参照关系(子表)的外码取值不能超出被参照关系(父表)的主码取值。 例如:建立一个学生选课表(SC)。SC是参照关系,Student是被参照关系,SC中外码SID的值或者为空或者等于Student中主码SID的值。 CREATE TABLE SC ( SID char(10) NOT NULL, CID char(8) NOT NULL, Grade numeric(5,1) NULL, PRIMARY KEY(SID,CID), FOREIGN KEY(SID) REFERENCES Student(SID) --参照完整性控制 )

2.4 关系完整性 域(用户)定义完整性 约束:属性取值满足某种条件或函数要求 SQL Server 2005 域(用户)定义完整性 约束:属性取值满足某种条件或函数要求 例如:建立一个学生情况表(Student),属性性别Sex的取值必须 满足为’男’或’女’。 CREATE TABLE Student ( SID char(10) PRIMARY KEY, --实体完整性控制 Sname char(8) NOT NULL, Sex char(2) NULL CHECK(Sex='男' OR Sex='女'), --域完整性控制 Birthday datetime NULL, Specialty varchar(26) NULL, )

2.4 关系完整性 插入 完整性规则检查 为了维护数据库中数据的完整性,在对关系数据库执行插入、删除 SQL Server 2005 完整性规则检查 为了维护数据库中数据的完整性,在对关系数据库执行插入、删除 和修改操作时,要检查是否满足完整性规则。 实体完整性规则:检查主码属性上的值是否已经存在。 若不存在,可以执行插入操作,否则不能执行插入操 作。 插入 参照完整性规则:向参照关系插入,检查外码属性 上的值是否在被参照关系的主码属性值中存在。若 存在,可以执行插入操作,否则不能执行插入操作。 用户定义完整性规则:检查输入数据是否符合用户定 义的完整性规则。若符合,可以执行插入操作,否 则不能执行插入操作。

2.4 关系完整性 删除 参照完整性规则:删除被参照关系中的行,检查其主码是否被参 照关系的外码引用, 若没被引用:删除 SQL Server 2005 删除 参照完整性规则:删除被参照关系中的行,检查其主码是否被参 照关系的外码引用, 若没被引用:删除 若被引用:①拒绝删除 ②空值删除(外码改为空值) ③级联删除(参照关系中的相应行一起删除) 修改 等价:先删除,后插入(以上两种情况的综合)

2.5 E-R模型到关系模型的转换 1 实体(E)转换为关系模式 2 联系(R)转换为关系模式 SQL Server 2005

2.5.1 实体(E)转换为关系模式的方法 实体 关系 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。 SQL Server 2005 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。 例如:学生实体转换为关系模式 实体 学生(学号,姓名,性别,出生日期) 关系 Student(SID,Sname,Sex,Birthday,Specialty)

2.5.2 联系(R)转换为关系模式的方法 一对一 将联系与任意端实体所对应的关系模式合并,加入另一端实体的码和联系的属性。 SQL Server 2005 一对一 将联系与任意端实体所对应的关系模式合并,加入另一端实体的码和联系的属性。 例如:实体学校(学校编号,名称) 与校长(编号,姓名)之间的任职联 系是1:1的联系。 学校编号 名称 任职日期 学校 任职 校长 编号 姓名 1

2.5.2 联系(R)转换为关系模式的方法 任职(R) 任职日期 1 : 1 学校(E) 校长(E) 学校编号(PK) 编号(PK) 名称 SQL Server 2005 校长(E) 编号(PK) 姓名 学校(E) 学校编号(PK) 名称 任职(R) 任职日期 1 : 1 学校(学校编号,名称) 校长(编号,姓名,学校编号,任职日期)

2.5.2 联系(R)转换为关系模式的方法 一对多 将联系与n端实体所对应的 关系模式合并,加入1端实体的码 和联系的属性。 SQL Server 2005 一对多 将联系与n端实体所对应的 关系模式合并,加入1端实体的码 和联系的属性。 例如:图书实体和读者类型实体的联系 是1:n的。 读者编号 姓名 限借数量 读者 属于类型 读者类型 类型编号 类型名称 n 1 借阅期限

2.5.2 联系(R)转换为关系模式的方法 n:1 属于类型(R) 借阅数量 读者(E) 类型(E) 读者编号(PK) 类型编号(PK) SQL Server 2005 属于类型(R) 借阅数量 n:1 读者(E) 读者编号(PK) 姓名 类型(E) 类型编号(PK) 类型名称 限借数量 借阅期限 Reader(RID,Rname, TypeID, Lendnum ) ReaderType(TypeID, Typename,LimitNum, LimitDays)

2.5.2 联系(R)转换为关系模式的方法 多对多 将联系转换成一个关系模式。该联系相连的各实体的码和联系本身的属性转换为关系的属性。 SQL Server 2005 多对多 将联系转换成一个关系模式。该联系相连的各实体的码和联系本身的属性转换为关系的属性。 例如:教务管理中选课的E-R模型如图所示,学生和课程的联系是多对多的。 课程 学生 选课 成绩 n m

2.5.2 联系(R)转换为关系模式的方法 n:m 选课(R) 成绩 学生(E) 课程(E) 学生编号(PK) 课程编号(PK) 课程名称 SQL Server 2005 选课(R) 成绩 n:m 学生(E) 学生编号(PK) 姓名 性别 出生日期 专业 课程(E) 课程编号(PK) 课程名称 学分 Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)

2.4 关系规范化 不规范:产生数据冗余,带来很多问题。 规范:提高数据的结构化、共享性、一致性和可操作性。 范式:规范化的程度,级别。 SQL Server 2005 不规范:产生数据冗余,带来很多问题。 规范:提高数据的结构化、共享性、一致性和可操作性。 范式:规范化的程度,级别。 规范化:在关系数据库中的每个关系都需要进行规范化,使之达到一定的规范化程度。

2.6.1 第一范式1NF(First Normal Form) SQL Server 2005 定义:所有属性不可再分,即原子属性。记作:R∈1NF 例如:设一个通信录,电话属性需要再分,达不到1NF。 学号 姓名 性别 电话 手机 家庭 宿舍 2005216111 吴秋娟 女 13105242389 6127963 6125463 2005216112 穆金华 男 13105543364 6231159 6235159 2005216115 张欣欣 13105326757 3890356 5790356 2005216117 孟霞 13105242336 7843567 7900453

2.6.1 第一范式1NF(First Normal Form) SQL Server 2005 问题:不是二维表,不够1NF 解决方法1:在属性上展开 学号 姓名 性别 手机 家庭电话 宿舍电话 2005216111 吴秋娟 女 13105242389 6127963 6125463 2005216112 穆金华 男 13105543364 6231159 6235159 2005216115 张欣欣 13105326757 3890356 5790356 2005216117 孟霞 13105242336 7843567 7900453

2.6.1第一范式1NF(First Normal Form) SQL Server 2005 解决方法2:分解为二个关系 学号 姓名 性别 2005216111 吴秋娟 女 2005216112 穆金华 男 2005216115 张欣欣 2005216117 孟霞 学号 手机 家庭电话 宿舍电话 2005216111 13105242389 6127963 6125463 2005216112 13105543364 6231159 6235159 2005216115 13105326757 3890356 5790356 2005216117 13105242336 7843567 7900453

2.6.2第二范式2NF(Second Normal Form) SQL Server 2005 定义 所有非主属性完全依赖每个候选关键字。记作R∈2NF 或:取消部分依赖。 假设:有一个教师授课的关系模式。 TC(TNO,Tname,Title,ADDR,CNO,Cname,Level,Credit) PK:(TNO, CNO)

2.6.2第二范式2NF(Second Normal Form) SQL Server 2005 问题 数据冗余(不同课程同一任教的教师名等) 更新异常(冗余带来的不一致) 插入异常(没课的教师关键字无值不允许插入) 删除异常(没课的教师要删除,致使删除有关记录)

2.6.2 第二范式2NF(Second Normal Form) SQL Server 2005 原因 关系属性之间存在部分函数依赖,不够2NF。 主码(TNO, CNO)决定Cname,Level,Credit,但是存在 主码的一部分CNO就可以决定Cname,Credit。 (TNO, CNO)→Cname,Credit (CNO) →Cname, Credit

2.6.2第二范式2NF(Second Normal Form) SQL Server 2005 解决办法 拆分:原则是概念单一,完整(无损) 上述达不到2NF的关系分解如下: 多 T (TNO,Tname,Title,ADDR) 对 TC(TNO,CNO,Level) 多 C( CNO,Cname,Credit)

2.6.3第三范式3NF(Third Normal Form) SQL Server 2005 定义 所有非主属性都不传递函数依赖每个候选关键字。记作:R∈3NF 或:取消传递依赖 假设:为图书管理系统的数据模式Book增加一个属性ISBN。 Books (BID,ISBN,Bname,Author, PubComp, PubDate,Price) PK:BID

2.6.3 第三范式3FN(Third Normal Form) SQL Server 2005 定义 所有非主属性都不传递函数依赖每个候选关键字。记作:R∈3NF 或:取消传递依赖 假设:为图书管理系统的数据模式Book增加一个属性ISBN。 Books (BID,ISBN,Bname,Author, PubComp, PubDate,Price) PK:BID

2.6.3第三范式3NF(Third Normal Form) SQL Server 2005 问题 数据冗余(图书馆多本书同一出版社,书名等) 更新异常(冗余带来的不一致) 插入异常(图书馆没有购进的书的出版情况不允许插入) 删除异常(图书馆丢失删除的书,致使删除该书的有关出版情况)

2.6.3 第三范式3NF(Third Normal Form) SQL Server 2005 原因 关系属性之间存在传递函数依赖,不够3FN。 存在:BID→ISBN, ISBN→Bname,Author, PubComp, PubDate,Price X → Y , Y →Z,Y—\→X X传递决定Z或Z函数依赖于X

2.6.3 第三范式3NF(Third Normal Form) SQL Server 2005 解决办法 拆分:原则是概念单一,完整(无损)。 上述达不到3NF的关系分解如下: m Books(BID,ISBN) FK:ISBN 对 BooksType (BID,ISBN) 联系可以通过加外码省略 Type (ISBN,Bname,Author,PubComp,PubDate,Price)

2.6.4 BC范式BCNF(Boyce-Codd Normal Form) SQL Server 2005 定义:所有属性都不传递依赖每个候选关键字,记作:R∈BCNF。 由于关系规范化理论较深,此处不再赘述,读者可以根据实际设计加以体会。

2.7 小结 1 关系数据库与关系模型概述 关系数据库用关系模型来组织数据。 SQL Server 2005 1 关系数据库与关系模型概述 关系数据库用关系模型来组织数据。 关系模型由关系数据结构、关系操作集合和关系完整性规则三部分组成。 2 关系模型 (1) 数据结构 基本定义:二维表 基本术语:关系,关系名,关系型,关系值,元组,属性名,属性值,主码,外码 (2) 操作集合 传统的集合运算:并,交,差,笛卡尔积。 专门的关系运算:∏A(R)投影,σF(t)(R)选择,R S 自然连接。 (3) 完整性规则 实体:主码,参照:外码,域:逻辑表达式或函数。

2.7 小结 3 E-R模型到关系模型的转换 实体-关系:实体的属性就是关系的属性 联系-关系: SQL Server 2005 3 E-R模型到关系模型的转换 实体-关系:实体的属性就是关系的属性 联系-关系: 1对1:联系与任意端实体所对应的关系模式合并,加入另一端实体的码和联系的属性。 1对n:联系与n端实体所对应的关系模式合并,加入1端实体的码和联系的属性。 n对m:联系转换成一个关系模式,该联系相连的各实体的码和联系本身的属性转换为关系的属性。 4 关系规范化 1NF:原子属性,2NF:不存在部分函数依赖,3NF:不存在传递函数依赖。

Thank You !