为什么要进行数据库设计?
良好的数据库设计节省存储空间,执行效率高,容易扩展,更便于开发。
实体、属性、关系具有什么样的联系?
实体具有的特征是属性,实体与实体之间会有各种关系,关系之间也有属性,
数据库设计有哪些步骤?
- 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 - 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 - 逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。 - 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 - 数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 - 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
请指出下列几组分别是什么关系:
老师与学生 多对多关系
班级与学生 一对多关系
学校与学生 一对多关系
绘制E-R图
实体 -------矩形-----表名
属性 -------椭圆-----字段
属性 -------菱形-----表与表之间的关系
数据库设计设计规范化
1. 第一范式(1NF)
第一范式是满足关系书库模型所要遵守的最基本的条件范式,即关系中的每个属性必须是不可再分的简单项,不能是属性组合,即属性的取值必须是不可拆分的原子值。
2. 第二范式(2NF)
第二范式是在第一范式的基础上,确保表中的每列都和主键相关。除主键以外其他列都依赖且主键于主键列。
第二范式有两个规则:
- 表必须符合第一范式。
- 表中的每列必须依赖主键。
3. 第三范式(3NF)
第三范式又在第二范式的基础上更进了一层。第三范式的目标是确保每列都和主键列直接相关,而不是间接相关。其定义是:如果一个关系满足2NF,并且出了主键的其他列既不部分依赖也不传递与主键列,则满足第三范式。