首页 > 数据库 >数据库概念设计

数据库概念设计

时间:2024-07-08 17:56:12浏览次数:24  
标签:手机号 数据库 学生 概念设计 姓名 编号 主键 属性

概念设计是数据库设计的核心环节。

简单来说,就是通过用户需要,进行综合归纳与抽象,形成一个独立于DBMS的概念模型。

数据库概念设计的目标:

或者说定义和描述应用领域设计的数据范围。

1.获取信息模型

2.描述数据的属性特征

3.描述数据之间的关系

4.定义和描述数据之间的约束

5.说明数据的安全性要求

6.支持用户的各种数据的处理需求

7.保障信息模型能够转化为数据库的逻辑结构

数据库概念设计的过程:

1.明确建模目标[也就是模型的覆盖范围]

2.定义实体集[从底向上标识和定义实体集]

3.定义联系[实体间的关联关系]

4.建立信息模型[ER图]

5.确定实体集属性[属性即描述实体集的特征或性质]

6.对信息模型进行集成和优化[检查和消除命名、结构不一致的问题]

概念模型采用最广泛的是ER[entity relationship,实体联系的模型]建模方法,即将现实世界抽象为具有属性的实体以及之间的联系。

实体集[实体] ——> 学生[张珊,李思,王武]

实体[属性] ——> 李思[男,18,12123010101]

再次明确,属性是描述实体的。

属性的取值范围称为域。

在上述“学生表”中,

码[又叫超键] ——>

  • [学生编号]
  • [姓名]
  • [学生编号, 姓名]
  • [学生编号, 年龄]
  • [学生编号, 姓名, 年龄]
  • [学生编号, 姓名, 手机号]
  • [学生编号, 年龄, 手机号]
  • [学生编号, 姓名, 年龄, 手机号] ——>这个又叫做全码。
  • [姓名, 年龄]
  • [姓名, 手机号]
  • [姓名, 年龄, 手机号]

这些都叫做码,在关系中能唯一标识元组的属性集称为关系模式的超键。

通过它们,我们可以推出整张表。

[年龄,手机号]不是超键,因为无法推整张表。

通过超键,我们可以确保在关系中每个元组的唯一性,并且能够推出整张表。这意味着通过超键可以识别和访问表中的每一条记录,而不会产生歧义或重复。

候选码 ——>

  • [学生编号]
  • [学生编号, 姓名]
  • [学生编号, 年龄]
  • [学生编号, 姓名, 年龄]
  • [学生编号, 姓名, 手机号]
  • [学生编号, 年龄, 手机号]
  • [姓名, 年龄]
  • [姓名, 手机号]

这些不含有多余属性的超键称为候选键。这些候选码都能够唯一标识表中的每个学生记录,而且没有多余的属性。

主键 ——>

  • [学生编号]
  • [姓名, 年龄]
  • [姓名, 手机号]

这些候选键都是唯一且非空的,并且没有冗余属性。通常,从中选择一个主键取决于数据库设计的需求和具体应用场景。

主键是被选定用来唯一标识关系模式中每个元组的候选键。主键需要满足以下条件:

  1. 唯一性:在整个关系中,主键的值必须是唯一的,不能有重复。
  2. 非空性:主键的值不能为NULL或空值。
  3. 最小性:主键应当是最小的超键,即不应该存在可以更少属性的超键也能唯一标识元组。

这三者的关系是包含关系

码{候选码[主键]}

此外,还有一个外键,外键是用于确定两张表关系的存在,如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外键。

比如,现在有一张学生表和一张课程表,那么课程编号现在是课程表的主键,在学生表中课程号不是主键,学号才是主键,那么,我们就说课程号是学生表的外键。

构成候选码或主码的属性是主属性,其外的则是非主属性。

联系,即实体间的关系,同类联系的集合成为联系集。

ER模型的表示:

下面绘制一个学生和课程的ER图:

一个学生可选N门课程,一门课程可被M个学生选,一个讲师只讲一个课程,一个课程只需要一名老师,一个讲师可教授N名学生

