- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL数据库基础实例教程第1章MySQL数据库基础与实例教程第1章
1 2 3 实体是一个单独的个体,不能存在于另一个实体中,成为另一个实体的属性。 属性应该存在于、且只存在于某一个地方(实体或者关联)。 同一个实体在同一个E-R图内,仅出现一次。 数据库开发人员通常采用“一事一地”的原则从系统的功能描述中抽象出来E-R图。 1.3.3 E-R图的设计原则 1.为E-R图中的每个实体建立一张表。 2.为每张表定义一个主键(如果需要,可以向表添加一个没有实际意义的字段作为该表的主键) 3.增加外键表示一对多关系。 4.建立新表表示多对多关系。 5.为字段选择合适的数据类型。 6.定义约束条件(如果需要)。 7.评价关系的质量,并进行必要的改进。 1.4 关系数据库设计 student(student_no,student_name,student_contact) course(course_name,up_limit,description,status) teacher(teacher_no,teacher_name,teacher_contact) classes(class_name,department_name) 1.4.1 为每个实体建立一张数据库表 关键字(key):用以唯一标识表中的每行记录。 主键(Primary Key):在所有的关键字中选择一个关键字,作为该表的主关键字,简称主键。 1.4.2 为每张表定义一个主键 主键有以下两个特征: (1)表的主键可以是一个字段,也可以是多个字段的组合(这种情况称为复合主键)。 (2)表中主键的值具有唯一性且不能取空值(NULL);当表中的主键由多个字段构成时,每个字段的值都不能取NULL。 主键设计技巧,请参看本书内容。 1.4.2 为每张表定义一个主键 student(student_no,student_name,student_contact) course(course_no,course_name,up_limit,description,status) teacher(teacher_no,teacher_name,teacher_contact) classes(class_no,class_name,department_name) 1.4.2 为每张表定义一个主键 外键(Foreign Key):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。 1.4.3 增加外键表示一对多关系 情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。 1.4.3 增加外键表示一对多关系 让学生记住所在班级,远比班级“记住”所有学生容易的多 。 1.4.3 增加外键表示一对多关系 情形二:实体间的一对一关系,可以看成一种特殊的一对多关系:将“一”端实体的主键放到另“一”端的实体中,并作为另“一”端的实体的外键,然后将外键定义为唯一性约束(Unique Constraint)。 1.4.3 增加外键表示一对多关系 PK 1.4.3 增加外键表示一对多关系 PK后的方案:student(student_no,student_name, student_contact,class_no) course(course_no,course_name,up_limit, description,status,teacher_no) teacher(teacher_no,teacher_name,teacher_contact) classes(class_no,class_name,department_name) 1.4.3 增加外键表示一对多关系 情形三:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系自身的属性放入到新表中作为新表的字段。 1.4.4 建立新表表示多对多关系 teacher(teacher_no,teacher_name, teacher_contact) classes(class_no,class_name,department_name) course(course_no,course_name,up_limit, description,status,teacher_no) student(student_no,student_name, student_contact,class_no) choose(choose_no,student_n
文档评论(0)