数据库系统第五章.ppt

合集下载

数据库5章数据库设计

数据库5章数据库设计

E-R图向关系模型的转换:
码原则:
一个实体型转换为一个关系模式:实体的属性就是关系的 属 性,实体的码就是关系的码。
一个联系转换为一个关系模式:与该联系相连的各实体的码以 及联系的属性转换为该关系的属性。该关系的码有五种情况:
若联系是1:1:则每个实体的码均是该关系的候选码。 若联系是1:n:则关系的码是n端实体的码。 若联系是m:n:则关系的码是参加联系的诸实体的码的集合。 若联系是三个或三个以上的实体的一个多元联系可以转换为一个关系模
① 确定局部E-R图实体之间的函数依赖。 ② 求F的最小依赖集Fm,求其差集,即
D=F-Fm ③ 逐一考察D中每一函数依赖,确定是否为冗余,若是,就把 它去掉。
5.4 逻辑结构设计
任务:将基本E-R模型转换为DBMS所支持的数据模型。 关系型逻辑结构设计的步骤:
1) 将概念结构转换为关系模型 2) 优化模型 3) 设计适合DBMS的子模式
第五章 数据库设计
5.1 数据库设计概述 5.2 需求分析 5.3 概念结构设计 5.4 逻辑结构设计 5.5 数据库物理设计
数据库技术的研究领域
数据库管理系统软件的研制(×)
DBMS的研制包括DBMS本身以及以DBMS为核心的饿一组相互联系的软 件系统。目标是扩大功能、提高性能和用户的生产率。
5.2 需求分析
5.数据库应用系统的数据字典 包括:
数据项 数据结构 数据流 数据存储 处理过程
5.2 需求分析
例:下图给出了某机器制造厂的零配 件采购子系统的数据流图。该子系统 要处理的工作是生产部门提出的生产 计划根据零配件当前价格计算成本送 主管部门审批,对已批准生产计划制 定采购计划,准备好订货单给供应商。

第5章 数据库基本概念PPT课件

第5章 数据库基本概念PPT课件

数据(Data)
数据(Data)是数据库中存储的基本对象 数据的定义
描述事物的符号记录。
数据的种类
文字、图形、图象、声音
数据的特点
数据与其语义是不可分的
数据举例
学生档案中的学生记录 (马超,男,1972,江苏,计算机系,1990)
数据的形式不能完全表达其内容 数据的解释
语义:学生姓名、性别、出生年月、籍贯、所在 系别、入学时间
数据库管理系统(DBMS)
什么是DBMS 数据库管理系统(Database Management System,简称DBMS) 是位于用户与操作系统之间的一层 数据管理软件。
它是用户与数据库的接口,提供数据库的 定义、检索、更新、维护及各种数据控制。
DBMS的主要功能
★定义数据库
提供数据描述语言(DDL),定义数 据库总体逻辑数据结构、存储结构、 保密定义等。
与数据文件名 统一、集中、独
打交道
立的管理
文件系统
DBMS
人工管理阶段 文件系统阶段
数据库系统阶段
数据的共 享程度
无共享
共享性差
共享性高
数据的冗 余度
冗余度极大
冗余度大
冗余度小
数据的独 不独立,完全 立性 依赖于程序
独立性差
具有高度的物理独立 性和一定的逻辑独立性
数据的结 构化
无结构
记录内有结构 整体无结构
整体结构化 用数据模型描述
数据的控 制能力
应用程序 自己控制
应用程序 自己控制
由DBMS提供数据的 安全性、完整性、并 发控制和恢复能力
数据独立性是要维护数据与应用程序之 间的无关性。其目的是,应用程序不因 数据一方的改变而改变;反过来,数据 也不会因应用程序一方的改变而改变。 数据与应用程序相互独立,不受对方的 影响。数据独立性分成物理数据独立性 和逻辑数据独立性两级。

数据库原理第五章关系数据库的规范化设计

