首页 > 数据库 >数据库实施步骤

数据库实施步骤

时间:2024-04-02 12:32:16浏览次数:18  
标签:实施 步骤 数据库 实体 学校 课程 PK 工号 主键

        数据库要实现的是:将现实世界存在的实体模型通过建模转化为信息世界的概念模型,然后再将概念模型转化为数据模型,数据模型进一步规范化后就可实施数据的创建。

        现实世界中各种各样的事物都有自己的一些性质,同时又可根据某些相似性质将它们归纳为事物类;在信息世界中,事物类就是实体集,各个事物就是各个实体,事物的性质就是属性;在数据库世界中,数据表就是实体,表中的行是记录,列是数据项。数据库实施步骤如图

概念模型(E-R图)

        当我们接到一个数据库建设项目时,要进行的一个步骤就是需求分析,在需求分析阶段,我们通过         

        4 步来完成 E-R 图。

  1. 收集信息与需求方人员进行交流、座谈,充分理解数据库需要实现的功能。
  2. 找出实体找出数据库中要管理的关键对象或实体。在 E-R 图中,用矩形来表示实体。
  3. 标识实体的属性,标识出实体具有哪些特性。在 E-R 图中,用椭圆或圆角矩形来表示属性(椭圆较为常用)
  4. 分析出实体之间的联系,分析出实体与实体之间的相互关系,也就是联系。在E-R 图中,用菱形来表示联系。

 

        下面,我们通过构建一个学校的学生成绩管理数据库来进一步理解概念模型。

  • 第一步:与学校的项目组成员洽谈,获取这个数据库要实现的功能。我们了解到此数据库要记录每个同学选了哪些课、课程成绩及获得的学分。
  • 第二步:找出这个项目中的实体集,比如学生和课程。

  • 第三步:根据需求标识出学生的属性和课程的属性,学生的属性有学号、姓名、性别、出生日期、民族、政治面貌、专业名称、家庭住址、联系方式、总学分、照片、备注;课程的属性有课程号、课程名、开课学期、学时、学分。

  •  第四步:学生一旦选择了某门课程,参加考试后就会产生成绩与学分,所以学生和课程这两个实体之间有选课的联系

综上分析,可以得出学生成绩管理数据库的 E-R 图:

 

数据模型 

主键(Primary Key,PK)

        在实体的所有属性中,有一个属性或一组属性的值在所有实体对象中不会出现重复值,不能为空,那么这个属性或这组属性就是主键。比如在学生成绩管理数据库中,学生实体中每个学生的“学号”是唯一的,不可能有相同的学号而且不允许为空,那么“学号”就是主键;同理,在课程实体中每门课程的“课程号”是主键。 

实体关系

        实体与实体有 3种对应关系,分别是一对一、一对多(多对一)和多对多。下面进行详细介绍。

一对一(1:1)

        有 A和 B 两个实体集,A 中的一个实体只能与 B 中的一个实体对应,同时,B 中的一个实体只能与 A 中的一个实体对应,这时A与B就是一对一的关系,如图所示。例如,如果一个学校里只有一个校长,而这个校长只能担任一个学校的校长,那么学校与校长这两个实体就是对一的关系。 

 一对多/多对一(1:n/0:1)

        有 A 和 B 两个实体集,A 中的一个实体可以与 B 中的多个实体对应。但是,B 中的一个实体只能与 A 中的一个实体对应,这时A与B就是一对多的关系,B与A就是多对一的关系,如图所示。例如,一个学校里可以有多名教师,但是学校中的任意一名教师只属于这个学校,这时学校和教师两个实体就是一对多的关系;反之,教师和学校就是多对一联系。

多对多(m:n) 

        有A和 B 两个实体集,A中的一个实体可以与 B 中的多个实体对应,同时,B 中的一个实体也可以与 A 中的多个实体对应,如图所示。例如,在学生成绩管理数据库中,个学生可以选修多门课程,同时一门课程可以被多个学生选修,这时学生和课程就是多对多的关系。

