• [区域初赛赛题问题] C++可以使用一些不影响公平性的第三方库到代码中吗?比如单元测试工具Google Test
    C++可以使用一些不影响公平性的第三方库到代码中吗?比如单元测试工具Google Test
  • [区域初赛赛题问题] 机器人可以将货物pull在空地上吗?机器人碰撞会导致货物掉落吗?
    机器人可以将货物pull在空地上吗?机器人碰撞会导致货物掉落吗?
  • [区域初赛赛题问题] 请问任务书里3.2.4节,为什么A能取两次货?
    如题请问任务书里3.2.4节,为什么A能取两次货?
  • [区域初赛赛题问题] 为什么Window下的判题器播放回放时,缩放的画面同时可以进行拖拽,而Linux下的判题器播放回放的时候,缩放的画面的同时不可以拖拽
    为什么Window下的判题器播放回放时,缩放的画面同时可以进行拖拽,而Linux下的判题器播放回放的时候,缩放的画面的同时不可以拖拽
  • [常见问题汇总帖] 云服务器启动失败,安装npm失败无法下载库
    求解这里怎么安装不了npm去下载那个库
  • [问题求助] 为什么arkts的文件访问这么奇怪?
    本人的开发环境是DevEco Studio 3.1 Release,手机是mate60pro,我是初学者,有一个疑问,let documentSelectOptions = new picker.DocumentSelectOptions(); let documentPicker = new picker.DocumentViewPicker(); documentPicker.select(documentSelectOptions) .then((documentSelectResult) => { let ls=documentSelectResult[0] 这几行是我的工作 }).catch((err) => { 。。。。}在手机上选择了一个txt文本,ls获得了类似“datashare:///media/file/14850”样式的URI,用fs.openSync可以打开,readSync读取内容可以但是用fs.accessSync判断是否存在时,返回了false,用readTextSync直接读取,报错相同的URI,为什么遭遇迥异?这是一个问题另外一个问题是,为什么readSync用file.fd来读取,而readTextSync用文件路径来读取,为什么不一致?
  • [公告] 【CodeArts开发者实践】CodeArts开发者八件套——开发者的进阶宝典!
    CodeArts开发者八件涵盖视频课程、在线实验、在线认证、示例代码等产品入门教程,点击对应图片可跳转对应页面。
  • [热门活动] 【云原生专题直播有奖提问】DTSE Tech Talk 技术直播 NO.50:看直播提问题赢华为云定制长袖卫衣、《微服务架构设计模式》书籍等好礼!
    中奖结果公示感谢各位小伙伴参与本次活动,本次活动获奖名单如下:请获奖的伙伴在12月12日之前点击此处填写收货地址,如逾期未填写视为弃奖。再次感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~直播简介【直播主题】从架构设计到开发实战,深入浅出了解Sermant【直播时间】2023年12月6日 16:30-18:00【直播专家】栾文飞 华为云云原生DTSE技术布道师【直播简介】云原生无代理服务网格太深奥?带你深入浅出了解Sermant,从架构设计到开发实战,步步为营。本期直播将聚焦于Sermant的架构解析及开发实战中,从开发者视角来看核心设计中的插件机制和类加载器架构,在实战中从基础能力开发,到进阶使用统一动态配置能力、统一日志能力等一步步完成插件开发。直播链接:cid:link_1活动介绍【互动方式】直播前您可以在本帖留下您疑惑的问题,专家会在直播时为您解答。直播后您可以继续在本帖留言,与专家互动交流。我们会在全部活动结束后对参与互动的用户进行评选。【活动时间】即日起—2023年12月7日【奖励说明】评奖规则:活动1:直播期间在直播间提出与直播内容相关的问题,对专家评选为优质问题的开发者进行奖励。奖品:华为云定制长袖卫衣活动2:在本帖提出与直播内容相关的问题,由专家在所有互动贴中选出最优问题贴的开发者进行奖励。奖品:书籍《微服务架构设计模式》更多直播活动直播互动有礼:官网直播间发口令“华为云 DTSE”抽华为云定制钢笔礼盒、填写问卷抽华为云定制鼠标等好礼【注意事项】1、所有参与活动的问题,如发现为复用他人内容或直播间中重复内容,则取消获奖资格。2、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。3、活动奖项公示时间截止2023年12月8日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。6、其他事宜请参考【华为云社区常规活动规则】。
  • [用户实践] 利用OpenGauss设计和实现成绩管理系统
    一、需求分析先介绍系统开发意义、可行性和应用环境等。某校管理学生成绩的工作人员,根据实际工作需要,提出了以下基本数据和业务处理需求:(1)学校设置了各专业,在专业下开设班级,每个班级包含若干学生,学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项;另外,需要有地区信息,用于统计某一地区的学生数;(2)课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。(3)教师信息至少需要包含教师编号、姓名、性别、年龄、职称、联系电话等数据项;(4)学生成绩至少需要学号,学期,课程名称,成绩,任课老师等数据项;(5)需要实现业务处理和查询功能:a) 学生成绩按每学年成绩统计;学生成绩b) 名次排定;c) 每门课程平均成绩统计;d) 学生所学课程及学分统计;e) 对每个学生输入成绩的时候,自动生成学生的已修学分总数;f) 学生成绩查询;g) 教师任课查询;h) 班级课程开设查询。(6) 补充说明a) 假设学籍管理制度是采用学年制,且暂不考虑选修课情况。b) 同一专业可能有多个班,所以同一门课可能需要多个教师上课,一个教师在一学期可能上多门课程。1.1 数据需求描述分析系统的数据需求,用数据字典和数据流图描述系统的数据需求,一般要求有2级(初级和详细级)数据流图,并确定系统开发边界。1.1.1数据字典➢ 数据项名 数据项名:学号含义说明:唯一标识每个学生数据类型:CHAR长度:12数据项名:学生姓名含义说明:标识每个学生的姓名数据类型:CHAR长度:20数据项名:学生性别含义说明:学生性别数据类型:CHAR长度:3取值范围:“男”或“女”取值含义:学生分为男生和女生数据项名:学生出生日期含义说明:表明每个学生的出生日期数据类型:DATESTAMP数据项名:籍贯(省)含义说明:表明每个学生入学前的来源地数据类型:CHAR长度:20数据项名:籍贯(市)含义说明:表明每个学生入学前的来源地数据类型:CHAR长度:20数据项名:已修学分总数含义说明:学生已修课程的学分总数数据类型:FLOAT长度:4取值范围:>=0取值含义:已修学分不可能小于0与其他数据项的逻辑关系: 等于该学生所有课程的学分数据项之和数据项名:学生登录密码含义说明:学生账户用于登录系统时的密码数据类型:CHAR长度:20数据项名:成绩含义说明:学生某一课程的成绩数据类型:INT长度:3取值范围:0 ~ 100取值含义:课程成绩60以上为合格,100为满分,不可能低于0分数据项名:上课时间含义说明: 表示教师授课和学生上课的时间数据类型: CHAR长 度: 20数据项名:上课地点含义说明: 表示教师授课和学生上课的地点数据类型: CHAR长 度: 20数据项名:专业编号含义说明: 唯一标识每一个专业数据类型: CHAR长 度: 20数据项名:专业名称含义说明:表示咋混也的名称数据类型: CHAR长 度: 20数据项名:班级编号含义说明: 唯一标识每一个班级数据类型: CHAR长 度: 20数据项名:班级名称含义说明:表示班级的名称数据类型: CHAR长 度: 20数据项名:课程编号含义说明:唯一标识每一门课程数据类型: CHAR长 度: 20数据项名:课程名称含义说明:表示课程的名称数据类型: CHAR长 度: 20数据项名:开课学期含义说明:某课程开设的时间节点数据类型: CHAR长 度: 20取值范围:类似于2021-2022(1),2022-2023(2)这样代表某一学年第几学期数据项名:学时含义说明:某课程总共需要的授课时间数据类型: INT长 度: 3取值范围:(0,999)取值含义:课程授课时间不小于0小时,不大于999小时数据项名:学分含义说明:某课程的学分数据类型:FLOAT数据项名:考核方式含义说明:某课程的评价方式数据类型: CHAR长 度: 2取值范围:考查/考试取值含义:课程只有考查和考试两种考核方式数据项名:教师编号含义说明:唯一标识每一位教师数据类型:CHAR长度: 20数据项名:教师姓名含义说明:表示每一位教师的姓名数据类型:CHAR长度: 20数据项名:教师性别含义说明:表示每一位教师的姓名数据类型:CHAR长度: 2取值范围:男/女取值含义:教师性别只有男和女数据项名:教师出生日期含义说明:表示每一位教师的出生日期,可计算教师的年龄数据类型:DATE数据项名:职称含义说明:表示每一位教师的职称数据类型:CHAR长度:20数据项名:联系电话含义说明:教师的联系电话数据类型:CHAR长度:20数据项名:教师登录密码含义说明:教师账户用于登录系统时的密码数据类型:CHAR长度:20数据项名:管理员登录账号含义说明:管理员账户用于登录系统时的密码数据类型:CHAR长度:20数据项名:管理员登录密码含义说明:管理员账户用于登录系统时的密码数据类型:CHAR长度:20➢ 数据结构 数据结构名:学生别名:学生基本信息含义说明:定义了每一个学生的基本信息组成:学号、学生姓名、学生性别、学生出生日期、籍贯(省)、籍贯(市)数据结构名:班级别名:学生基本信息含义说明:定义了每一个班级的基本信息组成:班级编号、班级名称数据结构名:专业别名:专业基本信息含义说明:定义了每一个专业的基本信息组成:专业编号、专业名称数据结构名:课程别名:课程基本信息含义说明:定义了每一个学生的基本信息组成:学号、学生姓名、学生性别、学生出生日期、籍贯(省)、籍贯(市)数据结构名:教师别名:教师基本信息含义说明:定义了每个教师的基本信息组 成: 教师编号、教师姓名、教师性别、教师出生日期、职称、联系电话、教师登录密码数据结构名:管理员别名:管理员基本信息含义说明:定义了每个管理员的基本信息组 成: 管理员账号、管理员登录密码➢ 数据流数据流名:输入登录信息含义说明: 登录系统对用户身份进行验证数据来源: 用户数据去向: 身份信息表组 成: 用户账户、用户密码、用户身份数据流名:查询、添加、修改、删除学生本人基本信息、成绩、选课含义说明: 学生进行个人信息的查询,教师、管理员对学生信息进行管理数据来源: 用户数据去向: 学生信息表组 成: 学号、学生姓名、学生性别、出生日期、生源所在省市、班级、专业、选课、课程成绩、已修总学分数据流名:查询、添加、修改、删除教师基本信息、任教情况、任教班级成绩含义说明: 教师对学生及个人信息进行管理、管理员对教师信息进行管理数据来源: 用户数据去向: 教师信息表、学生信息表、选课信息表组 成: 教师编号、教师姓名、性别、出生日期、职称、联系电话、任教信息、任教班级成绩信息➢ 数据存储 数据存储名: 用户账号信息说明: 记录用户账号信息输入数据流: 管理员输入、修改、删除账号信息操作输出数据流: 用户账号表组 成: 用户账号,用户密码,用户身份存取方式: 随机存取数据存储名:学生信息说明: 记录学生基本信息输入数据流: 管理员输入、更新、删除学生信息操作输出数据流: 学生信息表组 成: 学号、学生姓名、学生性别、出生日期、生源所在省市、班级、专业、已修总学分存取方式: 随机存取数据存储名: 教师信息说明: 记录教师基本信息输入数据流: 管理员输入、更新、删除教师信息操作输出数据流: 教师信息表组 成: 教师编号、教师姓名、性别、出生日期、职称、联系电话存取方式: 随机存取数据存储名: 课程信息说明: 记录课程基本信息输入数据流: 管理员输入、更新、删除课程信息操作输出数据流: 课程信息表组 成: 课程编号、课程名称、课程学时、课程学分、开设学期、考核方式存取方式: 随机存取数据存储名: 教师信息说明: 记录专业班级基本信息输入数据流: 管理员输入、更新、删除专业班级信息操作输出数据流: 专业班级信息表组 成: 班级编号、专业名称、专业编号存取方式: 随机存取数据存储名: 教师信息说明: 记录教师任教信息及成绩信息输入数据流: 管理员输入、更新、删除任教信息操作,教师录入成绩操作输出数据流: 任教信息表组 成: 课程编号、教师编号、学生学号、课程成绩存取方式: 随机存取1.1.2 数据流图数据流图主要分为两级,分别为顶级数据流图和次级数据流图。其中顶级数据流图包括学生模块、教师模块、管理员模块,描述了这三个模块与高校管理系统间的数据传递关系。具体如下图1-1所示。图1-1 顶级数据流图次级数据流图是对顶级数据流图局部模块的细化描述与拓展描述,这里根据三个模块将顶级数据流图细化出了三个次级数据流图,分别为学生模块次级数据流图、教师模块次级数据流图、管理员模块次级数据流图。学生模块的主要功能为课程信息、个人信息和成绩、已修总学分的查询,具体的数据流图如下图 1-2 所示:图 1-2 学生模块次级数据流图教师模块的主要功能为授课信息、教师个人信息、授课班级成绩信息的查询以及学生课程成绩的录入,具体的数据流图如下图 1-3 所示:图 1-3 教师模块次级数据流图管理模块的主要功能为学生成绩的查询以及对于学生、课程、教师信息的管理,具体的数据流图如下图 1-4 所示图 1-4 管理模块次级数据流图1.2 系统功能需求本高校成绩管理数据库系统分为4个界面,分别为登录界面、学生界面、教师界面和管理员界面,并由登录界面中的身份选择来决定界面的选择。学生界面有3个功能,分别为学生个人信息查询、个人成绩查询和班级课程查询功能;教师界面有5个功能,分别为教师个人信息查询、授课信息查询、学生成绩统计、学生成绩查询和学生成绩录入功能;管理员界面有5个功能,分别为对学生信息、成绩信息、教师信息、课程信息的管理(查询、添加、删除、更新)以及地区人数的统计功能。其中,由于管理员不具备更改成绩的权限,因此管理员界面不设置对成绩信息的更新功能。除此之外,本系统对所有的信息都具有模糊查询和按各数据项排序的功能, 而且实现了灵活排版调整内容的自适应界面。本系统的功能结构如下图 1-5 所示图 1-5 高校成绩管理数据库系统功能结构1.3 其他性能需求并发用户数:考虑到实际应用,数据库系统应面向在校学生和教师以及教务 处管理员使用,理论上并发用户数应到达上千数量级;响应时间:考虑到实际应用,数据库系统应响应时间足够短,理论上不大于 3s;存储需求:考虑到实际应该,数据库系统应在满足查询效率的前提下,尽量 精简存储空间,减少数据冗余。1.4 其他需求1. 保证用户数据操作的简单便捷;2. 用户更新信息时数据库应实时更新;3. 保证系统良好的交互性、功能性、稳定性;4. 建立存储过程,集成操作功能,增加数据更新的便利性;5. 建立触发器,保证数据项格式的规范化以及数据的一致性;6. 保证前端界面的简洁美观、人性化,能对错误信息进行提示;7. 满足高并发下的大数据量交互需求,满足数据备份的数据量迁移;8. 用户分身份以账号密码登录数据库应用系统,涉及不同的界面和功能。二、概念结构设计2.1 局部E-R图局部 E-R 模式的设计一般可分解为以下三步骤:1. 确定局部 E-R 模式的范围设计局部 E-R 模式的第一步就是确定局部结构的范围,即将用户需求划分 成若干个部分,其划分方式一般有以下两种:(1) 根据企业的组织机构对其进行自然划分;(2) 根据数据库提供的服务种类进行划分,使得每一种服务所使用的数据明显地不同于其他种类,这样就可为每一类服务设计一个局部 E-R 模式。本系统采用第二种划分方式,根据数据库提供的服务种类进行划分。高校成 绩管理数据库可以按提供的服务分为以下三种类型:(1) 学生专业班级信息查询; (2) 学生成绩查询; (3) 教师任教班级课程查询。2. 查询定义实体型每一个局部 E-R 模式都包括一些实体型,定义实体型就是从选定的局部范 围中的用户需求出发,确定每一个实体型的属性和主键。 实体型的设计可参考以下三个原则:(1) 信息描述原则;(2) 依赖性原则;(3) 一致性原则。在确定了实体型和属性后,需对下述几个方面作详细描述:(1) 给实体集与属性命名;(2) 确定实体标识;(3) 非空值原则。3. 定义联系在 E-R 模型中,“联系”用于刻画实体集之间的关联。在定义了实体型和 属性并进行描述后,还要确定实体集之间的联系及其属性。实体集之间的联系非 常广泛,大致可分为以下三种:a) 存在性联系b) 功能性联系c) 事件联系由此,可最终根据学生专业班级信息查询、学生成绩查询、教师任教班级课 程查询三种服务确定三个局部 E-R 模式如下:(1) 学生专业班级信息查询的局部 E-R 图根据高校成绩管理的实际需求,专业信息包括专业编号、专业名称等数据项;班级信息包括班级编号、班级名称等数据项。但为了查询方便,将二者置于一张表中,并且设置班级编号为主键。学生个人信息包含学号、姓名、性别、出生日期、生源所在省、生源所在市、已修学分总数,学生登录密码等数据项,学号为主键。在设计学生实体型的属性时,为满足对学生的年龄信息查询需求,同时又省 去随时间定期更新数据库带来的维护成本,将年龄替换为出生日期。即年龄可由 当前年份减去出生年份获得,使得数据库中信息变得准确又易维护。同时,考虑到之后以学生身份登录系统的需求,将学生登录密码也作为学生 实体型的属性,以方便数据存储和查询。由此定义实体型(下划线处为主键)如下:a) 专业班级(班级编号,班级名称,专业编号,专业名称);b) 学生(学号、学生姓名、学生性别、教师出生日期、生源所在省、生源 所在市、已修学分总数、学生登录密码)。学校设置了各专业,在专业下开设班级,每个班级包含若干学生,并且考虑 到课程根据班级开设,因此将专业班级表也纳入学生专业班级信息查询的局部 E-R 图中。由此定义联系如下:c) 包含:班级和学生之间具有一对多联系,“包含”为联系名。由此可得学生专业班级信息查询的局部 E-R 图如图 2-1 所示:图 2-1 学生专业班级信息查询的局部 E-R 图(2) 学生成绩查询的局部 E-R 图根据高校成绩管理的实际需求,课程信息包括课程编号、课程名称、开课学期、学时、学分、考核方式等数据项,课程编号为主键。由此定义实体型(下划 线处为主键)如下:a) 课程(课程编号、课程名称、开课学期、学时、学分、考核方式);学生选修课程,一名学生可选择多门课程,一门课程可由多名学生选修,每 名学生的每门课程都有一个成绩。由此定义联系如下:b) 选课:学生和课程之间具有多对多联系,“选课”为联系名,包含成绩 属性;由此可得学生成绩查询的局部 E-R 图如图 2-2 所示:图 2-2 学生成绩查询的局部 E-R 图(3) 教师任教班级课程查询的局部 E-R 图在定义实体集之间的联系时,要尽量消去冗余的联系,以免将这些问题留给全局E-R模式的集成阶段,从而造成困难和麻烦。一个班级开设的一门课程只有一个教师,一个教师在一个班可能教授多门课程,一个教师可能教授多个班级同一门课程,因此教师与班级、课程之间的联系是一对多的,可将三者联系设定为1:m:n的联系。图 2-3 教师任教班级课程查询的局部 E-R 图然而,考虑到实际情况中可能存在三者不一定同时知道的情况,即可能仅知道教师所教授的班级,但不知道教师所教授的课程。因此,仍然采取建立三张关系表说明三者之间的两两关系。根据高校成绩管理的实际需求,教师信息包括教师编号、教师姓名、教师性别、教师出生日期、职称、联系电话,教师登录密码等数据项。教师实体型中教 师出生日期和教师登录密码属性的设计思路同学生实体型,此处不再赘述。由此 定义实体型(下划线处为主键)如下:a) 教师(教师编号、教师姓名、教师性别、教师出生日期、职称、联系电 话、教师登录密码)。 一名教师可教授多门课程,一门课程可以有多名教师;一个班级可以开设多 门课程,一门课程可以为多个班级设置;一名教师可以给多个班级授课,一个班 级可以有多名教师任课。由此定义实体型如下:a) 教授:教师和课程之间具有多对多联系,“教授”为联系名;b) 设置:班级和课程之间具有多对多联系,“设置”为联系名;c) 任课:教师和班级之间具有多对多联系,“任课”为联系名。由此可得教师任教班级课程查询的局部 E-R 图如图 2-4 所示:图2-4 教师任教班级课程查询的局部 E-R 图2.2 全局E-R图当各个局部 E-R 模式设计完成后,就需要对它们进行合并,将其集成为一 个全局的 E-R 模式,即数据库的全局概念结构。全局 E-R 模式的集成过程,一般可以分成两步进行:1. 确定公共实体型公共实体型是多个局部 E-R 模式综合集成的基础,因此必须首先确定各局 部 E-R 模式之间的公共实体型。在这一步中,一般仅根据实体型名称和主键来 认定公共实体型,即把同名实体型作为一个候选的公共实体型,把具有相同主键 的实体型作为另一个候选的公共实体型。本系统公共实体型为:(1) 专业班级(班级编号,班级名称,专业编号,专业名称)(2) 课程(课程编号、课程名称、开课学期、学时、学分、考核方式)(3) 学生(学号、学生姓名、学生性别、学生出生日期、生源所在省、生源 所在市、已修学分总数,学生登录密码)(4) 教师(教师编号、教师姓名、教师性别、教师出生日期、职称、联系电 话,教师登录密码)2. 合并局部 E-R 模式局部 E-R 模式的合并顺序有时会影响处理效率和结果。一般都采用逐步合 并的方式,即首先将两个具有公共实体型的局部 E-R 模式进行合并,然后每次 将一个新的与前面已合并模式具有公共实体型的局部 E-R 模式合并起来,最后 再加入独立的局部 E-R 模式,这样即可终获得全局 E-R 模式。 合并局部 E-R 模式可能会产生的冲突通常可分为三种类型:(1) 属性冲突;(2) 命名冲突;(3) 结构冲突。消除冲突后,合并后的全局 E-R 模式如图 2-5 所示:图2-5 全局 E-R 图2.3 优化E-R图按照前面的方法将各个局部 E-R 模式合并后就得到一个初步的全局 E-R 模式,之所以这样称呼是因为其中可能存在冗余的数据和冗余的联系等。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余的数据和冗余的联系容易破坏数据库的完整性,给数据库维护带来困难,因此再得到初步的全局 E-R 模式后,还应当进一步检查 E-R 图中是否存在冗余,如果存在冗余则一般应设法将其消除。 一个好的全局 E-R 模式,不仅能全面、准确地反映用户需求,而且应该满足如下的一些条件:实体型的个数尽可能少;实体型所含属性个数尽可能少;实体型之间联系无冗余。下面从优化全局 E-R 模式时需要重点考虑的几个问题入手优化全局 E-R 图1. 实体型是否合并的问题初步全局 E-R 模式不存在冗余的实体型,且没有一对一联系,因此不需要 合并实体型。2. 冗余属性是否消除的问题初步全局 E-R 模式没有冗余属性,因此不需要消除冗余属性。3. 冗余联系是否消除的问题在设计局部 E-R 模式的定义联系时,考虑到已将教师与课程之间的“讲授” 联系、班级与课程之间的“设置”联系、教师与班级之间的“授课”联系转化成 教师、班级与课程之间的一对多三元联系,大大减小了存储空间,降低了维护代 价。三、逻辑结构设计3.1 关系模式设计将 E-R 图转换为关系模式,定义实体型、属性及其联系,关系模式定义如下,其中下划直线的属性为主键,下划波浪线的属性为外键。3.2 数据类型定义对关系模式中的属性定义类型、长度和约束如下表所示:表 3-1 学生信息基本表 linc_Students08字段名数据类型长度约束学生学号sja_Sno08NVARCHAR50主键学生姓名sja_Sname08NVARCHAR50-学生性别sja_Ssex08CHAR3男/女学生生日sja_Sbirthday08DATE--生源省sja_Sprovince08NVARCHAR50-生源市sja_Scity08NVARCHAR50-已修总学分sja_Countcredit08FLOAT--学生登录密码sja_Spassword08NVARCHAR50-班级编号sja_CLno08NVARCHAR50外键表 3-2 专业班级基本表 linc_CLasses08字段名数据类型长度约束班级编号sja_Clno08NVARCHAR50主键专业编号sja_Mno08NVARCHAR50-专业名称sja_Mname08NVARCHAR50-班级名称sja_CLnameNVARCHAR50-表 3-3 课程信息基本表 linc_Courses08字段名数据类型长度约束课程编号sja_Cno08NVARCHAR50主键课程名称sja_Cname08NVARCHAR50-开设学期sja_Cterm08NVARCHAR50-学时sja_Cclasshour08INT4-学分sja_Credit08FLOAT--考核方式sja_Cexamine08NVARCHAR50考察/考试表 3-4 教师信息基本表 linc_Teacher08字段名数据类型长度约束教师编号sja_Tno08NVARCHAR50主键教师名称sja_Tname08NVARCHAR50-教师性别sja_Tsex08CHAR3男/女教师生日sja_Tbirthday08DATE--职称sja_Ttitle08NVARCHAR50助教/讲师/副教授/教授联系电话sja_Tphone08NVARCHAR50-教师登录密码sja_Tpassword08NVARCHAR50考察/考试表 3-5 选课基本表 linc_ChooseClass08字段名数据类型长度约束学生学号sja_Sno08NVARCHAR50主键,外键课程编号sja_Cno08NVARCHAR50主键,外键成绩sja_Score08INT30~100表 3-6 上课基本表 linc_Teaching08字段名数据类型长度约束班级编号sja_CLno08NVARCHAR50主键,外键课程编号sja_Cno08NVARCHAR50主键,外键上课时间sja_Time08NVARCHAR50-上课地点sja_Place08NVARCHAR50-表 3-7 老师授课班级基本表 linc_Teaching08字段名数据类型长度约束班级编号sja_CLno08NVARCHAR50主键,外键教师编号sja_Tno08NVARCHAR50主键,外键表 3-8 老师授课课程基本表 linc_Teaching08字段名数据类型长度约束课程编号sja_Cno08NVARCHAR50主键,外键教师编号sja_Tno08NVARCHAR50主键,外键表 3-9 管理员基本表 linc_ctrlogin08字段名数据类型长度约束管理员登录用户名sja_Ctrno08NVARCHAR50主键,外键管理员登录密码sja_Ctrpassword08NVARCHAR50主键,外键3.3 关系模式的优化3.3.1 规范化处理考察关系模式的数据依赖集合,仅为函数依赖,上述关系模式都属于 BC 范式,无需规范化分解。3.3.2 模式的评价与修正1. 模式评价(1) 功能评价根据需求分析的结果,规范化后的关系模式可以支持用户的所有应用要求,且满足无损连接性。(2) 性能评价经过逻辑记录访问估算,观察到专业关系模式和班级关系模式经常需要执行连接操作,因此考虑在模式修正时合并两者。2. 模式修正为减少连接操作,提高查询效率,故将专业关系模式和班级关系模式合并。同时,考虑到专业名称和班级名称不会出现重名现象,故将班级编号作为主键,修改后得到专业班级关系模式如下:专业班级(班级编号,班级名称,专业编号,专业名称)在上述关系模式中班级编号决定专业编号,专业编号决定专业名称,班级编号决定专业名称,因此存在非主属性对主键的传递函数依赖,属于第二范式。但考虑到查询效率和专业名称使用的频率,不对该关系模式进行规范化。因此,关模式优化后最终的关系模式如下:四、物理结构设计4.1 聚簇设计聚簇是将有关的数据元组集中存放于一个物理块内或若干相邻物理块内或同一柱面内,以提高查询效率的数据存储结构。所谓聚簇设计,就是根据用户需求确定每个关系是否需要建立聚簇,如果需要,则应确定在该关系的哪些属性列上建立聚簇。当一个关系按照某些属性列建立聚簇后,关系中的元组都按照聚簇属性列的顺序存放在磁盘的一个物理块或若干相邻物理块内,因此对这些属性列的查询特别有效,它可以明显提高查询效率,但是对于非聚簇属性列的查询效果不佳。此外,数据库系统建立和维护聚簇的开销很大,每次修改聚簇属性列值或增加、删除元组都将导致关系中的元组移动其物理存储位置,并且重建该关系的聚簇。因此,只有在遇到以下一些特定情况时才考虑对一个关系建立聚簇:(1) 当对一个关系的某些属性列的访问时该关系的主要应用,而对其他属性的访问很少或是次要应用时,可考虑对该关系在这些属性列上建立聚簇;(2) 若一关系在某些属性列上的值重复率很高,则可考虑对该关系在这些组属性列上建立聚簇;(1) 若一关系一旦装入数据,某些属性列的值很少修改,也很少增加或删除元组,则可考虑对该关系在这些组属性列上建立聚簇。考虑到上述信息,对在每个关系模式的主键上建立聚簇。4.2 索引设计索引设计时数据库物理设计的基本问题,对关系选择有效的索引对提高数据 库访问效率有很大的帮助。索引也是按照关系的某些属性列建立的,它与聚簇的 不同之处在于,当索引属性列发生变化,或增加、删除元组时,只有索引发生变 化,而关系中原先元组的存放位置不受影响。此外,每个关系只能建立一个聚簇, 但却可以同时建立多个索引。 对于一个确定的关系,通常在下列情况下可以考虑建立索引:(1) 在主键属性列和外键属性列上通常都可分别建立索引,不仅有助于唯一 性检查和完整性检查,而且可以加快连接查询的速度;(2) 以查询为主的关系可建立尽可能多的索引;(3) 对等值连接,但满足条件的元组较少的查询可考虑建立索引;(4) 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可建 立索引。例如,为查询某个属性的 MIN, MAX, AVG, SUM, COUNT 等函数值,可在该属性列上建立索引。考虑到上述信息,对每个关系模式的外键都建立索引;同时,为满足最统计 同一地区学生数的需求,在学生关系模式的生源所在省和生源所在市的属性列上 分别建立索引;为满足经常查询的需求,在课程关系模式的开课学期和教师关系 模式的职称属性列上建立索引。4.3 分区设计数据库中的数据,包括关系、索引、聚簇、日志等,一般都存放在磁盘内, 由于数据量的增大,往往需要用到多个磁盘驱动器或磁盘阵列,这就产生了数据 在多个磁盘如何分配的问题,即磁盘分区设计问题。磁盘分区设计的本质市确定 数据库数据的存放位置,其目的市提高系统性能,是数据库物理设计的内容之一。 磁盘分区设计的一般原则是:(1) 减少访问冲突,提高 I/O 并行性。多个事务并发访问同一磁盘时,会产 生磁盘访问冲突而导致效率低下,如果事务访问数据能均匀分布于不同磁盘上, 则 I/O 可并发执行,从而提高数据库访问速度。(2) 分散热点数据,均衡 I/O 负担。在数据库中数据访问的频率是不均匀的, 那些经常被访问的数据称为热点数据,此类数据宜分散存放于不同的磁盘上,以 均衡各个磁盘的负荷,充分发挥多磁盘并行操作的优势。(3) 保证关键数据快速访问,缓解系统“瓶颈”。在数据库中有些数据如数 据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以 将其存放在某一固定磁盘上,以保证其快速访问。 由于高校成绩管理数据库系统的数据所需存储规模较小,因此不进行分区设 计。五、数据库实施创建数据库,如图 5-1 所示:图5-1 数据库建立5.1 基本表建立(1)教师表建立该表格包含两个列:`sja_Aacc08`和`sja_Apwd08`。`sjA_Aacc08`列是一个字符类型(CHAR),长度为12个字符,且不允许为空(NOT NULL)。它将用作表格的主键(PRIMARY KEY),这意味着每个记录在该列上必须具有唯一的值。`sja_Apwd08`列也是一个字符类型(CHAR),长度为10个字符。它使用了DEFAULT关键字,表示如果没有为该列提供值,则该列的默认值为NULL。因此,这个表格的主要目的是存储管理员账户的信息。每个管理员账户由一个唯一的12位字符编码(sja_Aacc08)和一个最长为10个字符的密码(sja_Apwd08)组成。图5-2 建立教师表(2) 专业表建立该表格包含两个列:`sja_Mno08`和`sja_Mname08`。`sja_Mno08`列是一个字符类型(CHAR),长度为10个字符,且不允许为空(NOT NULL)。它将用作表格的主键(PRIMARY KEY),这意味着每个记录在该列上必须具有唯一的值。`sja_Mname08`列也是一个字符类型(CHAR),长度为10个字符。它使用了DEFAULT关键字,表示如果没有为该列提供值,则该列的默认值为NULL。除了主键之外,还定义了一个约束(CONSTRAINT),名为`Major_Mno`。该约束确保`shengja_Majors08`表格中的`sja_Mno08`列的值是唯一的,即每个记录都必须具有不同的`sja_Mno08`值。这个表格的主要目的是存储专业(Major)的信息。每个专业由一个唯一的10位字符编码(sja_Mno08)和一个最长为10个字符的名称(sja_Mname08)组成。约束确保了每个专业编码的唯一性。图5-3 建立专业表(3) 班级表建立该表格包含三个列:`sja_Classno08`、`sja_Classname08`和`sja_Mno08`。`sja_Classno08`列是一个字符类型(CHAR),长度为10个字符,且不允许为空(NOT NULL)。它将用作表格的主键(PRIMARY KEY),这意味着每个记录在该列上必须具有唯一的值。`sja_Classname08`列也是一个字符类型(CHAR),长度为10个字符。它使用了DEFAULT关键字,表示如果没有为该列提供值,则该列的默认值为NULL。`sja_Mno08`列也是一个字符类型(CHAR),长度为10个字符。它使用了DEFAULT关键字,表示如果没有为该列提供值,则该列的默认值为NULL。除了主键之外,还定义了两个约束:1. UNIQUE约束,确保每个记录的组合值(sja_Mno08和sja_Classno08)都是唯一的。这意味着每个班级编号在给定的专业中必须是唯一的。2. FOREIGN KEY约束,将`sja_Mno08`列作为外键,引用了`shengja_Majors08`表格中的`sja_Mno08`列。这意味着`sja_Mno08`列的值必须存在于`shengja_Majors08`表格的`sja_Mno08`列中的某个记录中。同时,ON DELETE RESTRICT和ON UPDATE RESTRICT指定了在删除或更新`shengja_Majors08`表格中的记录时对关联的班级表格进行限制操作,即不允许删除或更新被引用的记录。因此,这个表格的主要目的是存储班级(Class)的信息。每个班级由一个唯一的10位字符编码(sja_Classno08)、一个最长为10个字符的名称(sja_Classname08)和对应的专业编码(sja_Mno08)组成。约束确保了班级编号和对应的专业编码的唯一性,并且与`shengja_Majors08`表格建立了外键关系。图5-4 建立班级表(4) 学生表建立该表格包含七个列:`sja_Sno08`、`sja_Sname08`、`sja_Ssex08`、`sja_Sage08`、`sja_Sorig08`、`sja_Scredits08`和`sja_Classno08`。`sja_Sno08`列是一个字符类型(CHAR),长度为12个字符,且不允许为空(NOT NULL)。它将用作表格的主键(PRIMARY KEY),这意味着每个记录在该列上必须具有唯一的值。`sja_Sname08`列是一个字符类型(CHAR),长度为20个字符。它表示学生的姓名。`sja_Ssex08`列是一个字符类型(CHAR),长度为5个字符。它表示学生的性别。`sja_Sage08`列是一个整数类型(INT),用于表示学生的年龄。`sja_Sorig08`列是一个字符类型(CHAR),长度为20个字符。它表示学生的来源地。`sja_Scredits08`列是一个整数类型(INT),表示学生的学分。`sja_Classno08`列是一个字符类型(CHAR),长度为10个字符。它表示学生所属的班级编号。除了主键之外,还定义了两个约束:1. UNIQUE约束,确保每个记录的组合值(sja_Sno08和sja_Classno08)都是唯一的。这意味着每个学生编号在给定的班级中必须是唯一的。2. FOREIGN KEY约束,将`sja_Classno08`列作为外键,引用了`shengja_Classes08`表格中的`sja_Classno08`列。这意味着`sja_Classno08`列的值必须存在于`shengja_Classes08`表格的`sja_Classno08`列中的某个记录中。同时,ON DELETE RESTRICT和ON UPDATE RESTRICT指定了在删除或更新`shengja_Classes08`表格中的记录时对关联的学生表格进行限制操作,即不允许删除或更新被引用的记录。因此,这个表格的主要目的是存储学生(Student)的信息。每个学生由一个唯一的12位字符编码(sja_Sno08)、一个最长为20个字符的姓名(sja_Sname08)、性别(sja_Ssex08)、年龄(sja_Sage08)、来源地(sja_Sorig08)、学分(sja_Scredits08)和所属班级编号(sja_Classno08)组成。约束确保了学生编号和所属班级编号的唯一性,并且与`shengja_Classes08`表格建立了外键关系。图5-5 建立学生表(5) 课程表建立图5-6 建立课程表(6) 报告表建立图5-7 建立报告表(7) 教师-班级表建立图5-8 建立教师-班级表(8) 学生-课程表建立图5-9 建立课程学习表(9) 教师-课程表建立图5-10 建立教师-课程表(10) 管理员表建立图5-11 创建登录表5.2 视图的建立(1)视图每门课程平均成绩统计的建立图5-10:每门课程平均成绩统计图5-11:学生成绩图5-12:每门课程学分统计图5-13:教师教授课程统计图5-14:班级开设课程统计v图5-15:学生生源地统计图5-16:教师课程成绩统计5.3 索引的建立图5-17:表教师唯一索引的建立图5-18:其他表唯一索引的建立5.4 触发器建立(1)更新学分:图5-19:更新学分触发器建立(2)删除学生:图5-20:删除学生触发器的建立5.5存储过程建立自动计算学分:图5-21:自动计算学分创建学生信息:图5-22:创建学生信息创建教师信息:图5-23:创建教师信息5.6 业务处理和查询功能SQL语句1)学生成绩按每学年进行成绩统计的SQL语句:图5-24学生成绩按每学年进行成绩统计运行结果2)学生成绩名次排定SQL语句: 图5-25学生成绩名次排定运行结果3)每门课程平均成绩统计SQL语句:图5-26每门课程平均成绩统计运行结果4)学生所学课程及学分统计SQL语句:图5-27学生所学课程及学分统计运行结果5)输入每个学生成绩时,自动生成该学生已修总学分SQL语句:图5-28自动生成该学生已修总学分运行结果图5-29自动生成该学生已修总学分运行结果图5-30自动生成该学生已修总学分运行结果图5-31自动生成该学生已修总学分运行结果6)学生成绩查询SQL语句:图5-32学生成绩查询运行结果7)教师任课查询SQL语句:图5-33教师任课查询运行结果8)班级课程开设查询SQL语句:图5-34班级课程开设查询运行结果六、应用系统开发与试运行6.1 开发平台和开发环境介绍(1)硬件环境:处理器    Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz 2.59 GHz机带 RAM    16.0 GB (15.8 GB 可用)系统类型    64 位操作系统, 基于 x64 的处理器(2) 软件环境:系统:windows 10 64家庭教育版数据库软件:Microsoft SQLSever2014应用系统开发环境:IntelliJ IDEA 2019.1.1 x64, Tomcat 8.0.50,6.2 前台界面与后台数据库连接说明,代码实现Web端与SQL连接代码:const { Client } = require('pg');var sql = `SELECT r.sja_Cno08, c.sja_Cname08, Round(AVG(r.sja_Grade08),2) as AvgGradeFROM shengja.shengja_Reports08 rJOIN shengja.shengja_Courses08 c ON c.sja_Cno08 = r.sja_Cno08GROUP BY r.sja_Cno08, c.sja_Cname08; `;const client = new Client({ host: '192.168.198.129', port: 26000, database: 'shengjamis08', user: 'opengaussuser', password: 'openGauss@123',});// 连接数据库client.connect((err) => { if (err) { console.error('Failed to connect to database:', err); } else { console.log('Connected to database'); // 在连接成功后可以执行其他数据库操作 client.query(sql, (err, result) => { if (err) { console.error('Error executing query:', err); } else { console.log('Query result:', result.rows); } // 关闭数据库连接 // client.end(); }); }});module.exports = { query: (sql) => client.query(sql),};首先,通过`require('pg')`引入了`pg`库,它是一个用于连接和操作PostgreSQL数据库的Node.js库。然后,定义了一个SQL查询语句,该查询语句从表格`shengja_Reports08`和`shengja_Courses08`中检索数据,计算每个课程的平均成绩,并返回课程编号(sja_Cno08)、课程名称(sja_Cname08)和平均成绩(AvgGrade)。接下来,创建了一个`Client`对象,配置了连接数据库所需的信息,包括主机名、端口号、数据库名称、用户名和密码。使用`client.connect()`方法连接到数据库。如果连接成功,输出"Connected to database"。如果连接失败,输出"Failed to connect to database"。在成功连接数据库后,使用`client.query()`方法执行SQL查询。传入查询语句和一个回调函数作为参数。回调函数用于处理查询结果。如果查询成功,输出查询结果的行数据;如果查询失败,输出错误信息。最后,通过`module.exports`将`query`方法导出,使其可以在其他模块中使用。`query`方法接受一个SQL语句作为参数,并使用`client.query()`方法执行该查询。总体而言,以上代码的功能是连接到指定的PostgreSQL数据库,执行给定的SQL查询语句,并将查询结果输出到控制台。6.3 系统各功能设计和运行界面截图1) 登陆界面在正式进入系统前,系统会要求用户输入账号和密码进行登录。图6-1系统登录界面2) 欢迎界面进入系统后,对用户显示欢迎信息。图6-2系统登录界面3) 学生成绩查询界面-学年成绩查询展示所选学年中学生学号,选修课程以及成绩图6-3学年成绩查询界面4) 学年排名查询界面展示所选学年学生的平均绩点以及排名图6-4学年排名查询界面5) 指定学号查询界面展示指定学生的课程成绩信息图6-5指定学号查询界面6) 学生成绩编辑界面修改编辑所选学生指定课程成绩图6-6学生成绩编辑界面7) 学生成绩插入及删除界面插入及删除所选学生选课信息以及成绩图6-7学生成绩插入界面图6-8学生成绩插入结果界面图6-9学生成绩删除界面8) 课程平均成绩查询界面查询各课程学生平均成绩图6-10课程平均成绩查询界面9) 班级课程查询界面查询指定班级开设课程图6-11班级课程查询界面10) 生源地统计界面统计学生生源地图6-12生源地统计界面11) 教师任课查询界面查询指定教师或所有教师任课信息图6-13教师任课查询界面
  • [互动交流] 为什么weautomate拾取不了网页元素
    chrome的扩展程序已经打开(也已经重启过浏览器),甚至开发者模式也打开了。但是每次用电脑设置控件【在网页中输入文本】,点击拾取后 会出现web应用元素拾取器,但是鼠标移到web上任何位置都不会出现蓝色框,没法拾取元素,怎么解决呢?我在学校的电脑就可以拾取没问题呢
  • [问题求助] 坐席操作日志表,通话态统计问题
    【问题来源】深圳容大【问题类别】坐席操作日志表,通话态统计问题【AICC解决方案版本】22.100【期望解决时间】在线等【问题描述】icdbill_service_22_100库的tagentoprinfo表,OperateType值4是通话态,OperateType是工作态(时候处理) 问题:通话完成后4,不一定会出现,导致27的数量比4要多很多(不知道是否跟底层配置有关),导致我统计不准确,我该如何能正确统计到坐席的通话态和通话时长。如下图
  • [问题求助] 话单表和录音表时间对应的问题
    【问题来源】深圳容大【问题简要】话单表和录音表时间对应的问题【问题类别】CC-DIS【期望解决时间】在线等如图,录音的结束时间EndTime=2023-08-01 09:30:29,跟话单的CALLEND是对应的。而话单开始时间BeginTime=2023-08-01 09:30:13,这个时间和话单的WAITBEGIN、ACKBEGIN、CALLBEGIN都无法对应。 问题:录音的开始和结束时间,和话单中的等待、振铃、通话时间是如何对应的。图1:图2:
  • HCDG城市行南京站——AI+软件开发应用如何赋能千行百业圆桌
    HCDG的城市行活动就是针对每个城市的开发者的技术交流的圈子,希望能把最新的技术能力,最前沿的行业动态,最深入的生态交流,与开发者一起分享。7月华为HDC大会发布了盘古大模型,8月18日,由华为主办,江苏路特数字科技有限公司协办的HCDG城市行落地南京,本次活动发起人路特CTO戚俊,也是华为云HCDE的重要的专家之一。通过分享大模型的行业案例,与所有开发者能共同探讨交流目前最新、最前端技术能力。大模型重塑千行百业针对目前的大模型,本次特别邀请了华为云AI算法专家夏飞博士首先了分享《大模型重塑千行百业》,他深入介绍了当前盘古系列超大规模预训练模型,包括NLP大模型、CV大模型、多模态大模型、和科学计算大模型。夏飞介绍:“模型大意味着它吸收了海量数据知识,以盘古NLP大模型为例,它学习了40TB的中文文本数据;盘古CV大模型则包含了30亿+参数。这些数据提高了大模型的泛化能力,提升算法对新鲜样本的适应能力,从而学到隐含在数据背后的规律,减少对领域数据标注的依赖。”当大模型可以从小数据样本中学习更多,也能帮助我们打开走向通用AI的大门,它可以解决AI模型定制化和应用开发碎片化的难题。大模型for数字内容来自媒体服务资深产品经理陈鹏与到场企业交流了华为云MetaStudio数字内容生产线。“基于华为云盘古基础大模型能力、渲染引擎和实时音视频能力。使用PB级的音视频数据进行训练,构建了数字人通用大模型,包括数字人形象、动作、表情、口型、声音等;每个用户还可以结合个人数据进行训练,构建自己的数字人个性化大模型。”大模型for软件开发由华为云PaaS产品部卢步云带来的华为云自主研发的全场景低代码平台Astro,提供了零码、低码、高低码协同的云上开发模式。他重点分享了:“大屏应用Astro Canvas,通过数据可视技术为核心,以屏幕轻松编排,多屏适配可视为基础,帮助非专业开发者通过图形化界面轻松搭建专业水准的数据可视化大屏应用。”满足项目运营管理,业务监控,风险预警等多种业务场景下的一站式数据实时可视化大屏展示需求。大模型for数字转型由华为云HCDE专家,本次活动的协办方江苏路特数字科技有限公司CTO戚俊,分享的大模型加速企业数字化转型解决方案,他为到场开发者介绍了AI为企业数字化工作提质增效,把企业的财务管理、行政管理、生产管理,通过AI解决数字化转型的痛点,并且指出“它不是帮你干活,而是让你更高效的实现目标。”这个理念。面对面交流大模型活动的最后,来自华为云的专家与HCDE专家与现场各位到场的开发者面对面的交流。针对目前大模型对于企业实际应用过程中的一些困惑,从实际的技术层面,创新层面,商业化层面深入交流。并且现场建立了南京当地的开发者技术生态圈,期待更多HCDG开发者的活动落地南京,落地江苏。HCDG(Huawei Cloud Developer Group 华为云开发者社区组织),是基于城市圈和技术圈,由开发者核心组自发开展的开放、创新、多元的社区技术交流组织。致力于帮助开发者学习提升、互动交流、挖掘合作,推动技术应用与本地产业结合、数智化转型和开发者文化发展。未来我们有更多的交流活动可以在以城市为单位的开发这种落地生根,我们华为云针对核心组成员申请的HCDG活动会提供相应的专家和费用的支持,期待与您见面。
  • 【云享问答】第2期:十问Huawei Cloud Toolkit:开发插件如何提升云上开发效能
    众所周知,桌面集成开发环境(IDE)已经融入到开发的各个环节,对开发者的重要性和广泛度是不言而喻的,而开发插件更是建立在IDE基础上的功能Buff。Huawei Cloud ToolKit作为华为云围绕其产品能力向开发者桌面上的延伸,帮助开发者快速在本地连接华为云,打通华为云到开发者的最后一公里。接下来,将通过十问十答的方式,带领大家全面了解Huawei Cloud ToolKit。💬 1、为什么开发者日常开发需要IDE及开发插件?IDE的中文名字是集成开发环境,对于软件开发者而言是编码必不可少的工具,通常提供代码编辑、编译、调试等基本功能。对于一个非脚本式的工程开发,IDE对开发者而言是刚需。IDE插件是IDE基本能力上的一次升级,可以在IDE平台功能基础上定制化功能提供给开发者。华为云开发者插件在不同的IDE平台上向开发者提供了对接华为云的能力,方便开发者快速上云。💬 2、为了帮助开发者更好的使用华为云产品,华为云推出了哪些便捷工具或平台?华为云开发者插件平台(Huawei Cloud Toolkit)是围绕华为云开发者生态工具体系打造的一系列的 IDE 插件,支持IntelliJ平台、VSCode、华为自研CodeArts IDE,帮助用户快速连接华为云。支持华为云 API 能力对接、自然语言一键转换成 C++、Java 等标准代码、一键部署到云端等等。Huawei Cloud Toolkit主要是针对企业开发者、高校开发者。它可以帮助企业开发者在工作过程中快速上手、开箱即用、提质增效;帮助高校开发者灵活使用、简洁易用、方便特性,在工作、实验、练习、培训过程中提供很大便利。Toolkit可与主流IDE及华为云其他产品无缝集成,帮助开发者简化应用部署到服务器,尤其是华为云服务器中的操作。「开箱即用,全面免费」确保开发者快速上手,真正做到降本提效。💬 3、通过在IDE环境中集成Toolkit插件,开发者可以轻松完成哪些工作?Huawei Cloud Toolkit具备以下5个能力:1、API开放能力:Huawei Cloud Toolkit插件深度融合了华为云API的开放能力,快速、高效集成华为云API,支持用户检索API、查看API文档、调试API;2、代码补全能力:编程过程中支持SDK代码片段补全,加速用户集成华为云应用。3、一键部署能力:支持快速部署,一键部署到ECS、CCI;4、代码检查能力:提供业界规范(含华为云)检查,支持一键格式化和代码自动修复;5、其他能力:还支持包括微服务工程搭建等在内的诸多能力。并且随着Huwei Clud Toolkit下的插件市场不断扩大,其能力在不断的提升,若想查看插件具体能力请前往插件能力分布。💬 4、Toolkit系列插件支持哪些IDE平台,如何在这些IDE平台获取到Toolkit?当前,Huawei Cloud Toolkit提供了 10 个插件工具,具体能力分别如下:1、Huawei Cloud API:华为云API插件提供华为云服务全量API检索、调试、SDK代码自动补全、集成华为云CLI、示例代码等功能;2、Huawei Cloud DevSpore:华为云DevSpore插件支撑开发者在IDE上快速完成企业级微服务工程搭建;3、Huawei Cloud FunctionGraph:华为云FunctionGraph插件是Serverless产品的IDE插件,提供函数本地调试、运行、云端部署等功能;4、Huawei Cloud CodeArts Check:华为云代码检查插件提供业界规范(含华为云)检查,支持一键格式化和代码自动修复,当前支持Java、C++、C;5、Huawei Cloud CodeArts Snap:华为云 CodeArt Snap 智能编程助手致力于打造现代化开发新范式,通过将自然语言转化为规范可阅读、无开源漏洞的编程语言,提升开发者编码效率,助力企业快速响应市场不确定性;6、Huawei Cloud Toolkit Platform:华为云底座插件为华为云各类云服务插件提供公共能力,比如单点登录、UI集成、API访问等功能;7、Huawei Cloud ModelBox DevKit:华为云ModelBox插件帮助开发者更高效、便捷地注册ModelBox框架支持的设备及搭建ModelBox开发环境;8、Huawei Cloud Deploy:华为云部署插件旨在帮助开发者更高效、更方便地构建应用程序,支持将应用一键部署到ECS、CCI等;9、Huawei Cloud Developer Technical Support:华为云开发者技术支持插件支持开发者管理问题单、提供诸如搜索、提交问题单等功能;10、Open Capability Center/Huawei Cloud DeveloperKit:华为云开放能力中心插件关联华为云各云服务开发指南、视频课程、沙箱、API、SDK 和示例代码,帮助开发者更快地了解华为云、学习华为云、集成华为云。​除此以为,作为能够为华为云各类业务插件提供公共能力的底座插件,Huawei Cloud Toolkit Platform还提供如下功能:1、为所有 Huawei Cloud Toolkit 插件提供单点登录。2、为所有 Huawei Cloud Toolkit 插件提供能访问华为云服务的 API。3、为所有 Huawei Cloud Toolkit 插件提供 UI 集成能力。4、在IntelliJ系列平台和VS Code IDE,底座插件是 Huawei Cloud Toolkit系列插件的基础,若想使用其他插件的能力,请提前安装好底座插件并完成账号登录。💬 5、Toolkit支持在本地IDE连接到哪些华为云服务和产品?💬 6、相较市面上开发插件,Toolkit能够为开发者带来哪些便利?Huawei Cloud Toolkit 支持多个平台,包括IntelliJ系列、VSCode IDE、华为自研CodeArts IDE。Huawei Cloud Toolkit 的插件不仅支持公有云,同时还可以支撑本地化部署的私有云/混合云。💬 7、如何使用Toolkit来连接到华为云数 据库,并在本地进行测试和调试?RDS是华为云提供的数据库功能,开通RDS服务后,可以利用Huawei Cloud API插件在代码侧直接调用服务API,也可以在线调试。支持相关API代码一键补全等等。请参考帮助文档。💬 8、如何通过Toolkit快速调试华为云OpenAPI?开发者可以在入口函数处利用API自动生成API生成补全代码,然后需要手动补全AK、SK等用户信息后可以直接调试API。还可以利用API插件的在线调试功能,补全相关必选参数即可在线快速调试。💬 9、很多开发者使用Anaconda的Jupyter notebook和Spyder,Toolkit是否考虑开发这两者的插件?Jupyter notebook更多是作为一个交互式的命令行工具在做一些简单的调试,Spyder也是一个轻量级的IDE。对于Python开发者而言,Pycharm是更强大更主流的工具。Huawei Cloud Toolkit支持IntelliJ平台下的Pycharm。后续不排除考虑开发Jupyter notebook和Spyder的插件的可能,但尚未提上议程。💬 10、开发者如果想要从入门到深入了解使用Toolkit ,有哪些实用建议?Classroom是基于华为云的云上一站式教学实践平台,提供云上软件教学服务,支持帮助学习插件toolkit技术,包含MOOC课程,教学市场,云端实验室,伙伴赋能,竞赛赋能,高校联盟六大板块,支持高校师生实现备课、上课、作业、考试、实验、实训等全教学流程的线上教学,提供多类习题自动判题、企业级DevOps实训、免费在线习题库等众多高级特性辅助进行数字化教学转型。开发者登录Classroom平台后,选择MOOC课程模块,选择Toolkit课程进入课程了解华为云Toolkit产品的功能以及学习插件的使用,同时可以利用Classroom平台上的云端实验室模块进行沙箱实验。更多Huawei Cloud Toolkit 指南等你了解:cid:link_1Classroom平台:cid:link_2
  • [获奖公告] 【云声·建议】8月奖励升级,可累积兑换华为手表~
    23年【云声·建议】反馈活动第八场来啦~小编这次升级了新的玩法,不仅可以累积兑换奖励更有额外的高价值建议奖等你来领~累积最高金额有机会兑换华为GT系列手表快叫上小伙伴一起来云声提优化建议吧!【活动时间】8月1日-8月31日【活动对象】所有华为云用户如果您是新用户您也可以先去体验我们的免费云产品服务~再来吐吐槽~如果您是老用户功能问题?体验不好?快来云声提建议告诉我们吧!!【奖项设置】有效建议总积分第1名:300元开发者盲盒礼包有效建议总积分第2-3名: 200元开发者盲盒礼包有效建议总积分第4-10名:100元开发者盲盒礼包其中反馈高价值优质建议奖的用户额外获得100-200元开发者盲盒礼包(建议数量不限,可与其他奖项叠加)重点来了!!!从8月开始,8-10月云声获奖用户的奖励金额可以选择累积激励一次性发放一次集中兑换可选择兑换电子产品或者其他开发者定制礼品比如华为GT系列手表、无线耳机等【活动规则】1.有效建议积分云声关联产品/功能分为云产品建议、解决方案建议、平台建议,三种类型的建议对应的分值不相同,云产品建议(1分)、解决方案建议(0.5分)、平台建议(0.1分),按照当月有效建议类型对应不同分值以及邀请加分项来进行计算总排名,关联产品/功能可在云声提建议页面查看,示例如下;说明:云声关联产品/功能分别对应以上3种类型,取决于建议内容实际对应的产品/功能,与实际关联的标签无关。2.优质建议奖1)经内部产品研发团队评估为高价值优质建议奖的用户,额外奖励100元开发者盲盒礼包/人说明:高价值建议数量不限,且与有效建议积分奖可叠加,每位用户每月最多可获得一次;高价值优质建议要求建议能被采纳,以及内部评估建议对产品优化改进有重要作用;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述。3.注意事项1)若出现积分相同且排名一致的情况,在每月的已实现和已采纳建议中,会选出价值更高的建议用户给予奖励,基础评分计算规则,可参考如下表格。若同名次出现同分情况,由内部工作人员评选建议价值度更高的用户获奖2)同一用户在同一页面(文档)提出的同一类问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%4)兑换礼品以仓库现有礼品为准,不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放【优质建议示例】云产品建议示例1:【功能建议】IDE Online 存储限制存在缺陷云产品建议示例2:现在python已经有3.11了,可构建工具还只停留在3.9
总条数:614 到第
上滑加载中