数据监控系统设计方案

2022-10-01 版权声明 我要投稿

方案具有明确的格式和内容规范,要求其具有很强的实践性和可操作性,避免抽象和假大空的内容,那么具体如何制定方案呢?下面是小编为大家整理的《数据监控系统设计方案》的相关内容,希望能给你带来帮助!

第1篇:数据监控系统设计方案

国家知识产权文献数据库系统设计方案与思路

〔摘要〕总结了目前国内知识产权文献数据库的不足,提出了国家知识产权文献数据库系统设计的目标、数据库构成及概念结构。为了实现“快速、全面、准确”的检索目标,需要建立元数据实现数据库的标准化,采用科学的分类体系实现族性检索,开发知识产权领域本体扩展用户检索入口词汇,通过搜索引擎实现全文检索。最后提出了系统的实现方式。

〔关键词〕知识产权;文献数据库;本体;分类体系;众包

知识产权文献数据库的建设已经影响到企业、国家的发展战略。以专利文献为例,欧洲专利局(EPO)每年要驳回50%的专利申请;美国专利商标局(USPTO)每年要驳回54%的申请;日本专利局(JPO)每年要驳回62.5%的专利申请;工业领域每年约有60亿美元浪费在专利法律和申请费用上[1]。专利被驳回说明相关的技术已经发明出来了,由于在研究之前未能检索出相关文献,导致重复研究开发,造成大量的资源浪费。要全面、准确地检索相关知识产权文献,需要建立高质量的国家知识产权文献数据库系统。这既是强化政府在科技、商业等领域的公共管理与服务职能的重要体现,也是企事业单位、公民个人进行科技、商业领域的创新与发展的重要保障。

1国内现有知识产权文献数据库的不足

1.1数据库内容建设的不足

国内现有知识产权文献数据库内容的不足之处体现在以下两个方面:第一,数据收录不全。以专利文献为例,国内大多数的专利数据库的回溯年限都是1985年。知识产权法律法规文献的信息也不完整,例如全国人大法律法规数据库、国务院法制办公室数据库等专门的法律数据库以及知识产权相关行政机关的政策信息只公布法律或者政策文本,对知识产权相关法律的释义和法律问答,以及所涵盖的法律条文解读非常有限,导致对执法过程准确解释或者适用法律指导意义不强。第二,数据内容分散。知识产权文献信息分散在不同主管部门所建立的数据库中。其中国家知识产权局与国家工商行政管理总局分别建立了专利与商标文献数据库,信息相对丰富的国家立法与政策文献及信息资料库则由第三方构建。这些分散的数据,给用户的集中检索带来了不便。

1.2检索方法的不足

国内很多知识产权文献检索系统,往往是从数据库本身的特点出发,将数据库中的主题词、发明名称、公开号、主分类号、代理人等作为检索入口。这种基于关键词或者分类号的检索方式有很大的局限。以专利为例,专利文献是技术文件和法律文件的结合物,需要按照专利法的有关规定撰写,内容会显得重复、繁琐。而且申请人为了获得尽可能大的保护范围,往往会采用概括性很大的术语,如把钢笔概括为书写工具,把梯子概括为攀登工具,把筛子叫做分离装置[2];除此以外,汉语本身一词多义,多词同义的特点,进一步影响了关键词检索的效率。从分类号检索来看,虽然国际专利分类法(IPC)在各个国家都有使用,但是同一专利、相近的技术主题在不同的国家的专利分类体系下存在一定的差异。而且不同体系的专利分类详略不同,IPC有631个子类,7 392个主组,62 493个分组。美国专利分类体系已(US-IPC)发展到450多个大类,15万多个小类。有人做过调查,18.7%以上的美国专利分类号和欧洲专利分类号在部的分类上就存在差异。而且专利分类体系在不断修订,每一次分类都会导致分类技术主题词与分类号的变化,例如修订后12%的US-IPC号发生了变化,4%的EP-IPC分类号变化[3]。

现有知识产权文献数据库大多缺乏深度标引和加工,信息挖掘程度偏低,质量有待提高。例如现有的专题专利数据库对同族专利、法律状态和引证专利等特定信息的揭示远远不够,只有69%的包含有法律状态信息,49%的包含有同族专利信息,仅有18%的包含有引证专利信息,还有28%的没有提供以上任何一种信息[4]。目前国内只有中国药物专利数据库进行了深度加工标引,加工内容包括:专利发明主题标引、医疗应用标引、范畴分类、文摘重新撰写、化学物质信息标引、中药方剂信息标引,并同时建成了中药材名称数据库,化学物质登记文档数据库等两个辅助数据库系统[5]。以专利文摘为例,201110060757号专利申请书中的摘要只有150字左右,在网站检索到的摘要内容扩大了1倍,达到300多字(见表1)。通过重写摘要,加入专利中使用的每一种药材、化学成分等具有检索意义的内容,大大提高了检全率和检准率。

表1中国药物专利数据库的数据加工实例

原始摘要1111改写后的摘要本发明属于医药或保健食品领域,本发明公开了一种具有提高免疫力的药物组合物,其特征在于药物组合物包括发酵虫草菌粉、维生素和矿物质或药物组合物包括虫草多糖、维生素和矿物质,其中发酵虫草菌粉或虫草多糖0.1~1重量份,维生素0.005~3重量份,矿物质0.05~3重量份。药理实验表明,本发明药物组合物具有很好的提高免疫力的作用。11〖〗一种药物或保健食品组合物。它是由中药发酵虫草菌粉或虫草多糖、维生素、矿物质,及其番茄红素、低聚果糖组成,并按常规方法制得的饮料、奶粉或乳粉;其中维生素是由维生素A、维生素B1、维生素B2、维生素B6、维生素C、维生素E、叶酸、维生素B12、维生素D、维生素K、维生素H、维生素P、维生素PP、维生素M、维生素T、维生素U、生物素、水溶性维生素、烟酰胺、泛酸中的一种或几种组成;矿物质是由钙、铁、锌、硒、磷、钾、氯、镁、铜、锰、碘、铬、钼、镍、锡、硅、钒、钴、硫、钠、氟、锶中的一种或几种组成;中药还包括杜仲、枸杞(枸杞子)、麦冬、川贝母、枇杷叶、西洋参、雪莲花、灵芝和花粉中的一种或几种。该组合物具有提高免疫力的作用。

1.4数据库共建共享的不足

知识产权管理机构和信息服务机构之间缺乏有效合作机制,不能优势互补。没有把资源优势、人才优势、技术优势结合起来,造成国内已建的知识产权文献数据库有的收录数据不全面,有的服务内容与功能单一,缺乏既具有权威数据、又具有强大功能的实用性知识产权文献数据库,难以满足用户的创新需求。反观国外的经验,一般由专业领域的数据提供商、科技信息服务提供商和知识产权信息服务机构进行互补性合作,采用多元化的运作模式,提供专利信息、商标信息、科技信息、市场信息等综合服务,服务内容涉及数据加工、数据提供、专利分析、软件开发、咨询服务等方面,例如国际三大联机检索系统都集专利与科技信息、行业信息、法律法规、市场商情信息服务于一体,提供全方位、一站式的综合服务[4]。

2国家知识产权文献数据库系统设计

2.1系统目标

企事业单位、公民个人利用知识产权文献进行研究开发、专利分析、加强知识产权的管理,都要以快速、全面、准确的数据库访问为基础,这也是本系统设计的目标。

“快速”有两个方面的要求:一是最新的信息能检索出来,这需要及时更新数据库来实现,即数据库系统应该提供方便的数据更新机制。二是查询信息的响应时间比较短,这与系统的检索性能、ISP的服务能力等因素有关系。

“全面”一方面要求搜集的信息要全。根据项目计划,数据库会收录知识产权政策文献资料、专利文献信息资料、知识产权行政确权和执法文献资料、知识产权司法判决文献、相关网络资源、知识产权名人与大事等资料。与现有的知识产权数据库相比,本项目的内容是最全的。另一方面要求系统的“检全率”达到要求,能把跟检索需求相关的所有信息检索出来。检全率除了要有收录齐全的原始数据支持之外,然后还要求系统提供合理的检索策略和手段,例如提供全文检索功能等。

“准确”主要是指检准率。即从数据库中检索出来的文献,应该与检索要求密切相关。这主要取决于数据库的数据质量。数据质量不高,会导致检索结果不准,从而造成重复研究与开发。根据欧洲专利局的信息,2008年仅在欧洲就有200亿欧元浪费在已授权专利的产品研究与开发中,由此引发的专利诉讼也会浪费大量的时间和金钱。其中Eolas起诉微软的浏览器侵权,花了8年时间才结束,赔偿5.21亿美元[6]。

2.2数据库设计

根据项目研究内容结合用户需求分析,从内容上来看,本系统共包括知识产权研究资料库、知识产权网络资源库、知识产权法律法规文献库、知识产权确权与登记资料库、知识产权司法与执法资料库、知识产权机构与人物、知识产权大事记等七大数据库。为了实现“快速、全面、准确”的检索要求,提供专利分析、引文分析等增值服务,每个资料库需要有目录数据库、全文数据库、引文数据库、分类表、主题词表、关联词表的支持。其结构如图1所示:

11图1国家知识产权文献数据库结构11

2.3系统的概念结构

国家知识产权文献数据库系统需要提供元数据管理、分类体系维护、知识产权本体管理以及全文搜索等功能,其概念结构如图2所示。

其中,元数据用于指导数据库的标准化建设,元数据

11图2国家知识产权文献数据库系统的概念结构11

标准的建立,可以保证整个项目七大数据库的统一、规范。分类体系用于实现知识产权文献的族性检索。领域专家在本体开发工具的支持下构建的知识产权领域本体,可以用于构建关联词表,扩展用户提出的检索入口词汇,最终实现基于语义的检索功能。搜索引擎实现知识产权文献的全文检索。

3国家知识产权文献数据库系统的实现思路

3.1开发方式

