数据库原理(数据库设计)——(3)

一、数据库设计概述

1.数据库设计的基本任务和目标

基本任务

        根据用户的信息需求、数据库操作需求,设计一个结构合理、使用方便、效率高的数据库。

设计目标

  • 满足用户的应用要求;
  • 准确模拟现实世界;
  • 能背某个DBMS(数据库管理系统)接受;
  • 具有良好的性能,较好的质量;

2.数据库设计的方法

(1)新奥尔良方法

        该设计方法认为数据库设计应分六个阶段进行,者六个阶段分别是需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施以及数据库运行和维护。

(2)基于E-R模型的数据库设计方法

(3)基于3NF的设计方法

(4)对象定义语言方法

二、需求分析(没啥用不考,想了解的可以在网上自行查阅)

三、E-R图(数据库概念结构设计)

1.概念结构的表示

  • 实体集用长方形表示(这里可以看作是一个关系表);
  • 属性用椭圆形表示,就是关心表中每一列的属性名;
  • 联系用菱形表示,菱形内要写明联系名;

这里联系又分为三种:一对一、一对多、多对多,下面用实际案例进行画图举例:

(1)一对一

        一个单位的总负责人只有一个,一个人也只能当一个单位的总负责人,这时候单位和总负责人的关系是一对一的,如图:

(2)一对多

        一个部门有多个员工,一个员工只能属于一个部门,此时部门和员工的关系属于一对多,如图:

(3)多对多

        一个项目有多个员工,一个员工可以同时进行多个项目,此时员工和项目的关系就是多对多的,如图:

2.局部E-R图设计

     这里在属性上有三点需要注意:

  • 属性不能再具有需要描述的性质(不能进行细分);
  • 属性不能与其他实体集有联系(不用再E-R图上画外键id);
  • 对于同一个对象,如果需要进一步描述该对象,并需要处理该对象于其他实体间的联系,可以考虑将该对象作为实体。

对于后两点,这里进行举例,

错误示范:

正确写法:

 

这里专业中应还有其他属性,这里图中没有体现,但要注意。

3.全局E-R图设计 

       将局部E-R图合成,则为全局E-R图,但再合成的时候可能会产生冲突,这其中主要冲突有三种:

(1)属性冲突。包括域冲突和属性取值冲突;

(2)命名冲突。有同名异义冲突和异名同义冲突;

(3)结构冲突。结构冲突又有三种情况:

  • 同一对象在不同的应用中具有不同的抽象;
  • 同一实体在不同的局部E-R图中属性组成不一致;
  • 实体之间的联系在不同的局部E-R图中联系的名称、属性不同或呈现不同的类型。 

四、一些概念和其他问题

1.弱实体集和强实体集

        强实体集(Strong Entity Set)是指具有自己唯一标识符的实体集。这意味着强实体集中的每个实体都可以被唯一地识别和区别于其他实体。

        弱实体集(Weak Entity Set)则不具备自己的唯一标识符。它依赖于与其相关的强实体集来确定其唯一性。弱实体集的存在必须与其依赖的强实体集相关联。

        简单来说,就是强实体集可以单独存在,而弱实体集必须靠强实体集才能存在,如专业和专业课,此时专业就是强实体集,专业课就是弱实体集,没有专业就没有专业课。对于弱实体集,必须满足以下限制:

  • 强实体集和弱实体集的联系类型只能是一对一或一对多的;
  • 弱实体集中的每个实体都参与到联系集中至少一个联系中。

2.依赖实体集

        依赖有两种约束情况:

  • 实体集与实体集之间的依赖约束,即弱实体集依赖于强实体集;
  • 实体集与联系集之间的依赖约束,即实体的存在依赖于联系集中的联系。

3.实体的子类型和超类型

        简单的说就是关系之间的继承,E-R模型使用实体集的继承和ISA联系来描述实体集特殊化和泛化的概念。如图,描述了学生集的层次关系:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星极天下第一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值