数据库设计和数据库对象

目录

序言

一、数据库设计的步骤

二、如何绘制E-R图

2.1 酒店管理系统的基本功能

2.2 绘制E-R 实体关系图(三要素):

2.3 关系型数据库常见映射基数:

2.4 转化E-R图形成数据库模型图

三、使用三大范式实现数据库设计规范化

3.1 第一范式 (1st NF)

3.2 第二范式(2st NF)

3.3 第三范式 (3st NF)

规范化的酒店管理系统E-R图:

规范化的酒店管理系统数据库模型图:


序言

        我们为什么要进行数据库设计呢?一个成熟完善的数据库设计可以带给我们什么好处呢?而糟糕的数据库设计又会给我们带来什么不便呢?学习本篇文章,你将对数据库设计的步骤有一个框架概念,并通过实例教会你如何让绘制E-R图以及如何转换为数据库模型图。

一、数据库设计的步骤

糟糕的数据库设计:

1,数据冗余,存储空间造成大量浪费;

2,内存空间与日志空间的浪费;

3,数据的更新迭代与插入时刻伴随着风险和异常;

成熟的数据库设计:

1,节省数据的存储空间;

2,数据的完整性高,原子性强;

3,方便进行数据库应用和系统开发;

那么我们该如何进行数据库设计呢?

数据库设计步骤:

1.需求分析阶段:旨在分析客户的业务和数据处理的需求

2.概要设计阶段:设计出数据库的E-R模型图,确认需求信息的正确和完整性

3.详细设计阶段:运用数据库三大范式越泽,规范审核数据库结构,形成数据库模型图

4.代码编写阶段:物理实现数据库,代码实现应用

5.测试阶段: 实践||实验

6.备份还原阶段:...

二、如何绘制E-R图

2.1 酒店管理系统的基本功能

1.收集信息:

系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务

  • 旅客办理入住手续:后台数据库需要存放入住客人的信息和客房信息

  • 客房信息:后台数据库需要存放客房的相关信息,如客房号、床位数、价格等

  • 客房管理信息:后台数据库需要保存客房类型信息和客房当前状态信息

2.标识出实体:

数据库要管理的关键对象或实体内容,实体通常情况下 是一个名词

  • 客人:入住酒店的旅客。办理入职手续时,需填写用户信息。

  • 客房:酒店为客人提供休息的住所。

3.标识出每个实体的属性:

  • 客人属性:编号 姓名 身份证.....

  • 客房属性:编号 名称 床位 状态 类型....

4.标识出实体和实体之间的关系

实体和实体之间的关系 通常用动词去描述

客房和客人之间 存在主从关系 客房是主1 客人是从N

1对N关系 被引用 引用关系

从设计角度上来说 就是 N个人可以住一个房子

客房被客人引用了---客人引用了客房

2.2 绘制E-R 实体关系图(三要素):

符号含义
矩形实体,一般是名词
椭圆形实体,一般是名词
菱形关系,一般是动词

2.3 关系型数据库常见映射基数:

2.4 转化E-R图形成数据库模型图

1 将各实体转化为对应的各表,将各属性对应成为各表的列。

2 标识出每个表的主键列(非空+唯一),一张表有且只有一个主键列。

3 在表之间建立主外键,形成引用被引用关系。

三、使用三大范式实现数据库设计规范化

数据库设计规范化的的重要性:防止信息重复、更新异常、插入异常以及删除异常等等

三大范式原则:

3.1 第一范式 (1st NF)

  • 第一范式的目标是确保每列的原子性

  • 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)

3.2 第二范式(2st NF)

  • 第二范式要求每个表只描述一件事情

3.3 第三范式 (3st NF)

  • 如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

规范化的酒店管理系统E-R图:

规范化的酒店管理系统数据库模型图:

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

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

相关文章

本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask,以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架,采用Python编程语…

C++入门学习(七)整型

整型就是整数类型的数据(-1,0,1等等) 数据类型占用空间取值范围short(短整型)2字节 (-2^15 ~ 2^15-1) 32768~32767 int(整型)4字节(-2^31 ~ 2^31-1)long(长整形) Windows为4字节, Linux为4字节(32位), 8字节(64位) (-2^31 ~ 2^31…

flink部署模式介绍

在一些应用场景中,对于集群资源分配和占用的方式,可能会有特定的需求。Flink 为各种场景提供了不同的部署模式,主要有以下三种,它们的区别主要在于: 集群的生命周期以及资源的分配方式;应用的 main 方法到…

jmeter生成html性能结果报告

从3.0版本开始,jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告。 1.生成html报告 1.1操作步骤: 进入JMeter的bin目录下;打开命令行窗口,输入以下命令: 对于Windows系统:…

open3d点云平移

功能简介 open3d中点云的平移函数为:pcd.translate((tx, ty, tz), relativeTrue)。当relative为True时,(tx, ty, tz)表示点云平移的相对尺度,也就是平移了多少距离。当relative为False时,(tx, …

HCIA——20应用层:C/S、P2P、peer

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

AI绘画Midjourney绘画提示词Prompt入门到精通【宝藏级收藏】

一、AI绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支…

解决github无法访问的问题(修改hosts)

1.先ping github.com看是否能ping通 不能ping通的话,找到github最新的ip地址,修改hosts文件 找最新的ip地址的办法: a.cmd中ping时返回的 b.点击ipaddress.com查询网站链接 修改hosts文件: 140.82.113.4 github.com借鉴博客&a…

deepin20.9设置root登录

首先设置root 账户密码 sudo passwd root创建 /etc/lightdm/lightdm-deepin-greeter.conf,输入以下内容 sudo touch /etc/lightdm/lightdm-deepin-greeter.conf sudo deepin-editor /etc/lightdm/lightdm-deepin-greeter.conf [General] loginPromptInputtrue别忘…

蓝牙驱动程序错误的疑难问题解决办法(离谱的错误,已经解决)

我的问题介绍: 晚上还是好的,第二天电脑忽然蓝牙驱动坏了,也不知道为什么,然后就是修复 修复过程: 1:自己重新下载网卡驱动 2:自己联系官方客服,下载蓝牙驱动 3:无论…

《WebKit 技术内幕》之六(2): CSS解释器和样式布局

2 CSS解释器和规则匹配 在了解了CSS的基本概念之后,下面来理解WebKit如何来解释CSS代码并选择相应的规则。通过介绍WebKit的主要设施帮助理解WebKit的内部工作原理和机制。 2.1 样式的WebKit表示类 在DOM树中,CSS样式可以包含在“style”元素中或者使…

uniapp组件库SwipeAction 滑动操作 使用方法

目录 #平台差异说明 #基本使用 #修改按钮样式 #点击事件 #API #Props #Event 该组件一般用于左滑唤出操作菜单的场景,用的最多的是左滑删除操作。 注意 如果把该组件通过v-for用于左滑删除的列表,请保证循环的:key是一个唯一值,可以…