系统开发的方式一般有4种:自主开发,合作开发、外包和众包。自主开发是指由项目组自行开发所有的数据库和相关软件。合作开发是指由项目组、相关的主管部门、企事业单位合作开发。外包是指将项目中部分功能模块的开发委托给相关专业机构,例如国外很多软件公司就把很多需要大量人力的开发任务外包给人力成本低廉的中国和印度。众包是美国《连线》杂志记者杰夫·豪在2006年提出来的概念,指企事业单位、机构乃至个人把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的社会大众群体解决或承担的做法[7]。网上很多项目都采用众包的开发形式,例如维基百科、百度百科,把一个项目分成很多小任务,通过志愿者的努力实现。

鉴于本项目需要整合大量的数据资源,因此,可以采用自主开发、合作开发与众包相结合的方式。项目组的大部分成员是知识产权领域的核心专家,可以承担知识产权领域本体开发和分类体系的维护工作;对于商标、专利等知识产权数据库的建设,可以与相关的主管部门和知识产权信息服务机构合作开发;全文搜索引擎的开发,可以借鉴百度与中国专利信息中心合作的经验,将其外包给专业的搜索服务机构,减少开发成本,提高开发效率;对于法律信息以及判决案例、知识产权名人与大事、知识产权网络信息等数据,则可以采用面向信息内容的众包模式,由用户在使用过程中不断补充。

3.2开发步骤

系统开发能不能一次实现“快速、全面、准确”检索的目标呢?笔者认为系统开发需要分步骤、分阶段实现这些目标。国外很多数据库系统的开发也是分阶段逐步完善的。如德温特世界专利索引数据库(WPI),截止到2010年10月,已经收录了1 975万条记录。德温特公司对所收集的数据进行了严格的规范整理和深度的综合加工,这些加工过程分为5个阶段:1966-1970年的标题字段只包括主标题,1971-1984年录入了副标题,1985-1995年在文摘中加入了用途/优点(USE/ADVANTAGE)部分,1996-1998年对摘要中的用途(USE)和优点(ADVANTAGE)进行了分开撰写,1999-2010年在摘要中分别列出新颖性(NOVELTY)、用途(USE)和优点(ADVANTAGE)等部分,增加了单独的附图部件和标号之间的关系说明[8]。

通过借鉴国外的成功经验,中国国家知识产权文献数据库的开发,可以先实现收集齐全的目标,将知识产权文献的覆盖范围扩大到新中国成立后所有的知识产权文献,同时对文献内容进行全面标引。例如专利文献要对申请号、公开号、申请人、发明人、专利分类号、发明名称、文摘、申请日、公开日等所有的特征项目进行标引,商标文献要对分类号、申请者、注册日期、权利人、形式(文字、颜色、字母、形状等)等进行全面揭示。然后实现检索准确的目标。主要任务是建立著录标引的规范,开发知识产权领域的本体,建立同义词表、关联词表等等。最后实现快速检索的目标。主要任务是优化搜索引擎,提高检索的响应速度。每一个分目标,也可以分阶段实现。例如数据收录全面的目标,由于本项目的目标非常宏大,在短短的几年时间采集齐全所有的数据有很大的难度,可以根据用户的信息需求,先重点收集、再全面收集,最终实现收录范围的全面覆盖。

参考文献

[1]Pantros IP Patent Analytics and Strategic Patent Portfolio Management Solutions for Enterprise[EB/OL].http:∥www.pantrosip.com,2012-05-01.

[2]江镇华.怎样检索中外专利信息[M].北京:知识产权出版社,2007:333.

[3]左晶.IPC和USC分类体系下专利检索的对比分析[J].现代情报,130-132.

[4]孙旭华,揭玉斌,王武,等.关于我国专题专利数据库的思考[J].创新科技,2010,(11):26-27.

[5]鲁程.三大中文专利全文数据库的比较研究[J].农业图书情报学刊,2006,(11):109-111.

[6]Brünger-Weilandt S,Gei D,Herlan G,et al.Quality-Key factor for high value in professional patent,technical and scientific information[J].World Patent Information,2011,33(3):230-234.

[7]魏拴成,邬适融.众包的产生、发展以及构建众包商业模式应遵循的路径[J].上海管理科学,2010,(1):55-58.

[8]许敏,黄非,王锐.利用WPI数据库提高专利文献检索效率[J].中国发明与专利,2011,(6):72-75.

(本文责任编辑:王涓)

作者:仇壮丽

第2篇:体育竞赛实时数据分享系统储存方案设计与优化

摘 要:在“互联网+”概念的影响下,越来越多的信息技术应用于体育产业。本文通过构建基于MEAN框架的体育竞赛实时数据管理系统,设计了一种结合本地存储与远端云数据库的分布式存储方案,既实现数据的实时分享,又保障数据的可靠性。并通过实验的方式比较了基于HTML5 Local Storage本地存储的两种方法与本地NoSQL数据库的性能差异,从而实现系统存储方案的优化。

关键词:实时数据共享;竞赛系统;MEAN框架;RESTful接口

Express + AngularJS + NodeJS) framework, this paper proposes to design a distributed storage scheme that combines local storage and remote cloud database, which realizes real-time data sharing and guarantees data reliability. Performance difference between the two methods based on HTML5 Local Storage and local NOSQL (Not Only SQL) database is compared through experiment, so to optimize the system storage scheme.

1 引言(Introduction)

随着互联网信息技术的发展,云计算和云数据库以其可伸缩性、高可靠性等特点受到了开发者和企业的青睐,越来越多的企业将其服务和数据转移到云上。这些海量的数据如果可以通过接口的形式实现共享,将为大数据的分析和挖掘提供数据。然而冲突数据和时效错误数据相叠加而产生的错误数据将产生严重的后果,德国数据分析机构的调查显示:美国每年因为劣质数据而造成的损失高达6,000 亿美元[1]。因此,保证数据的可靠性乃是数据最重要的因素之一,建立在低质量数据基础之上的数据分析、数据挖掘将会变成一纸空谈,甚至会产生重大的错误。

有时为了确保数据的可靠性,往往会以牺牲数据的实时性为代价。而体育赛事信息的变动和不确定性,要求信息传播最大程度地追求时效性与接收的便捷性[2]。而传统竞赛服务系统多采用C/S构架,前期需要较大的硬件成本投入,同时开发周期长、成本高,除个别大型综合性赛事外,单项体育比赛的竞赛系统几乎不具备实时分享数据的能力。而基于B/S

架构的系统除了开发周期端、成本低、系统可扩展性高之外,数据信息服务通过连接特定的数据接口,实现数据实时通讯,既能服务于电视直播、现场大屏幕的数据需求,还能为所有对实时数据有需求的应用提供数据支持。赛后,所有的数据还可用于其他分享和数据挖掘,以达到数据价值利用最大化。本文研究的目的就是建立一套体育竞赛数据管理系统,既要满足实时传播的需要,又要建立在高可靠性的数据基础之上。

2 系统框架(System framework)

2.1 相关技术介绍

本文采用MEAN框架进行系统开发。MEAN框架是一个JavaScript平台下现代Web开发框架的总称,是MongoDB、Express、Angular、Node.js四个框架的第一个字母组合的简称。Node.js是一个基于Chrome JavaScript运行时建立的平台,用于搭建响应速度快、易于扩展的网络应用[3]。Node.js本身的特点非常适合在分布式设备上运行数据密集型的实时应用。它采用一系列“非阻塞”I/O模型库来支持事件循环方式,为文件系统、数据库等资源提供接口,通过异步的方式实现数据的非阻塞传输。Express是一款基于Node.js的Web应用开发框架。Express虽然规模小巧,却为Web和移动应用程序提供一组强大的功能。Angular是由Google公司开发和维护前端的应用框架,其核心特点包括MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等。MongoDB是NoSQL的一种,可以方便地存储复杂的数据类型。其由于高性能、易部署、易使用,以及存储数据方便等特点,是目前应用最广泛的NoSQL数据库。

2.2 RESTful接口

在系统设计和实现的过程中,始终以RESTful接口的形式实行数据的互联共享。无论是现场比分、历史战绩,还是赛队或队员的相关信息都可以通过统一的数据接口实现访问,从而避免了运动项目或赛事因业务与功能的不同,建立数据彼此独立、相互封闭信息的“信息孤岛”[4];以资源的方式提供数据服务可以提高体育信息数据的有效集成,扩大媒介的传播效果[5]。以信息服务为目标,提供体育赛事相关资料的综合性服务,必將成为大型体育赛事信息服务变革的方式,对于实现信息服务系统化、标准化以及提高信息利用率,具有重要意义[6]。

進行RESTful风格的API设计时,需要客户端和服务器之间的交互在请求之间是无状态的。所谓无状态即所有的资源都是通过URI进行定位的,而且该URI提供的资源与其他资源无关,也不会因为其他资源的变化而改变[7]。例如,查询某运动员的成绩,如果查询成绩时需要登录成绩管理系统,进入特定的成绩查询页面,执行相关操作后获取该名运动员的历史成绩,上述情况则属于有状态,因为查询运动员历史成绩的每一步操作都依赖于前一步操作的结果,只要前置操作失败,则后续操作就无法执行。如果在浏览器地址栏中输入一个URL地址即可返回某运动员的历史成绩,则该情况属于无状态,因为获取运动员成绩资源不依赖于其他资源或状态,而是与一个URL地址相对应,可以通过HTTP的GET方法得到该资源。

3 数据存储方案设计(Design of data storage)

高质量的数据信息服务,除了追求数据在分享方面的高效之外,对数据的准确性也有相当高的要求。不以数据质量为前提的数据服务,其后果必然是灾难性的。因此,系统的数据存储方案就显得格外重要,既要保证数据便于分享,也要保证数据准确。如果仅仅采用单一性的数据库将很难满足需求。

系统存储方案采用的是本地与云端同步存储的模式,如图1所示。系统前端通过AJAX发送数据到云数据库,并通过云数据库实现数据的实时分享,但由于不可预测的网络原因,存储过程有可能会出现长时间延迟,甚至失败。而竞技体育赛事往往无法重赛,如果出现数据丢失的情况将是非常严重的事故。这不仅无法满足数据分享的需求,更有可能因为竞赛数据的丢失导致赛事无法正常进行。本地存储由于没有网络依赖,能保证数据的完整性和准确性。系统通过同时向本地和云端存储数据,确保竞赛数据不会丢失。同时,将本地数据与云数据库进行数据一致性校对,避免由于网络原因造成云端数据丢失,确保云端数据的完整性。用户通过向云数据库发送请求,获取准确的竞赛实时数据。

