电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

基于NFC的智能家居环境监测系统设计和实现 计算机专业VIP免费

基于NFC的智能家居环境监测系统设计和实现 计算机专业_第1页
基于NFC的智能家居环境监测系统设计和实现 计算机专业_第2页
基于NFC的智能家居环境监测系统设计和实现 计算机专业_第3页
4.5.3概念设计分析概念设计主要是讲需求分析得到的结果抽象为信息结构的概念模型,根据设计需求把系统分为若干对象和对应的关系,再将所有实体和实体的属性模块化,进而组成一个整体,通过概念设计分析,数据库的模型清晰明了,对后期维护和修改有很大帮助。根据设计需求,传感器数据库系统的E-R图如下所示:图4.12传感器数据库E-R图Fig4.12E-RdiagramofsensordatabaseE-R图中各个实体的对应结构为:主板标签:MainBoard(mno,mname,mcompany);传感器:Sensor(sensor_id,sensor_name,sensor_range);测量结果:Record(mno,sensor_id,record).4.5.4逻辑设计阶段在概念设计完成后需要进行逻辑设计,即完成概念内容到符合数据库管理系统的逻辑结构,数据组织和数据处理是这一阶段的两个要点,通过这一阶段可以理清实体与实体、实体与属性之间的关系,这对建立关系型数据库来说是不可或缺的条件。上述E-R图中描述的关系模型种实体与属性的关系为:主板标签:属性有(标签编号,标签名称,生产厂家);传感器:属性有(传感器编号,传感器名称,传感器量程);测量结果:属性有(标签编号,传感器编号,测量数值).这三个实体之间的联系如下:一个主板标签有且仅有一个唯一编号,一个主板可配备多个传感器,一种传感器可供多个主板使用,因此,主板与传感器之间具有多对多的关系;一个主板标签可以有多个传感器的测量结果,一种传感器的测量结果可以是多个主板标签,因此主板标签和传感器测量结果是多对多的关系;一个传感器对应一个测量结果,一个测量结果对应一个传感器,因此传感器与传感器测量结果具有一对一的联系。4.5.5物理设计阶段物理设计阶段是将逻辑数据模型应用为物理结构的过程,要保证数据库在存储数据时有较好的存储结构和存取方法,同时还有注重存取时的时间效率和空间效率。在查询表格时,为数据表建立索引可提高查询速率,本系统中存在较多的查询操作和较少的插入操作,非常适合在数据表中建立索引以提高查询效率,本数据库中建立索引如下:1、主板标签表的主键mno和传感器表的主键sensor_id存在且唯一,查询主板数据和传感器数据时中经常以此为查询条件,故分别在该属性上建立唯一性索引;2、测量结果表中的属性mno和sensor_id分别是主板标签表和传感器表中的外键,也是此表中的联合主键,查询时这两个属性通常成对出现,故在这两个属性上建立复合索引;4.5.6建立数据表使用SQL语句建立设计出的数据表,主要代码如下:(1)主板标签信息表:CREATETABLEmainboard(mnoCHAR(10)NOTNULLAUTOINCREMENT,mnameCHAR(20)NULL,mcompanyCHAR(10)NULL,PRIMARYKEY(mno))(2)传感器信息表:CREATETABLEsensor(sensor_idCHAR(10)NOTNULLAUTOINCREMENT,sensor_nameCHAR(20)NULL,sensor_rangeCHAR(10)NULL,PRIMARYKEY(sensor_id))(3)测量结果信息表:CREATETABLErecord(record_idINT(10)NOTNULLAUTOINCREMENT,mnoCHAR(10)NOTNULL,sensor_idCHAR(10)NOTNULL,recordCHAR(10)NULL,PRIMARYKEY(mno,sensor_id),FOREIGNKEY(mno)referencesmainboard(mno),FOREIGNKEY(sensor_id)referencessensor(sensor_id),)4.6服务器程序设计4.6.1服务器socket通信程序设计Socket通信和生活中拨打电话的场景类似,打电话之前需要拨通电话号码,对方听到电话铃声后拿起电话,此时通话连接就建立起来,等到电话结束,挂断电话连接也随之结束。Socket通信过程需要在创建前配置好IP地址和监听端口号,本机测试时使用的IP地址为192.168.1.106,端口号为8087,这里需要注意端口号尽量选择空闲端口以免与其它软件发生冲突导致接收不到数据。配置好IP地址和端口号之后,调用socket()函数创建一个socket进程,然后将IP地址和端口号绑定到这个socket会话进程上,对目标端口号进行监听listen(),accept()方法会进行阻塞知道接收一个socket连接,此时就可以调用read()函数读取接收到的数据。最后关闭连接,完成一次socket通信的会话过程,其程序设计流程图如下图所示:图4.13Socket通信程序流程图Fig4.13Programflowdiagramofsocketcommunication程序中socket通信的前面配置部分是固定模式语句,只要按照操作步骤调取相应方法即可,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

文章天下+ 关注
实名认证
内容提供者

各种文档应有尽有

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部