(swjtu西南交大)数据库实验(数据库需求分析):音乐软件数据管理系统

实验内容:

数据库需求分析:各用户组需求描述,绘出数据流图(详细案例参见教材p333~p337,陶宏才,数据库原理及设计,第三版);

一、选题背景

        近年来,“听歌”逐渐成为大众高频刚性的需求,音乐软件数据急剧增加,用户和软件管理者需要在使用和管理音乐软件时对各种数据更高效便捷地管理。数据库系统充分保证了大量数据的存储和管理有非常强的重新组织数据的能力同时又能充分描述数据间的内在联系。因此设计并实现一个通用的音乐数据库系统,对音乐软件数据的统一存储、保护、管理和共享具有非常重要的现实意义。

二、需求描述

角色

要求

用户

管理歌单歌曲,查看和发布歌曲评论,对歌单进行增删查询操作,修改歌单信息,关注歌手,修改个人信息

歌手

发布歌曲

客服

审核、确认用户的修改信息,发送推送请求

 

三、系统数据流图

顶层数据流图

1层数据流图

 2层数据流图

四、系统数据字典

数据项:

数据项:歌曲编号
数据类型:字符型
数据长度:20位
​数据构成:发布年月+发布顺序号


​数据项:歌曲名称
数据类型:字符型
数据长度:20位

数据项:歌曲类型
数据类型:字符型
数据长度:10位

数据项:歌曲语言
数据类型:字符型
数据长度:8位

数据项:演唱歌手号
数据类型:字符型
数据长度:10位

数据项:发布时间
数据类型:日期型
数据长度:8位
数据构成:年+月+日
 


数据项:歌词
数据类型:字符型
数据长度:3000位

数据项:歌手编号
数据类型:字符型
数据长度:10位

数据项:歌手名称
数据类型:字符型
数据长度:10位

数据项:用户名
数据类型:字符型
数据长度:10位

数据项:用户账号
数据类型:字符型
数据长度:10位

数据项:密码
数据类型:字符型
数据长度:10位

数据项:性别
数据类型:字符型
数据长度:1位

数据项:生日
数据类型:日期型
数据长度:8位

数据构成:年+月+日

数据项:地区
数据类型:字符型
数据长度:20位

数据项:手机号码
数据类型:字符型
数据长度:11位

数据项:个性签名
数据类型:字符型
数据长度:50位

数据项:评论时间
数据类型:日期型
数据长度:20位

数据构成:年+月+日+时+分+秒

数据项:评论内容
数据类型:字符型
数据长度:20位

数据项:关注时间
数据类型:日期型
数据长度:20位

数据构成:年+月+日

数据项:歌单编号
数据类型:字符型
数据长度:10位

数据项:歌单标题
数据类型:字符型
数据长度:20位

数据项:歌曲数量
数据类型:整型
数据长度:100位

数据项:简介
数据类型:字符型
数据长度:1000位

数据项:歌单创建时间
数据类型:日期型
数据长度:8位

数据构成:年+月+日

数据项:歌单用户
数据类型:字符型
数据长度:10位

数据项:审核人
数据类型:字符型
数据长度:10位

加工处理:

加工处理:评论系统
编号:1
输入:(用户)评论信息+用户评论信息
输出:(该用户)评论信息
加工逻辑:满足用户评论歌曲操作

加工处理:歌单歌曲管理
编号:2
输入:(用户)管理歌单操作+管理的歌单
输出:(该用户)歌单信息
加工逻辑:根据需求对歌单进行管理操作

加工处理:查看歌单信息
编号:2.1
输入:(用户)查看命令+歌单信息
输出:(该用户)需要修改歌单的信息
加工逻辑:满足查询请求条件

加工处理:修改歌单
编号:2.2
输入:(用户)新增或修改命令+修改(歌单中歌曲)后的歌单信息
输出:新增或修改后的歌单信息
加工逻辑:满足修改歌单请求条件

加工处理:传送修改请求
编号:3
输入:(用户)修改信息请求
输出:用户修改请求
加工逻辑:将用户修改请求传送给客服