在数据库选择方面,以MySQL为代表的传统关系型数据库在处理海量数据文档时有其固有的局限性,很难满足海量数据的柔性管理需求[8]。而以MongoDB为代表的NoSQL数据库却能够很好地应对非结构化的数据存储,对于表结构需要临时调整、字段不固定、快速响应海量数据写入等方面都具有相当明显的优势。同时有研究表明,MongoDB数据库与MySQL数据库相比,多线程、高并发情况下的数据插入性能明显高得多[7]。最终,系统服务器端选择以MongoDB为存储数据库。

本地存储的选择,同样将MongoDB作为主要的候选对象,同时,由于整个竞赛系统只需要存储与比赛相关的数据信息,而运动员信息、赛队信息、往期赛事成绩等相关数据无须进行存储,数据量并不大。在确认云端数据完整无误之后,本地数据可以删除。所以,HTML5 Local Storage也可作为候选对象。

4 存储性能优化(Storage performance optimization)

在明确存储方案之后,为进一步优化该方案,在系统设计过程中,对本地各存储备选方案进行了性能测试,以选出最优本地存储方案。

4.1 测试环境

测试环境使用的是Intel Core i7 2.5 GHz CPU,16 GB

内存、AMD Radeon R9 M370X 2048 MB显存的GPU,操作系统为macOS Sierra 10.12.1,测试用的浏览器分别是Safari、Chrome和Opera。由于在macOS中不支持Windows操作系统下常用的IE浏览器,因此没有在IE浏览器中进行测试。

4.2 测试方法

分别调用HTML5原生Local Storage方法、自定义基于Angular Service规范的HTML5 Local Storage方法(以下简称Angular Local Storage Service),以及本地MongoDB Service方法,比较它们在相同存储次数下所消耗的时间。存储的对象是一个不断增加的MongoDB ObjectId对象数组。设置这样的存储测试方法,一方面是因为摩托艇这类环圈竞速赛比赛规则的原因;另一方面这也是NoSQL数据库的优势所在,无须像SQL数据库一样,每条数据顺序插入数据库中,而只需要修改文档数据库的字段内容即可。同时,该数据结构也更有利于进行与云端的数据一致性校验。

测试的存储次数分别为100、1,000、2,000、3,000、4,000和5,000,最终判断Safari、Chrome和Opera三款浏览器的性能优劣。由于在真实比赛过程中,系统存储数据I/O的频次远低于实验设计,同时实验的主要目的是为了找出在较低频次下,各个储存方案的性能差异,因此本次实验的最大测试次数设置为5,000,没有继续增大循环测试次数。

实际测试过程中,通过在循环开始前后分别调用Date.now()方法获取系统时间,通过比较两次系统时间的时间差来确定循环运行所消耗的时间。以HTML5 Local Storage测试的实验代码为例:

saveByLocalStorage(data){

let tempArray = [];

let tempObject = {};

let startTime = Date.now();

for(let i=0;i

tempArray.push(data);

tempObject['result'] = tempArray;

localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(tempObject));

}

let endTime = Date.now();

console.log("LocalStorage Testing Duration Time :" +

(endTime - startTime));}

Angular的结构框架不推荐直接使用组件获取或者保存数据,虽然直接调用HTML5 Local Storage方法可以实现数据的存储和读取,但是与Angular的理念不一致。因此在开发的过程中独立编写了一个基于HTML5 Local Storage的Service,再通过Angular的依赖注入机制应用于系统之中。

class LocalStorageService {

constructor(storage) {

this.storage = storage; }

get(key) {

try {

return JSON.parse(this.storage.getItem(key));

}

catch (error) { return null; }

}

set(key, value) {

this.storage.setItem(key, JSON.stringify

(value));}

remove(key) {

this.storage.removeItem(key);

}

}

保存到本地MongoDB數据库时,利用Angular的Observable对象,借助RxJS库对数据流进行异步处理,在Angular中几乎都使用该方法来处理AJAX请求和响应。在Angular前端设置比赛成绩的Service的数据服务之前,需要在服务器端创建RESTful风格的数据接口用以满足前端的需要。由于是以竞赛成绩为测试内容,而竞赛成绩本身属于敏感信息,不能允许任意用户进行随意的创建、修改和删除,因此在接口设计时除GET方法外,其他所有方法都进行了权限管理,必须管理员用户才可以访问这些接口。

5 实验结果(Experimental results)

在实际测试中,分别在Safari、Chrome和Opera三款浏览器运行测试程序,所有测试结果均在console面板中显示。从测试结果来看,Safari、Chrome和Opera三款浏览器在HTML5 Local Storage、Angular Local Storage Service和本地MongoDB Service这三项测试中,所表现出的性能没有显著差异。这三款浏览器在HTML5 Local Storage和Angular Local Storage Service的测试对比中,均表现出用Angular Service标准写出的方法比直接调用HTML5 Local Storage有5%左右的性能优势。用Angular Service标准编写的服务本身调用的就是HTML5 Local Storage,虽然只是用Angular Service的规范将HTML5 Local Storage进行封装,但Angular Service服务由于在构建Component时已经加载成功,因此会表现出5%左右的性能优势。

而无论是HTML5 Local Storage还是Angular Local Storage Service,在测试次数在3,000以下时,与本地MongoDB Service都存在着数量级上的优势。随着测试次数增多,它们之间的差异虽然缩小,性能差距依然在三倍以上。

具体测试结果如表1—表3所示。

从整体的测试结果来看,使用Local Storage的存储方案明显会更加具有优势。Angular Local Storage Service的方法虽然在开发过程中比直接调用HTML5 Local Storage要复杂一些,但是其兼顾Angular Service的模式,同时还具备5%左右的性能优势,所以在最终开发过程中选用的是Angular Local Storage Service的开发方式。

6 结论(Conclusion)

对于追求时效性的B/S架构系统来说,以RESTful风格进行API设计将极大地方便数据分享和协同开发的效率,降低开发过程中出错的概率。同时,将所有的数据以资源的形式为外界提供服务时,将最大程度消除信息化障碍,确保所有人能够畅通地获取体育服务信息。

数据存储方案采用本地与云端同步存储的模式设计与开发,提高了系统的容错率,增加了数据的可靠性。在本地存储方案选择方面,采用Web浏览器提供的Local Storage足以满足临时性的需求,且性能与本地MongoDB数据库相比,在低频次的使用时具有数量级上的优势,可优先考虑以HTML5 Local Storage作为临时存储数据库对象。在以Angular为前端开发框架时,基于Angular标准的service存储性能比直接调用HTML5 Local Storage具有5%左右的性能优势,可优先考虑。

参考文献(References)

[1] 杜岳峰,申德荣,聂铁铮.基于关联数据的一致性和时效性清洗方法[J].计算机学报,2017,40(1):92-105.

[2] 冉荣.自媒体背景下体育微博的发展及价值[J].新媒在线,2017(11):147-148.

[3] 王伶俐.基于NodeJS + Express框架的轻应用定制平台的设计与实现[J].计算机科学,2017(11):596-599.

[4] 王家宏,孙晋海,伊超.基于数据集成的水上项目国家队数据库网络管理平台的设计与开发[J].山东体育学院学报,2015(1):1-7.

[5] 林宁波.大数据时代体育信息传播改革路径[J].大统计,2018(3):31-33.

[6] 王广田,张文莲.大型体育赛事档案信息服务的困境与变革[J].山西档案,2018(7):130-132.

[7] Haviv, Amos Q. MEAN Web Development: Master real-time web application development using a mean combination of MongoDB, Express, Angular JS, and Node.js[M]. Birmingham, UK: Packet Publishing, 2014:2-8.

[8] 胡小春,李陶深,王乐.基于NoSQL的大数据应用设计与性能保障方案研究[J].广西大学学报(自然科学版),2014(6):633-640.

作者简介:

石 清(1981-),男,硕士,讲师.研究领域:体育信息技术,人机工程学.

作者:石清

第3篇:地面数字电视数据推送系统方案及应用

【摘要】信息社会科技高度发展,人们在生活中每天都会接触各种信息。推送信息可以節省人们用于信息搜索的时间,同时可以获得丰富的资讯,方便人们的日常应用。本文主要论述了地面数字电视数据推送系统方案及应用,进一步优化地面数字电视数据的推送,保障信息的丰富性。

【关键词】地面;数字电视;数据推送;系统方案

信息时代的人们每天工作和生活都离不开计算机和手机,这些终端设备也为人们每天提供丰富的信息内容。人们可以咨询利用媒体搜索,获取信息推送的服务。信息推送指的就是根据技术标准和服务,通过网络定向向用户传输信息技术。以用户的兴趣和需求为基础,搜索到相关信息,再将没有价值的内容过滤掉,保证用户可以及时获得需要的信息内容。

1. 信息推送系统的作用

1.1 提供个性化服务

地面数字电视数据推送系统可以向用户提供个性化的服务,根据用户的信息需求,发呼出系统的信息搜集和信息整理等功能,通过划分信息的类别,最后向用户进行传送,用户无需在信息搜索方面花费过多的时间。

1.2 应急广播功能

如果出现了紧急事件和突发灾难。地面数字电视数据推送系统方案可以实时发布应急广播,使用户可以做好准备,采取有效的防火措施。

1.3 及时发布信息热点

地面数字电视数据推送系统可以及时将信息热点发布出去,在这个过程中不会出现网络堵塞的问题。利用信息推送方式发布重大新闻和热点信息,通过广播方式实现信息传送的高效性,避免因为用户访问数量过大,引发网络堵塞的问题。

2. 地面数字电视数据推送系统

计算机和手机可以实现信息推送,计算机和手机每天都具备海量的信息咨询和广告内容,以传播载体为基础,可以利用各种途径推送信息,不只是可以利用互联网和移动通信网,还可以利用广播电视网推送信息。

本文论述地面数字电视数据推送系统,在前端子系统和广播传输子系统以及接受终端三个方面深深入分析系统功能和影响因素,当前在地面数字电视数据推送系统中通常都是利用宽带14.438Mbit/s,在信息数据推送过程中利用2Mbit/s宽带。

2.1 信息推送前端子系统

2.1.1 信息推送前端

