精华内容
下载资源
问答
  • 数据库逻辑设计

    2008-03-14 17:39:13
    数据库逻辑设计数据库逻辑设计
  • 校园“一卡通”关系数据库逻辑设计.docx
  • 目录第八讲 数据库逻辑设计逻辑结构设计的任务E-R图向关系模型的转换转换内容 第八讲 数据库逻辑设计 逻辑结构设计的任务 E-R图向关系模型的转换 转换内容 ...

    第八讲 数据库逻辑设计

    逻辑结构设计的任务

    在这里插入图片描述

    E-R图向关系模型的转换

    转换内容

    将E-R图转换为关系的模型:
    将实体型、实体的属性和实体型之间的联系转化为关系模式
    

    实例

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    数据模型的优化

    优化数据模型的方法

    在这里插入图片描述

    几点注意⚠️:
    在这里插入图片描述

    设计用户的子模式

    在这里插入图片描述

    在这里插入图片描述

    总结

    在这里插入图片描述

    展开全文
  • MySQL画图:workbench 工具里---Database---Reverse Engineer---NEXT---选择数据库---Next---Next即可画出diagram,代表表与表之间的连接数据库设计:基本设计流程:...把设计的产品映射到一个关系图标逻辑设计:将...

    MySQL画图:

    workbench 工具里---Database---Reverse Engineer---NEXT---选择数据库---Next---Next

    即可画出diagram,代表表与表之间的连接

    数据库设计:

    基本设计流程:需求分析---设计---实现---运行维护

    其中设计包含三个方面:概念,逻辑,物理

    概念设计:利用数据模型进行概念数据库的模式设计。把设计的产品映射到一个关系图标

    逻辑设计:将概念模型具体化,即要实现概念模型所描述的东西,需要哪些具体的功能和具体的信息。例如订单包含订单ID,订单金额,订单地址等。这个阶段的结果是可以在数据库中生成具体的表及其他的数据库对象(主键,外键,索引,约束,视图,存储过程)。

    物理设计:考虑具体的技术实现因素。在具体的数据库上实现数据存储。例如考虑数据库大小

    整个流程是商业需求到数据库设计的一个转换

    ER 模型 entity relationship

    通过一个实体的图来缕清思路

    包含实体,属性,联系三个部分

    下图中,实体包括licence,Registration,Car信息表

    实体就是数据库中需要收集信息的主体。

    属性就是可以收集的信息的种类,用来代表主体。

    联系就是根据实体间的关系进行表的分割。

    基本作图步骤:

    根据需求确定实体集合

    选择实体集应该包括的属性

    确定试题集之间的练习

    确定实体集的键,用下划线在属性表上表明键的属性组合

    确定关系类型,做标注

    调整

    图示例子:

    弱实体:https://sqltutorialtips.blogspot.com/p/entity.html​sqltutorialtips.blogspot.com

    子类:ISA 具有特殊属性的,不能与实体放在一起

    基本的原则包括:

    根据需求设计

    避免冗余,保持简单

    刷题神器- leecode 中文名 领扣 点database 就可以看到常见题目

    展开全文
  • ​作为一个后端开发者,数据库设计是我们避不开的课题,不管是面试的时候,还是在真实工作的情境下,我们的工作不仅仅是将代码开发出来,根据开发的项目,设计出支撑项目的数据库,也是一个合格的开发者所应该具备的...

    ​作为一个后端开发者,数据库设计是我们避不开的课题,不管是面试的时候,还是在真实工作的情境下,我们的工作不仅仅是将代码开发出来,根据开发的项目,设计出支撑项目的数据库,也是一个合格的开发者所应该具备的技能之一,这里我将数据库设计分成几个重要的部分,以下是我做数据库设计时的步骤。

    数据库设计步骤

    需求分析

    需求分析相信大家都知道,我们在做开发之前先做需求分析,能让我们的开发更加顺畅,它是我们开发的指南针,好的需求分析能让我们明确开发的需求,避开不需要做的功能需求,减少不必要的时间,而在数据库设计当中,需求分析也同样重要,当然它不需要结成像是需求文档一样的东西,首先要搞清楚为什么要做需求分析。需要存储哪些数据。

    数据的特点,其中最重要的就是数据的时效性,在项目不断壮大的情况下,我们存储的数据会越来越多,这些数据是否能够清理,还是应该归档,这都是在确定数据时效性之后才明确的。

    数据的生命周期。这个和数据的特点有些类似,像是增长快、量大、但又非必要的数据,我们可以考虑是否选择将这样的数据存入数据库,如果一定要存数据库,也可以提早确定分表的规则或者是清理的规则,如果等到数据变得十分庞大后再去考虑这些问题会影响到业务的正常进行,这些事情在需求分析就能确定下来是最好不过的。

    而经过需求分析,我们也有需要搞清楚的事情,这也是需求分析的目的。首先是项目会涉及到的实体,像是在一个电商项目中,商品就是其中一个实体,一般情况下,我们可以将一个实体设计成一个表,当然这个不是一定的,需要根据实际情况设计。其次,也是我认为十分重要的一个步骤,即确定实体之间的关系,也就是我们常说的一对一,一对多以及多对多。只要确定了这个关系,我认为就能设计出一个业务逻辑上不会出错的数据库。

    通常情况下,一对一的表将其中一个表的主键作为另一个表的外键,一对多的情况将“一”对应的那个表的主键作为“多”的那个表的主键,多对多的情况就设计一个关联表,将两表的主键存在关联表中做关联关系,这个方法在大部分项目中都能够直接使用,很大程度上减少我设计数据库的时间,如果时间紧急,可以采取这种方式设计后再做验证,时间充足的化还是希望大家按照一定的规范设计数据库。

    最后,确定实体的属性,像是商品这个实体中,有商品名,价格等属性。

    逻辑设计

    以上就是需求分析应该做的事情,分析之后,就是做设计了,这里涉及到的内容就比较理论化,但是前人为我们总结了设计的规范,让我们可以比较简单的做逻辑设计。其中使用到的工具就是 ER 图。

    er图

    ER 图由矩形、菱形、椭圆形和线段组成,使我们可以将需求分析出来的实体、属性、实体间的关系由图体现出来,让人更加方便看懂理解。

    将 ER 图画出来后,就是使用设计范式去做更详细的设计了。范式是关系型数据库的理论基础,是我们在设计数据库结构过程中所要遵循的规则和指导方法,经过设计范式的指导设计,我们就可以得到一个十分完善,逻辑清晰的数据库设计了。其中,我们主要遵循第一范式、第二范式、第三范式和BC范式,各种范式呈递次规范,越高的范式数据库冗余越小,即满足第三范式则一定满足第一第二范式,满足第二范式一定满足第一范式。

    第一范式:确定表中的每一个字段都不能再分。下面这张图就是违反了第一范式,因为其中的用户信息字段还可以再分。

    第一范式

    第二范式:一个表是复合主键时(多个键组成唯一识别),其中一个候选关键字存在决定非关键字的情况时,就不符合第二范式了,如下图。

    第二范式

    所以,如果是非复合主键则一定符合第二范式。

    第三范式:不能存在传递函数关系。

    第三范式

    如上图,商品名称和分类在同一表内,但分类又可以决定分类描述,这就是传递函数关系,这时候,将分类和分类关系拆出来放到另一个表就可以达成第三范式了。

    第三范式完善

    以上就是数据库需求分析和逻辑设计的内容,这里比较偏向理论,好好的理解这些方法和设计范式就能设计出项目对应的数据库,能让我们如善应对工作中需要做的数据库设计相关的工作了,希望这篇文章能给大家带来帮助,下一篇文章会讲到物理设计和数据库维护相关的内容,因为一个数据库设计仅仅是满足于业务逻辑是不够的,随着业务的壮大,合理的物理设计和维护十分必要。这里给关注公众号的读者一个小小的资源,请在后台回复【数据库】获取。

    日常发布初出茅庐程序员一些胡言乱语以及编程资源,漫漫编程路,希望我们一起进步!

    展开全文
  • Oracle数据库逻辑设计规范 Oracle数据库逻辑设计规范 1. 表设计 规范化和反规范化 A、数据库模型通常必须满足3NF; B、如确实需要进行反规范化设计,必须明确说明性能或业务上的理由。 表命名设计 ...
    Oracle数据库逻辑设计规范

    Oracle数据库逻辑设计规范

    1.  表设计

    规范化和反规范化

    A、数据库模型通常必须满足3NF;

    B、如确实需要进行反规范化设计,必须明确说明性能或业务上的理由。

    表命名设计

    按照数据表类型的不同,数据表可以按以下类型命名:

    系统数据表:ts(system)_<表标识>

    基本编码表:tc(code)_<表标识>

    属性数据表:ta(attribute)_<表标识>

    业务数据表:tb(business)_<表标识>

    决策数据表(包含报表):td(decision)_<表标识>

    历史数据表:th(history)_<表标识>

    2.   属性设计

    数据类型

    A、除char(1)外,不允许在属性中使用char类型;

    B、对地址、电话等易变的业务数据,可以采用多个字段。

    属性命名

    A、属性一般的命名规则需符合《Oracle命名规范》;

    B、id属性的命名规则为:<表名>_id

    附加属性

    除临时表外,系统中的每张物理表必须增加如下属性:

    属性名

    类型

    取值

    说明

    status

    Char(1)

    Y/N Y为激活N为作废,默认为Y

    标识该行是否使用。用于软删除。

    create_time

    date

    默认为sysdate

    创建时间

    create_by

    varchar2(255)

     

    创建人

    update_time

    date

    默认为sysdate

    最后修改时间

    update_by

    varchar2(255)

     

    最后修改人

    3.   数据完整性设计

    实体完整性设计

    A、除临时表外,物理表必须指定主键;

    B、必须保证主键的无意义性,禁止给主键附加业务含义;

    C、主键使用id字段标识,类型为number(10),可根据业务需要,调整长度;

    D、主键id的取值禁止从1开始。通常应从1000000000开始,以保持主键长度的一致;

    E、主键id的取值必须使用序列实现,禁止使用GUID或键表的方式。

    参照完整性设计

    A、以下类型的表必须建立参照完整性:

    系统数据表;

    基本编码表;

    属性数据表;

    业务数据表;

     

    B、以下类型的表不建议建立参照完整性:

    临时表;

    决策数据表;

    历史数据表。

     

    C、建立参照完整性约束的父子表,需要满足以下级联操作要求:

    父表中删除数据:受限删除。禁止级联删除子表数据。

          父表中更新主键:把数据库设计人员拖出去打。

    自定义完整性设计

    A、检查约束必须设计;

    B、非空约束必须设计。禁止除主键外,其他属性都允许为空的设计;

    C、唯一约束必须设计。

    4.   索引设计

    A、 所有候选键必须建立唯一索引;

    B、 外键属性必须建立索引;

    C、 不建议索引常用的小型表;

    D、 如需要建立位图索引,必须明确说明性能上的理由;

    E、  如需要建立反向索引,必须明确说明性能上或部署环境上的理由;

        F、  如需要建立函数索引,必须明确说明业务上的理由。

     

    展开全文
  • 数据库逻辑设计与物理设计

    千次阅读 2018-11-28 15:20:00
    应用程序数据模型设计通常分两个阶段。建立逻辑数据模型为第一阶段,它包括对应用程序需求处理和存储的信息进行建模,并确保所有必要的数据都能够正确完整且无歧义的表示。...在传统的方法论中,逻辑数据模型设计往...
  • 数据库逻辑设计之三大范式第一范式第二范式第三范式反范式化范式化设计和反范式化设计的优缺点范式化反范式化 第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解; 表:字段1、 字段2(字段2.1、字段2.2...
  • 数据库逻辑设计原则   2.1 命名规范 2.1.1 表属性规范 2.1.1.1 表名 前缀为Tbl_ 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。表名称不能用双引号包含。...
  • oracle 数据库逻辑设计

    2009-05-30 09:00:00
    本书全面介绍了高效建立、监视、调整数据库和维护数据库安全的方法,详细讲解了如何使用Oracle 分布式数据库及其在UNIX和Windows NT平台上的客户机/服务器结构。另外,本书还包括了Oracle8i最新的基于网络的性能介绍...
  • 20120711DB2数据库逻辑设计(一)

    千次阅读 2012-07-11 23:07:37
    商业智能群199567325,2012年7月11号《db2数据库逻辑设计(一)》,讲解者:赵坚密Jimmy。 讲课方式,YY频道号:85536471 YY频道每周三讲解,具体请加QQ群199567325下载讲课录音。 DB2逻辑设计 赵坚密...
  • 数据库逻辑设计的主要任务是:创建数据库模式。数据库逻辑设计的主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。数据库设计(Database Design...
  • 一个数据库逻辑设计原则

    千次阅读 2011-03-14 14:49:00
    2 数据库逻辑设计原则 <br />2.1 命名规范 <br />2.1.1 表属性规范 <br />2.1.1.1 表名 <br />前缀为Tbl_ 。数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如...
  • 数据库设计范式 第一范式:表中的所有字段都是不可再分的,符合第一范式的表都是标准的二维表; 第二范式:表中必须存在主键,并且表中其他非主键必须依赖于这个主键,如果使用的是组合主键,那必须要求表中的其他...
  • 一、第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解; 表:字段1、 字段2(字段2.1、字段2.2)、字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可以再分成(出生年,...
  • 逻辑设计:设计数据库的逻辑结构,与具体的DBMS无关,主要反映业务逻辑。 物理设计:设计数据库的物理结构,就是根据数据库的逻辑结构,结合选定的DBMS,设计数据库的存储结构、存取方式等。 这两个设计的分开,有...
  • 没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到...
  • E-R图是现实世界各实体的具体反映,与数据库具体实现毫无关系,但它却是构造数据模型的主要依据。本章的重点也是难点是:正确地应用E-R图反映实体间联系并从E-R图中导出关系模型。   1.从E-R图中导出关系模型...
  • 1、建立逻辑数据模型为第一阶段,包括对应用程序需要处理和存储的信息进行建模,并确保所有必要的数据都能够正确、完整且无歧义地表示。在关系数据库的实现中,这通常是指构造一个标准化的实体-关系(E-R)模型。 2、...
  • 没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到...
  • 数据库逻辑结构设计

    2014-04-20 20:19:55
    包含了对数据库逻辑结构设计的方法等的归纳总结。
  • 概述数据库逻辑设计是从事数据库应用设计、开发、运行维护等各方面工作的一个重要的基础性工作。根据不同业务和应用需求,确定并遵循数据库逻辑设计原则,例如按照第三范式开展逻辑设计,不仅能满足减少数据冗余、...
  • 概述数据库逻辑设计是从事数据库应用设计、开发、运行维护等各方面工作的一个重要的基础性工作。根据不同业务和应用需求,确定并遵循数据库逻辑设计原则,例如按照第三范式开展逻辑设计,不仅能满足减少数据冗余、...
  • 概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。...这就是数据库逻辑设计所要完成的任务。数据库逻辑结...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,092
精华内容 5,236
关键字:

数据库逻辑设计