项目二:数据库设计
一,为什么需要设计数据库
良好的数据库设计
1.节省数据的存储空间
2.能够保证数据的完整性
3.方便进行数据库应用系统的开发
糟糕的数据库设计
1.数据冗余、存储空间浪费
2.内存空间浪费
3.数据更新和插入的异常
二,数据冗余
数据冗余:指数据重复的现象
数据存在冗余,但为减少数据查找的麻烦,允许数据有一定的冗余。
数据完整性
数据完整性:指数据的准确性
存在不正确、不准确的数据,数据库“失去了完整性”。
三,概念
数据(Data)是描述事物的符号记录。
模型(Model)是现实世界的抽象。
数据模型(Data Model)是数据特征的抽象,包括数据的结构部分、数据的操作部分和数据的约束条件。
四,数据库的设计步骤
概念模型:把现实世界转换为信息世界的模型,E-R模型
实施模型:把信息世界转化为数据世界使用的模型,关系模型
五,模型
层次模型
网状模型
关系模型
此为二维表格
关系模型的特点
关系模型中基本数据结构是二维数据表,且必须满足相应的要求:
(1)表说明的是关系模型中某一特定的方面或部分的对象及其属性
(2)表中的行通常叫做记录或元组,代表具有相同属性的对象中的一个
(3)表中的列通常叫做字段或属性,代表存储对象的共有的属性
(4)数据表之间的关联通过“键”来实现的,键分为主键和外键两种。
(5)表必须符合某些特定条件
①信息原则:每个单元只能存贮一条数据;
②列有唯一性的名称,贮存在列下的数据必须具有相同数据类型;列没有顺序;;
③每行数据是唯一的;行没有顺序;
④实体完整性原则,即主键不能为空;
⑤引用完整性原则,即外键不能为空;
概念模型
建模:把现实世界转换为信息世界的模型,E-R模型
建模步骤:
收集信息:
与该系统有关人员进行交流、坐谈,充分理解数据库需要完成的任务
标识对象(实体-Entity)
标识数据库要管理的关键对象或实体 标识每个实体的属性(Attribute)
标识对象之间的关系(Relationship)
E-R模型
主码:也叫关键字,实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。对于每一个实体集,可指定一个码为主码。
E-R图设计步骤
对于复杂的系统,E-R图设计通常都应经过以下两个阶段:
(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。
(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。
E—R模型到关系模型的转换
把E-R图转换为关系模型可遵循如下原则 :
(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。
(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。
E-R模型到关系模型的转换总结
假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:
①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;
②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;
③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。
两实体集间1:n联系
两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。 两实体集间m:n联系
对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。
概念结构设计
概念结构设计- E-R图方法
实体关系图:简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。
实体型(Entity):具有相同的特征和性质的集合体,用实体名及其属性名来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四都是实体
属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。
联系(Relationship): 数据对象彼此之间相互连接的方式称为联系,也称为关系。