数据推送前端子系统在机房中发挥作用,利用原有播出系统的优势,以此为基础增加了信息推送前端设备,利用复用器等设备传输信息,信息通常是以TS流形式被传输,利用这种方式可以同时传输多套电视节目,并且不会影响到信息质量,保障信息推送功能的正常发挥。图1为前端子系统的三部分。

信息推送前端:息息推送前端包括基础平台管理和媒资管理和播出管理等部分,不仅可以采集和处理以及储存媒资信息,同时对于接收终端还要实施管控作用,完善产品营销策略。技术人员利用播出机房中的多部服务器,设置简易化的信息推送前端,负责传输信息TS流。

基础平台管理包括服务器管理和角色权限管理以及子平台管理等。系统基础平台在这一方面发挥着重要的作用,直接影响到端子系统的安全性和运行稳定性。

媒资管理负责上载和编辑以及管理各种媒资文件,主要添加和修改以及删除各种媒体文件的同时负责审核文件,编辑和处理其中的内容,保证媒资文件可以满足系统标准,同时也可以使用户丰富的需求得以满足。

播出管理系统负责管理紧急信息和播出任务以及播控列表等,通过实时控制,可以编辑和审核多种播出任务和播控列表。用户的需求各有不同,因此采取的管理措施也具备差异性,因此播出管理工作在数据推送前段子系统当中发挥着举足轻重的作用。

播发系统负责播发数据,保证播出的安全性,此外还涉及到冗余管理和IP网关等任务,加强管控信息传输宽带和播出参数,保证宽带符合标准要求,提高播出参数的准确性。

终端管理工作是非常中啊哟的,可以利用分组管理和模板管理等方式保证管理效果。根据终端行业和位置的差异性,分类终端信息,实现层次化管理,并且可以根据实际工作需求添加和修改以及删除每个终端信息。此外针对自终端的回传信息,也可以利用终端管理进行接收,并且可以进行相应的处理。

运营管理的内容个非常丰富,不仅需要统计厂商管理额,还要制定具体的产品运营方式,运营管理是运营商获取用户信息的重要方式,利用运营管理可以制定战队性的用户管理方式,也可以推出个性化的产品,保证用户的满意度的同时还可以提高服务的精细度。

信息推送前端属于一种专业性平台,可以编辑和传输以及发布媒资和信息,发挥着强大的功能,信息推送前端负责信息推送,这方面服务直接影响到用户的体验感和满意度。信息推送前端可以统一规划媒资内容,并且可以自动播发媒资内容,统一管理智能终端信息,以用户层次的不同,实时控制终端,保证相关操作的个性化,统一发布信息,实现展示效果的差异性要求。

2.1.2 电视节目编码前端

电视节目编码在前端子系统当中发挥着重要的作用,利用多台编码器量化和压缩电视台的多套SDI电视节目信号,实现信源编码之后,在复用器中输入节目码流。传统单项广播电视的运营基础就是电视节目编码前端,编码质量决定者电视节目的清晰度,同时也关系到用户的收视体验。

2.2 信息推送广播传输子系统

为了使用户可以接收到推送信息和资讯,技术人员人员可以利用单频网进行广播覆盖。通过光缆和光纤传送播出前端的节目信号到各个基站,技术人员利用地面数字电视网络构建广播传输覆盖网,保证覆盖网的无限化和网络化等,完善信息发布平台,进而可以高效的推送信息。

2.3 信息推送接受终端

数字电视节目质量和信息推送接收终端具有密切的关系,信息推送接收终端不仅可以播出前端传递的信息内容,同时也可以现实出实时时间和天气,而且支持滚动字幕。通过信息推送接受终端,可以及时播放紧急信息内容。在地面数字电视数据推送系统当中接受终端发挥着巨大的作用,前端播控列表由它接收,同时利用其界面编辑的作用,可以设计出个性化的播控列表。

因此可以根据需求,增加接收终端的GPRS模块,设置回传设备的参数。接收终端回传信息都是在设备开机状态中,而且GPRS则和汇总无线数据分组技术具有高效性和低成本的优势,传输效率也比较高,可以满足工作需求。因此技术人员的回传急速可以广泛利用GPRS,利用前段子系统对于终端工作信息进行监控,及时发现存在的设备故障,进一步分析和处理接收终端的回传信息,以终端播出情况为基础,完善前端节目的播出方案。

3.发展地面数字电视数据推送系统的建议

搭建地面数字电视数据推送系统过程中,技术人员充分发挥出了地面数字电视的播发优势,不仅对于数字电视节目进行实时传输,同时即时息息和多媒体信息的推送功能也得到增强。这样一来信息人员需要深入了解信息推送特点,进一步发展地面数字电视数据推送系统。

3.1 利用信息推送技术

地面数字电视具有一定的公益性,但是也可以实现产业性发展,不仅可以播放基本的电视节目,同时可以利用地面数字电视数据推送系统开展各种增值业务,进一步的发展地面电视。

地面数字电视数据推送系统可以实现增值业务,增值业务在地面数字电视未来发展过程中发挥着巨大的作用。在地面数字电视数据推送系统当中,根据特定用户群体发送他们需要的资讯和节目,使不同人群的需求得以满足。如果发生了紧急事件和突发灾难,可以及时发布应急广播,将政府的相关通告和指示安排等迅速切播,使用户及时做好防护措施。

3.2 加大信息推送宽带

地面数字电视数据推送系统占用的宽带决定着信息推送质量,占用的宽带越大,才可以越快、越多的推送信息内容,极大的提高用户的满意度。而地面数字电视数据推送系统利占用的宽带具备一定的限制,因此需要合理分配宽带,首先需要满足基础的业务条件,其次要保证推送信息的宽带尽可能的增大,使各项业务发展需求得以满足。以实际情况为出,保证宽带分配的弹性,如果信息量推送任务突然增加,就要及时将传输宽带增加。

3.3 保证信息推送的有效性

地面数字电视数据推送系统利用的传输信道比较复杂,推送的信息要保证达到所有的用户,因此需要提高网路覆盖的范围,支持在多个时段播放获取的信息。如果息息内容含量比较大,并且没有要求立即播出,可以利用系统空余时段或者夜晚时段推送这个类型的信息,避免占用繁忙时段,降低工作效率。

3.4 丰富推送的信息

地面数字电视数据推送系统的发展基础就是用户的信息需求,地面数字电视数据推送系统的主要任务也是满足用户的信息需求。这就需要技术人员采集更多的信息,通过精心的编辑,转化为信息内容,通过整理和储存信息,使用户的需求在最大程度上得以满足。广电行业发展可以发挥出内容创作的优势,信息内容的丰富性关系到地面数字电视数据推送系统的效果,只有利用优质的内容才可以吸引更多的用户。

3.5 完善信息回传通道

通过优质性回传通道,可以实现地面数字电视的商业化应用模式,集中推送数据,同时可以保证数据的可靠性。回传通道是地面数字电视数据推送系统重要的环节。在搭建地面数字电视数据推送系统的过程中,需要利用电信和互联网回传通道,设置专用的回传通道。

3.6 完善管理应用模式

技术人员需要不断完善管理应用模式,尽量满足终端用户的需求,这样才可以提供用户的体验感受。通过专业的服务器,对于数据集信息的搜集工作实施有效的管理,利用针对性的单项广播传输方式传输前端内容,增强信息的交互性。此外需要联系前端各个应用服务器,将前端的应用内容及时动态的更新,使各类信息的实效性和时效性不断增强。此外可以利用机顶盒的功能,使其作为多媒体信息终端主机,利用Android和Windows等操作系统,前端建立信息采集系统,利用地面数字电视数据推送系统向终端用户传输各类信息,用户看电视和上网等需求可以得到极大的满足。

4. 结束语

近些年我国不断完善地面数字电视覆盖工作,工作人员需要捉住机遇进一步发展地面数字电视数据推送系统,增加系统工作业务,拓展广电行业的盈利模式,使广电行业的影响力不断增强,获得更多的受众。

参考文献:

[1]杨植文.基于国标的地面数字电视广播网的组建及应用前景分析[J].东南传播,2018(12):145-146.

[2]樊娟.地面数字电视发射机功放部分的原理及故障维护[J].中国有线电视,2018(12):1396-1398.

[3]田明亮.夏津县基于地面数字电视覆盖网应急广播“村村响”系统技术方案[J].有线电视技术,2018(12):99-105.

[4]徐畅,张忠琴.垂直极化天线在地面数字电视传输中的应用探讨[J].视听界(广播电视技术),2018(06):95-96.

[5]李红光,夏旭芬.綠华岛地面无线数字电视覆盖工程信号源解决方案[J].中国有线电视,2018(11):1262-1264.

[6]刘同秀.数字媒体技术的发展与应用——数字媒体技术在广播电视中的应用[J].西部广播电视,2018(21):197-198.

[7]郭嘉,李雷雷.全数字频率规划背景下云南省级电视节目无线数字化覆盖总体技术方案研究[J].广播与电视技术,2018,45(10):90-95.

[8]张福东.CMMB与DTMB信号监测技术在数字广播电视中的应用探析[J].新闻研究导刊,2018,9(19):244+250.

[9]曾丹.乐山广播电视台地面数字电视覆盖工程DTMB前端平台改造方案[J].西部广播电视,2018(18):165-168+173.

作者:赵乐荣

第4篇:图书管理系统数据库设计

3 数据库设计 ................................................................. 2 3.1 专门术语的定义 ................................................... 2 3.1.1 系统中常用的术语(或使用频率较高的术语) ......................... 2 3.1.2 表格定义及规范 ................................................. 2 3.1.2.1数据约定 ..................................................... 2 3.1.2.2表和表字段命名规范: .

3 数据库设计

3.1 专门术语的定义

暂无

3.1.1 系统中常用的术语(或使用频率较高的术语) 暂无

3.1.2 表格定义及规范 3.1.2.1数据约定

所有数据项都用英文、汉语拼音或缩写表示,数据库名称除外。

所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值。字符型的默认值为一个空字符值串;数值型的默认值为数值0;逻辑型的默认值为数值0;

其中:系统中所有逻辑型中数值0表示为“假”;数值1表示为“真”。 datetime、smalldatetime类型的字段没有默认值,必须为NULL。 当字段定义为字符串形时建议使用varchar而不用nvarchar。 建议在大多数表中(如报销单,申请单),应都有以下字段: 字段名说明类型默认值 CreatorID创建者int CreatedTime创建时间DatetimeNULL 字符集采用 UTF-8,请注意字符的转换。