(最后一个er图欢迎指正,我也有点不确定,写着写着突然有些疑惑了)

标签:手机号,数据库,学生,概念设计,姓名,编号,主键,属性
From: https://blog.csdn.net/builie0748594740/article/details/140272760

相关文章

  • openGauss 导出数据库
    导出数据库openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有对象定义。可根据需要自定义导出如下信息:导出数据库全量信息,包含数据和所有对象定义。使用导出的全量信息可以创建一个与当前库相同的数据库,且库中数据也与当前库相同。仅导出所有对......
  • 数据库基础复习
    数据库简介关系型数据库:Mysql 、Oracle、SqlServer....DB2   达梦非关系型数据库:Redis、MongoDB...MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS ......
  • 如何把本地数据库上传到生产环境数据库
    java项目打包至生产环境流程-CSDN博客j上面的文章写了如何将代码打包至生产环境,但是由于我新建表了,导致报错找不到数据库表这篇文章讲一下如何讲本地数据库上传至生产环境下的数据库.一.navicat配置生产环境数据库1.首先用fianlshell连接到服务器2.然后配置连接,点击......
  • 大意了,数据库数据无了,记录一下通过ibdata1恢复数据的过程
    前言最近在做自己的个人博客,然后有一个功能是记录每天发表的文章数量,结果当天发布的文章却没有记录到,因为我部署java到docker时添加文章也会造成时间会少8小时,马上联想到了是docker的mysql容器的时区问题,从网上找了修改容器内的时区,为了一劳永逸,直接把容器删了重新设置时区,结......
  • javab毕业设计-基于Java的校园二手交易商城系统设计与实现,基于springboot+vue二手跳蚤
    文章目录背景介绍演示视频(进入B站观看画面更清晰):项目架构和内容获取(文末获取)部分功能展示用户前端系统管理后台项目相关文件为什么我?本章节给大家带来的是一个基于java的大学生二手交易平台系统设计与实现,可适用于校园二手交易系统,基于Java的二手交易商城系统,大学......
  • 2024年,值得收藏!推荐一些好用的数据库管理工具合集!
    数据库管理工具合集!1、DBeaver(首选)DBeaver是一款免费开源的跨平台数据库管理工具,基于Java开发,支持目前几乎所有的主流数据库,包括MySQL、PostgreSQL、SQLite、Oracle、SQLServer、DB2、Sybase、Teradata、MongoDB等。它具有直观的用户界面,支持SQL编辑、数据查看、数据编辑、元......
  • springboot在线商城系统源码idea开发mysql数据库
    下载地址:https://download.csdn.net/download/qq_41221322/89519994摘要近年来,网上购物成了风靡全球的一种现象,大家逐渐接受了网上下单,隔天取货的这种方式。我们分析了一些购物网站现有的不足,结合我们所学的知识,制作了一款购物网站程序。学以致用,语言采用了大学时期学习的J......
  • Tool-Gitlab-重置数据库,修复server迁移token异常
    Tool-Gitlab-重置数据库,修复server迁移token异常迁移gitlab的server数据之后,导致token异常影响:修改工程配置信息,提交时页面报错502sudogitlab-railsdbconsole--databasemainDELETEFROMci_group_variables;DELETEFROMci_variables;UPDATEprojectsSETrunners_token......
  • MySQl数据库课程设计 学生宿舍管理系统
    表的创建(1)createtabledormitory( #宿舍信息表  dormitory_idvarchar(15)notnull,#宿舍号    capacityint,#宿舍人数    bed_idint,#床号    student_namevarchar(20),#姓名    student_sexvarchar(5)#性别);(2)createtablesug......
  • 深耕分析型数据库领域,火山引擎ByteHouse入围《2024爱分析数据库厂商全景报告》
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群。近日,爱分析发布《2024爱分析·数据库厂商全景报告》,报告中爱分析将数据市场从上至下划分为数据库服务、数据库运维管理产品、数据库产品三层,其中数据库产品又包括事务型关系数据库、混合型......