1 / 79

第十章 关系数据库系统( 2 )

第十章 关系数据库系统( 2 ). 第十章 关系数据库系统. 10.1 数据库基础 10.2 数据模型 10.3 数据的完整性 10.4 基本表的构造 10.5 关系数据库的规范化 10.6 关系模式的转换 10.7 SQL 语言 10.8 应用程序开发. 10.5 关系数据库的规范化. 关系模型 关系数据库是表的集合,表即关系 单一的数据结构 —— 关系 关系模式 —— 对关系的描述。包含:关系名、组成该关系的各属性名、属性的类型以及属性的依赖关系。 关系模式和关系:型和值. 10.5 关系数据库的规范化. 关系模型(续)

lloyd
Download Presentation

第十章 关系数据库系统( 2 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十章 关系数据库系统(2)

  2. 第十章 关系数据库系统 10.1 数据库基础 10.2 数据模型 10.3 数据的完整性 10.4 基本表的构造 10.5关系数据库的规范化 10.6 关系模式的转换 10.7 SQL语言 10.8 应用程序开发

  3. 10.5 关系数据库的规范化 • 关系模型 • 关系数据库是表的集合,表即关系 • 单一的数据结构——关系 • 关系模式——对关系的描述。包含:关系名、组成该关系的各属性名、属性的类型以及属性的依赖关系。 • 关系模式和关系:型和值

  4. 10.5 关系数据库的规范化 • 关系模型(续) • 单一的数据结构——关系(续) • 码/键(key) • 超码:可以惟一标识关系的一个或多个属性的集合 • 候选码:任意真子集都不能称为超码的最小超码 • 主码:被数据库设计者选中来区分不同实体的候选码

  5. 10.5 关系数据库的规范化 • 关系模型(续) • 关系操作 • 选择 • 投影 • 连接 • 除 • 并 • 交 • 差

  6. 10.5 关系数据库的规范化 • 关系模型(续) • 关系的完整性约束 • 实体完整性 • 一个关系通常对应现实世界的一个实体集 • 实体是相互区分的,具有唯一性标识 • 关系模型中主码为唯一性标识 • 主码不能取空值 • 引用完整性(参照完整性) • 外码(外键):关系R中含有与另一个关系S的主码K相对应的属性组F • R中每个元组在F上的值:为空或与S中某个元组的主码值相同 • 语义完整性

  7. 10.5 关系数据库的规范化 • 模式 • 模式是数据库中全体数据的逻辑结构和特征的描述 • 是数据库系统结构中的中间层 • 与数据的物理存储细节和硬件环境无关 • 与具体应用程序以及应用开发工具和环境无关

  8. 10.5 关系数据库的规范化 • 外模式(用户模式) • 是用户能够看见和使用的局部数据的逻辑结构和特征的描述 • 与具体的应用有关 • 内模式 • 存储模式

  9. 10.5 关系数据库的规范化 • 二级映射 • 外模式/模式映射 • 同一模式对应多个外模式。保证外模式的稳定性 • 模式/内模式映射 • 一个模式对应一个内模式。物理结构的变化不会影响模式。 • 模式是数据库设计的核心和关键

  10. 10.5 关系数据库的规范化 • 关系模型的逻辑结构——二维表

  11. 10.5 关系数据库的规范化 • 经销信息(员工编号,员工姓名,部门编号,部门主管,订单编号) • 假设: (1) 一个部门包含多个员工,一个部门只包含一个部门主管; (2) 员工编号和部门编号唯一; (3) 一个员工可以经手多个订单,而一个订单可能由多个人经手。

  12. 10.5 关系数据库的规范化 • 表 经销信息

  13. 10.5 关系数据库的规范化 • 出现的问题: (1) 数据冗余,同部门主管在多个元组中重复出现; (2) 更新异常,只更新某一元组部门主管,则同一部门有不同的部门主管; (3) 插入异常,一个部门刚成立,无新员工,员工及部门信息无法输入; (4) 删除异常,一个订单取消,则删除部分员工信息(只经手了该订单)。

  14. 10.5 关系数据库的规范化

  15. 10.5 关系数据库的规范化 • 关系的数学定义 定义1 域(Domain)是值的集合。 例如:整数、实数,长度小于25字节的字符串集合等都可以域。

  16. 10.5 关系数据库的规范化 • 定义2 给定一组域D1,D2,D3,… Dn(可以有相同的)。D1,D2,D3,… Dn的笛卡尔积(Cartesian Product)为 D1×D2×D3×…×Dn= {(d1,d2,…,dn) | di∈Di,i=1,2,3…,n}。 其中每一个元素(d1,d2,…,dn)叫做一个n元组。元素中每一个值叫做一个分量。 • 例: • D1=男人集合(MAN)={王兵,李平,张英} • D2=女人集合(WOMAN)={丁梅,吴芳} • D3=儿童集合(CHILD)={王一,李一,李二}

  17. 10.5 关系数据库的规范化 • 例: • D1=男人集合(MAN)={王兵,李平,张英} • D2=女人集合(WOMAN)={丁梅,吴芳} • D3=儿童集合(CHILD)={王一,李一,李二} • D1×D2×D3 ={王兵,丁梅,王一},{王兵,丁梅,李一},{王兵,丁梅,李二},{王兵,吴芳,王一},{王兵,吴芳,李一},{王兵,吴芳,李二},{李平,丁梅,王一},{李平,丁梅,李一},{李平,丁梅,李二},…… 共18个元组。

  18. 10.5 关系数据库的规范化 • 定义3 • D1×D2×D3×…×Dn的子集叫做在域D1,D2,D3,… Dn上的关系,用R(D1,D2,…,Dn)来表示。每个元素是关系中的元组,用t表示。 • 例 MAN WOMAN CHILD 王兵 丁梅 王一 李平 吴芳 李一 李平 吴芳 李二 t[Di]表示t元组在属性Di上的值。 t1[MAN] = “王兵”

  19. 10.5 关系数据库的规范化 • 关系实质上是一个二维表。表的每一行是一个元组,每一列是一个属性(域)。 • 关系是元组的集合,也是所涉及的属性集的笛卡尔积的子集。 • 关系模式是这个元组集合的结构上的描述。 • 关系的概念对应于程序设计语言中变量的概念;关系模式则对应于程序设计语言中的类型定义的概念。如结构体。 • 所有的关系模式则构成数据库模式

  20. 10.5 关系数据库的规范化 • 关系为什么只是笛卡尔的子集呢? • 关系是由元组的语义确定的 • 笛卡尔积中使得元组语义为真的元素的集合 • 数据依赖 • 元组语义的一个重要体现就是对关系的约束条件 • 约束的一种就是属性值间的相互关连。即数据依赖。 • 数据依赖中最重要的为函数依赖。此外还有多值依赖。

  21. 10.5 关系数据库的规范化 • 函数依赖 • 定义4 • 考虑一个关系模式R,令α、β为属性集的子集。R上成立函数依赖 α ->β 的条件是: 如果对任意合法关系r(R)及r中任意两个元组t1,t2。如果t1[α]=t2[α],则t1[β] = t2[β]; • 完全函数依赖 • 传递函数依赖

  22. 10.5 关系数据库的规范化 • 完全函数依赖 • 在关系模式R中,如果X->Y,并且对于X的任何一个真子集X’,都有X’!->Y,则Y对X完全函数依赖。记作:X Y • 传递函数依赖 • 在关系模式R中,如果X->Y, (Y不包含于X),Y!->X,Y->Z,则称Z对X传递函数依赖。

  23. 10.5 关系数据库的规范化 数据库范式理论(Normal Form) • 第一范式:关系模式中的每个属性值都是不可再分的最小数据单位。 • 第二范式:每一个非主属性完全函数依赖于码。 • 第三范式:任何一个非主属性不传递依赖于码。

  24. 10.5 关系数据库的规范化 关系模式: R(u)=R(A1, A2, A3, …, An) 属性间存在函数依赖(Functional Dependency) 。 R学生(学号,姓名,出生地,出生日期,班级,专业,…) 其中出生地与出生日期无关,班级与专业有关,但所有属性与姓名有关,即函数依赖。

  25. 10.5 关系数据库的规范化 键:函数依赖中作为决定因素的属性或属性组是关系模式的键; 外部键:在关系模式R中某属性X并非是键,但却是另一个关系模式的键,则称X为外部键。主键和外部键提供了一个表示关系间联系的手段。 如:学生(学号,姓名,班级,专业) 宿舍(专业,楼号,地址)

  26. 10.5 关系数据库的规范化 第一范式:关系模式中的每个属性值都是不可再分的最小数据单位。

  27. 10.5 关系数据库的规范化 第一范式:关系模式中的每个属性值都是不可再分的最小数据单位。 从而可以实现查询、统计等功能。

  28. 10.5 关系数据库的规范化 • 第二范式:每一个非主属性完全函数依赖于码。

  29. 10.5 关系数据库的规范化 • 属性部分依赖于码,会导致: A.插入、删除异常,如删除某种牌号。 B.修改复杂,由于冗余大,则重复修改,造成修改数据不一致。

  30. 10.5 关系数据库的规范化 解决的办法:分解为2个表,即2个关系模式: 材料(牌号,C, Si, Mn, Cr) 标准(牌号,标准,Ni, P, S)

  31. 10.5 关系数据库的规范化 • 第三范式:任何一个非主属性不传递依赖于码。 • 例如1:职员(姓名,出生日期,年龄) • 例如2:储蓄(银行帐号、存款、取款、余款) • 例如3,发动机结构参数(推力,重量,推重比)

  32. 10.5 关系数据库的规范化 数据库范式理论(Normal Form) • 第一范式:关系模式中的每个属性值都是不可再分的最小数据单位。 • 第二范式:每一个非主属性完全函数依赖于码。 • 第三范式:任何一个非主属性不传递依赖于码。

  33. 10.6 关系模式的转换 • 构建E-R模型; • 实现从E-R模型转换为关系模式。

  34. 实体-关系模型(E-R模型) • 实体(Entity)——人、产品、企业 • 属性(Attribute)——特征、数据项 • 联系(Relationship)——表之间的关系 • 键/码(Key)——唯一标识属性 • 域(Domain)——取值范围

  35. 实体——学生 • 属性:学号、姓名、性别、专业

  36. 通常一个数据库是由多个表构成的,通常一个实体对应一个表。通常一个数据库是由多个表构成的,通常一个实体对应一个表。 实体之间的联系(relationship) • 一对一联系(1:1) • 一对多联系(1:n) • 多对多联系(m:n)

  37. 实体之间的关联联系

  38. 10.3 数据的完整性 • 实体间的联系

  39. 10.6 关系模式的转换 • 数据库设计涉及多学科,三分技术,七分管理,十二分基础数据,这是数据库建设的基本规律 。应该具备多方面的技术和知识,有: a. 计算机科学基础知识和程序设计技术; b. 数据库基础知识和数据库设计技术; c. 软件工程方法,软件开发规范; d. 应用领域的知识。

  40. 10.6 关系模式的转换 • 数据库设计的六个阶段

  41. 10.6 关系模式的转换 为谁用?功能?有哪些数据项? • 数据库设计的六个阶段 构建E-R模型。 创建基本表。确定数据类型。 数据存储。 应用程序开发。

  42. 10.6 关系模式的转换 • 构建E-R模型; • 实现从E-R模型转换为关系模式。 • 课堂提问:写出学生与选课E-R实体关系图。

  43. 10.6 关系模式的转换 • 学生与选课E-R图,转换为关系模式 学生(学号,姓名,年龄,专业) 课程(课程号,课程名称,学分) 选课(学号,课程号,成绩)

  44. 10.6 关系模式的转换 • 从E-R模型转换为关系模式的规则: (1)一般情况下,每个实体转换为一个关系模式,实体的属性就是关系的属性; (2)当是1对n关系时,n边转换为关系模式中增加1边的主码。。 (3) m对n情况,将每个联系也转换为一个关系模式,它的属性由与该联系相连的实体的主码及该联系的属性组成。

  45. 10.6 关系模式的转换 小结: • 按照转换规则,建立的数据库则满足3范式要求; • 一个关系模式就对应一个基本表;

  46. 10.7 SQL语言 • 数据库逻辑结构设计——基本表

  47. 10.7 SQL语言

  48. 10.7 SQL语言 • SQL (Structured Query Language)四大功能,特点: (1)一体化特点; (2)统一的语言,两种使用方式; (3)高度的非过程化。

  49. 10.7 SQL语言 • 数据定义功能 CREATE TABLE TEACHER CREATE TABLE S CREATE VIEW TEACHER-COURSE • 数据操纵 • (1)简单查询

  50. 10.7 SQL语言 • SELECT 列名序列 FROM 表名 [WHERE 条件表达式] [ORDER BY 排序依据列] 例1SELECT SNO, SNAME, SEX FROM S 例2 SELECT SNO, SNAME FROM S WHERE SPL= ’飞动’ 例3 SELECT BOOK-NO,TITLE,AUTHER, PRICE FROM BOOKS WHERE SORT-NO, LIKE TP%

More Related