转化为数据模型 

前面介绍了主键与实体的对应关系,下面讲述如何将 E-R 图转化为数据模型。

一对一联系的 E-R 图转换到关系模型

前面例子中的学校和校长之间就是一对一的关系,假设它们的关系模式如下。

A:学校(学校编码,学校名称)

B:校长(工号,姓名,性别,专业)转换为数据模型有两种方法。

  • 方法 1:将 A、B 两个实体的主键都放到它们的联系中,联系重新生成一个新表。
  • 在新表中,原表的主键一起作为新表的主键。
  • 学校(学校编码 PK,学校名称) 校长(工号 PK,姓名,性别,专业)属于(学校编码 PK,工号 PK)或(工号 PK,学校编码 PK)

  • 方法 2:将 A的主键给 B,或是将 B的主键给 A。
  • 学校(学校编码 PK,学校名称,工号PK)校长(工号 PK,姓名,性别,专业)或者   
  • 学校(学校编码 PK,学校名称) 校长(工号 PK,姓名,性别,专业,学校编码PK)

 

一对多联系的 E-R 图转换到关系模型

前面例子中的学校和教师之间的关系就是一对多联系,假设它们的关系模式如下。

A:学校(学校编码,学校名称)B:教师(工号,姓名,性别,专业)转换为数据模型有两种方法。

  • 方法 1:将 A、B 两个实体的主键都放到它们的联系中,联系重新生成一个新表。
  • 在新表中原表的主键一起作为新表的主键。
  • 学校(学校编码 PK,学校名称)教师(工号PK,姓名,性别,专业)属于(学校编码 PK,工号 PK)

 

  • 方法 2:将一对多的“一”方的主键给多方。
  • 学校(学校编码 PK,学校名称)教师(工号 PK,姓名,性别,专业,学校编码) 

多对多联系的 E-R 图转换到关系模型

前面例子中的学生和课程之间就是多对多联系,假设它们的关系模式如下。

A:学生(学号 PK,姓名,性别,出生日期…)B:课程(课程号 PK,课程名,开课学期,学时,学分)转换为数据模型只有一种方法:

  • 将 A、B 两个实体的主键都放到它们的联系中,联系重新生成-个新表。
  • 在新表中,原表的主键一起作为新表的主键。
  • 学生(学号 PK,姓名,性别,出生日期……)课程(课程号 PK,课程名,开课学期,学时,学分)选课(学号 PK,课程号 PK,成绩,学分) 

规范化

        一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫做”规范化“。

在实际开发走一般只会用到3NF所以5NF,4NF,BCNF就不予介绍了。各种范式之间的关系有:

5NF∈4NF∈BCNF∈3NF∈2NF∈1NF 

第一范式(1NF)

        第一范式的约束条件为:数据表中的每一个数据项都不能被拆分成两个或多个数据项,即每个数据项都是单一属性的,具有不可拆分性(原子性 )。

        因为学历与学位是两个不同的属性,合并为一个数据项不符合1NF 的约束条件,根据 1NF的约束条件,学历和学位列只能拆分为学历列和学位列。 

第二范式(2NF)

        第二范式的约束条件为:数据表中的每一个数据项都必须依赖主键,此范式充分体现了主键的核心地位,不依赖主键的列将被移出此表。

        订单日期依赖主键订单编号,也就是说当订单编号变化时,订单日期也随其变化,而产品编号与单价都不跟随订单日期发生改变,即都不依赖订单编号,所以产品编号与单价被移出该表,它们抱团生成新表或加入其他基本表中,从第一范式开始验证 

第三范式(3NF)

        第三范式的约束条件为:除主键外,任意两列不能有依赖关系,此范式也间接体现了主键的核心地位,有依赖关系的其中一列将被移出该表。

        在本例中,我们设定了销售价格是买入价格的 1.2倍,当买入价格发生变化时,销售价格将产生相应的变化,此时就不符合第三范式,那么只能把销售价格或买入价格移出该表。 