数据库原理第五章关系数据库的规范化设计
在以上三个关系模式中,实现了信息的某种程度的 分离: T中存储教师基本信息,与所选课程及系主任无关; D中存储系的有关信息,与教师无关; TC中存储教师讲授课程的信息,而与教师及系的信 息无关。
12
模式分解是关系规范化的 主要方法(二)
与TDC相比,分解为三个关系模式后,数据的冗余度明显 降低。 当新插入一个系时,只要在关系D中添加一条记录。 当某个教师尚未讲课,只要在关系T中添加一条教师记录, 而与TC授课关系无关,这就避免了插入异常。 当某个系的教师不再讲课时,只需在TC中删除该教师的 全部授课记录,而关系D中有关该系的信息仍然保留,从 而不会引起删除异常。 同时,由于数据冗余度的降低,数据没有重复存储,也不 会引起更新异常。
24
2.2 完全函数依赖和部分函数依赖
例如:学生成绩表中
姓名 王一 王二 王三 王一
学号 1 2 3 4
年龄 16 15 16 16
籍贯 河北 山东 北京 天津
姓名不能推出年龄,学号也不能推出年龄,但是 姓名 + 学号能推出年龄,故完全依赖;
学号能直接推出籍贯,故是部分依赖
25
2.3 传递函数依赖
当关系中的元组增加、删除或更新后都不能被破 坏这种函数依赖。因此,必须根据语义来确定属 性之间的函数依赖,而不能单凭某一时刻关系中 的实际数据值来判断。
20
函数依赖的定义和性质(六)
函数依赖可以保证关系分解的无损连接性
设R(X,Y,Z),X,Y,Z为不相交的属性集合,如果X Y或X Z,则有R(X,Y,Z)=R[X,Y]*R[X,Z],其中,R[X,Y]表示关 系R在属性(X,Y)上的投影,即 R等于其投影在X上的自然连 接,这样便保证了关系R分解后不会丢失原有的信息,称为 关系分解的无损连接性

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

