第一章
数据库的设计
课程地位
课程内容回顾
数据库有哪些基本操作?
建库
建表
加约束
创建登录帐户
基本的数据操纵语句有哪些?语法是?
增(INSERT)
删(DELETE)
改(UPDATE)
查(SELECT)
常用的聚合函数有哪些?
表连接分为哪几种类型?
课程目标
了解设计数据库的基本步骤
熟练使用T-SQL实现建库、建表、加约束
掌握T-SQL编程,实现功能强大的查询
掌握创建索引、视图,快速访问数据库
掌握创建存储过程,实现复杂的业务规则
理解触发器的原理,实现高级的约束
本章目标
了解设计数据库的步骤
掌握如何绘制数据库的E-R图
理解数据库的规范化-三大范式
为什么需要设计数据库 2-1
为什么需要设计数据库 2-2
软件项目开发周期
需求分析阶段:分析客户的业务和数据处理需求;
概要设计阶段:设计数据库的E-R模型图,确认需求信息
的正确和完整;
详细设计阶段:将E-R图转换为多张表,进行逻辑设计,
并应用数据库设计的三大范式进行审核;
代码编写阶段:选择具体数据库进行物理实现,并编写
代码实现前端应用;
软件测试阶段:……
安装部署:……
设计数据库的步骤4-1
收集信息:
与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务
设计数据库的步骤4-2
标识对象(实体-Entity)
标识数据库要管理的关键对象或实体
设计数据库的步骤4-3
设计数据库的步骤4-4
标识对象之间的关系(Relationship)
绘制E-R图 4-1
E-R(Entity-Relationship)实体关系图
绘制E-R图 4-2
绘制E-R图 4-3
映射基数
绘制E-R图
如何将E-R图转换为表 3-1
如何将E-R图转换为表 3-2
如何将E-R图转换为表
数据规范化
仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构
Dr E.F.codd 最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:
第一范式(1st NF -First Normal Fromate)
第二范式(2nd NF-Second Normal Fromate)
第三范式(3rd NF- Third Normal Fromate)
第一范式 (1st NF)
第二范式 (2nd NF)
第三范式 (3rd NF)
规范化实例 5-1
假设某建筑公司要设计一个数据库。公司的业务规
则概括说明如下:
公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等
公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等
公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)
公司定期制定一个工资报表,如图-1所示
规范化实例 5-2
规范化实例 5-3
规范化实例 5-4
1.表中包含大量的冗余,可能会导致数据异常:
更新异常
例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行
添加异常
若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空)
删除异常
例如,1001号职工要辞职,则必须删除所有职工号=1001的数据行。这样的删除操作,很可能丢失了其它有用的数据
规范化实例 5-5
2.采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。
应用范式规范化设计
应用第二范式规范化
应用第三范式规范化
规范化和性能的关系
总结 2-1
在需求分析阶段,设计数据库的一般步骤为:
收集信息
标识对象
标识每个对象的属性
标识对象之间的关系
在概要设计阶段和详细设计阶段,设计数据库的步骤为:
绘制E-R图
将E-R图转换为表格
应用三大范式规范化表格
总结 2-2
为了设计结构良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式 。
第一范式(1NF)的目标:确保每列的原子性。
第二范式(2NF)的目标:确保表中的每列,都和主键相关
第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |