E-R 图的不同表示方法(Chen 方法和 Crow‘s foot 方法)

E-R图,中文名称叫实体-关系图,是数据库设计所使用的重要模型。

E-R图最早由Peter Chen提出,他现在是路易斯安那州立大学的教授,中文名叫陈品山,是出生于台湾的美国计算机科学家。这是他的照片:

chen.jpeg

他刚提出来E-R图的时候,使用矩形表示实体集,椭圆形表示属性,菱形表示关系。类似于这样:

image.png

这种表示方法叫做Chen方法(陈氏表示法)。有人常常把Chen方法当作E-R图的唯一的方法,我之前也以为是这样,实际上是不对的,这只是E-R图刚诞生时的画法,之后有各种各样的改进方法。这个方法存在的最大问题就是当一个实体存在很多属性的时候,就是产生非常多的椭圆,导致图片非常混乱,不清晰明了。在Chen方法的基础上,后人有做一些增补和改进,但这些改动没有改变属性用椭圆来表示这一最大的缺点,因此依然可以称之为Chen方法。

后来的一种比较有名的改进方法叫做Crow’s foot方法,示例如图:

ERdiagramofthesubjectdomainCrowsFootnotation.png

这种方式将每个实体用一个上下分割的方框来表示,上半部分写实体名称,下半部分写实体属性,类似于UML类图的表示方法。同时用鸦爪符号表示“……对多”或“多对……”关系,这也是Crow’s foot(乌鸦脚)这个名字的由来。这种方法使得实体和关系的表示更加清晰明了。它的详细画法如下图所示:

在这里插入图片描述

对于E-R图的多种不同表示方法,在Abraham Silberschatz所著的数据库系统概念(第6版)这本书中有一张图做了一个集锦,如下(没找到电子版的,只能拍照了):

535bfe1b7b3ae25cb97c848897d6410.jpg

数据库系统概念(第6版)这本书中也提到,在本书第5版及以前的版本中,使用陈氏表示法来表示E-R图,但随着UML使用的增多,第6版采用了更接近于UML类图的形式。此外它还提到了美国国家标准和技术研究院还定义过一个叫IDEF1X的标准,也使用鸦爪形符号,但本书没有对IDEF1X做具体展开。关于IDEF1X的内容,推荐大家观看哈尔滨工业大学战德臣老师讲授的数据库原理在线课程,在中国大学mooc和B站上都有,这门课程对IDEF1X做了具体讲授。

  • 23
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
伪彩色算法可以通过将灰度像的像素值映射到RGB颜色空间中的某个颜色值来实现。频率域方法中,可以通过傅里叶变换将灰度像转换为频域像,然后对频域像进行滤波、增强等操作,最后将结果逆变换回空间域,得到伪彩色像。 以下是一个简单的基于频域方法的伪彩色算法示例: ```python import cv2 import numpy as np import matplotlib.pyplot as plt # 读取灰度像 img_gray = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE) # 进行傅里叶变换 f = np.fft.fft2(img_gray) fshift = np.fft.fftshift(f) # 设计高通滤波器,去除低频成分 rows, cols = img_gray.shape crow, ccol = int(rows/2), int(cols/2) mask = np.zeros((rows, cols), np.uint8) mask[crow-30:crow+30, ccol-30:ccol+30] = 1 # 将滤波器应用于频域像 fshift = fshift * mask # 进行逆变换,得到像 f_ishift = np.fft.ifftshift(fshift) img_back = np.fft.ifft2(f_ishift) img_back = np.abs(img_back) # 将灰度像映射到RGB颜色空间,得到伪彩色像 img_color = cv2.applyColorMap(img_back.astype(np.uint8), cv2.COLORMAP_JET) # 显示结果 plt.subplot(121), plt.imshow(img_gray, cmap='gray') plt.title('Input Image'), plt.xticks([]), plt.yticks([]) plt.subplot(122), plt.imshow(img_color) plt.title('Pseudo-colored Image'), plt.xticks([]), plt.yticks([]) plt.show() ``` 其中,我们首先读取灰度像,并进行傅里叶变换。然后,我们设计一个高通滤波器,去除低频成分,这样可以增强像的边缘信息。接着,我们将滤波器应用于频域像,并进行逆变换,得到空间域的像。最后,我们将灰度像映射到RGB颜色空间中的某个颜色值,得到伪彩色像。在这个示例中,我们使用了Jet伪彩色模板。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值