MySQL数据库基础之设计教程_第1页
MySQL数据库基础之设计教程_第2页
MySQL数据库基础之设计教程_第3页
MySQL数据库基础之设计教程_第4页
MySQL数据库基础之设计教程_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MySQL数据库基础授课人:fcq2023/3/13PHP+MySQL开发实战@付嫦情2数据库基本操作1、数据库设计辅助工具2、编码规范数据库设计的相关知识2023/3/13网络程序设计-MicrosoftASP.NET@何文海3数据库设计辅助工具

工具模型技术业务模型面向对象分析和设计技术结构化分析和设计技术软件测试技术关系数据库设计技术ErwinPowerDesignerRationalRoseVisioVC++6.0VisualstudioEclipseNetBeans单元测试工具功能测试工具性能测试工具程序流程图DFD时序图状态图CASE工具IDE工具测试工具数据模型类图E-R图在编程的时候会考虑代码的可读性吗?你觉得代码可读性是需要考虑的问题吗?1.代码不仅要自己能读懂,还要别人也能看懂?2.尽量做到可读,但时间紧任务重的时候就顾不上了?3.代码只要自己能读懂就可以了?4.代码写完就完了,不用管以后是否能读懂?5.不知道,没有想过这个问题?编码规范2023/3/13网络程序设计-MicrosoftASP.NET@何文海5请记住:尽最大努力把方便留给别人和将来的自己。建议大家遵循本书罗列的常用编程规范!123关系实体和属性E-R图的设计原则E-R图设计的质量直接决定了关系数据库设计的质量。E-R图

实体不是某一个具体事物,而是某一种类别所有事物的统称。属性通常用于表示实体的某种特征,也可以使用属性表示实体间关系的特征实体属性属性实体和属性E-R图中的关系用于表示实体间存在的联系,在E-R图中,实体间的关系通常使用一条线段表示。E-R图中实体间的关系是双向的。关系关系关系

基数表示一个实体到另一个实体之间关联的数目,基数是针对关系之间的某个方向提出的概念,基数可以是一个取值范围,也可以是某个具体数值基数可选基数强制关系

元表示关系所关联的实体个数。二元关系二元关系一元关系关系

使用关联(Association)表示实体间关系的属性。关联关联关系123实体是一个单独的个体,不能存在于另一个实体中,成为另一个实体的属性。属性应该存在于、且只存在于某一个地方(实体或者关联)。同一个实体在同一个E-R图内,仅出现一次。

数据库开发人员通常采用“一事一地”的原则从系统的功能描述中抽象出来E-R图。E-R图的设计原则1.为E-R图中的每个实体建立一张表。2.为每张表定义一个主键(如果需要,可以向表添加一个没有实际意义的字段作为该表的主键)3.增加外键表示一对多关系。4.建立新表表示多对多关系。5.为字段选择合适的数据类型。6.定义约束条件(如果需要)。7.评价关系的质量,并进行必要的改进。关系数据库设计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)为每个实体建立一张数据库表关键字(key):用以唯一标识表中的每行记录。主键(PrimaryKey):在所有的关键字中选择一个关键字,作为该表的主关键字,简称主键。为每张表定义一个主键主键有以下两个特征:(1)表的主键可以是一个字段,也可以是多个字段的组合(这种情况称为复合主键)。(2)表中主键的值具有唯一性且不能取空值(NULL);当表中的主键由多个字段构成时,每个字段的值都不能取NULL。主键设计技巧,请参看本书内容。为每张表定义一个主键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)为每张表定义一个主键外键(ForeignKey):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。增加外键表示一对多关系情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。增加外键表示一对多关系让学生记住所在班级,远比班级“记住”所有学生容易的多。增加外键表示一对多关系情形二:实体间的一对一关系,可以看成一种特殊的一对多关系:将“一”端实体的主键放到另“一”端的实体中,并作为另“一”端的实体的外键,然后将外键定义为唯一性约束(UniqueConstraint)。增加外键表示一对多关系PK增加外键表示一对多关系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)增加外键表示一对多关系情形三:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系自身的属性放入到新表中作为新表的字段。建立新表表示多对多关系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_no,course_no,score,choose_time)建立新表表示多对多关系建立新表表示多对多关系为字段选择合适的数据类型为字段选择合适的数据类型手机号什么数据类型?学号2012001用什么数据类型?

2016-11-08用什么数据类型?常用的约束条件有6种:主键(PrimaryKey)约束外键(ForeignKey)约束唯一性(Unique)约束默认值(Default)约束非空(NotNULL)约束检查(Check)约束。定义约束(Constraint)条件设计数据库时,有两个不争的事实。 数据库中冗余的数据需要额外的维护,因此质量好的一套表应该尽量“减少冗余数据”。 数据库中经常发生变化的数据需要额外的维护,因此质量好的一套表应该尽量“避免数据经常发生变化”。评价数据库表设计的质量冗余的数据需要额外的维护,并且容易导致“数据不一致”、“插入异常”以及“删除异常”等问题的发生。使用规范化减少数据冗余场景一:插入异常。场景二:修改复杂。场景三:删除异常。使用规范化减少数据冗余规范化是通过最小化数据冗余来提升数据库设计质量的过程,规范化是基于函数依赖以及一系列范式定义的,最为常用的是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。第一范式:如果一张表内同类字段不重复出现,该表就满足第一范式的要求。第二范式:一张表在满足第一范式的基础上,如果每个“非关键字”字段“仅仅”函数依赖于主键,那么该表满足第二范式的要求。第三范式:如果一张表满足第二范式的要求,并且不存在“非关键字”字段函数依赖于任何其他“非关键字”字段,那么该表满足第三范式的要求。使用规范化减少数据冗余函数依赖:一张表内两个字段值之间的一一对应关系称为函数依赖。第一范式:如果一张表内同类字段不重复出现,该表就满足第一范式的要求。使用规范化减少数据冗余第一范式使用规范化减少数据冗余第二范式:一张表在满足第一范式的基础上,如果每个“非关键字”字段“仅仅”函数依赖于主键,那么该表满足第二范式的要求。使用规范化减少数据冗余第二范式使用规范化减少数据冗余第三范式:如果一张表满足第二范式的要求,并且不存在“非关键字”字段函数依赖于任何其他“非关键字”字段,那么该表满足第三范式的要求。使用规范化减少数据冗余第三范式使用规范化减少数据冗余统计学生的个人资料时,如果读者是一名数据库开发人员,应该让学生上报年龄信息,还是让学生上报出生日期?避免数据经常发生变化方案一:course(course_no,course_no,course_name,up_limit,description,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论