版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工程学院 SQL 数据库设计与实现数据库设计与实现 姑苏行 E-Mail: 工程学院 2 课程地位 C#SQL Server XML PSPMASP.NET Oracle OOAD Computer Base HTMLJavaScript SQL BaseOOPJavaC STB JSP/Servlet EJB/WebService WinForms Struts/JSF Testing/SQA Linux 工程学院 第一章第一章 数据库的设计 工程学院 4 课程内容回顾 q 数据库有哪些基本操作? q建库 q建表 q加约束 q创建登录帐户 q 基本的数据操纵语句有哪些?语法是? q增(INS
2、ERT) q删(DELETE) q改(UPDATE) q查(SELECT) q 常用的聚合函数有哪些? q 表连接分为哪几种类型? 工程学院 5 课程目标 q了解设计数据库的基本步骤 q熟练使用T-SQL实现建库、建表、加约束 q掌握T-SQL编程,实现功能强大的查询 q掌握创建索引、视图,快速访问数据库 q掌握创建存储过程,实现复杂的业务规则 q理解触发器的原理,实现高级的约束 工程学院 6 本章目标 q了解设计数据库的步骤 q掌握如何绘制数据库的E-R图 q理解数据库的规范化三大范式 工程学院 7 为什么需要设计数据库 2-1 修建茅屋需要设计吗?修建大厦需要设计吗? 结论:当数据库比较复
3、杂时我们需要设计数据库 工程学院 8 为什么需要设计数据库 2-2 良好的数据库设计: q 节省数据的存储空间 q 能够保证数据的完整性 q 方便进行数据库应用系统的开发 糟糕的数据库设计: q 数据冗余、存储空间浪费 q 内存空间浪费 q 数据更新和插入的异常 工程学院 9 软件项目开发周期 q 需求分析阶段:分析客户的业务和数据处理需求; q 概要设计阶段:设计数据库的E-R模型图,确认需求信息 的正确和完整; q 详细设计阶段:将E-R图转换为多张表,进行逻辑设计, 并应用数据库设计的三大范式进行审核; q 代码编写阶段:选择具体数据库进行物理实现,并编写 代码实现前端应用; q 软件测
4、试阶段: q 安装部署: 现实世界 建模 信息世界数据库世界 模型转换 规范化 工程学院 10 设计数据库的步骤4-1 q收集信息: 与该系统有关人员进行交流、坐谈,充分理解数据库需要 完成的任务 BBS论坛的基本功能: l用户注册和登录,后台数据库需要存放用户的注册信息和在线 状态信息; l用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、 标题等; l论坛版块管理:后台数据库需要存放各个版块信息,如版主、 版块名称、贴子数等; 工程学院 11 设计数据库的步骤4-2 q标识对象(实体Entity) 标识数据库要管理的关键对象或实体 实体一般是名词: l用户:论坛普通用户、各版块的版主。
5、 l用户发的主贴 l用户发的跟贴(回贴) l版块:论坛的各个版块信息 工程学院 12 设计数据库的步骤4-3 论坛用户: l呢称 l密码 l电子邮件 l生日 l性别 l用户的等级 l备注信息 l注册日期 l状态 l积分 主贴 l发贴人 l发贴表情 l回复数量 l标题 l正文 l发贴时间 l点击数 l状态: l最后回复时间 回贴 l贴子编号 l回贴人, l回贴表情 l标题 l正文 l回贴时间 l点击数 版块 l版块名称 l版主 l本版格言 l点击率 l发贴数 q标识每个实体的属性(Attribute) 工程学院 13 设计数据库的步骤4-4 q标识对象之间的关系(Relationship) l跟
6、贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴; l版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主 用户的情况; l主贴和版块有主从关系:需要表明发贴是属于哪个版块的; l跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的; 工程学院 14 绘制E-R图 4-1 q E-R(EntityRelationship)实体关系图 符号符号含义含义 实体,一般是名词 属性,一般是名词 关系,一般是动词 工程学院 15 绘制E-R图 4-2 管理管理 bbsUser (用户,版主) 出生日期昵称 版块名称版主 bbsSection (版块) 工程学院 16 绘制E-R图 4-3
7、q 映射基数 一对一 X X X X Y Y Y Y X X X X Y Y Y Y 一对多 X X X X Y Y Y 多对一 X X X X Y Y Y Y 多对多 1 N M N 工程学院 17 绘制E-R图 11 1 1 M 1 MM M M 用户积分性别用户等级备注信息注册日期版块名称本版留言发贴数 状态密码昵称电子邮件生日 论坛用户(BBSUser) 管理 发表 发表 跟随 属于 属于 点击率 版主 标题发贴人贴子编号正文点击率 版块(BBSSection) 发贴(BBSTopic) 发贴人正文状态贴子编号所在版块 最后回复时间发贴表情回复数量 点击率发贴时间标题 M 跟贴(BBS
8、Reply) 所在版块发贴时间最后回复时间发贴表情 1 论坛E-R图 工程学院 18 如何将E-R图转换为表 3-1 q 将各实体转换为对应的表,将各属性转换为各表对应的列 q 标识每个表的主键列,需要注意的是:没有主键的表添加 ID编号列,它没有实际含义,用于做主键或外键,例如用 户表中的“UID”列,版块表中添加“SID”列,发贴表和跟 贴表中的“TID”列 q 在表之间建立主外键,体现实体之间的映射关系 工程学院 19 如何将E-R图转换为表 3-2 UID主键TID主键RID主键SID主键 工程学院 20 如何将E-R图转换为表 添加各表之间的关系 工程学院 21 数据规范化 q 仅有
9、好的RDBMS并不足以避免数据冗余,必须在数据 库的设计中创建好的表结构 q 常见数据库设计的问题有:信息重复,更新异常,插入 异常,删除异常 q Dr E.F.codd 最初定义了规范化的三个级别,范式是具 有最小冗余最小冗余的表结构。这些范式是: q第一范式(1st NF First Normal Fromate) q第二范式(2nd NFSecond Normal Fromate) q第三范式(3rd NF Third Normal Fromate) 工程学院 22 第一范式 (1st NF) BuyerIDCountryCity 1 1 4 2 中国 中国 日本 美国 北京 北京 东京
10、 纽约 BuyerIDAddress 1 2 3 4 中国北京市 美国纽约市 英国利物浦 日本东京市 q第一范式的目标是确保每列的原子性 q如果每列都是不可再分的最小数据单元(也称为 最小的原子单元),则满足第一范式(1NF) 工程学院 23 第二范式 (2nd NF) q 如果一个关系满足1NF,并且除了主键以外的其他列,都依 赖与该主键,则满足第二范式(2NF) q 第二范式要求每个表只描述一件事情 Orders 字段字段例子例子 订单编号 产品编号 订购日期 价 格 001 A001 2000-2-3 $29.00 Orders 字段字段例子例子 订单编号 订购日期 001 2000-2
11、-3 Products 字段字段例子例子 产品编号 价 格 A001 $29.00 工程学院 24 第三范式 (3rd NF) q 如果一个关系满足2NF,并且除了主键以外的其他列 都不传递依赖于主键列,则满足第三范式(3NF) q Armstrong公理定义的传递依赖:ABC是关系R的3个 属性,如果AB且BC,可得出AC Orders 字段字段例子例子 订单编号 订购日期 顾客编号 001 2000-2-3 AB001 顾客姓名TonyTony Orders 字段字段例子例子 订单编号 订购日期 顾客编号 001 2000-2-3 AB001 工程学院 25 规范化实例 5-1 假设某建筑
12、公司要设计一个数据库。公司的业务规 则概括说明如下: q 公司承担多个工程项目,每一项工程有:工程号、工程名 称、施工人员等 q 公司有多名职工,每一名职工有:职工号、姓名、性别、 职务(工程师、技术员)等 q 公司按照工时和小时工资率支付工资,小时工资率由职工 的职务决定(例如,技术员的小时工资率与工程师不同) q 公司定期制定一个工资报表,如图-1所示 工程学院 26 规范化实例 5-2 工程号工程号工程名称工程名称职工号职工号姓名姓名职务职务小时工资率小时工资率工时工时实发工资实发工资 A1花园大厦 1001齐光明工程师6513845.00 1002李思岐技术员60 16960.00 1
13、004葛宇宏律师60191140.00 小计2945.00 A2立交桥 1001齐光明工程师6515975.00 1003鞠明亮工人5517935.00 小计1910.00 A3临江饭店 1002李思岐技术员60181080.00 1004葛宇洪技术员6014840.00 小计1920.00 图-1 某公司的工资表 工程学院 27 规范化实例 5-3 工程号工程号工程名称工程名称职工号职工号姓名姓名职务职务小时工资率小时工资率工时工时 A1花园大厦1001齐光明工程师6513 A1 花园大厦1002李思岐技术员60 16 A1花园大厦1001齐光明工程师6513 A1花园大厦1003鞠明亮工人
14、5517 A3临江饭店1002李思岐技术员6018 A3临江饭店1004葛宇洪技术员6014 图-2 某公司的项目工时表 工程学院 28 规范化实例 5-4 1.表中包含大量的冗余,可能会导致数据异常: q 更新异常 例如,修改职工号=1001的职务,则必须修改所有职工号 =1001的行 q 添加异常 若要增加一个新的职工时,首先必须给这名职工分配一 个工程。或者为了添加一名新职工的数据,先给这名职 工分配一个虚拟的工程。(因为主关键字不能为空) q 删除异常 例如,1001号职工要辞职,则必须删除所有职工号 1001的数据行。这样的删除操作,很可能丢失了其它有 用的数据 工程学院 29 规范
15、化实例 5-5 2采用这种方法设计表的结构,虽然很容 易产生工资报表,但是每当一名职工分配 一个工程时,都要重复输入大量的数据。 这种重复的输入操作,很可能导致数据的 不一致性。 工程学院 30 一张表描述了多件事情,如图-3所示。 应用范式规范化设计 工程号工程名称职工号姓名职务小时工资率工时 图图-3 函数依赖图函数依赖图 工程信息员工信息 项目工时信息 工程学院 31 应用第二范式规范化 工程号工程名称 职工号姓名职务小时工资率 工程号职工号工时 图图-4 应用第二范式应用第二范式 工程表 员工表 项目工时表 满足第三范式吗?满足第三范式吗? 工程学院 32 应用第三范式规范化 工程号工程名称 职工号姓名职务 职务小时工资率 工程号职工号工时 工程表 员工表 职务表 工程表 工程学院 33 规范化和性能的关系 q 为满足某种商业目标,数据库性能比规范化数据库更重要 q通过在给定的表中添加额外的字段,以大量减少需要 从中搜索信息所需的时间 q通过在给定的表中插入计算列(如成绩总分),以方 便查询 q 进行规范化的同时,还需要综合考虑数据库的性能。 工程学院 34 总结 2-1 q在需求分析阶段,设计数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 20XX年义务兵新兵年终总结报告
- 砼模板施工合同(3篇)
- 闺女考试题及答案
- 2026年低压电工操作证理论全国考试题库完整参考答案
- 长春光华学院20252026学年第一学期招聘34人备考题库附答案
- 广东省公务员考试类型试题及答案
- 2026年湖北生物科技职业学院单招职业倾向性考试模拟测试卷附答案
- 2026年低压电工操作证理论全国考试题库附完整答案【各地真题】
- 2026年湖南石油化工职业技术学院单招职业技能考试模拟测试卷附答案
- 2026年水文地质学基础测试题库含答案(巩固)
- 2026届江苏省常州市高一上数学期末联考模拟试题含解析
- 2026年农业科技领域人才选拔与专业技能考核要点解析
- 《生态环境重大事故隐患判定标准》解析
- 2025年度吉林省公安机关考试录用特殊职位公务员(人民警察)备考笔试试题及答案解析
- 2025年中国作家协会所属单位公开招聘工作人员13人备考题库及一套参考答案详解
- 走进歌乐山课件
- 防洪排涝工程实施性施工组织设计
- 七年级上册生物集体备课活动记录
- 《军队政治工作手册》出版
- 环氧树脂对混凝土裂缝的修复方法
- 2023年中国海洋大学环科院研究生培养方案
评论
0/150
提交评论