加工处理:歌曲发布
编号:4
输入:(歌手)发布歌曲信息(原始信息)
输出:歌曲信息(添加编号、歌手、发布时间后)
加工逻辑:满足歌曲发布条件

加工处理:关注歌手
编号:5
输入:(用户)关注请求
输出:(该用户)关注信息
加工逻辑:用户未曾关注该歌手

加工处理:修改用户信息
编号:6
输入:(客服)需要修改的信息
输出:修改后的信息
加工逻辑:根据用户的修改请求修改信息

加工处理:歌单歌曲管理系统
编号:7
输入:(用户)管理请求命令+歌曲信息+需要管理的歌单+管理的歌单
输出:管理后的歌单歌曲+管理的歌单
加工逻辑:根据用户对歌单的管理请求进行管理

加工处理:查看歌单歌曲
编号:7.1
输入:(用户)查看歌单歌曲命令+歌单歌曲信息
输出:(该用户)所查看歌单歌曲的信息
加工逻辑:满足查询请求条件

加工处理:修改歌单歌曲
编号:7.2
输入:(用户)修改命令+需要修改的歌单歌曲信息
输出:修改后的歌单歌曲
加工逻辑:满足修改歌单歌曲请求条件

加工处理:推送歌单
编号:8
输入:(客服)推送请求+需推送的歌单
输出:推送的歌单
加工逻辑:根据推送请求推送相关歌单

数据文件:

数据文件:评论表
文件组成:评论时间+评论内容

组成:按评论时间降序排列

数据文件:歌单表
文件组成:歌单编号+歌单标题+歌曲数量+简介+创建时间+歌单用户
组成:按歌单编号升序排列

数据文件:用户信息表
文件组成:用户名+账号+密码+性别+生日+地区+手机号码+个性签名
组成:按账号和地区升序排列

数据文件:歌曲表
文件组成:歌曲编号+歌曲名称+歌曲类型+歌曲语言+歌词+演唱歌手号+发布时间
组成:按编号升序排列

数据文件:关注表
文件组成:被关注的歌手编号+被关注的歌手名称+关注者账号+关注者用户名+关注时间
组织:按歌手编号和关注者账号升序排列

数据文件:歌单歌曲表
文件组成:歌单编号+歌曲编号

组成:按歌单和歌曲编号升序排列

数据流:

数据流名:发布歌曲的信息
来源:发布歌曲的歌手
流向:加工4
组成:歌曲名称+歌曲类型+歌曲语言+歌词

​数据流名:歌曲信息
来源:加工4
流向:歌曲表
组成:歌曲编号+歌曲名称+歌曲类型+歌曲语言+歌词+演唱歌手号+发布时间

 

数据流名:歌曲信息
来源:歌曲表
流向:加工7
组成:歌曲编号+歌曲名称+歌曲类型+歌曲语言+歌词+演唱歌手号+发布时间

数据流名:关注请求
来源:用户
流向:加工5
组成:要关注的歌手的编号+用户编号

数据流名:关注信息
来源:加工5
流向:关注表存储文件
组成:要关注的歌手的编号+歌手名+用户名+用户编号

数据流名:歌单信息
来源:文件2中的歌单表
流向:加工2.1
组成:歌单编号+歌单标题+歌单创建者编号+歌单歌曲数量+歌单简介+歌单创建时间

数据流名:查看歌单命令
来源:用户
流向:加工2.1
组成:需要查看的歌单编号

数据流名:需修改的歌单
来源:加工2.1
流向:加工2.2
组成:需修改的歌单编号
 

数据流名:修改的歌单
来源:加工2
流向:加工7
组成:修改的歌单编号


数据流名:新增歌单或修改命令
来源:用户
流向:加工2.2
组成:命令+修改歌单编号


数据流名:新增的歌单或修改后的歌单信息
来源:加工2.2
流向:歌单表文件
组成:修改后的歌单编号

数据流名:查看歌单歌曲命令
来源:用户
流向:加工7.1
组成:需要查看的歌单编号

数据流名:歌单歌曲信息
来源:文件6歌单歌曲表
流向:加工7.1
组成:歌单编号+歌单标题+歌单歌曲列表

