数据库原理 | 7. 关系数据理论
思维导图
关系数据理论
问题的提出
函数依赖
函数依赖
平凡函数依赖与非平凡函数依赖
完全函数依赖与部分函数依赖
传递函数依赖
码
范式
1NF
2NF
SLC不是一个好的关系模式
原因及解决办法
2NF的定义
3NF
解决方法
3NF的定义
BC 范式
解决方法
3NF与BCNF的关系
BCNF的关系模式所具有的性质
规范化
关系模式规范化的基本步骤
规范化的基本思想
数据依赖的公理系统
Armstrong公理系统
导出规则
函数依赖闭包
关于闭包的引理
函数依赖集等价
最小依赖集
极小化过程
问题的提出
关系数据库逻辑设计
针对具体问题,如何构造一个适合于它的数据模式
数据库逻辑设计的工具──关系数据库的规范化理论
函数依赖
函数依赖
设R(U)R(U)R(U)是一个属性集UUU上的关系模式,XXX和YYY是UUU的子集。
若对于R(U)R(U)R(U)的任意一个可能的关系rrr,rrr中不可能存在两个元组在XXX上的属性值相等, 而在YYY上的属性值不等, 则称 X函数确定Y 或Y函数依赖于X,记 ...
Linux入门 | 3. 常用命令
基础命令
在上一篇文章中,我写到了在Linux系统中常用了8个命令,在这篇文章中,将会对这8个命令作较为详细的解析。
如果各位读者对本文有所不清晰或认为有错误的地方,欢迎来评论区指出。我会及时确认并修正。
序号
命令
对应英语
作用
01
ls
list
列出指定文件夹下的内容
02
pwd
print work directory
显示当前工作路径
03
cd
change directory
改变当前工作路径
04
touch
touch
新建一个空白文件
05
mkdir
make directory
创建一个新的目录
06
rm
remove
删除指定文件
07
clear
clear
清除当前屏幕上的信息(新建一屏)
08
reset
reset
重置终端
命令格式
在终端中,命令通常是按照如下格式进行的:
1command [-options] [parameter]
command:命令名称,
[-options]:选项,可用来对命令进行控制,实现不同的效果。这一项可以省略。
parameter:传给命令的参数,可以 ...
实训日记 | Day 20. 答辩的终稿
总述
今天是8月14日,实训的第20天。实训的最后一天。
今天我如预期一样地完成了答辩,两位老师似乎对我的项目及答辩都还很满意。
看着自己完整的项目和老师的认可,我感到非常有成就感。
我能在这取得一个小小的进步,离不开孟老师的耐心教导,同学们友爱的帮助。
由于我今天中午又加了一些新的内容,所以也在这里再对昨天的内容进行补充。
事先准备
另一块屏幕用来播放本文档
已经开启服务的项目(原项目,处于登录状态,数据仅有一页)
ZOL手机报价网站
360安全浏览器
简介
名称:指上云霄手机信息查阅系统
功能:提供爬虫和数据可视化两部分功能。
爬虫:可以在页面上调用后台接口,爬取ZOL手机报价网站上的数据并存储到数据库中。
数据可视化:可以在页面上显示手机的相关数据信息。
介绍数据爬取来源
手机报价首页
手机配置参数页
手机评价页面
bilibili搜索
难点:ZOL手机报价的页面很多都不一样。对于一些没有评价或未上市的手机数据不予爬取。
应用页面
应用的页面有登录注册页面、数据可视化首页、爬虫页面、数据柱状图页面、关于页面五个页面。
登录注册页面
在图1中点击注册 ...
实训日记 | Day 19. 答辩的准备
总述
今天是8月13日,实训的第19天。实训即将步入尾声。
今天是答辩的第一天。
而我是在第二天答辩。今天准备了一下答辩的思路。
事先准备
另一块屏幕用来播放本文档
已经开启服务的项目(原项目,处于登录状态,数据仅有一页)
ZOL手机报价网站
360安全浏览器
简介
名称:指上云霄手机信息查阅系统
功能:提供爬虫和数据可视化两部分功能。
爬虫:可以在页面上调用后台接口,爬取ZOL手机报价网站上的数据并存储到数据库中。
数据可视化:可以在页面上显示手机的相关数据信息。
介绍数据爬取来源
手机报价首页
手机配置参数页
手机评价页面
bilibili搜索
难点:ZOL手机报价的页面很多都不一样。对于一些没有评价或未上市的手机数据不予爬取。
应用页面
应用的页面有登录注册页面、数据可视化首页、爬虫页面、数据柱状图页面、关于页面五个页面。
登录注册页面
在图1中点击注册按钮可切换为图2界面,图2界面点击返回按钮可切换为图1界面。
在注册登录界面,对填充的文本内容有长度和字符内容的限制。例如用户名和密码只能为字母和数字组成。
在此界面注册后,密码将以加密后的文本进行 ...
实训日记 | Day 18. 我的项目介绍
总述
今天是8月12日,实训的第18天。实训即将步入尾声。
今天孟老师依然全天给同学们进行答疑。
我整理了一下我的项目的相关信息以准备明天后天的答辩。
整理内容如下。
简介
名称:指上云霄手机信息查阅系统
功能:提供爬虫和数据可视化两部分功能。
爬虫:可以在页面上调用后台接口,爬取ZOL手机报价网站上的数据并存储到数据库中。
数据可视化:可以在页面上显示手机的相关数据信息。
开发工具:PyCharm
后台开发语言:Python3
前端开发语言:HTML5+CSS+JavaScript
作者:张仁忠(Zorua) 2018065527
指导老师:孟老师(mzm5466)
应用页面
应用的页面有登录注册页面、数据可视化首页、爬虫页面、数据柱状图页面、关于页面五个页面。
登录注册页面
在图1中点击注册按钮可切换为图2界面,图2界面点击返回按钮可切换为图1界面。
在注册登录界面,对填充的文本内容有长度和字符内容的限制。例如用户名和密码只能为字母和数字组成。
在此界面注册后,密码将以加密后的文本进行存储。
如果还未登录,企图访问其他网页,则会自动跳转至登录注册页面。反之, ...
实训日记 | Day 17. 一些乱七八糟的随笔
总述
今天是8月11日,实训的第17天。实训即将步入尾声。
今天孟老师全程在给同学答疑,但是由于我的大作业已经完成了,基本上没有什么问题需要向孟老师询问。
所以今天的日志就写一写,在答疑过程中,收获的几个比较有意思的知识点吧。
eval()
描述
eval() 函数是python内置函数,用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
expression – 表达式。
globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
实例
以下展示了使用 eval() 方法的实例:
12345678910>>>x = 7>>> eval( '3 * x' )21>>> eval('pow(2,2)')4>>> ev ...
实训日记 | Day 16. 服务器的部署
总述
今天是8月10日,实训的第16天。
上午孟老师演示了如何将Django项目部署在云服务器上。
由于我没有云服务器,因此用装有Centos7的虚拟机来代替。
将项目部署在虚拟机上的过程也不算容易,途中遇到了不少坎坷。例如我的centos在刚开始时连不上网络,rc命令无法上传等等。
靠着不断百度到的CSDN的资料还是艰难地克服了难题,完成了部署。
今天还有部分关于Nginx的还未讲授完,为保证该笔记的一体性,我也加上去了。
SSH设置
启动ssh服务
在打开centos虚拟机后,先用yum install openssh* -y安装开启SSH必备的程序。
而后用vi /etc/ssh/sshd config命令打开sshd的配置文件。
修改内容为:
ListenAddress 0.0.0.0和ListenAddress ::的井号去掉。
PermitRootLogin前的井号去掉。
完成这些操作后,用systemctl restart sshd指令重启sshd服务。
查询IP地址
接下来使用ifconfig来查询虚拟机的IP地址。
由于我的centos7没有内置ifcon ...
实训日记 | Day 15. Django打分系统示例
总述
今天是8月7日,实训的第15天。
上午孟老师演示了如何用Django做一个打分系统,先是分析需求——
打分系统需要满足:
录入学生信息
添加评委账号
企业打分占比50%
校内打分占比50%
成绩汇总显示
导出成绩 查询账号 可查分数 学号
下午主要是帮助同学们答疑。由于我的项目已经接近尾声,所以我比较闲,我也就跟着帮助同学了。
打分系统
数据库的建立
12345678910111213141516171819202122232425262728293031323334353637383940414243from django.db import models # Create your models here.class UserTeacher(models.Model): username =models.CharField(max_length=20,verbose_name='用户名') password = models.CharField(max_length=20,verbose_name='密码') ...
实训日记 | Day 14. 调用第三方API
总述
2020年8月6日。是实训的第14天。
今天上午孟老师带我们学习了如何将调用第三方的公开API以及如何使用HBuilder将web应用快速打包成安卓可以使用的apk包。
调用第三方的公开API,是以高德地图为例的。说实话,高德地图作为一个成熟的商业地图导航提供商,它的API调用并不算太简单。
老师还演示了如何将其他地方下载过来的数据与高德地图API结合的过程,过程十分繁琐,但也有趣。
调用API
高德地图
打开高德地图开放平台。
点击注册并完成个人开发者认证。
点击控制台,在我的应用-应用管理中,创建新应用。
点击左上角的添加,选择Web端的服务平台。
注意这个Key,后续会使用到。
点击开发支持,有API文档可供阅读。
复制一个示例到html文件中。点击运行,则可看到地图效果。
pandas to_dict 的用法
12345from django.test import TestCaseimport pandas as pddata = pd.read_excel('黑龙江gps.xlsx')data_dict=data.to_dic ...
实训日记 | Day 13. Flask的工程化
总述
2020年8月5日。是实训的第13天。
今天上午孟老师带我们学习了如何将flask工程化。其实是flask的django化。
flask作为一个轻量级的框架,把路由、数据库、项目启动全都放到了一起,虽然这样子一来开发的速度很快,但是内容一旦多起来,在一页代码中寻找会非常的麻烦。而且flask没有现成的数据库迁移工具。
所谓flask工程化,就是将app.py拆分开多个文件。
完成flask工程化后,flask稍微显得不那么轻量了(但是对比于django还是属于轻量水准的),但是工程化能使开发流程更加系统全面。
讲完flask的工程化后,时间还有剩余。孟老师向我们询问还有什么想知道的。我想起他之前说过django的session,便想让他在这时讲解一下。他很豪爽地讲解了。只用了短短10分钟。原来session这么简单啊。
flask工程化
文件配置
复制app.py的内容,然后粘贴到新建的app_config.py,略加修改,只应用在配置中使用到的包。
将app = Flask(__name__)修改为:
1234app = Flask(__name__,template_f ...





