《JavaEE物联网云计算系列培训教材-Oracle数据库设计.ppt》由会员分享,可在线阅读,更多相关《JavaEE物联网云计算系列培训教材-Oracle数据库设计.ppt(34页珍藏版)》请在金锄头文库上搜索。
1、项项项目案例:目案例:目案例:QQQQQQ数据数据数据库库库管理管理管理第六章第六章第六章第六章任务概述任务概述模拟模拟模拟模拟QQQQ在线聊天系统在线聊天系统在线聊天系统在线聊天系统 后台数据库的创建后台数据库的创建 基本数据表的创建基本数据表的创建表约束、表间关系的添加表约束、表间关系的添加进行数据增加、删除、修改、查询进行数据增加、删除、修改、查询 任务描述问题分析1:整体开发思路开发步骤开发步骤明确需求明确需求创建数据库创建数据库创建数据表创建数据表完善表结构完善表结构完成数据的增、删、改、查完成数据的增、删、改、查问题分析2:用户表存储用户的基本信息:用户表存储用户的基本信息:用户表
2、QQUser列名列名数据类型数据类型说说 明明QQIDnumber主主键PassWordvarchar2密密码LastLogTimedate最后一次登最后一次登录时间Onlinenumber在在线状状态,0表示在表示在线,1表示离表示离线,2表示表示隐身身Levelnumber用用户等等级问题分析3:基本信息表 存储用户的个人信息,用户基本信息表存储用户的个人信息,用户基本信息表BaseInfo 列名列名数据类型数据类型说说 明明QQIDnumber主主键NickNamevarchar2昵称昵称Sexnumber性性别,0表示男,表示男,1表示女表示女Agenumber年年龄Provincev
3、archar2省份省份Cityvarchar2城市城市Addressvarchar2详细地址地址Phonevarchar2联系方式系方式问题分析3:关系表存储用户之间的关系,关系表存储用户之间的关系,关系表Relation列名列名数据类型数据类型说说 明明QQIDnumber用用户A的的QQ号号码RelationQQIDnumber关系用关系用户B的的QQ号号码RelationStatusnumber用用户关系:关系:0表示用表示用户B是用是用户A的好的好友,友,1表示用表示用户B是用是用户A的黑名的黑名单人人物物难点分析1:理解关系表RelationQQID列与列与RelationQQID列
4、的关系列的关系RelationStatus列的意列的意义列名列名数据类型数据类型说说 明明QQIDnumber用用户A的的QQ号号码RelationQQIDnumber关系用关系用户B的的QQ号号码RelationStatusnumber用用户关系:关系:0表示用表示用户B是用是用户A的好的好友,友,1表示用表示用户B是用是用户A的黑名的黑名单人人物物如果表中存在如下如果表中存在如下2条记录,代表什么意思?条记录,代表什么意思?难点分析2:理解检查约束QQ密码不得少于密码不得少于6位位在线状态的值必须为在线状态的值必须为0、1、20表示在线,表示在线,1表示离线,表示离线,2表示隐身表示隐身用
5、户关系只能是数字用户关系只能是数字0、10表示好友,表示好友,1表示黑名单人物表示黑名单人物性别允许为空值,如果输入值就必须为性别允许为空值,如果输入值就必须为0或或10表示男,表示男,1表示女表示女用户等级默认值为用户等级默认值为0年龄必须是在年龄必须是在1100之间的整数之间的整数Len(PassWord)=6RelationStatus=0 OR RelationStatus=1默认约束默认约束Age=1 AND Age=100难点分析3:表间关系用户表与基本信息表用户表与基本信息表用户表与关系表用户表与关系表开发计划用例用例1:创建创建QQ数据库及登录名数据库及登录名 15分钟分钟用例
6、用例2:创建表结构:创建表结构 20分钟分钟用例用例3:添加约束:添加约束 20分钟分钟用例用例4:建立关系:建立关系 10分钟分钟用例用例5:插入数据:插入数据 25分钟分钟用例用例6:查询数据:查询数据 75分钟分钟用例用例7:修改数据:修改数据 45分钟分钟用例用例8:删除数据:删除数据 20分钟分钟用例用例9:分离数据库:分离数据库 10分钟分钟用例1:创建QQ数据库及登录名 需求说明需求说明使用管理器创建使用管理器创建QQ数据库,并为其创建登录名数据库,并为其创建登录名QQMaster要求:要求:数据文件数据文件初始大小为初始大小为10MB文件自动增长文件自动增长最大文件大小不受限制
7、最大文件大小不受限制日志文件日志文件初始大小为初始大小为5MB文件按自动增长文件按自动增长最大文件大小为最大文件大小为50MBQQMaster权限等同管理员权限权限等同管理员权限自动创建关联数据库用户自动创建关联数据库用户QQMaster完成时间:完成时间:15分钟分钟用例2:创建表结构 需求说明需求说明按表结构创建相应的表按表结构创建相应的表用户表用户表QQUser基本信息表基本信息表BaseInfo关系表关系表Relation完成时间:完成时间:20分钟分钟用例3:添加约束 需求说明需求说明QQ密码不得少于密码不得少于6位位在线状态的值必须为在线状态的值必须为0、1、20表示在线,表示在线
8、,1表示离线,表示离线,2表示隐身表示隐身用户关系只能是数字用户关系只能是数字0、10表示好友,表示好友,1表示黑名单人物表示黑名单人物性别允许为空值,如果输入值就必须为性别允许为空值,如果输入值就必须为0或或10表示男,表示男,1表示女表示女用户等级默认值为用户等级默认值为0年龄必须是在年龄必须是在1100之间的整数之间的整数完成时间:完成时间:20分钟分钟用例4:建立关系 需求说明需求说明用户表与基本信息表用户表与基本信息表用户表与关系表用户表与关系表完成时间:完成时间:10分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性
9、问题集中讲解用例5:插入数据2-1需求说明需求说明使用使用T-SQL把表中的数据插入到对应的数据表中把表中的数据插入到对应的数据表中 QQUserQQ号号码密密 码最后一次登最后一次登录时间在在线状状态用用户等等级54789625add512#&2008-02-16 17:01:352188662753admin02192008-02-19 21:08:50058855678guest02212008-02-21 16:28:2016BaseInfoQQ昵称昵称性性别年年龄省份省份城市城市地址地址联系方式系方式54789625蝴蝶蝴蝶飞飞116北京北京朝阳朝阳亚运村运村375473881576
10、6888662753秋芙蓉秋芙蓉020河南河南南阳南阳方城博望方城博望887157836577258855678双眼皮双眼皮潴潴138北京北京海淀海淀双双榆树东里里65794968876143RelationQQ关系关系QQ号号用用户关系关系5478962588662753088662753885567815478962588556780用例5:插入数据2-2需求说明需求说明使用使用T-SQL把表中的数据插入到对应的数据表中把表中的数据插入到对应的数据表中利用导入利用导入/导出向导将提供的文本文件数据导入到相对应的数据导出向导将提供的文本文件数据导入到相对应的数据表中表中 完成时间:完成时间:
11、25分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解用例6:查询数据4-1 需求说明需求说明查询查询限定条件限定条件好友信息好友信息查询黑名单方面的信息查询黑名单方面的信息查询用户信息方面查询用户信息方面的信息的信息用例6:查询数据4-2难点提示难点提示查询查询QQ号码为号码为88662753的用户的所有好友信息的用户的所有好友信息查询查询QQ号码为号码为54789625的用户的好友中每个省份的用户的好友中每个省份的总人数,并且总人数按由大到的总人数,并且总人数按由大到小排序小排序 使用内联接实现:使用内联接实现:
12、SELECT FROMINNER JOIN ON利用利用SELECT FROMWHEREGROUP BYORDER BY实现实现 :WHERE(Relation.QQID=54789625 AND Relation.RelationStatus=0 AND Relation.RelationQQID=BaseInfo.QQID)用例6:查询数据4-3难点提示难点提示查询查询QQ号码为号码为54789625的好友中等级为的好友中等级为10级以上级以上的的“月亮月亮”级用户信息级用户信息 查询被当做黑名单人物次数排名前查询被当做黑名单人物次数排名前20的用户的用户 使用三表内联接实现:使用三表内联
13、接实现:SELECT FROM RelationINNER JOIN BaseInfo ON INNER JOIN QQUser ON 利用分组查询,按照关系用户利用分组查询,按照关系用户QQ号码号码RelationQQID进行分组进行分组用例6:查询数据4-4 需求说明需求说明查询查询限定条件限定条件好友信息好友信息 (20分钟)分钟)查询黑名单方面查询黑名单方面的信息的信息 (25分钟)分钟)查询用户信息方面查询用户信息方面的信息的信息(25分钟)分钟)完成时间:完成时间:70分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共
14、性问题集中讲解用例7:修改数据3-1 需求说明需求说明修改用户的个人信息修改用户的个人信息修改限定条件关系用户的修改限定条件关系用户的信息信息修改修改管理方面管理方面的信息的信息用例7:修改数据3-2难点提示难点提示将好友数量超过将好友数量超过20的用户等级提升的用户等级提升1个级别个级别 完成此需求分两步走:完成此需求分两步走:1、获取好友超过、获取好友超过20个的用户个的用户QQ号码结果集号码结果集 SELECT QQID FROM Relation2、利用、利用IN关键字模糊匹配结果集中的关键字模糊匹配结果集中的QQID进行更新进行更新 UPDATE QQUser SET WHERE Q
15、QID IN (SELECT QQID FROM Relation) 用例7:修改数据3-3 需求说明需求说明修改用户的修改用户的个人信息个人信息 (10分钟)分钟)修改限定条件关系用户修改限定条件关系用户的的信息信息 (15分钟)分钟)修改修改管理方面管理方面的信息的信息 (15分钟)分钟)完成时间:完成时间:40分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解用例8:删除数据2-1 需求说明需求说明删除黑名单中的用户删除黑名单中的用户删除违规用户删除违规用户删除超过删除超过1000天没有登录过的天没有登录过的Q
16、Q用例8:删除数据2-2难点提示难点提示删除超过删除超过1000天没有登录过的天没有登录过的QQ完成此需求分四步走:完成此需求分四步走:1、查询超过、查询超过1000天没有登录过的天没有登录过的QQID集集2、删除、删除Relation表中的数据,利用表中的数据,利用IN关键字模糊匹配关键字模糊匹配QQID集集 DELETE FROM Relation WHERE QQID IN() OR RelationQQID IN()3、删除、删除BaseInfo表中的数据,同理利用表中的数据,同理利用IN关键字模糊匹配关键字模糊匹配QQID集集 4、删除、删除QQUser表中的数据表中的数据 完成时间
17、:完成时间:20分钟分钟共性问题集中讲解n常见调试问题及解决办法常见调试问题及解决办法n代码规范问题代码规范问题共性问题集中讲解共性问题集中讲解用例9:分离数据库需求说明需求说明分离数据库分离数据库QQ复制文件到教师指定的提交位置复制文件到教师指定的提交位置完成时间:完成时间:10分钟分钟项目总结n讲解要点:讲解要点: 完成情况、技能总结、经验分享、项目收获完成情况、技能总结、经验分享、项目收获n表达要求:表达要求: 清晰流畅、有条理、重点突出清晰流畅、有条理、重点突出项目展示项目展示技能总结管理器的使用管理器的使用创建库表创建库表创建登录名和数据库用户创建登录名和数据库用户PL/SQL 数据插入:数据插入:INSERT 语句语句 数据修改:数据修改:UPDATE语句语句条件查询:条件查询:SELECT FROM 表名表名 WHERE 查询排序:查询排序:SELECT FROM 表名表名 ORDER BY 模糊查询:模糊查询:SELECT FROM 表名表名 WHERE LIKE 内部函数:内部函数:SELECT AVG()AS 分组查询:分组查询:SELECT GROUP BY联接查询:联接查询:SELECT FROM 表表1 INNER JOIN 表表2