文档详情

MySQL数据库基础与实例第1章解析.ppt

发布:2016-05-03约6.87千字共61页下载文档
文本预览下载声明
* * 数据库知识网站DB-Engines的数据库产品流行度排名更新如期而至。在4月份的榜单中, Oracle的积分再次增长27.2,以总分1560.59傲视群雄。MySQL在3月份再次逆袭,积分暴增47.24,成功反超微软SQL Server;而后者显示出疲软状态,积分降幅达到近几个月最大的40分,下滑到第三位。纵观榜单,前三位的数据库产品已经非常稳固,唯一悬念只在于第二位的争夺。 * * 在5月份的数据库流行度排名中,前三甲位置并未发生变化,但从积分情况来看,Oracle与SQL Server呈现出下滑趋势,尤其是后者,已经连续两个月出现积分大幅下滑的情况;MySQL“逆袭”,连续三个月积分呈两位数增长,目前已经坐稳榜眼位置; * * 在本期排名中, Oracle虽然依旧占据榜首,但积分下滑趋势明显;“同门师弟”MySQL依旧排名第二, 在本期排名中, Oracle虽然依旧占据榜首,但积分下滑趋势明显;“同门师弟”MySQL依旧排名第二, 在本期排名中, Oracle虽然依旧占据榜首,但积分下滑趋势明显;“同门师弟”MySQL依旧排名第二。 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
显示全部
相似文档