数据库概念设计与逻辑设计[通俗易懂]

数据库概念设计与逻辑设计[通俗易懂]一、概念设计概念设计的目的就是为了建立概念数据模型,概念数据模型也称为高级数据模型,之所以称为高级数据模型是因为它更接近于人的思维,而不是机器的思维,相比于关系模型更容易理解,此处的高级和低级的概念,与程序语言领域的高低级是一样的。我们通常称Java语言为高级语言,汇编语言为低级语言,是因为高级语言对于我们而言要比汇编语言更容易理解。关于概念数据模型,我们一般都会采用E-R图进行描述。E-R图的规则如下:1.实体采用矩形框,联系采用菱形框,属性采用椭圆形框。2.实体、联系、属性必须使用文字描

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、概念设计

概念设计的目的就是为了建立概念数据模型,概念数据模型也称为高级数据模型,之所以称为高级数据模型是因为它更接近于人的思维,而不是机器的思维,相比于关系模型更容易理解,此处的高级和低级的概念,与程序语言领域的高低级是一样的。我们通常称Java语言为高级语言,汇编语言为低级语言,是因为高级语言对于我们而言要比汇编语言更容易理解。

关于概念数据模型,我们一般都会采用E-R图进行描述。E-R图的规则如下:

1.实体采用矩形框,联系采用菱形框,属性采用椭圆形框。

2.实体、联系、属性必须使用文字描述,文字写在框内,实体和属性使用名词,联系使用动词或者动宾短语,例如:发送消息。

3.实体的主键属性的文字描述需要加下划线。

4.实体联系的数量关系需要标在实体与联系之间的线段上。

4.键约束。唯一标识实体大家都知道是用主键,那么如何唯一表示联系呢?答案是用键约束,键约束是如何确认的呢?它分为3种情况:

(1)联系为1:1时,键约束存在双方。

(2)联系为1:n时,键约束存在于n方。

(3)联系为m:n时,不存在键约束。

键约束在E-R图中的表示方法如下:

数据库概念设计与逻辑设计[通俗易懂]

存在键约束的一方需要画一个箭头指向联系

二、逻辑设计

1.所有实体都需要单独转化成表。

2.联系需要分情况讨论(在此我们仅讨论二元联系):

(1)联系上有属性。

无论联系的数量关系是什么,都需要转化成一张表,同时联系所关联的实体的主键都需要移入这张联系表。至于这张表的主键确定需要分三种情况:

A.  联系的数量关系为1:1时,两个实体主键任选一方作为联系表的主键。

B. 联系的数量关系为1:n时,n方实体动得主键作为联系表的主键。

C. 联系的数量关系为m:n时,两个实体主键共同作为联系表的主键。

(2)联系上无属性。

A.  联系的数量关系为1:1时,联系无需转化成表,任选一方主键移到另一方表中做外键。

B. 联系的数量关系为1:n时,联系无需转化成表,把1方主键移入到n方做外键。

C. 联系的数量关系为m:n时,联系需要转化成表,m和n方主键共同作为联系表的主键。

通过上述方法进行逻辑设计,从E-R图转化而成的关系模型,可以至少达到3NF范式。

tag:更为复杂的数据库概念设计与逻辑设计案例详见,https://blog.csdn.net/weixin_45138601/article/details/116738450?spm=1001.2014.3001.5502

https://blog.csdn.net/weixin_45138601/article/details/118293849?spm=1001.2014.3001.5501

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184143.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何在国外注册一家公司(免费公司注册)

    随着世界经济一体化的发展,商业越来越呈现跨国界的趋势,注册海外公司已经成为中大型企业的必选之路。举一个很简单的例子:一个企业向美国出口产品,需要申请配额及一系列的相关手续,这中间需要多花费一到两倍的成本,而如果该企业拥有一个海外离岸公司,由企业向离岸公司出口产品,再由离岸公司向美国等发达国家出口,就可以绕开关税壁垒活的免税待遇,并且还能够成功绕开出口配额限制。那如何注册一个海外公司?首先需要…

    2022年4月11日
    76
  • js字符串转html_vue文件如何编译成html

    js字符串转html_vue文件如何编译成htmlhtml代码如何转换成js文件这个很简单首先你要把html代码转成js代码有这种转换工具的搜下代码转换工具就可以再把你转换好了的代码放到文本中把后缀名改成点js就可以了可以用txt文档改js文件用记事本可以打开小编喝醉了酒,流入街头可怜的像条狗,哭着对你说别走,你义无反顾笑笑也不回头。把HTML代码放到document.write方法的括号中,并用引号括起来,将原来HTML中的引号进…

    2025年10月1日
    5
  • python做物联网(物联网技术应用)

    开篇Python作为一门快速发展的解释性编程语言,数以百万计的开发者已经将Python应用在人工智能、游戏开发、数据挖掘、信息安全、系统运维等行业并取得了成功。现如今,一大批国内外头部IoT解决方商正在尝试将Python引入物联网/智能硬件开发行业,部分支持python语言的物联网开发板和模组也陆续面试。例如阿里云智能推出的HaaS开发板,树莓派推出的RaspberryPiPico开发板等。那么,物联网设备会是Python的下一…

    2022年4月12日
    100
  • Linux学习—新建文件,查看文件,修改权限,删除

    Linux学习—新建文件,查看文件,修改权限,删除过程:在一个文件夹下面新建一个文件,然后查看文件,再修改权限,运行,最后删除1、新建文件touchTest.sh补充:新建文件有好多种方式,一般用mkdir(创建目录,即文件夹)。touch

    2022年8月4日
    8
  • vue toast提示_vue弹出页面

    vue toast提示_vue弹出页面创建一个message.vue组件<template><divclass=”wrap”v-if=”showWrap”:class=”showContent?’fadein’:’fadeout'”><i:class=”iconState?’success’:’wrong'”></i>…

    2025年11月19日
    4
  • 正则表达式 – 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 – Python代码

    正则表达式 – 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 – Python代码目录1.乱码符号种类较少,用replace()2.乱码字符种类较多,用re.sub()3.提取字符串中的中文字符4.提取字符串中的中文字符和数字5.提取其他数据清洗的时候一大烦恼就是数据中总有各种乱码字符,比如!@#¥%……&——+*(){}:“》《?|【】‘;/。,、-=去掉这些很简单:1.乱码符号种类较少,用replace()如果只是很少类型的乱码符…

    2022年5月10日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号