内容正文:
3.4信息系统的数据处理
【学习目标】
1.通过分析用户登录流程,了解信息系统内部对数据的判断和处理方法。
2.学会将解决问题的过程流程化,逐渐培养建模思想。
3.通过观察程序运行后数据库内数据的变化,分析关联数据的处理过程,理解信息系统处理数据的流程。
4.理解信息系统通过程序实现自动化处理数据的方式。
【知识框架】
信息系统的数据处理包括 、 、 等各种过程。
知识点1:登录系统的流程设计
用户在登录信息系统时,信息系统需要对用户的身份进行如下流程的 。
1.如果是 的用户,信息系统将记录该用户的关键信息,并在接下来的服务中根据关键信息提供针对性服务。
2.如果用户名正确而密码 ,应提示密码输入错误。
3.如果用户名 ,应提示无此用户。
流程图空白补充:
1)数据库中是否有这个用户名?
2)密码是否正确?
关键程序理解:(教材中关键代码)
list=cursor. ()#将查询结果放到list中
iflist:#查询结果有内容则用户名存在
#判断查询结果中的密码和输入的密码是否一致
forrowinlist:
ifrow[1] password:#如果密码匹配
#保存用户的编号,下页将据此数据查询
request.session['userID']=studentNumber#studentNumber输入的用户编号
returnHttpResponseRedirect("/show")#跳转到新的页面
else:#查询结果密码与输入密码不一致
warn=u"密码错误!"#提示用户密码输入错误
else:#数据库中没找到用户输人的用户名#提示用户不存在
warn=u"无此用户!"
知识点2:session
session(会话),用来保存用户(客户端)的状态值。session在打开 时产生,服务器将为用户保存这个session,直到这个session 或用户 浏览器为止。
利用session进行 的参数传递。以用户名信息的传递为例,用户打开浏览器输入用户名并提交登录时,服务器产生并保存session变量;在此后需要用到用户信息的网页中,只需要 保存的session变量即可。
request.session['userID']=studentNumber#studentNumber输入的用户编号
上述将登录时输入的用户编号保存给名为userID的session变量。
studentNumber=request.seeion.get('userID')
在需要使用用户编号的页面加上如上的语句,调用session['userID']中保存的编号。
知识点3:SQL查询命令
命令用于在数据库中查询记录,基本格式举例
从学生表中查询年龄大于16岁的学生的学号、姓名、性别等信息,查询语句为:
SELECT学号,姓名,性别FROM学生表WHERE年龄>16
查询所有女生的学号和姓名,查询语句为:
SELECT学号,姓名FROM学生表WHERE性别='女'
SELECT语句中不包括WHERE子句时表示选择 的记录。
如果在WHERE子句中包括多个条件,需要使用“AND”和“OR"进行条件的连接。其中,"AND”表示 满足所有条件;"OR"表示满足任意 条件。
SELECT*表示查询表中所有的 。
知识点4:模糊查询
模糊查询主要是指在SQL查询语句中用特殊的符号( )来代替零个、一个或多个任意的字符,以查找部分信息准确、部分信息不准确的数据。在where子句中加入like和%或_。
SQL中的“%”代表 或 个字符
SQL中的“_”代表 任意的字符。
比如,“李%”表示所有姓李的学生,“%李%”表示姓名中含有“李”的所有同学;“李_”表示姓名共两个字,且是李姓的所有同学。
知识点4:数据更新
对数据库表中的某个值进行更新,除了INSERT之外,还可以有 以及 。其用法跟SELECT类似。
UPDATE命令用于 数据表中数据,其格式为:UPDATE表名SET列名=值WHERE条件
其中WHERE条件为可选项,当WHERE条件存在时,UPDATE将修改指定表中 条件的记录;当WHERE条件不存在时,将修改指定表中 数据。
DELETE命令用于 数据表中的数据,其格式为:DELETEFROM表名WHERE条件
其中,WHERE条件为可选项,当WHERE条件存在时,DELETE将删除表中符合条件的记录;当WHERE条件不存在时,将删除表中所有数据。需要注意的是,删除表中所有数据后, 仍然存在,但表中数据 恢复。
【课后练习】
1.指纹考勤机的工作原理是通过提取指纹图像的特征进行身份识别,其工作流程可以分为下列几个步骤,正确的顺序应该是( )。
①指纹图像采集②匹配成功之后,自动进行签到记录并发出"已签到"的提示声音③指纹图像特征值的匹配④指纹图像特征提取
A.①④②③ B.①④③② C.①③④② D.①②③④
2.下图为描述用户登录的流程属于( )
A.详细设计B.需求分析C.概要设计D.可行性分析
3.某单位对员工考勤使用人脸识别,工作原理是提取人脸图像的特征进行身份识别,其工作流程分为:①采集人脸图像②预处理人脸图像③员工签到成功④匹配人脸图像特征值⑤提取人脸图像特征。正确的顺序是( )
A.①④⑤②③ B.①②⑤④③
C.①②③④⑤ D.①⑤④②③
4.下图为描述用户登录的流程,下列说法不正确的是( )
A.①查询数据库中是否有与输入的用户名匹配的数据
B.②查询数据库中用户的密码和输入的密码是否一致
C.如果①满足条件进入新的允许访问的页面
D.如果②满足条件则进入新的允许访问的页面
5.下列关于session对象的说法正确的是( )
A.每次打开一个web页面都会创建一session对象
B.关闭客户端web页面后session对象将立即消失
C.应用程序退出后,session对象的值才能消失
D.每个用户的session对象不能被其他用户访问
6.下列语句能够在用户网页登录成功后,在session中保存用户编号stuID的是( )
A.request.session['userID']=stuID
B.stuID=request.session.get(userID)
C.request.session[userID]=stuID
D.stuID=request.session.post(userID)
7.下列关于session对象的说法不正确的是( )
A.无法进行跨页面的参数传递
B.用户关闭客户端web页面后,session对象将消失
C.session对象有时效
D.每个用户的session对象不能被其他用户访问
8.关于session,下列说法不正确的是( )
A.当用户打开浏览器并产生一个session之后,服务器将为用户保存这个session。
B.session可译为会话,可以用来保存用户(客户端)的状态值,保存在客户端。
C.session是保存在服务端的,有一个唯一标识。
D.服务端保存session的方法很多,内存、数据库、文件都有。
9.以下关于session说法错误的是( )
A.服务器会根据用户的IP地址分配session,只要用户的IP地址不发生变化,就能一直访问到他的session
B.session中的数据保存在服务器端
C.用户不能访问其他用户的session中的数据
D.每一个session都有sessionid,sessionid会被发往客户端
10.下列用户编号studentNumber调用session中的'userID'值,赋值正确的是( )
A.studentNumber=request.session.get('userID')
B.studentNumber=request.session.post('userID')
C.request.session['userID']=studentNumber
D.studentNumber=request.session['userID']
11.下列语句中,用户登录成功后,在session中保存用户编号studentNumber的是( )
A.studentNumber=request.session.get('userID')
B.request.session('userID')=studentNumber
C.studentNumber=request.session.post('userID')
D.request.session['userID']=studentNumber
12.以下关于session说法错误的是( )
A.session中的数据保存在服务器端
B.用户不能访问其他用户的session中的数据
C.每一个session都有sessionid,sessionid会被发往客户端
D.服务器会根据用户的IP地址分配session,只要用户IP地址不发生变化就能一直访问他的session
13.在SELECT语句的WHERE子句的条件表达式中,可以匹配0个或多个字符的通配符是( )
A.* B.% C._ D.?
14.Select中表示查询所有字段信息的符号是( )
A._ B.% C.* D.?
15.关于语句"SELECT ISBN,书名,出版时间,作者FROM 图书信息 WHERE 作者=鲁迅",下面叙述最为准确的是( )
A.查询“图书信息”数据表里“作者”字段是“鲁迅”的“ISBN,书名,出版时间,作者”4个字段的信息
B.查询“图书信息”数据里“作者”是“鲁迅”的所有信息
C.查询“作者”字段是“鲁迅”的“ISBN,书名,出版时间,作者”4个字段的信息
D.查询“作者”是“鲁迅”的所有信息
16.在SQL中,select是( )
A.更新指令B.查询指令C.删除指令D.插入指令
17.SQL的SELECT语句,用于实现选择运算的是( )
A.FOR B.WHILE C.IF D.WHERE
18.在SELECT语句中,下列哪个子句用于指出所查询的数据表名( )
A.SELECT子句 B.INTO子句
C.WHERE子句 D.FROM子句
19.关于SQL数据库SELECT查询语句中WHERE子句中的条件“AND”和“OR”,下列说法错误的是( )
A.只能单独使用“AND”或“OR”
B.“AND”表示同时满足“AND”两端的条件
C.“OR”表示满足“OR”两端任意一个条件
D.“AND”“OR”可以同时使用
20.在使用SELECT语句查询数据时,将多个条件组合在一起,其中只要有一个条件符合要求,这条记录就被查出,此时使用的连接关键字是( )
A.OR B.AND C.NOT D.以上都不对
21.执行下列数据库操作代码后。
sql="selectidfromstwherename<>''"
cur.execute(sql)
info=cur.fetchall()
下列描述正确的是()
A.select是数据库查询函数
B.当前功能是显示name不为空的所有记录内容
C.只能使用名为sql的变量名来保存SQL查询语句
D.当前功能是显示name不为空的所有id字段值
22.以下符合模糊查询条件LIKE '_b%'的为( )
A.ailb B.abai C.baa D.cca
23.模糊查找LIKE '_a%',下面结果可能的是( )
A.aili B.bba C.cca D.bai
24.在SQL中,update是()
A.更新指令B.查询指令C.删除指令D.插入指令
【学案答案】
1.输入
2.查询
3.统计
4.判别
5.合法
6.错误
7.不正确
8.fetchall
9.==
10.浏览器
11.生效
12.关闭
13.跨页面
14.调用
15.SELECT
16.所有
17.同时
18.一个
19.字段
20.通配符
21.零个
22.任意多
23.一个
24.UPDATE
25.DELETE
26.更新
27.符合
28.所有
29.删除
30.表
31.不可
【课后答案】
1.答案:B解析:先采集,后提取特征值,进行匹配,最后匹配成功的显示成功。故选B。
2.答案:C解析:进行的是概要分析,故选C
3.答案:B解析:采集人脸;预处理信息;提取人脸特征;匹配特征;签到成功,故选B。
4.答案:C解析:1满足条件进入的是2的判断入口,故C错误。
5.答案:D解析:session对象有有效的时间,排除C;属于一个web的时候,是可以公用的;关闭客户端session对象会失效;故本题选D,是客户端的一个状态值。
6.答案:A解析:request.session['userID'] = 变量stuID;故本题选A。
7.答案:A解析:session可以跨页面;关闭客户端后session对象消失;有时效性;是私有的。故本题错误的选A。
8.答案:B解析:用排除法,三个选项提到服务器,只有B是客户端,故B错误。
9.答案:A解析:session有时效性,故错误的是A。
10.答案:A解析:studentNumber=request.session.get(′userID′),从session中获取,故选A。
11.答案:D解析:保存到session中,故选D。
12.答案:D解析:session有时间限制,一般是20分钟,故D错误。
13.答案:B解析:SQL语句中用%表示0个或多个字符,_表示一个;
ACCESS软件中,也用*表示0或多个字符,?表示一个。故本题选B。
14.答案:C解析:select * from 表名,查询表中所有字段的信息,故选C。
15.答案:A解析:从图书信息表中将作者为鲁迅的记录查询出,故选A。
16.答案:B解析:select查询指令,选B。
17.答案:D解析:即条件的设定,为where,故选D。
18.答案:D解析:select是查询,into是插入表,where是条件,from是从哪个表,故选D。
19.答案:A解析:只能绝对化用于,故错误。选A。
20.答案:A解析:只要有一个条件符合,故为OR关键词,选A。
21.答案:D解析:<>是不等于的意思,查询的是id,故选D。
22.答案:B解析:SQL语句中_表示一个任意的字符,故本题选B。
23.答案:D解析:_表示任意一个字符,%表示零个或任意多个字符,故本题选D。
24.答案:A解析:更新的指令,故选A。
学科网(北京)股份有限公司
$$