数据流名:需修改的歌单歌曲
来源:加工7.1
流向:加工7.2
组成:歌单编号+歌单歌曲列表
 

数据流名:新增歌单中歌曲或修改歌单歌曲信息
来源:用户
流向:加工7.2
组成:需修改的歌单编号+需修改的歌单歌曲编号

数据流名:新增后的歌单歌曲或修改信息
来源:加工7.2
流向:文件6歌单歌曲表
组成:修改后的歌单歌曲编号

数据流名:(用户新增)评论信息
来源:用户
流向:加工1
组成:评论内容+评论者账号+评论时间+评论的歌曲编号


数据流名:(添加到文件中的)评论信息
来源:加工1
流向:评论表存储文件
组成:评论内容+评论者账号+评论时间

数据流名:修改信息请求
来源:用户
流向:加工3
组成:修改信息项+修改时间+修改前信息+修改后信息

数据流名:用户修改请求
来源:加工3
流向:客服
组成:修改信息项+修改时间+修改前信息+修改后信息

数据流名:需要修改的信息
来源:客服
流向:加工6
组成:修改信息项+审核人(哪一个客服)+修改时间+修改后信息

数据流名:修改后的信息
来源:加工6
流向:用户信息表
组成:修改信息项+修改后信息

数据流名:推送请求
来源:客服

流向:加工8
组成:要推送的歌单编号

数据流名:要推送的歌单
来源:歌单表
流向:加工8
组成:歌单编号+歌曲列表+歌单描述信息

数据流名:推送的歌单
来源:加工8
流向:用户
组成:歌单编号+歌曲列表+歌单描述信息

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【docker】虚拟化和docker容器概念

