
实验内容:
数据库需求分析:各用户组需求描述,绘出数据流图(详细案例参见教材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
 流向:用户
 组成:歌单编号+歌曲列表+歌单描述信息