2301_78900900 2024-05-30 10:10 采纳率: 0%
浏览 27

绘制数据库E—R图对问题探索

某高校计划开发一套在线教学资源(视频、图片、PDF等)评价及分享系统,为学生在第一课堂学习的基础上,提供优质的辅助教学资源,方便为学生浏览高评分优质课程,同时,还可根据学生资源评分情况,提供其潜在感兴趣的资源。
根据项目市场评估要求,需优先开发一套满足基本业务需求的教学资源评价、分享系统,作为数据库设计人员,通过走访与跟班的方式,了解到目前该系统的主要角色包括:
(1)非注册用户
可以浏览和搜索目前系统中评分较高的各门课课程资源,但并不能评价资源和收藏资源。
非注册用户经注册后,可转换为注册用户。
(2)普通注册用户
可以登录系统和对个人的基本信息(昵称、缩略图、邮箱、微信、手机、出生日期、性别、个人简介、偏好专业门类)进行维护,也可在忘记密码时,通过手机重置密码。
可以浏览、搜索、共享系统中各专业学科下的课程资源评分,并为感兴趣的资源提供学习感受、评分或直接收藏。
(3)系统管理员用户
可以管理系统中专业分类情况。
可以管理系统中各类资源及资源的评价信息。
可以管理普通用户的基本信息并对用户状态进行调整(激活状态、密码重置状态、冻结状态、删除状态)。
(4)系统超级管理员用户
具有系统管理员的全部功能。
可手动生成管理员的登录信息和基本信息。
对上述用户需要的业务按功能进行分类,梳理和整合后的系统功能如下:
(1)用户管理功能
用户注册:获取并存储用户输入的昵称、手机、密码、确认密码、性别、等必要登录信息和缩略图、邮箱、微信、出生日期、个人简介、2个偏好专业门类等非必要个人信息。根据注册信息,获取用户注册时间并在系统中构建普通注册用户。
用户登录:获取并验证用户输入的用户名、密码、验证码等登录信息。当登录信息与系统中存储和激活状态用户信息匹配时,记录用户登录时间和IP地址,允许用户登录并以注册用户身份使用系统,否则提示“用户名或密码”出错,重新获取用户输入信息。
普通用户密码重置:获取用户输入的注册手机号码,若手机号码匹配,将重置密码状态和时间存储在系统中,发送给用户手机,并在用户登录时,根据系统中存储的重置密码情况,提示用户立即修改密码。若手机号码不匹配,提示“手机号码不匹配”。
普通用户登录密码修改:获取用户录入的原密码、新密码和确认新密码,当原密码与用户现有密码匹配且新密码与确认密码一致时,修改用户密码,并记录用户密码修改时间。
普通用户登录手机修改:获取用户提供的原手机号码和原手机号码接收的手机修改验证码,若验证码匹配,获取并存储修改后用户登录手机号码。
用户个人信息维护:获取用户个人基本信息(除手机外)修改结果,将修改后的结果存储在系统中。
管理员用户生成:获取和存储超级管理员录入的系统管理员登录手机和密码信息。生成系统管理员用户。
普通注册用户列表:为管理员用户提供系统中普通注册用户列表。
系统管理员用户列表:为系统超级管理员提供系统管理员用户列表。
系统管理员修改用户信息:系统管理员可直接重置普通注册用户的密码或根据用户的表现行为,修改用户状态。系统超级管理员也具有该功能。
系统超级管理员修改系统管理员信息:系统超级管理员可直接重置系统管理员的密码或根据管理员行为,修改系统管理员状态。
(2)专业分类功能
系统管理员可按照国家标准构建2层级的专业分类,以便组织系统中各类资源。
每个层级内专业信息包括:专业代码、专业名称、上级专业代码(顶级专业代码标志为-1)。每个专业代码创建和修改时需创建或修改时间、构建管理员信息。
(3)教学资源管理功能
教学资源列表:按照无条件、资源发布时间、资源评价分数、资源归属专业、资源类别(视频、图片、PDF等)等条件检索系统中存储的各类教学资源。
教学资源发布:普通注册用户在发布教学资源时,需提供资源的资源名称、资源归属专业(可能一个资源归属多个专业)、资源具体内容、资源描述、资源缩略图(非必须)等信息。发布资源经系统自动审核其敏感性和内容性后即可发布。
教学资源收藏:普通注册用户收藏多个感兴趣的教学资源,需保存收藏时间以判断收藏的推荐价值。
教学资源评分:普通注册用户可对已经发布的教学资源提供1-5分的评分,需保存评分的时间以判断评分的价值。
教学资源评价:普通注册用户可对资源进行文字性短评,需保存评价的时间以便于排序评价加过。
教学资源删除或修改:普通注册用户可修改或删除其已经发布的资源,为确保已收藏用户查看资源时不存在故障,资源删除为调整教学资源的状态为非激活状态。修改后的教学资源需重新经过系统中自动审核,才能从审核中状态调整为发布状态。管理员可对所有教学资源进行修改和删除。
请完成如下实验。
(1)根据用户管理功能,抽象覆盖用户管理需要的局部E-R图。要求绘制E-R图中实体、属性和实体的联系,并使用中文标注实体、属性和实体联系。
(2)根据专业分类和教学资源管理功能,抽象覆盖专业分类和教学资源管理需要的局部E-R图。要求绘制E-R图中实体、属性和实体的联系,并使用中文标注实体、属性和实体联系。
(3)审查已经绘制的E-R图,分析是否可以进行E-R图的优化工作。重点关注绘制的E-R图是否存在数据冗余、插入异常、删除异常和更新异常。
(4)将两个局部E-R图整合成描述系统的全局E-R图。重点关注合并过程中的各类冲突。
实验任务十 数据库概念结构设计

  1. 实验目的
    根据给定的全局E-R图,能够正确运用模式转化规则,将E-R图中实体和联系转换为关系模式,并可标注各关系模式的主外码。
    能够运用范式规范化理论,分析关系模式的范式级别并对不满足3NF或BCNF的关系模式进行分解,达到指定范式级别要求。
    能够运用模式合并和分解方法,优化关系模式。
  2. 实验内容
    根据概念结构设计所得的全局E-R图,完成如下实验。
    (1)根据已经绘制的全局E-R图,通过E-R图到关系模式的转换方法,将全局E-R图转换为关系模式,并注明每个模式的主码和外码。
    (2)使用数据规范化理论,分析转换后的模式属于第几范式。
    (3)运用模式合并方法,优化关系模式。
    (4)分析各关系模式预期数据增长情况,对潜在增长速度较快的关系模式提供模式分解方案。
  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-30 10:10
    关注

    引自免费微信小程序:皆我百晓生

    首先,让我们开始绘制局部E-R图。由于文本形式无法直接绘制图形,我会以文字描述的方式来表达E-R图的实体、属性和联系。

    (1)用户管理功能的局部E-R图

    • 实体:

      • 用户(User): 用户ID, 昵称, 手机号, 密码, 确认密码, 性别, 注册时间, 登录时间, IP地址, 密码重置状态, 密码重置时间, 手机验证码, 原密码, 新密码, 邮箱, 微信, 出生日期, 个人简介, 偏好专业1, 偏好专业2
      • 普通注册用户(RegularUser): 继承自User
      • 系统管理员/Administrator: 继承自User
      • 系统超级管理员(SuperAdmin): 继承自SystemAdministrator
    • 属性:

      • User的属性
      • RegularUser的属性继承自User
      • Administrator的属性继承自User
      • SuperAdmin的属性继承自Administrator
    • 实体联系:

      • 用户(User) -> 用户信息(UserInfo)
      • 用户(User) -> 用户状态(UserStatus)
      • 用户(User) -> 用户密码(UserPassword)
      • 用户(User) -> 用户手机(UserPhone)
      • 用户(User) -> 用户个人信息(UserPersonalInfo)
      • 用户(User) -> 管理员信息(SystemAdminInfo)

    (2)专业分类和教学资源管理功能的局部E-R图

    • 实体:

      • 专业(Classification): 专业代码(ClassCode), 专业名称(ClassName), 上级专业代码(ParentClassCode), 创建时间(CreateTime), 构建管理员信息(ConstructorAdminInfo)
      • 教学资源(Resource): 资源ID(ResourceID), 资源名称(ResourceName), 资源归属专业(ResourceClass), 内容(Content), 描述(Description), 缩略图(Thumbnail), 发布时间(PublishTime), 评分总和(ScoreSum), 评分数量(ScoreCount), 最近评分时间(LatestScoreTime), 收藏数(CollectCount), 最近收藏时间(LatestCollectTime)
      • 用户资源收藏(UserResourceCollection): 用户ID(UserID), 资源ID(ResourceID), 收藏时间(CollectTime)
      • 教学资源评分(ResourceRating): 用户ID(UserID), 资源ID(ResourceID), 评分(Score), 评价(Evaluation), 评分时间(RatingTime)
    • 属性:

      • Classification的属性
      • Resource的属性
      • UserResourceCollection的属性
      • ResourceRating的属性
    • 实体联系:

      • 专业(Classification) -> 专业信息(ClassInfo)
      • 教学资源(Resource) -> 资源信息(ResourceInfo)
      • 用户资源收藏(UserResourceCollection) -> 用户(User)
      • 用户资源收藏(UserResourceCollection) -> 教学资源(Resource)
      • 教学资源评分(ResourceRating) -> 用户(User)
      • 教学资源评分(ResourceRating) -> 教学资源(Resource)

    (3)审查E-R图

    在审查过程中,我们需要检查数据冗余、插入异常、删除异常和更新异常。

    • 数据冗余: 在User表中,可能存在冗余,因为普通用户、管理员和超级管理员都包含相同的属性。
    • 插入异常: 无明显插入异常。
    • 删除异常: 如果删除一个用户,需要同步删除关联的个人信息、状态、密码、手机等信息。
    • 更新异常: 更新用户信息时,可能会影响到多个相关表,比如更改手机号后需要更新User表以及密码重置相关信息。

    (4)整合成全局E-R图

    为了整合这两个局部E-R图,我们可以考虑将用户相关的实体和联系整合在一起,而将专业和资源相关的部分保持独立。

    (5)模式转化和规范化

    将E-R图转换为关系模式,然后应用范式化理论。这里我们将展示如何将用户管理功能的部分转换为关系模式,并指出主键和外键。

    -- 用户表
    CREATE TABLE Users (
        UserID INT PRIMARY KEY,
        Nickname VARCHAR(255),
        PhoneNumber VARCHAR(20),
        Password VARCHAR(255),
        ConfirmedPassword VARCHAR(255),
        Gender ENUM('Male', 'Female'),
        RegisterTime TIMESTAMP,
        LoginTime TIMESTAMP,
        IPAddress VARCHAR(45),
        PasswordResetStatus BOOLEAN,
        PasswordResetTime TIMESTAMP,
        MobileVerificationCode VARCHAR(20),
        OldPassword VARCHAR(255),
        NewPassword VARCHAR(255),
        Email VARCHAR(255),
        WeChat VARCHAR(255),
        BirthDate DATE,
        PersonalSummary TEXT,
        PrefectureMajor1 VARCHAR(255),
        PrefectureMajor2 VARCHAR(255)
    );
    
    -- 用户状态表
    CREATE TABLE UserStatus (
        UserID INT PRIMARY KEY,
        IsActive BOOLEAN,
        PasswordResetUserID INT,
        FreezeStatus BOOLEAN,
        DeleteStatus BOOLEAN,
        FOREIGN KEY (UserID) REFERENCES Users(UserID)
    );
    
    -- 用户密码表
    CREATE TABLE UserPasswords (
        UserID INT PRIMARY KEY,
        Password VARCHAR(255),
        LastUpdateTime TIMESTAMP,
        FOREIGN KEY (UserID) REFERENCES Users(UserID)
    );
    
    -- 用户手机表
    CREATE TABLE UserPhones (
        UserID INT PRIMARY KEY,
        PhoneNumber VARCHAR(20),
        VerificationCode VARCHAR(20),
        LastUpdateTime TIMESTAMP,
        FOREIGN KEY (UserID) REFERENCES Users(UserID)
    );
    
    -- 用户个人信息表
    CREATE TABLE UserPersonalInfos (
        UserID INT PRIMARY KEY,
        Email VARCHAR(255),
        WeChat VARCHAR(255),
        BirthDate DATE,
        PersonalSummary TEXT,
        PrefectureMajor1 VARCHAR(255),
        PrefectureMajor2 VARCHAR(255),
        FOREIGN KEY (UserID) REFERENCES Users(UserID)
    );
    

    接下来,我们分析这些模式的范式级别,然后进行模式合并和分解。由于篇幅限制,这里不再展示完整的分析和优化过程,但可以指导你按照规范化理论和模式合并/分解的方法进行操作。如果你需要具体的操作步骤和代码,请告诉我,我可以继续提供帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月30日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?