基础了解 IAAS: 基础设施服务,(只提供基础设施,没有系统) **SAAS: ** 软件即服务,(提供基础设施和系统) PAAS: 平台即服务,(提供基…

【Docker】从零开始:1.Docker概述

【Docker】从零开始:1.Docker概述 1.什么是Docker2.为什么要使用Docker3.传统虚拟机技术与Linux容器技术的区别(1).传统虚拟机技术(2).Linux容器 4.Docker的特点一次构建、随处运行a.更快速的应用交付和部署b.更便捷的升级和扩缩容:c.更简单的系统运维d.…

三字经||无聊数了下三字经的字数

三字经总字数去除标点后1416个 该文章无技术含量,仅三字经原文,学技术的同学可以止步了 三字经(原文) 【作者】王应麟 【朝代】南宋 人之初,性本善。性相近,习相远。 苟不教,性乃迁。教之道&a…

视频接入网关的用法

视频接入网关是一种多功能的视频网关设备,可以解决各种视频接入,视频输出,视频转码,视频融合的问题。可以应用在应急指挥,智慧融合等项目中,与各种系统进行对接,解决视频能力跨系统集成的难题。…

matlab-BP神经网络的训练参数大全

本文部分图文来自《老饼讲解-BP神经网络》bp.bbbdata.com 本文列兴趣MATLAB神经网络工具箱中,训练参数trainParam的各个参数与意义 以方便在使用matlab工具箱时,用于查阅 一、matlab神经网络工具箱trainParam的参数列表 trainParam中的各个具体参数如下…

【数据结构(三)】单链表(1)

文章目录 1. 链表介绍2. 单链表应用实例2.1. 顺序添加方式2.1.1. 思路分析2.1.2. 代码实现 2.2. 按照编号顺序添加方式2.2.1. 思路分析2.2.2. 代码实现 3. 单链表节点的修改3.1. 思路分析3.2. 代码实现 4. 单链表节点的删除4.1. 思路分析4.2. 代码实现 5. 单链表常见面试题5.1.…

代码随想录算法训练营|五十九~六十天

下一个更大元素|| 503. 下一个更大元素 II - 力扣(LeetCode) 和每日温度一样的套路,就是这里可以循环数组,两个数组拼接,然后循环两遍就行。 public class Solution {public int[] NextGreaterElements(int[] nums)…

Python如何实现模板方法设计模式?什么是模板方法设计模式?Python 模板方法设计模式示例代码

什么是模板方法(Template Method)设计模式? 模板方法(Template Method)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这种模式允许子类为一个算法的特定步骤提供…

DeepStream--测试lpdnet车牌检测模型

模型地址:https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/lpdnet/version 模型格式已经从加密的etlt格式变为onnx格式。这个模型用于从汽车图片上检测出车牌位置,模型有两个,一个用于美国车,一个用于中国车。 Nv…

Mysql之聚合函数

Mysql之聚合函数 什么是聚合函数常见的聚合函数GROUP BYWITH ROLLUPHAVINGHAVING与WHERE的对比 总结SQL底层原理 什么是聚合函数 对一组数据进行汇总的函数,但是还是返回一个结果 聚合函数也叫聚集,分组函数 常见的聚合函数 1.AVG(): 求平均值 2.SUM() :…

HarmonyOS基础组件之Button三种类型的使用

简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 HarmonyOS中的Button相较于Android原生来说,功能比较丰富,扩展性高,减…

OpenShift 4 - 部署 RHODS 环境,运行 AI/ML 应用(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.14 RHODS 1.33 的环境中验证 文章目录 RHODS 简介安装 RHODS 环境运行环境说明用 RHODS Operator 安装环境创建 Jupyter Notebook 运行环境 开发调式 AI/ML 应用部署运行 AI/ML 应用视频参…

国产压力测试工具的主要作用

国产压力测试工具可以帮助软件开发和维护团队对系统进行全面的性能测试,以评估系统在高负载下的性能表现。以下是国产压力测试工具的主要作用: 性能评估:国产压力测试工具可以模拟多用户同时对系统进行访问和操作,通过对系统的响应…

SpringBoot 自动装配原理 - 支付宝支付封装starter

SpringBoot 自动装配 SpringBoot 自动装配原理详细介绍自定义 Spring Boot Starter1.读取配置文件2.注册 AlipayClient bean3.核心代码编写4.注册 AlipayAPI bean5.编写 META-INF/spring.factories 文件6.项目结构测试1.创建一个测试项目,引入自定义 starter 依赖2.…

golang学习笔记——接口和继承比较1

继承 Go 语言的设计之初,就不打算支持面向对象的编程特性,因此 Go 不支持面向对象的三大特性之一——继承。但是 Go 可以通过组合的思想去实现 “继承”。继承是面向对象的三大特性之一,继承是从已有的类中派生出新的类,新的类能…

基数排序详解(LSD方法+MSD方法+思路+图解+代码)

文章目录 基数排序一、基数排序概念1.LSD排序法(最低位优先法)2.MSD排序法(最高位优先法) 基数排序 一、基数排序 概念 基数排序是一种非比较型整数排序算法 将整数按位数切割成不同的数字,然后按每个位数分别比较 …

函数有返回类型,但函数体未返回类型,程序崩溃问题记录

问题 使用类指针调用函数时&#xff0c;程序崩溃。 问题定位&#xff1a; name new nameSetting;name->setName("helloworld");qDebug().noquote() << name->getName();原因 class nameSetting { public:nameSetting();QString setName(const QStri…

短视频配音软件有哪些?这些常用的短视频配音软件

短视频行业近年来发展得很快&#xff0c;几乎闯入了我们每个现代人的生活&#xff0c;它以其独有的特点和乐趣&#xff0c;也收获了大批短视频爱好者&#xff0c;配音是短视频创作过程中不可或缺的环节&#xff0c;今天&#xff0c;我们就来聊聊短视频配音及好用的配音软件。 短…

关闭bitlocker加密

windows11的笔记本电脑买回来发现分驱都处于bitlocker状态&#xff0c;上网上搜索都是说进入控制面板的安全项进行关闭&#xff0c;包括去搜索栏搜索“管理 BitLocker”&#xff0c;对搜索出来的项打开&#xff0c;经过试验&#xff0c;它们进入的是同一个位置&#xff0c;只有…

详解Python安装requests库的实例代码

文章目录 前言基本用法基本的get请求带参数的GET请求解析json关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 前…