标签:实施,步骤,数据库,实体,学校,课程,PK,工号,主键
From: https://blog.csdn.net/atomy_iiii/article/details/137264814

相关文章

  • 学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)
    学生成绩管理系统目录目录基于Springboot的学生成绩管理系统设计与实现一、前言二、系统功能设计 三、系统实现1、管理员功能模块2、学生功能模块3、教师功能模块 四、数据库设计1、实体ER图五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获......
  • 旅游管理系统|基于Springboot的旅游管理系统设计与实现(源码+数据库+文档)
    旅游管理系统目录目录基于Springboot的旅游管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户管理2、景点分类管理3、景点信息管理4、酒店信息管理5、景点信息6、游记分享管理 四、数据库设计1、实体ER图   2、具体的表设计如下所示:......
  • Kylin Desktop V10部署达梦数据库(DM8)
    1.环境处理器:飞腾D2000/8E8C内存:16GB系统:银河麒麟桌面版操作系统(国防版)V10达梦数据库:dm8_20231226_FTarm2000_kylin10_sp1_642.软件下载链接:https://www.dameng.com/list_103.html3.环境部署我这里已经下载好了(软件、环境部署脚本),需拷贝至桌面运行no1.sh,安装完成后运行n......
  • mysql存储过程编写步骤
    1.创建存储过程DELIMITER$$  #将语句的结束符号从分号;临时改为2个$$(可以是自定义的)CREATEPROCEDUREProc()#创建存储过程,过程名为Proc,不带参数BEGIN #存储过程,以BEGIN关键字开......
  • SMTP服务器搭建关键步骤?如何配置服务器?
    SMTP服务器搭建的注意事项?怎么快速搭建SMTP服务器?电子邮件已经成为我们日常工作和生活中不可或缺的一部分。SMTP服务器作为电子邮件发送的核心组件,其搭建过程至关重要。下面,AokSend就来详细探讨一下SMTP服务器搭建的关键步骤。SMTP服务器搭建:明确需求在搭建SMTP服务器之前,......
  • KingbaseV8 数据库迁移
    1、打开数据迁移工具启动迁移系统路径:安装位置+\KESRealPro\V008R006C006B0021\ClientTools\guitools\KDts\KDTS-WEB\bin3、访问到KingbaseDTS数据库迁移工具http://localhost:8080默认账号密码如下:账号:admin密码:123456&*4、登录成功,进入概览页面5、创建源数据......
  • redis数据库
    1、redis数据库是什么?redis数据库是一个持久化缓存数据库,是一个高性能分布式的内存数据库,可以支持大量没有固定模式存储结构的数据。2、redis的特点?(1)开源免费(2)支持数据的持久化,将数据保存在磁盘当中,要使用的时候加载即可(3)redis支持key-value,以及set  zset  hash ......
  • 数据库:Redis数据库
    一、非关系型数据库1.什么是非关系型数据库非关系型数据库(Non-relationalDatabase)又称NoSQL数据库是一种不同于传统关系型数据库管理系统(RDBMS)的数据存储解决方案。NoSQL这个术语最初意味着"NotOnlySQL",强调的是这类数据库不完全依赖于SQL作为查询语言,并且通常不遵循关系......
  • PLC通过modbus转profinet网关连接湿度传感器操作步骤
    Modbus转Profinet网关可以连接不同系统和设备,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输到监控系统中,为生产运作提供全面的数据支持。  Modbus转Profinet网关接湿度传感器的操作......
  • 在Linux中,如何备份一个数据库?
    在Linux系统中,备份数据库是一项重要的维护任务,它可以确保在发生数据丢失或系统故障时能够恢复数据。根据所使用的数据库类型,备份方法会有所不同。以下是针对MySQL和PostgreSQL两种常见数据库的备份方法:1.MySQL数据库备份使用mysqldump工具:mysqldump是MySQL自带的一个命令行......