所有数据表第一个字段都是系统内部使用自动序列主键列,自增字段,不可空,名称为:id,确保不把此字段暴露给最终用户。

除特别说明外,所有字符串字段都采用varchar(50) 类型,(无论汉字还是英文,都算一个字符)。

除特别说明外,所有小数的字段都采用 decimal(18,2) 的形式表达。

除特别说明外,所有日期格式都采用 datetime 格式(根据需要提取时间格式); 除特别说明外,所有整形都采用 bigint 格式。 除特别说明外,所有字段默认都设置为 null 。 3.1.2.2表和表字段命名规范:

命名规则约束的范围包括:数据库的命名、表的命名及字段的命名。数据库相关的命名规则采用与通常的编程的变量命名规则原则一致,具体要求如下: 1) 字段名及表名为典型的名词结构; 2) 中文名称要求语言精练、文法严谨;

3) 望文知意、易懂易用,禁止采用如:A002这种命名;

4) 主体采用拼音字母的首写字母拼写构成,基于惯常法可适度采用无词义歧义性的英文命名;

5) 长度不少于3个字母,不大于12个字母;

6) 在对于拼音首字母类似的字段和表,为区别,添加下划线和数字如男性人数:NXRS,女性人数:NXRS_2。

3.2 数据设计

绘制数据流程图的目的是为了方便开发人员与用户的交流,以及为系统的设计提供依据。数据流程图的绘制过程通常采用自顶向下,逐层分解,直到功能细化为止,形成若干层次的数据流程图。 3.2.1 数据流程图设计

0层数据流图

1层数据流图

3.2.2实体关系结构设计

图书实体关系

读者实体关系

图书借阅关系实体

用户实体关系

图书类别实体关系

3.3安全保密设计

3.3.1 逻辑上的安全保密

1、系统对非法使用者的安全保密处理措施

2、系统对正常使用者的安全保密处理措施

3、系统对管理员的安全保密 3.3.2 物理上的安全保密

1、数据库系统异常时的还原处理措施

2、设备遭异常毁坏时的安全防护措施

3、数据参数做到及时更新,保证系统正常运行

3.4 表格与功能模块相关性分析

3.5 表格定义

a.图书信息表

b.读者信息表

c.借阅表

d.管理员_书籍

e.管理员_学生

第5篇:图书管理系统数据库设计

一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。

一、需求分析

针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:

1.读者信息

属性:读者学号,读者姓名,读者性别,联系电话,所在系,生效日期,失效日期,违章状况,累计借书,备注

主键:读者学号

2.书籍信息

属性:ISBN,书名,作者,出版社,出版日期,简介,备注

主键:ISBN 3.管理员信息

属性:工作号,姓名,性别,电话,家庭住址,备注

主键:工作号

数据流程

通过对系统的调查和可行性分析,画出系统的数据流程图:

1.读者

学生对图书管理系统的要求有:

1)能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。

2)能够方便地借阅图书、续借图书、归还图书

3)能够查询自己的基本资料、图书情况

4)能够熟悉图书管理系统的使用。

读者进入系统工作的流程为:

注册→查询→修改信息→借阅续借→图书归还→注销

2.图书管理员

他们对图书管理系统的要求有:

1)能方便的对图书进行录入登记,注销陈旧的书籍。

2)能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。

3)能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。

图书管理员工作的流程为::

注册→录入图书→录入新生→注销图书→注销学生→注销→修改个人信息→超期处理

二、概念模型设计

数据库需要表述的信息有以下几种:

1.读者信息

2.书籍信息

3.管理员信息

4.读者与书籍之间的关系(借阅关系E-R图)

5.管理员与书籍之间的关系(管理员_书籍E-R图) 6.管理员与学生之间的关系(管理员_学生 E-R图)

三、逻辑设计

从理论‘E/R模型’到理论‘关系模型’的整理转换,通过E/R模型到关系模型的转化,可以得到如下关系模式:

借阅关系

属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。

主键:工作号,读者学号,ISBN 管理员_书籍关系

属性:工作号,ISBN,添加时间,是否在馆

主键:工作号,ISBN 管理员_学生关系

属性:工作号,读者学号,确认借还

主键:工作号,读者学号

四、数据库逻辑结构

1.图书信息表

字段名称

数据类型 是否可为空

ISBN(key)varchar(20) 否

书名

varchar(50) 否

作者

varchar(12) 否

出版社

varchar(50) 是

出版日期 datetime

简介

varchar(200) 是

备注

varchar(200) 是

2.读者信息表

字段名称数据类型是否可为空

读者学号(key)varchar(12)否

读者姓名varchar(10)否

读者性别varchar(2)否

联系电话varchar(10)是

所在系varchar(12)否

生效时间datatime是

失效时间datatime是

违章状况varchar(2)是

累计借书int是

备注varchar(100)是

3.管理员信息表

字段名称数据类型是否可为空

工作号(key)varchar(12)否

姓名varchar(12)否

性别varchar(2)否

电话varchar(12)是

住址varchar(12)是

备注varchar(100)是

4.借阅表

字段名称数据类型是否可为空

工作号 char(10) 否

ISBN char(10) 否

读者学号 char(10) 否

借书日期datetime否

还书日期datetime否

是否续借char(4)否

备注varchar(100)是

5.管理员_书籍

字段名称数据类型是否可为空

工作号char(10)否

ISBNchar(10)否

添加时间data time是

是否在馆char(14)是

6.管理员_学生

字段名称数据类型是否可为空

工作号char(10) 否

读者学号char(10)否

借还确认char(4)否

五、物理设计

从理论‘关系模型’到‘数据库建立’,物理文件的安排和建立索引

1.建立索引

为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:

(1) 读者信息(读者学号)

(2) 书籍信息(ISBN)

(3)管理员信息(工作号)

(4)借阅(工作号,读者学号,ISBN)

(5)管理员_书籍(工作号,ISBN)

(6)管理员_学生(工作号,读者学号)

2.用SQL实现设计

实现该设计的环境为Windows 2000 Perfessinal+MSSQLServer 2000.0 1)建立图书信息表

create table 图书

(ISBN varchar(20) not null primary key, 书名 varchar(50) not null, 作者 varchar(12) not null, 出版社 varchar(50), 出版日期 datetime, 简介 varchar(200), 备注 varchar(200),) 2)建立读者信息表

create table 读者 (读者学号 varchar(12) not null primary key, 读者姓名 varchar(10) not null, 读者性别 varchar(2) not null, 联系电话 varchar(12),

所在系

varchar(20) not null, 生效日期 datetime, 失效日期 datetime, 违章状态 char(2) 累计借书 int,

备注

varchar(100),) 3)建立管理员信息表

create table 管理员

(工作号 varchar(12) not null primary key,

姓名

varchar(12) not null, 性别

varchar(2) not null, 电话

varchar(12), 家庭住址 varchar(50), 备注 varchar(100)) 4)建立借阅表

create table 借阅

(工作号 char(10) not null, ISBN char(10) not null, 读者学号 char(10) not null, 借书日期 datetime not null, 还书日期 datetime not null, 是否续借 char(4) not null,

备注 varchar(100) )

5)建立管理员_书籍表

create table 管理员_书籍

(工作号 char(10) not null, ISBN char(10) not null, 添加时间 datetime, 是否在馆 char(4))

6)建立管理员_学生表

create table 管理员_学生

(工作号 char(10) not null, 读者学号 char(10) not null, ISBN char(10) not null, 借还确认 char(4) not null) 7)建立索引

CREATE UNIQUE INDEX 图书索引 ON 图书(ISBN)

CREATE UNIQUE INDEX 读者索引 ON 读者(读者学号)

CREATE UNIQUE INDEX 管理员索引 ON 读者(工作号)

CREATE UNIQUE INDEX借阅索引 ON 借阅(工作号,读者学号,ISBN) CREATE UNIQUE INDEX管理员_书籍索引 ON 管理员_书籍 (工作号,ISBN读者学号)

CREATE UNIQUE INDEX管理员_学生ON管理员_学生 (工作号,读者学号) 8)定义视图

读者表视图

CREATE VIEW 读者视图

AS

SELECT *

FROM 读者

图书表视图

CREATE VIEW 图书视图

AS

SELECT *

FROM 图书

管理员表视图

CREATE VIEW 管理员视图

AS

SELECT *

FROM 管理员者

第6篇:数据库系统设计期末考总结

数据库系统设计期末考总结  什么是数据库?

数据库是被一个系统所使用的所有数据的集合 数据库管理员(Database Administrator)  什么是数据库管理系统?(DBMS)

数据库管理系统就是帮助存储,管理和使用数据库的程序的集合,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性

 DBMS(database management system)数据库管理系统环境组成

硬件,软件,数据,程序(procedures),人  数据库系统开发生命周期(database system development lifecycle)

 数据库设计的三个主要步骤: 概念设计 逻辑设计 物理设计

 C/S vs B/S C/S

即Client/Server (客户机/服务器) 结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。

客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。

开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。

三层C/S构架

在三层架构中,客户端接受用户的请求,客户端向应用服务提出请求,应用服务从数据库服务中获得数据,应用服务将数据进行计算并将结果提交给客户端,客户端将结果呈现给用户。

 两层和三层的区别? 两层架构

Client side presented two problems preventing true scalability:  „Fat‟ client, requiring considerable resources on client‟s computer to run effectively.

 Significant client side administration overhead.  By 1995, three layers proposed, each potentially running on a different platform. 客户端提出的两个问题阻止真正的可伸缩性:

脂肪”客户端,需要相当大的客户端电脑上的资源有效地运行。

重大的客户端管理开销。

三层架构

Advantages:

 ‘Thin’ client, requiring less expensive hardware.  Application maintenance centralized.

 Easier to modify or replace one tier without affecting others.

 Separating business logic from database functions makes it easier to implement load balancing.

 Maps quite naturally to Web environment. 优点: 瘦”客户机,需要更少的昂贵的硬件。 应用程序维护集中。

容易修改或替换一个层而不影响其他。

将业务逻辑与数据库函数分开使其容易实现负载平衡。 很自然地映射到Web环境。

