数据库原理(数据库设计)——(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联系来描述实体集特殊化和泛化的概念。如图,描述了学生集的层次关系:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用超声波麦克风阵列预测数控机床刀具磨损

预测性维护是使用传感器数据来推断机器状态,并从这些传感器数据中检测出在故障发生之前存在的缺陷或故障的过程。预测性维护在所有工业领域都是一种日益增长的趋势,包括轴承故障检测、齿轮磨损检测或往复式机器中的活塞磨损等许多其他例子。在预测性维护…

PV180R1K1T1NMMC派克通轴传动结构柱塞泵

PV180R1K1T1NMMC派克通轴传动结构柱塞泵 派克柱塞泵的结构组成部分:柱塞、手把、斜盘、压盘、滑履、泵体、配油盘、传送轴。其优点如下: 1、结构紧凑耐用,具有灵活的安装接口 2、安静的工作 3、效率高 4、降低功耗和减少发热 5、具有“…

最适合程序员的编程字体,漂亮、独特、优雅!(2024-06-17)

Monaco Monaco 字体是一款专为编程和代码编辑设计的等宽字体,以其简洁明了的无衬线设计风格、高可读性和清晰的字符区分度,受到开发者们的青睐,Mac 自带 Monaco 字体。 Consolas Consolas 是一款等宽无衬线字体,专为编程和代码编…

ElementPlus国际化(将组件的默认语言改为中文)

文章目录 1. Element-plus的默认语言2. 编辑 main.js 文件3. 效果(以分页条组件为例) 1. Element-plus的默认语言 Element-plus的默认语言是英语,可修改为其它语言 2. 编辑 main.js 文件 import {createApp} from vue import ElementPlus …

高等数学笔记(一):映射与函数

一、映射 1.1 映射的概念 存在一个法则 f ,使得对 X 中每个元素 x ,在 Y 中有唯一确定的元素 y 与之对应(X、Y 非空集) 称 f 为从 X 到 Y 的映射,如图所示 其中 y 称为元素 x(在映射 f 下)的…

理解并应用:JavaScript响应式编程与事件驱动编程的差异

背景介绍 在现代JavaScript开发中,响应式编程(Reactive Programming)和事件驱动编程(Event-Driven Programming)是两种非常重要且常用的编程范式。虽然它们都用于处理异步操作,但在理念和实现方式上存在显…

如何用多线程执行 unittest 测试用例实现方案

前言 使用python做过自动化测试的小伙伴,想必都知道unittest和pytest这两个单元测试框架,其中unittest是python的官方库,功能相对于pytest来要逊色不少,但是uniitest使用上手简单,也受到的很多的小伙伴喜爱。一直以来都…

上海交通大学、中科大 开源镜像站停止 Docker Hub 仓库镜像支持后的可用替代源

上海交通大学 Linux 用户组发布公告: 即时起中止对 Docker Hub 仓库的镜像。Docker 相关工具默认会自动处理失效镜像的回退,如果对官方源有访问困难问题,建议尝试使用其他仍在服务的镜像源。 源加速地址 有网友表示百度的 Docker Hub 加速器…

我在高职教STM32——GPIO入门之蜂鸣器

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

C++语法04 标准输入语句

标准输入 使用格式:cin >> 输入的意思就是把一个值放到变量里面去,也就是变量的赋值,这个值是由我们自己输入的。 (注意:输入变量前要先定义,输入完之后要按Enter键。) 输入多个变量,与输出类似,…

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时,若发现程序运行时间越长,占用内存越大直至崩溃,通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因,包括数组和字符串处理、未释放的资源、循环中的对象创建等,并提供具体的解决方…

【细胞分割 + 图谱配准】论文综述

文章目录 一、细胞分割1.1、细胞分割:cellposeCellpose3: one-click image restoration for improved cellular segmentationCellpose 2.0: how to train your own modelCellpose: a generalist algorithm for cellular segmentation 1.2、细胞分割与染色 —— Cell…

算法体系-19 第十九节 暴力递归到动态规划

一 动画规划的概念 优化出现重复解的递归 一旦写出递归来,改动态规划就很快 尝试策略和状态转移方程是一码事 学会尝试是攻克动态规划最本质的能力 如果你发现你有重复调用的过程,动态规划在算过一次之后把答案记下来,下回在越到重复调用过程…

助力全息通信技术!GPS-Gaussian实现2K实时人体新视点合成

论文标题: GPS-Gaussian: Generalizable Pixel-wise 3D Gaussian Splatting for Real-time Human Novel View Synthesis 论文作者: Shunyuan Zheng, Boyao Zhou, Ruizhi Shao, Boning Liu, Shengping Zhang, Liqiang Nie, Yebin Liu 项目地址&#x…

7.无代码爬虫八爪鱼采集器软件——采集规则/项目的创建与网址输入

接上篇 6.零代码网页爬虫软件基础实操——下载与安装八爪鱼采集器 八爪鱼免费爬虫软件下载: 八爪鱼采集器下载 小白数据采集神器​​https://affiliate.bazhuayu.com/retrieve 直接复制粘贴要采集的网站在这里就可以进入采集规则的设计器 自定义任务 通过这个功能…

使用volta管理前端开发环境

背景:公司有新老不同的产品,使用的node版本不一样,每次都要手动切换node版本,对应的项目才能运行。这样很麻烦,有没有好的解决方法,就找到了volta。 1.为什么是volta? 管网介绍:使用…

国内外典型的知识图谱项目

文章目录 早期的知识库项目互联网时代的知识图谱中文开放知识图谱垂直领域知识图谱 从人工智能的概念被提出开始,构建大规模的知识库一直都是人工智能、自然语言理解等领域的核心任务之一。下面分别介绍早期的知识库项目、互联网时代的知识图谱、中文开放知识图谱和…

【论文阅读笔记】PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation

1.论文介绍 PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation PA-SAM:用于高质量图像分割的提示适配器SAM 2024年 ICME Paper Code 2.摘要 Segment Anything Model,SAM在各种图像分割任务中表现出了优异的性能。尽管SAM接受了超过10亿…

软考又考了,数据库范式这次一定要弄懂!

0. 引言 今年数据库范式又作为选择题在软考中出题了,范式和反范式同样也在我们日常开发的数据库表设计工作中提供重要理论,今天我们来彻底弄懂几大范式的概念和区别,以及常见的反范式设计方法 1. 定义 1.1 基础概念 在实际讲解之前&#…

终于用上了桌面版本的chatGPT

最近经过不断的探索,也算是用上了桌面版本的chatgGPT,想要用同学,可以关注一下,后面我会出一期教程的~