1、数据库设计,数据库设计是信息系统的核心组成部分从现实世界到数据世界的转换的过程,要点,E-R图3个范式,E-R方法(Entity-Relationship Approach),实体-联系方法:通过E-R图表示信息世界中实体、属性、关系的模型反映客观世界事物、事物的特征以及事物之间的关系导出关系数据模型。,P161 表10-7,E-R信息模型的设计,实体用方框表示,属性用椭圆框表示,联系用菱形框表示框内填写相应的实体名、属性名、联系名,E-R方法,画单个的实体图(实体+属性)确定实体之间的联系方式联系方式(1:1、1:m、m:n)如果m:n,通过插入实体的方法改成1:mn:1方式画出综合的E-R
2、图,学生,学号,姓名,性别,成绩,学号,课程号,成绩,课程,课程号,课程名,课时数,考试,选课,m,1,n,1,从E-R图导出关系数据模型,E-R图中的每个实体转换成一个关系,并包括它的所有属性,同时确定关键字实现实体之间的联系如果实体间联系为1:n,”1”方的关键字作为“n”方的外部关键字,练习1,画出学生、班级、课程、教师、成绩的E-R图画出书、出版社、作者的E-R图,范式,对表的数据结构进行规范,规范化的模式称为范式。,发票管理:发票表的最初形式,Invoice_no(主键PK)DateCompany_noCompany_nameCompany_addrCompany_phoneCust
3、omer_noCustomer_nameCustomer_addrCustomer_phone,Item_no1Item_name1Item_qty1Item_price1Item_total1Item_no2Item_name2Item_qty2Item_price2Item_total2Item_no?.,第一范式(First Normal Form 1st NF),如果在一个表中,有一个主键,而且其他字段都是简单的不带重复属性的数据类型时,该表处于第一范式发票的最初形式中,明细字段重复,不满足第一范式,符合第一范式的发票表的形式,Invoice_no(主键PK)DateCompany_n
4、oCompany_nameCompany_addrCompany_phoneCustomer_noCustomer_nameCustomer_addrCustomer_phone,Invoice_no(主键PK)Item_no (主键PK)Item_nameItem_qtyItem_priceItem_total,发票,明细,第二范式(Second Normal Form 2nd NF),如果该表符合第一范式,并且所有非主键的字段都依赖于所有的主键时,该表处于第二范式明细表中,只有item_qty依赖于所有的主键,而item_name等字段只依赖于部分主键(item_no),符合第二范式的发票
5、表的形式,Invoice_no(主键PK)Item_no (主键PK)Item_qty,Invoice_no(主键PK)DateCompany_noCompany_nameCompany_addrCompany_phoneCustomer_noCustomer_nameCustomer_addrCustomer_phone,发票,明细,Item_no (主键PK)Item_nameItem_price,产品,第三范式(Third Normal Form 3rd NF),如果该表符合第二范式,而且不包含任何传递依赖时,该表处于第三范式在发票表中,company_name等字段依赖于company
6、_no,customer_name等字段依赖于customer_no,符合第三范式的发票表的形式,Invoice_no(主键PK)DateCompany_noCustomer_no,Invoice_no(主键PK)Item_no (主键PK)Item_qty,客户,明细,Item_no (主键PK)Item_nameItem_price,产品,Company_no(PK)Company_nameCompany_addrCompany_phone,Customer_noCustomer_nameCustomer_addrCustomer_phone,公司,发票,表之间的关系,一对一:1:1一对多:1:多对一: :1多对多: : ,客户,明细,产品,公司,发票,1:,:1,1:1,:1,练习2,将练习1的E-R图设计成满足3rd NF的表,