Three main types of transactions(三种主要类型的事务):

retrieval transactions检索事务

update transactions更新交易处理

mixed transactions混合事项

B/S

即Browser/Server (浏览器/服务器) 结构,用户界面完全通过WWW浏览器实现。

客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于客户端没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。由于客户端使用浏览器,使得用户界面“丰富多彩”,但数据的打印输出等功能受到了限制。

 SQL SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL—数据控制语言(GRANT,REVOKE,COMMIT  Query(查询)  Security(安全)  Index(索引)  View(视图)

 ERD A five-step process for ERD construction : ERD构建五个步骤的过程:  Step1: Represent Entities as Tables(将实体转换成表)  Step2: Determine Relationships(确定关系)

 In most cases, a record in one table will correspond to multiple records in another table. 在大多数情况下,一个表的记录将对应于另一个表中的多条记录。

 For many-to-many relationships, a new associative table must be created between two tables. 多对多关系,必须创建一个新的关联表两个表之间的关系。

 Step3:List Fields(确定表的属性)

 Step4: Identify Keys(确定键,主键和外键)  Step5: Determining Data Types确定数据类型

 Primary and foreign keys must match in data type and size. 主键和外键必须匹配的数据类型和大小。

2.主键

A primary key uniquely identifies each record in a table. 主键唯一标示表中的每一条记录。

 Unique  Minimal  Not Null  Nonupdateable 3.外键

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。 4.完整性

实体完整性:每个表一定要有一个合法主键。(主键值唯一) 参照完整性规则(Referential Integrity):若属性组F是关系模式R1的主键,同时F也是关系模式R2的外键,则在R2的关系中,F的取值只允许两种可能:空值或等于R1关系中

某个主键值。(外键,的值在主键中没有出现) 5.范式

第一范式:(1NF)强调的是列的原子性,即列不能够再分成其他几列。 Definition: A table in which all fields contain a single value. 第二范式:(2NF)属性完全依赖于主键Definition: A table in which each non-key field is determined by the whole primary key and not part of the primary key by itself. 没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

第三范式:(3NF)属性不依赖于其它非主属性

首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。 6.Normalization规范化

没有进行规范化的数据存在插入(表没有分开,插入数据是产生异常),更新(数据冗余,更新时产生异常),删除异常(表没有分开,数据间存在依赖关系)同一张表自身设计不合理导致异常

规范化的优缺点

优点:

• 消除更新异常 • 减少数据冗余

• 解决了数据完整性问题 • 节省存储空间

缺点: • 涉及多表的子查询和表之间的联接,需要更复杂的SQL语句

• DBMS的额外工作使应用程序变慢

7.关系型数据库优点

 依赖逻辑,而不是物理、相关记录之间的联系

 使用第四代语言(4 gl)  备抵高度的数据独立性

 Weak Entity(弱实体)

一个实体对于另一个实体具有很强的依赖关系,而且该实体主键的一部分或者全部都是从其他强实体中获得,则称该实体为弱实体

 Derived attribute(派生属性)

Attribute that represents a value that is derivable from value of a related attribute, or set of attributes, not necessarily in the same entity. 属性代表了一个值从一个相关属性中派生出来的,或一组属性的值引出,,不一定在同一个实体。

 recursive relationship(递归关系)

添加一个外键,使得有一对多的关系,多对多关系

 complex relationship(复杂关系) Multiplicity is the number (or range) of possible occurrences of an entity type in an n-ary relationship when other (n-1) values are fixed.

 problems in an ER model Often due to a misinterpretation of the meaning of certain relationships. 通常由于特定的意义关系的误解。 connection traps. (连接陷阱) 俩个主要的连接陷进:扇形陷进和深坑陷进

扇形陷进:两个实体有一个一对多的关系,从而扇出第三个实体,两个实体键本该有一个直接关系提供必要信息 深坑陷进:一个模型显示实体之间的存在关系,但某些实体出现之间的路径不存在。

 Supertype/Subtype Hierarchies(超类和子类) 某个实体类型中所有实体同时也是另一个实体类型的实体.此时,我们称前一实体类型是后一实体类型的子类(Subtype),后一实体类型称为超类(Supertype). 但是子类有一个很重要的性质:继承性。子类继承其超类上定义的所有属性,其本身还可以包含其他另外的属性. 第九章:

磁盘的性能指标:磁盘的容量,存取时间,数据传输速度,可靠性

磁盘的总容量

记录盘面数*每记录盘面的磁道数*每磁道的扇区数*每扇区的字节数

扇区:扇区是磁盘寻址的最小单位,其大小通常是512字节 数据在磁盘上的定位信息:柱面号,磁头号,扇区号 编址方法:柱面从外向内编址(如:0~199),磁道按柱面编号(如:0号柱面从上向下编号0~19,再给1号柱面磁道编号),盘块号(假设每个磁道有17个扇区,0号柱面0号磁道0号扇区的盘块号为0,0号柱面1号磁道0号扇区的盘块号为17)

Access time (存取时间)– the time it takes from when a read or write request is issued to when data transfer begins. (一个读或写请求发出到数据开始传输的时间) Consists of: Seek time (寻道时间)– time it takes to reposition the arm over the correct track. 

将磁头移到柱面的时间:约2~30ms Rotational latency (旋转等待时间)– time it takes for the sector to be accessed to appear under the head. 

约10~20ms 总时间:10~40ms

Data-transfer rate – the rate at which data can be retrieved from or stored to the disk. (从磁盘上读取数据或存储数据到磁盘的时间)

Mean time to failure (MTTF) (平均失效时间)– the average time the disk is expected to run continuously without any failure.(磁盘无故障连续运行的时间Typically 3 to 5 years)

Block – a contiguous sequence of sectors from a single track data is transferred between disk and main memory in blocks sizes range from 512 bytes to several kilobytes 内存和外存的一次数据交换称为一次I/O操作,每次交换的数据量是一个Block 内存中开辟的缓冲区大小至少要等于一个block Block的大小通常由DBMS厂商决定

廉价磁盘冗余阵列(RAID) Redundant Arrays of Independent Disks 通过冗余提高可靠性

是一种利用大量廉价磁盘进行磁盘组织的技术

价格上,大量廉价的磁盘比少量昂贵的大磁盘合算得多 性能上,使用大量磁盘可以提高数据的并行存取

可靠性上,冗余数据可以存放在多个磁盘上,因此一个磁盘的故障不会导致数据丢失 冗余(Redundancy)

存储额外的信息,以便当磁盘故障时能从中重建

磁盘还是内存?

5-minute rule:如果一个被随机访问的页面的使用频率超过每5分钟一次,那么它应该被驻留在内存

minute rule:如果被顺序访问的页面的使用频率超过每1分钟一次,那么它应该被驻留在内存

文件存储:

The database is stored as a collection of files. Each file is a sequence of records. A record is a sequence of fields 数据库是存储为文件的集合。每个文件都是一个序列的记录。字段的记录是一个序列。

第十章:

Basic Steps in Query Processing(查询处理的基本步骤): 1. Parsing and translation解析和翻译 2. Optimization最优化 3. Evaluation评估

RDBMS查询处理阶段 : 1. 查询分析 2. 查询检查 3. 查询优化 4. 查询执行

选择操作典型实现方法:

1. 简单的全表扫描方法

 对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出  适合小表,不适合大表 2. 索引(或散列)扫描方法

 适合选择条件中的属性上有索引(例如B+树索引或Hash索引)  通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表中找到元组

排序

 原因

 SQL查询可以指定对输出进行排序

 关系运算的某些操作,如连接运算,排序后实现高效

 对于可放进内存的关系,使用如快排序之类的技术。对不能放进内存的关系,使用外排序

 内排序

 当数据集小于可用内存时,采用快速排序算法  快速排序的思想来源于分治策略。将数据块划分为两个序列,第一个序列的值小于第二个序列,在两个序列中按照递归排序的思想再次进行上述的划分,这样直到没有办法划分为止

 外排序

 创建有序段+N路归并

 所有的输入数据最初分成许多有序的归并段文件,然后不断归并成许多更大的归并段文件,直到剩下一个文件为止

 Join Operation 几种不同的连接算法

Nested-loop join(嵌套循环连接)

Block nested-loop join(块嵌套循环连接) Indexed nested-loop join(索引嵌套循环连接) Merge-join(合并连接) Hash-join(哈希或散列连接)

Choice based on cost estimate(根据成本估算选择连接方式)

关系型数据库优点

 依赖逻辑,而不是物理、相关记录之间的联系

 使用第四代语言(4 gl)  备抵高度的数据独立性

 关系数据库系统的查询优化

 查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做得更好

(1) 优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息

(2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的

(3)优化器可以考虑数百种不同的执行计划,程序员一般只能考虑有限的几种可能性。

(4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术

 RDBMS关系型数据库管理系统(Relational Database Management System)通过某种等价模型计算出各种查询执行策略的执行代价,然后选取代价最小的执行方案  集中式数据库

 执行开销主要包括:

– 磁盘存取块数(I/O代价) – 处理机时间(CPU代价) – 查询的内存开销  I/O代价是最主要的

 分布式数据库

 总代价=I/O代价+CPU代价+内存代价+通信代价

 查询优化的总目标:  选择有效的策略

 求得给定关系表达式的值

 使得查询代价最小(实际上是较小)  实际系统的查询优化步骤:

1. 将查询转换成某种内部表示,通常是语法树

2. 根据一定的等价变换规则把语法树转换成标准(优化)形式 3. 选择低层的操作算法 对于语法树中的每一个操作

• 计算各种执行算法的执行代价 • 选择代价小的执行算法

4. 生成查询计划(查询执行方案) 查询计划是由一系列内部操作组成的。 2 代 数 优 化

 代数优化策略:通过对关系代数表达式的等价变换来提高查询效率

 关系代数表达式的等价:指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的

 两个关系表达式E1和E2是等价的,可记为E1≡E2

具体方法 笛卡尔积

查询树的启发式优化  典型的启发式规则:

1. 选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条

2. 把投影运算和选择运算同时进行

如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系 3. 把投影同其前或其后的双目运算结合起来

4. 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算

5. 找出公共子表达式

如果这种重复出现的子表达式的结果不是很大的关系并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的

当查询的是视图时,定义视图的表达式就是公共子表达式的情况

6. 在执行连接操作前对关系适当进行预处理

 按连接属性排序  在连接属性上建立索引

 索引:

 Search Key(检索关键字)1)之间的值。 B+-Tree Node Structure(节点结构)

P1是指针,指向子节点(非叶子结点)或指向记录内容(叶子结点) Ki are the search-key values K1是关键字检索值 B+-Tree中的叶子结点

 ACID properties of a Transaction(事务的ACID属性)

 原子性(Atomicity):一个事务中的所有操作要么全部成功,要么全部失败。原子性由恢复机制实现。  一致性(Consistency):事务完成后,所有数据处于应有的状态,所有内部结构正确,能够准确反映事务所作的工作。基于隔离性实现。

 隔离性(Isolation):一个事务不会干扰另一个事务的进程,事务交叉调度执行的结果与串行调度执行的结果是一致的。隔离性由并发控制机制实现。

 持久性(Durability):事务提交后,对数据库的影响是持久的,即不会因为系统故障影响事务的持久性。持久性由恢复机制实现。

 事务调度:

 事务的执行顺序称为一个调度,表示事务的指令在系统中执行的时间顺序

 一组事务的调度必须保证

 包含了所有事务的操作指令

 一个事务中指令的顺序必须保持不变  串行调度

 在串行调度中,属于同一事务的指令紧挨在一起  对于有n个事务的事务组,可以有n!个有效调度  并行调度

 在并行调度中,来自不同事务的指令可以交叉执行  当并行调度等价于某个串行调度时,则称它是正确的

 锁

 锁的作用

 一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象的使用,由此提供事务需要的隔离性,保证各个事务不会互相干扰,一个事务不会读取或修改另一个事务正在使用的数据。

 此外,锁提供的隔离性还保证事务的一致性。

 为了使系统性能良好,应使事务尽量简短和不受干扰。  要访问一个数据项R,事务Ti必须先申请对R的封锁,如果R已经被事务Tj加了不相容的锁,则Ti需要等待,直至Tj释放它的封锁

 锁的模式主要有六种:共享锁、更新锁、排他锁、结构锁、意向锁和块更新锁。

 共享锁(S锁,Share lock)

 事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功,而对R的S锁请求可以成功;又称读锁

 申请对R的共享锁: lock-S(R)  用于只读数据操作,它允许多个并发事务读取(Select)锁定资源,但禁止其它事务对锁定的资源进行修改。一般读取数据后就释放共享锁,除非要将锁升级。  排它锁(X锁,eXclusive lock)

 事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁;又称写锁

 申请对R的排它锁:lock-X(R)  一般来说,SQL Server在事务结束时释放排他锁。 Two-Phase Locking Protocol  两阶段封锁协议内容

 增长阶段(Growing Phase)

 事务可以获得锁,但不能释放锁  缩减阶段(Shrinking Phase) 事务可以释放锁,但不能获得锁

 封锁点:事务获得其最后封锁的时间

 事务调度等价于和它们的封锁点顺序一致的串行调度 死锁:

两个事务都封锁了一些数据对象,并相互等待对方释放另一些数据对象以便对其封锁,结果两个事务都不能结束,则发生死锁

 死锁发生的条件

①互斥条件:事务请求对资源的独占控制

②占有等待条件:事务已持有一定资源,又去申请并等待其它资源 ③非抢占条件:直到资源被持有它的事务释放之前,不可能将该资源强制从持有它的事务夺去

④循环等待条件:存在事务相互等待的等待圈

 预防死锁

预先占据所需的全部资源,要么一次全部封锁要么全不

封锁

缺点:难于预知需要封锁哪些数据并且数据使用率低

所有资源预先排序,事务按规定顺序封锁数据 使用抢占与事务回滚

• wait-die:如果T1等待T2,仅当T1的时间戳小于T2时,允许T1等待,否则回滚T1。

• wound-wait:如果T1等待T2,仅当T1的时间戳大于T2时,允许T1等待,否则回滚T2  死锁检测和恢复

 超时法

如果等待封锁的时间超过限时,则撤消该事务

等待图法  

第7篇:系统数据备份方案

采供血信息系统从开始正常运行,就将随着时间的推移,不断地积累数据。在采供血机构中一切基于业务流程的活动都以这些数据为基础。在系统运行中常常会不可避免地遇到一些问题,如人为误操作、硬件损毁、电脑病毒、断电或是天灾人祸等造成网络系统瘫痪、数据丢失,这会给采供血机构、献血者和用血者带来难以弥补的损失。避免这种损失的最佳途径就是为系统进行可靠的数据备份。

1 备份方案

1.1 备份策略 建立一套完整的备份策略,是做好备份的先决条件。(1)备份周期:根据数据的重要程度和需要,可以选择每周、每日、每时进行备份;(2)备份介质:使用的存储介质如磁带、磁盘等进行备份;(3)备份方案:目前常用的方案有双机备份、磁带备份、异机备份等方案,备份方案的选择是备份策略中最关键的一步;(4)自动备份和手工备份:自动备份是指计算机按预先设定好的时间自动启动备份作业,手工备份是指程序员不定时的人工启动备份作业;(5)检查备份数据的完整性:数据库在使用过程中有时会由于某种原因而造成索引损坏或数据丢失。由于不能对实时库进行检查,所以在数据备份后通常要对备份数据库进行完整性检验。

1.2 常用备份方案

1.2.1 双机备份 双机备份分为双机冷备份和双机热备份两种。双机冷备份为一台主机实时工作,一台备用机等待备用。这种方案最大的问题是无法实现实时数据备份。对于采供血机构的工艺流程对于数据连续性要求很强,基本无法使用备用机工作。双机实时热备份为双机镜像和共享磁盘阵列两种方案。双机镜像方案是准备两台在软件和硬件配置都要完全一样的服务器,分为一主一备,并互为镜像。将主数据库服务器上的表、文件、数据库或全部内容通过专用连接通道镜像到备用服务器上。当主服务器发生故障时,由主服务器迅速装载事务处理日志到备份服务器。备份服务器将接管事务处理日志继续完成主服务器的操作。优点是简单、便宜;缺点是降低系统效率,对数据维护的能力与共享磁盘阵列方案相同,都无法防止逻辑上的错误,如人为误操作、病毒和数据错误等。共享磁盘阵列方案为两台主机共用一个磁盘阵列。优点是不降低系统性能,为目前较为流行的主流技术,但要求磁盘阵列具有较高的可靠性。

目前较为先进的备份方案为多主机集群方案,多台主机都在同时分别工作,当其中一台主机故障,其它主机可以接管故障机的任务。这种方案在“理论上”十分完美,可以避免冗余服务器的闲置浪费,但在系统方案设计中,仍要考虑一台主机故障后,全部任务交给备份机,备份机是否有能力承担全部任务,因而硬件冗余能力必须大于系统负载,故冗余硬件能力的闲置在理论上是不可避免的。 双机备份方案主要有三种模式:Mutual backup(双机同时工作相互热备份)模式虽然可各自执行各自的作业,但在出现故障时,前端客户机的工作需重新开始;Hot standby(双主机固定热备份)与Muster-Slaver(双机主从热备份)的区别在于原MASTER主机修复后是否从SLAVE恢复到MAS-TER。由于目前所有的热备软件均不能解决数据库的故障,数据库的安全和可靠性仍需单独维护。另外,数据库的切换时间与数据库的数据量及进程的复杂性有关,所以应尽量减少数据的切换、数据库的回滚及系统重新启动等。

1.2.2 异地备份 选择1台与主服务器配置相近的备用服务器,建立1个与主服务器数据库同名的数据库。利用系统本身提供的异地传送工具,通过设置定时由计算机自动地把主服务器数据库中的数据传送到备份数据库上。如果主服务器系统出现故障时,启用该服务器通过网络做临时性单机运行。一旦主服务器系统瘫痪,只要重新在主服务器上安装操作系统或重装数据库,就可以利用异地传送工具把备用服务器上的数据传回至主服务器,确保数据安全恢复。这种方案近似于手工完成备份和恢复工作。优点是简单,可根据服务器的瘫痪情况控制数据的恢复程度。缺点是不能实时备份主服务器数据。

1.2.3 磁带备份 磁带备份就是将数据库中的数据备份到磁带上。磁带备份长期以来一直是首选的数据存储备份技术。磁带介质不仅能提供高容量、高可靠性、可管理性、容易携带和保存,并且价格便宜。常用的硬件设备包括磁带机和磁带库。磁带库是一种框式封闭机构,由数台磁带机、机械手、数十盘磁带构成。它能够提供基本自动备份和数据恢复功能,可以实现连续备份、自动搜索磁带。在备份软件方面,通常使用操作系统本身所提供的备份功能。缺点是磁带质量常常影响存储效果。

2 我站数据备份方案

2.1 血站信息系统的特点 (1)工艺流程性强。整个流程包括献血者档案管理、血液采集、检测、搬运、制备、包装、发出、报废、销毁、血费收取、血液返还等,环节众多,纷繁复杂,对于信息的一致性要求极高。(2)判定机制健全、严格。为保证提供血液安全、有效,保证献血者和用血者身体健康,信息判定机制对于各种情况的判断要非常细致,对信息的完整性要求很高。(3)业务信息时效性强。

2.2 数据备份方案 根据我站信息系统的特点,笔者采用了具有容错功能的服务器,选用双机热备、磁盘阵列技术的硬件设备配置方案为主,异机备份为辅的数据备份方案。

2.2.1 硬件环境 两台服务器采用IBM xSeries225,单PII-II2.8CPU,512M,本地硬盘36.4G,分别装有10/100M网卡。服务器通过光纤集线器与一个IBM磁盘阵列柜相连,以共享其36.4G的磁盘空间作为双机热备服务器组。一台联想T200服务器作为异机备份服务器。

2.2.2 软件环境 服务器上安装Windows2000企业版,O-RACLE805,VERITAS BackUP EXEC。 2.2.3 备份 系统采用VERITAS BackUP EXEC软件,实现对Oracle数据库的在线备份。备份Oracle数据库之前,每个数据库的Oracle数据库日志模式设置为ARCHIVELOG模式,并且启动每个数据库的自动归档设置,以便Oracle代理 程序能在运行备份操作之前,将每个表空间置于备份模式。由于我站信息系统数据发生经常性的变化,该系统采用完全备份策略,每天备份整个联机数据库。系统每天定时将主备份服务器上的数据备份到异机备份服务器。

第8篇:教务管理系统 数据库实例设计

第17章 数据库系统设计实例

本章以一个考务管理系统的设计过程为例,介绍在VB 6.0+SQL Server 2000环境中开发数据库系统的一般方法。

17.1 系统概述

17.1.1 系统功能

本系统用于从考生报名、产生准考证到录取考生和打印成绩单即对考生考试和录取全过程进行管理的考务系统,包含主要功能如下:

考生报名,按报名顺序产生报名号

产生准考生号和以紧凑方式打印准考证 输入考生考试成绩和输入录取合格标准 根据合格标准录取上线考生 打印考生成绩单和考生录取通知书 设置系统用户和系统初始化

17.1.2 设计技巧

本系统设计中的一些技巧如下:     公共模块设计(参见17.4节的Module1.Bas模块) SQL Server数据库设计(参见17.3节) VB菜单设计方法(包括菜单项的有效性设计,对于“一般操作员”,使若干菜单项无效。参见menu多文档窗体设计过程) 统一的数据编辑设计方法:以ksb表为例进行说明:为了编辑其记录,设计了edks窗体,在其中的DataGrid数据网格控件中显示所有已输入的考生记录。用户可以先通过“设置条件”框架查找到满足指定条件的考生记录,然后选择“修改”或“删除”命令按钮进行考生记录的修改或删除,或者选择“添加”命令按钮输入新的考生记录。    VB报表设计方法(包括使用Data Report设计器和PrintForm方法) 图像数据的存取方法(参见edks窗体设计过程) 事件编程技术:一些数据编辑窗体(如edks等窗体)上有两个事件过程即Load和Activate,它们的执行过程是:在启动本窗体时先执行Load(仅执行一次)事件过程,

第9篇:数据库课程设计学籍管理系统

学籍管理系统

本次数据库课程设计是以Access数据库作为后台以VB作为前台的应用型设计课程。

综合我们所学的两大课程创建应用型的数据库系统,大大的提高了我们学生的动手能力,作到了理论与实践相结合。 一.题目说明:

学生学藉管理系统是典型的学藉管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

本系统主要完成对学生情况和学生成绩的管理,包括数据库中表的添加、删除等。系统还可以完成对各类信息的浏览、添加、删除、等功能。

系统的核心是数据库中各个表联系,每一个表的修改都将联动的影响其它的表,当完成对数据的操作时系统会自动地完成数据库的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。 关键字:窗体、数据库、vb6.0、access2000。

学生学籍管理系统被广泛应用于各类学校的学生学籍管理工作中,要求其具有实用性强、使用方便、效率高和安全可靠等特点。本管理系统正是围绕以上几个方面进行开发的,在开发过程中充分考虑到本系统的应用特点,并进行了大量的检验,证明其的确达到了设计的要求,是一个已具备了实际应用能力的软件。本文主要论述学生学籍管理系统的开发过程,在涉及到VB及Access中的部分知识以举例的方式进行讲解 二. 总体设计:

我的总体设计如下:

(1).利用Access建立数据库,并在该数据库下创建五张表格,分别是学生表、课程表、选课表、学生选课表以及口令表。

(2)利用VB来建立界面并对它进行设计和修改,大体框架如下: FORM1 用于首界面

FORM2 用于登陆此系统的登录界面

FORM3 是主窗体,在这上面建立相应的菜单 如:文件——退出、添加用户(FORM4) 数据信息——管理使用(FORM5)

基本操作——学生操作、选课操作、课程操作 (FORM

6、FORM

7、FORM8) (3)对以上的界面进行设计以及对所要操作的部件进行编程。

三.常用控件的说明: 所有的Windows应用程序窗口或对话框,都是由诸如文本框、列表框、命令按扭、滚动条、命令菜单等组成的。VB通过控件工具箱提供了它们与用户进行交

互的可视化部件,即控件。程序开发人员只需要通过简单的操作,在窗体上安排所需要的控件,完成应用程序的用户界面设计即可。 序号

名称

功能

1 Label标签

用于说明

2 Textbox文本框

用于文本输入或显示 3 Frame框架

用于组合控件

4 Commandbutton命令按扭

单击执行命令 5 Timer计时期

用于定时

6 Data数据控件

用于访问数据库

三.详细说明:

1.数据库的建立与设计:

数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。

Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。

(1).表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。

(2).查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。

(3).窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。

(4).报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。

(5).宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。

(6).模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。

我们利用Access来建立数据库,我们的库中有五张表格,其分别是学生表、课程表、选课表、学生选课表以及口令表。

我们就以学生表为例做一个简单的说明:

我们使用设计器来创建表的,我的这张表有七个字段,每个字段的名称分别是:学号、班级、姓名、性别、出生年月、民族、地址、电话号码,每个字段有七个数据。我并对其字段的属性进行了重新的修改,以做到不浪费其空间。

我具体的实施步骤是:启动数据库管理器——建立数据库——建立数据表结构——输入记录。

最终产生了这样的一个数据库:(如下)

2.VB界面的建立设计以及程序的编写说明:

VB 是在Windows操作平台下,用于开发和创建具有图形用户界面的应用程序的强有力工具之一。VB为开发Windows应用程序不仅提供了全新的相对简单的方式,而且也引进了新的程序设计方法——面向对象的设计方法(00P)。从传统的面向过程的程序设计,转移到更先进的面向对象的程序设计,无论是对老的程序员,还是初学者,都是一个挑战。而学习VB,则是掌握这一新的程序设计方法的一条捷径。

(1).界面的设计和程序的编写:

设计一个像这样的友好的界面,我考虑到它的颜色的配制,界面的大小,界面所载的内容的多少等,在后台我用定时器给其限定时间让它在一定的时间后自动跳到下一个界面。

这个界面是系统的主界面,用户可以在通过系统登录后直接到我们的主界面上来进行相应的操作,我的主界面采用的是一张苏州市职业大学的图片,在这个图片的上面有三个菜单,分别是文件、数据信息和基本操作。在各自的下面还有与之相对应的子菜单,文件下有退出和添加用户,数据信息下有管理使用,基本操作下有学生操作、选课操作和课程操作。我利用FORMn.SHOW命令连接到相对应的界面上。

我们的界面有好几张我就对其中的一张进行详细的分析:

这是一张学生选课浏览表的界面,这也是对应我的主界面菜单中的数据信息下的管理使用子菜单的一张界面,在这张界面中包含了8个LABEL标签控件、7个 TEXTBOX文本框控件、6个COMMANDBUTTON命令按扭控件、1个FRAME框架控件和1个DATA部件。我利用DATA部件将界面与 ACCESS数据库相连接,具体的操作是利用DATABASENAME与数据库连接,在RECORDSOURCE中找到与之对应的表,再用 DATASOURCE、DATAFIELD与个文本框内容对应,从而实现界面与数据库的连接。 下面是程序的编写过程:

显示前一个数据: COMMAND1:

Private Sub Command1_Click() If Data1.Recordset.RecordCount = 0 Then MsgBox "没有记录" Else If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst MsgBox "这是第一条记录!" Else Data1.Recordset.MovePrevious If Data1.Recordset.BOF = True Then

Data1.Recordset.MoveFirst MsgBox "这是第一条记录!" End If End If End If End Sub 显示第一个数据: COMMAND2:

Private Sub Command2_Click() If Data1.Recordset.RecordCount = 0 Then MsgBox "没有记录" Else Data1.Recordset.MoveFirst End If End Sub 显示最后一个数据: COMMAND4:

Private Sub Command4_Click() If Data1.Recordset.RecordCount = 0 Then MsgBox "没有记录" Else Data1.Recordset.MoveLast End If End Sub 显示后一个数据: COMMAND3:

Private Sub Command3_Click() If Data1.Recordset.RecordCount = 0 Then MsgBox "没有记录" Else If Data1.Recordset.EOF Then Data1.Recordset.MoveLast MsgBox "这是最后一条记录!" Else Data1.Recordset.MoveNext If Data1.Recordset.EOF = True Then Data1.Recordset.MoveLast MsgBox "这是最后一条记录!" End If End If End If End Sub 添加一个数据:COMMAND6 Private Sub command6_Click() If Command6.Caption = "添加" Then

Command1.Enabled = 0 Command2.Enabled = 0 Command3.Enabled = 0 Command4.Enabled = 0 Command6.Caption = "确定" Command5.Caption = "放弃" If Data1.Recordset.RecordCount > 0 Then Data1.Recordset.MoveLast End If Data1.Recordset.AddNew Text1.SetFocus Else Command1.Enabled = -1 Command2.Enabled = -1 Command3.Enabled = -1 Command4.Enabled = -1 Command6.Caption = "添加" Command5.Caption = "删除" Text2.Enabled = 0 Text5.Enabled = 0 Text3.Enabled = 0 Text4.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Data1.Recordset.Update Command1.SetFocus End If End Sub 删除一个记录:COMMAND5 Private Sub Command5_Click() If Command5.Caption = "放弃" Then Command4.Enabled = -1 Command5.Enabled = -1 Command6.Enabled = -1 Command3.Enabled = -1 Command1.Caption = "添加" Command2.Caption = "删除" Text2.Enabled = 0 Text5.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Text1.Enabled = 0

Else If Data1.Recordset.RecordCount = 0 Then MsgBox "没有记录", 32, "注意" Exit Sub Else str1 = MsgBox("删除该记录吗?", 17, "删除") If str1 = 1 Then Data1.Recordset.Delete Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox "记录数为零" Data1.Recordset.AddNew End If End If End If End If End Sub

四、在此过程中遇到的问题以及解决方法: 在开始编写程序的时候总是有一些出错,在查找有关书籍和向老师询问后得出了结果。在将界面与数据库相连接的时候,不知道用哪种方法,在老师的帮助下我学会了两种方法:1.DATA、2.ADODC。我最终使用DATA这种方法。

五、心得体会:

在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我的学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师牛丽、程渊,谢谢她的悉心指导和热心帮助。由于我水平有限,加之时间短暂,故学籍管理系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。

上一篇:教师辞职报告申请书下一篇:全科医学学习体会心得