• 学号20162321 2016-2017-2 《程序设计与数据结构》第九周学习总结


    教材学习内容总结

    关键概念:

    • 数据库是为其他程序提供数据的应用软件
    • 关系数据库通过唯一的标识符在不同表的记录间建立联系
    • JDBC API用来建立到数据库的链接
    • CREATE TABLE SQL语句用来创建新的数据库表
    • ALTER TABLE SQL语句用来修改已有的数据库表
    • SHOW COLUMNS SQL语句用来获取表的各列和结构设置
    • INSERT SQL语句用来向数据库表中添加新数据
    • SELECT SQL语句用来得到数据库表中的数据
    • 通过修改ResultSet可更新数据库
    • DELETE FROM SQL语句用来删除数据库表中的数据
    • DROP TABLE SQL语句用来删除整个数据库表

    重点总结:

    • 数据库管理系统对数据一般有四类基本操作:创建,读取,更新及删除(CRUD)
    • 数据库是为了高效存储及查找来组织数据的大型仓库

    教材学习中的问题和解决过程

    • 问题1:关于数据库第一二三范式
    • “关系”

    “关系”和“关系模式”的区别,类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,你可以把”关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构。

    • 第一范式

    1NF的定义为:符合1NF的关系中的每个属性都不可再分。

    例如将书中的例子改为

    就不符合第一范式的要求

    • 第二范式
    • 仅仅符合1NF的设计,仍然会存在数据冗余过大,插入异常,删除异常,修改异常的问题
    • 其改进是,2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖。

    同样用书中的例子

    如果数据过多,同地区的人地址出现多次——数据冗长
    加入新来一人,还没有具体住址,那么无法单独将地址填入表中——填入异常
    如果一人搬家了,那么需要修改几处信息

    • 函数依赖

    若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。也就是说,在数据表中,不存在任意两条记录,它们在X属性(或属性组)上的值相同,而在Y属性上的值不同。

    同理书中的表有如下依赖

    • personID → firstName

    • personID → locationID

    • locationID → city

    • 第三范式

    3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说, 如果存在非主属性对于码的传递函数依赖

    代码调试中的问题和解决过程

    • 问题1:MyDC程序中出现的问题

    代码托管

    上周考试错题总结

    sort.txt中的内容是:
    aaa:10:1.1 
    ccc:20:3.3 
    ddd:40:4.4 
    bbb:30:2.2 
    eee:50:5.5
    用“sort  -t: -nk2 sort.txt”排序后的第二行是:B .ccc:20:3.3
    解析:对每二列按数字升序排序
    
    test.txt 中的内容是:
    
    No Name Mark Percent 
    01 tom 69 91 
    02 jack 71 87 
    03 alex 68 98
    把第四列提取出来的Linux命令是:
    A .cut -f 1 test.txt
    B .cut -f 2 test.txt
    C .cut -f 3 test.txt
    D .cut -f 4 test.txt
    正确答案: D
    
    解析:cut 命令中第n列不是从0开始计数的。
    
    Which of the following file streams should be explicitly closed to ensure that written data is properly retained(下面哪个文件输入流应该显式关闭,以确保数据能正确保存下来)?
    A .output
    

    点评过的同学博客和代码

    其他(感悟、思考等,可选)

    第一次接触数据库,感觉还是有点懵的,对此只想说多读多做

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/1 10/10
    第二周 300/500 1/2 10/20
    第三周 500/1000 2/4 15/35
    第四周 300/1300 1/5 15/50
    第五周 200/1500 2/6 20/70
    第六周 200/1700 1/7 10/80
    第七周 400/2100 1/8 10/90
    第八周 200/2300 1/9 10/100
    第九周 200/2500 1/10 10/110

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    IDEA 必要配置
    人工智能能力提升指导总结
    lerna管理前端packages的最佳实践
    【和60】软件即服务的三重境界
    项目章程
    阅读计划
    使用PHP处理文本小技巧
    PHP性能分析
    Ubuntu安装nodejs和yarn
    挖矿病毒
  • 原文地址:https://www.cnblogs.com/wbiao21/p/6785348.html
Copyright © 2020-2023  润新知