当前位置: 首页 > news >正文

计算机网络第3班第六章,计算机网络教程第3版彭澎第6章J课件教学.ppt

计算机网络教程第3版彭澎第6章J课件教学.ppt

第6章 数据库设计 6.1 关系数据模型的规范化 6.2 数据库设计 关系与关系模式 关系是一张二维表,它是所涉及属性的笛卡尔积的一个子集。从笛卡尔积中选取哪些元组构成该关系,通常是由现实世界赋予该关系的元组语义来确定的。 关系模式是对关系的描述,为了能够清楚地刻划出一个关系,它需要由五部分组成,即应该是一个五元组: R(U,D,DOM,F) 其中:R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映象集合,F为属性间数据的依赖关系集合。 例:有如下关系,如下表: 上述关系可以构成两个域:    姓名:{嘉琦,王干....}    专业:{计算机,金融...}    由于导师和研究生出自同一个域“姓名”,所以要取不同的属性名,用DOM表示,即:   DOM(导师)=DOM(研究生)=姓名       关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,关系是动态的,不同时刻关系模式中的关系可能会有所不同,但它们都必须满足关系模式中数据依赖关系集合F所指定的完整性约束条件。 由于在关系模式R(U,D,DOM,F)中,影响数据库模式设计的主要是U和F,而D和DOM对数据库模式设计的影响不大,所以,为了方便讨论,本章将关系模式简化为一个三元组,即:    R(U,F) 6.1 关系数据模型的规范化 6.1.1 数据依赖 6.1.2 规范数据模型要解决的问题 数据依赖 数据依赖是数据库模式设计的关键,数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 在关系模式中,属性间数据的依赖关系集合F实际上就是描述关系的元组语义,用以限定组成关系的各个元组必须满足的完整性约束条件。在实际中,这些约束或者通过对属性取值范围的限定,或者通过对属性值间的相互关连(主要体现于值的相等与否)反映出来。属性值间的相互关连就是所谓的数据依赖. 6.1.2 规范数据模型要解决的问题 函数依赖普遍地存在于现实生活中。 例:描述一个学生的关系,可以有学号(SNO)、姓名(SNAME)、所在系(DEPT)等几个属性。 由于一个学号只对应一个学生,一个学生只在一个系。因而当“学号”值确定之后,姓名及其所在系的值也就被唯一地确定了。 属性间的这种依赖关系类似于数学中的函数。因此说 SNO函数决定SNAME和DEPT 或者说 SNAME和DEPT函数依赖于SNO 记做 SNO→SNAME, SNO→DEPT。        建立一个描述学校的数据库,该数据库涉及的对象包括学生的学号(SNO)、所在系(DEPT)、系主任姓名(MNAME)、课程名(CNAME)和成绩(GRADE)。假设学校的数据库模式由一个单一的关系模式 S 构成,则该关系模式的属性集合为: U={SNO, DEPT, MNAME, CNAME, GRADE} 由常识可知: ①一个系有若干学生,但一个学生只属于一个系; ②一个系只有一名主任; ③一个学生可以选修多门课程,每门课程有若干学生选修; ④每个学生所学的每门课程都有一个成绩。  从上述事实可以得到属性组U上的一组函数依赖F: F={SNO→DEPT, DEPT→MNAME, (SNO, CNAME)→GRADE} 码:KEY=(SNO, CNAME) 对上述只考虑函数依赖这一数据依赖,所得到的描述学生的关系模式,存在如下问题: ①插入异常(insertion anomalies)。当学生刚入学时,还没有选课,因此无法确定属性CNAME的值,码(SNO, CNAME)存在空值,根据实体完整性规则,插入无法执行。 ②删除异常(deletion anomalies)。如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 ③数据冗余太大。比如,每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。这不仅浪费大量的存储空间,而且当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性。并且存在数据不一致的隐患。 鉴于存在以上种种问题,可以说关系模式 S 不是一个好的模式。一个“好”的模式应当不会发生插入异常、删除异常、数据冗余应尽可能少。 6.2 数据库设计 6.2.1 数据库设计的方法和步骤 6.2.2 需求分析 6.2.3 概念结构设计 6.2.4 逻辑结构设计 6.2.5 数据库物理设计 6.2.6 数据库的实

相关文章:

  • 计算机二级数据透视图教程,计算机二级语言数据透视表做法
  • 计算机语言符号通配符,day 15 通配符和特殊符号
  • 计算机类英文参考文献,计算机英文参考文献.doc
  • 北京化工大学计算机组成原理考试,2017年北京化工大学信息科学与技术学院408计算机学科专业基础综合之计算机组成原理考研仿真模拟题...
  • 柱面是什么计算机组成原理,计算机组成原理
  • 英语教学计划软件测试,第一学期英语教学计划
  • 绿盟科技软件测试招聘,【绿盟科技软件测试面试】面试官很随和-看准网
  • 计算机导师电话面试,【条条大路通CS】计算机导师电话面试记录
  • 计算机开机后 打不开软件,电脑开机后软件打不开怎么回事
  • 穿越火线找回装备服务器,装备丢失也不怕 CF手游遗失分解装备找回攻略
  • fiery服务器接上显示器,EFI Fiery XF 数码打样常见故障及解决方法
  • 在jenkins脚本测试服务器性能,jenkins+postman 自动化跑测试脚本
  • emlog评论ajax,亲测 emlog调用多说文章评论数
  • 三菱服务器型号,三菱PLC OPC服务器 - OPC Server for Mitsubishi PLCs
  • 查看sql服务器配置信息,查看sql server 服务器配置
  • php的引用
  • (三)从jvm层面了解线程的启动和停止
  • [译]Python中的类属性与实例属性的区别
  • ➹使用webpack配置多页面应用(MPA)
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • gf框架之分页模块(五) - 自定义分页
  • in typeof instanceof ===这些运算符有什么作用
  • JS+CSS实现数字滚动
  • JS题目及答案整理
  • Python_网络编程
  • vue 配置sass、scss全局变量
  • webpack入门学习手记(二)
  • 成为一名优秀的Developer的书单
  • 初探 Vue 生命周期和钩子函数
  • 从零开始学习部署
  • 高程读书笔记 第六章 面向对象程序设计
  • 关于extract.autodesk.io的一些说明
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端存储 - localStorage
  • 全栈开发——Linux
  • 使用API自动生成工具优化前端工作流
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一天一个设计模式之JS实现——适配器模式
  • 在Unity中实现一个简单的消息管理器
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​ArcGIS Pro 如何批量删除字段
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #图像处理
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (rabbitmq的高级特性)消息可靠性
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (五)网络优化与超参数选择--九五小庞
  • (转)http协议
  • (转)JAVA中的堆栈
  • (转)关于多人操作数据的处理策略
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(二):%0 %1——给批处理脚本传递参数