四、用户定义的安全性措施 除了系统级的安全性措施外,Oracle还允许用户用数 据库触发器定义特殊的更复杂的用户级安全性措施。例 如,规定只能在工作时间内更新Student表,可以定义如 下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,’DY’) IN(‘SAT’,’SUN’)) OR(TO_NUMBER(sysdate HH24') NOT BETWEEN 8 AND l7) THEN


常用的方法:
1)用一个用户名或者用户标识号来标明用户身份, 系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求 用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某 一过程或函数进行计算,系统根据计算结果是否正 确进一步鉴定用户身份。


2. 存取控制
(2)行级安全性 Oracle行级安全性由视图实现。用视图定义表的水 平子集,限定用户在视图上的操作,就为表的行级提供 了保护。视图上的授权与回收与表级完全相同。 例如,只允许用户U2查看Student表中信息系学生的 数据,则首先创建信息系学生视图S_ IS,然后将该视图 的SELECT权限授予U2用户。 (3)列级安全性 Oracle列级安全性可以由视图实现,也可以直接在基 本表上定义。 用视图定义表的垂直子集就可以实现列级安全性,方 法与上面类似。
Oracle对数据库对象的权限采用分散控制方式, 允许具有WITH GRANTOPTION的用户把相应权限或 其子集传递授予其他用户,但不允许循环授权,即被 授权者不能把权限再授回给授权者或其祖先, U1 U2 U3 U4 × 循环授权 Oracle把所有权限信息记录在数据字典中。当用 户进行数据库操作时,Oracle首先根据数据字典中的 权限信息,检查操作的合法性。在Oracle中,安全性 检查是任何数据库操作的第一步。

第五章 数据库设计

第五章 数据库设计

运动会方面,实体集包括:运动员(编号,姓名,性别,队 伍号),比赛项目(项目名,比赛场地)。其中,一个比赛项 目可供多名运动员参加,一名运动员可参加多个项目。
根据上述条件,分别设计运动队和运动会两个局部E-R图。
第三节 概念结构设计 参赛项目 性别 队伍号 队伍名 教练名 运动员 性别 队伍号 运动员 m 参加 n n 属于
第三节 概念结构设计 分解变换。如果实体集的属性较多,可以进行分解。例如, 对于员工实体集,其属性为员工号、姓名、性别、生日、(所 属)支行名、岗位、工资、奖金。 性别 生日 支行名 岗位 工资 奖金
姓名 员工号 员工
第三节 概念结构设计 可以把员工信息分解为两部分,一部分属于固定信息,一部 分属于变动信息。为了区别这两部分信息,产生一个新的实体 和一个新的联系。
在视图合并阶段,设计者把所有视图有机地合并成统一的概 念模型,这个最终的概念模型支持所有的应用。
第三节 概念结构设计 概念结构设计的策略主要分为自顶向下、自底向上、自内向 外和混合策略四种。 这些方法中最常用的是自底向上方法:首先设计局部概念模 式,然后综合局部概念模式成全局概念模式,最后对全局概念 模式进行评估和优化。
P2 P1 D2明细 D3账目 E2会 E1客 D1付款 打印账目 账务处理 单 户 计
第二节 需求分析 元数据是描述数据的数据,通常由数据结构的描述组成,主 要描述数据及其使用环境,例如数据精度、来源、产生时间、 使用范围、注解等。 数据字典是一种用户可以访问的、记录数据库和应用程序元 数据的集合,通常是用来解释数据表、数据字段等数据结构的 意义,数据字段的取值范围、数据值代表的意义等。 简而言之,数据字典是描述数据的信息集合,是系统中所有 数据的定义集合。
数据字典通常由数据项、数据结构、数据流、数据存储和处 理过程组成。

第五章数据库设计和模型.ppt

第五章数据库设计和模型.ppt
系统实现技术
1
本章重要概念(1)
(1)系统目录及其和各子系统的联系。 (2)事务的定义,和的 语 义 , 事 务 的 性 质 , 事务的状态 变迁图。 (3)存储器类型,稳定存储器的实现, 数据传
送过程。 (4)恢复的定义、基本原则和实现方法,
故障的类型,检查点技术,和 操作,运行 记录优先原则。
标志事务开始执行。 和或一起保证了事务的四个性质。 对数据库访问的两个基本操作:读和写,但
完成写操作后,数据可能暂时放在内存中, 而非直接写进数据库。
14
事务的状态变迁图
READ/WRITE
活动状态
局部提交 状态
提交状态
失败状态
异常中止状态
图7.4 事务的状态变迁图
15
主要内容
7.1 系统目录 7.2 事务 7.3 数据库的恢复 7.4 数据库的并发控制 7.5 并发事务的可串行化和可恢复性 7.6 数据库的完整性 7.7 数据库的安全性 小结
REL_NAME KEY_NUMBER MEMBER_ATTR
(b)存储索引信息的目录关系
VIEW_QUERIER
VIEW_NAME
QUERY
VIEW_ATTRIBUTES
VIEW_NAME ATTR_NAME
ATTR_NUM
(c)存储视图信息的目录关系
7
系统目录的扩充图
关系名
属性名
数据类型
R_A
(B):把缓冲块B的 内容传送到磁盘中恰当 的物理块中
input(A)
A
output(B)
B
B
内存
磁盘
块操作
18
数据访问
事务
包含x的块 Bx存在, read(X)

第五章 数据库完整性

第五章 数据库完整性
7
例2:将SC表中的SNO、cno属性组定义为码 create table sc (sno char(9) not null, cno char(4) not null, grade smallint, primary key(sno,cno) )
8
5.1.2 实体完整性的违约处理

对于实体完整性的检查,包括:
在子表中修改外码(也是主属性)的策略


6. 在参照关系(子表)中修改外码(同时是主码 属性 )。与在参照关系中插入元组类似,可以 有2种策略: 受限修改 递归修改 RDBMS在实现参照完整性时: 需要向用户提供定义主码、外码的机制。 向用户提供按照自己的应用要求选择处理依 赖关系中对应的元组的方法。
6
5.1 实体完整性
5.1.1 定义实体完整性 例1:将student表中的sno属性定义为码 create table student (sno char(9) primary key, sname char(20) not null, ssex char(2), sage smallint, sdept char(20) )
26
5.4 完整性约束命名子句


1. 完整性约束命名子句 Constraint <完整性约束条件名><完整性约 束条件> 例5.10 建立学生登记表 student,要求学号在 90000—99999 之间,姓名不能取空值,年 龄小于30,性别只能是“男”或者“女”
5

数据库完整性控制机制


DBMS完整性控制机制: 1. 提供定义完整性约束条件的机制:提供定义数 据完整性约束条件的方法,完整性约束条件作为 模式的一部分存入数据库中; 2. 提供完整性检查的方法:进行完整性检查,检 查数据是否满足约束条件; 3. 进行违约处理:若有违反,采取相应措施(拒 绝、报告、改正)处理。 完整性子系统:DBMS中执行完整性控制的子系统。 其功能为监督事务的执行,测试其是否违反完整性 约束条件;若有违反,则分情况进行预定的处理。

关系数据库规范化理论(05)

关系数据库规范化理论(05)
14
5.3 函数依赖
关系模式S(S# , SN , SD , DEAN , C# , G)
根据一般的事实,有: 一个系有若干学生,而一个学生只属于一个系;
一个系只有一名系主任;一个学生可以选修多门课 程,每门课程也可以由多个学生选修;每个学生的 每门课程都只有一个成绩。据此语义,可以得到一 组FD F
9
5.2 数据依赖
G
SNO
DN
CN
DM
关系的规范化理论就是用于改造关系模式,通过 分解关系模式来消除其中不合适的数据依赖,以 解决插入异常、删除异常、更新异常和数据冗余 问题。
10
5.3 函数依赖
函数依赖
设R(U)是属性集U上的关系模式,X , Y U, r是 R(U) 上的任意一个关系,如果成立
对t , s r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记 作XY 称X为决定因素
如S# SN, (S#,C#) G
不存在t , s r,t[X] = s[X],但t[Y] ≠ s[Y]
11
5.3 函数依赖
A
B
C
D
a1
b1
c1
d1
a1
快速热身
关系模式R(A,B,C,D),码为AB,给出它的一个函数 依赖集,使得R属于2NF而不属于3NF
33
5.4 .4 BC范式(BCNF)
STC(S# , T# , C#)
每位老师只教授一门课
T# C#
某学生选定一门课,就对应一位老师
(S#,C#) T#
候选码
(S#,T#),(S#,C#)
28
5.4 .3 3NF
S# SN SD DEAN S01 杨明 D01 思齐 S02 李婉 D01 思齐 S03 刘海 D02 述圣 S04 安然 D02 述圣 S05 乐天 D03 省身
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若X->Y ,则X叫做决定因素。 若X->Y ,Y->X,则记作X ←→Y。 若Y不函数依赖于X,则记作X->Y 。
例:在关系S(Sno,SName,SDept,SAge)中, Sno -> SName , Sno -> SDept , Sno -> SAge
Sno:决定因素, Sno ←→ SName(若无重名)
5.11
©Silberschatz, Korth and Sudarshan
传递和直接函数依赖
定义5-3
在R(U)中,如果X->Y,(YX),Y->X,Y->Z,则
称Z对X传递函数依赖。
若不包括:Y->X , 则当Y->X时Z对X直接函数依赖。
例:在关系S(Sno,SName,SDept,SAge)中, Sno -> SDept 若每个系有唯一的一个电话号码DT,即 SDept -> DT,
上述讨论表明:
关系数据库中,关系模式设计方案可以有多个,但是并
不是任何一种关系模式设计方案都是可行的,它们之间 有“好”“坏”之分。
要设计一个“好”的关系模式方案,关键要摸清属性间
内在的语义联系,特别是依赖关系
一个好的关系数据库模式设计方案,它的每个关系中属
性一定要满足某种内在语义ቤተ መጻሕፍቲ ባይዱ件,即满足一定的规范。
第一范式(1NF):每个分量必须是不可 分的数据项。
Database System Concepts
5.8
©Silberschatz, Korth and Sudarshan
5.2 规范化
5.2.1 函数依赖
定义5-1
设有关系模式R(U),X、Y是属性集U的子集。若对于 R(U)的任一可能的关系r,r中不可能存在两个元组在X 上的属性值相等,而在Y上的属性值不等,则称X函数 决定Y或Y函数依赖于X,记作X->Y。
满足不同要求的为不同范式。满足最低要求的为 第一范式,简称1NF,以次类推。我们主要讨论 1NF,2NF,3NF,BCNF,4NF。
范式间的关系
1NF 2NF 3NF BCNF 4NF
5NF 4NF BCNF 3NF 2NF 1NF
5NF
Database System Concepts
101 A 102 B
102 5 105 5
103 C 103 C 105 D 107 E
105 4
105 3
107 3

4
缺点:
冗余度大、插入异常 删除异常、更新异常
Database System Concepts
5.4
©Silberschatz, Korth and Sudarshan
方案二
插入异常:
删除异常:
数据冗余:
更新异常:
Database System Concepts
5.6
©Silberschatz, Korth and Sudarshan
由以上分析知道,要设计一个“好”的关系模式 方案,关键是要摸清属性间的内在语义联系。
目前,属性间存在的两种依赖关系:函数依赖和多 值依赖
Database System Concepts
5.14
©Silberschatz, Korth and Sudarshan
外码
定义5-5
在R(U)中,属性或属性组X并非R的码,但X是另一个 关系模式的码,则X是R的外部码(Foreign key),也 称外码。
例:关系模式SC (Sno ,Cno ,G)
非主属性
主属性 ( Sno ,Cno )F ->( Grade)
(Sno)、(Cno)、 (Sno,Cno) 均是码
(Sno, SName)-P >(Sno,SName,SDept,SAge) (Sno, SDept)-P>(Sno,SName,SDept,SAge)
(Sno, SName), (Sno, SDept)均不是码
SNO 0001 002 003
SNANEM 王晓 李名 张华
SNO 0001 0001 0001 0002 0002 0003
CNO GRADE 101 5 102 5 103 4 103 3 105 3 107 4
SDEPT SAGE
评价
CS
18
MA
19
CS
18
CNO CNAME 101 A 102 B 103 C 105 D 107 E
5.1 问题提出
数据库中,如何构造合适的数据模式,是数据库 设计的关键问题。
例:设计一个学生数据库D,包含下列8个属性
SNO,SNAME,SDEPT,SAGE,CNO,GRADE,CNAME,PCNO
问题:
1.如何利用这些属性构造一个合适的关系模式 2.是否随便构造的关系模式都一样
Database System Concepts
Database System Concepts
5.7
©Silberschatz, Korth and Sudarshan
关系模式的表示方法
基本的关系表示方法:五元组
R<U,D,dom,F>
进行关系操作时的表示方法:二元组
R<U>
关系模式设计时:
主要考虑的是关系属性之间的联系 R<U,F>
满足第一范式
5.18
©Silberschatz, Korth and Sudarshan
分量是否需要再分,与具体应用有关。如果用 到值的一部分,则需要进一步分割。
姓名
生日
姓名

王军
68.7.10
分解
王军
68
张立
69.7.10
张立
69
李明
80.3.28
李明
80
月日 7.10 7.10 3.28
如果只是查询出生日期,则它满足1NF。
(Sno ,SName) SName是平凡的函数依赖
Database System Concepts
5.10
©Silberschatz, Korth and Sudarshan
完全和部分函数依赖
定义5-2
在R(U)中,如果X->Y ,并且对于X的任何一个真子集
X’,都有X’->Y,则称Y对X完全函数依赖。记作:
• Sno、 Cno不是SC的关键字, •他们分别是关系模式S和C的关键字 •Sno 、Cno是关系模式SC的外码。
Database System Concepts
5.15
©Silberschatz, Korth and Sudarshan
5.2.3 范式
范式:是对关系的不同数据依赖程度的要求。
Sno -> DT,即:DT对Sno传递函数依赖。
Database System Concepts
5.12
©Silberschatz, Korth and Sudarshan
5.2.2 码
定义5-4
用函数依赖的概念
在R(U)中都有K U ,且满足K-F>U,则称K为R的候
选码(Candidate key)或关键字。
范式。
Database System Concepts
5.17
©Silberschatz, Korth and Sudarshan
1NF特点
关系中每一分量不可再分 即不能以集合、序列等值作为属性值。
S#
C#
S1 {C1,C2,C3}
不满足第一范式
S#
C#
S1
C1
S1
C2
S1
C3
Database System Concepts
5.3
©Silberschatz, Korth and Sudarshan
•问题2
方案一
SNO 0001 0001 0001 002 002 003
SNAME 王晓 王晓 王晓 李名 李名 张华
SDEPT SAGE
CS
18
CS
18
CS
18
MA
19
MA
19
CS
18
CNO CNAME PCNO GRADE
非主属性有两种,一种完全依赖于码,一种部分依赖于码。
将S分解为:SC(Sno , Cno , Grade) 非主属性完全
显然, (Sno,Cno)为码。但不是2NF。
Database System Concepts
5.20
©Silberschatz, Korth and Sudarshan
存在的几个问题
插入异常:如果学生没有选课,关于他的个人信息
及所在系的信息就无法插入。
删除异常:如果删除学生的选课信息,则有关他的
如果查询两人生日是否相同,则只比较月、日,需要将生日分解,
就不满足1NF。
Database System Concepts
5.19
©Silberschatz, Korth and Sudarshan
5.2.4 第二范式
定义
设有关系模式R(U) ,若R 1NF,且每一个非主属性完 全函数依赖于码,则R 2NF。
PCNO 102 105 105 107 -
冗余度
仅有少量冗余,大大 少于方案一中的模式
插入异常
不会产生插入异常
删除异常
也不会产生删除异常
更新异常
不存在
Database System Concepts
5.5
©Silberschatz, Korth and Sudarshan
关系数据库设计中存在的问题
相关文档
最新文档