之前有人在课程群里装逼,匿名装完逼就跑,让我很无语,搞得大家都得学习 markdown 和 latex,于是周末心血来潮准备用 LaTeX 写论文,哇安装起来很麻烦,最终在叶姐姐的指导下写完了QwQ。

安装

有很多方案,我一开始选择 latatexLive + atom 然后,我的 atom 挂了。。

Plan B:latexlive + sublime text 然后我卸载的时候,不知道卸了什么其他的东西,不过电脑好像没有坏。

最后选择了 Win 的套餐 CTeX

使用

documentclass

\documentclass[]{}

文档设置,用 utf-8 参数来支持中文,不过不知道为什么,复制到其他地方就会导致打不开,可能默认用 ascii 打开文档导致溢出爆炸?

usepackage

载入库,类似与 Python 的 import 或者说是 C 系的 include

\usepackage{}
\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}

可以设置页面边距哟

begin

来闭合一个区域

\begin
\end

author

设置作者

\author{}

title

设置文章标题

\title{}

maketitle

让该页面加入标题作者时间信息

\maketitle

section

格式化文章,真的很好用

\\(?:sub){0,1,2}section

(上面是 \section 和 \subsection 和 \subsubsection 的意思,叶姐姐太强了)

cite

引用

\cite{}

配合使用形成参考文献

\begin{thebibliography}{0}

\end{thebibliography}

其他

\是换行

\par是换段落

\newpage换页

范例

\documentclass[UTF8]{ctexart}
\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}
\usepackage{cite}
\usepackage{abstract}
    \author{姚佩成}
    \title{SQL技术研究综述}

\begin{document}
    \maketitle
    \begin{abstract}  随着计算机技术的迅速发展,在“信息时代”的21世纪,计算机在生产、经营、管理等领域中的应用越来越广泛。SQL技术是解决公司库存管理的理想方案。本文首先介绍了SQL技术的起源与发展; 简要说明了SQL技术的定义;之后以Mysql这一软件,给出了SQL引擎的工作原理,比较几种引擎的优劣;接下来分析了目前SQL技术中所存在的不足以及造成这些不足的根本原因;最后分析了SQL技术的未来发展趋势。\par \textbf{关键词:SQL,库存管理系统}
    \end{abstract}

    \section{引言}
    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。\par 结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。\par 1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。\cite{Baidu}

    \section{SQL技术简介}
        \subsection{应用}
        结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。
        \subsection{支持标准}
        SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
        \subsection{其他版本SQL}
        各种不同的数据库对SQL语言的支持与标准存在着细微的不同,这是因为,有的产品的开发先于标准的公布,另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。已有100多种遍布在从微机到大型机上的数据库产品SQL,其中包括DB2、SQL/DS、ORACLE、INGRES、SYBASE、SQLSERVER、DBASEⅣ、PARADOX、MICROSOFTACCESS 等。\par SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL 的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。可以看出标准化的工作是很有意义的。早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系数据库管理系统的转折点”。数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。\par 1974年,在IBM公司圣约瑟研究实验室研制的大型关系数据库管理系统SYSTEM R 中,使用SEQUEL语言(由BOYCE 和CHAMBERLIN 提出),后来在SEQUEL 的基础上发展了SQL 语言。 SQL 语言是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR 类似的循环语句,但它可以嵌入到另一种语言中,也可以借用VB、C、JAVA等语言,通过调用级接口(CALL LEVEL INTERFACE)直接发送到数据库管理系统。SQL基本上是域关系演算,但可以实现关系代数操作。

    \section{SQL引擎工作原理及对比}
        \subsection{ISAM}
        ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。
        \subsection{MyISAM}
        MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISAMPACK工具。MYISAM强调了快速读取操作,这可能就是为什么MySQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和INTERNET平台提供商只允许使用MYISAM格式。MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。
        \subsection{HEAP}
        HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。
        \subsection{InnoDB}
        InnoDB数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MYSQL++ API。在使用MYSQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理(transaction process)也不支持外来键。尽管要比ISAM和 MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者 或者两者,那你就要被迫使用后两个引擎中的一个了。\cite{yuanli,duibi}

    \section{目前SQL技术中所存在的不足}
        (1)安全问题。在日常开发过程中,程序员一般只关心SQL是否能实现预期的功能,而对于SQL的安全问题一般都不太重视。实际上,如果SQL语句写作不当,将会给应用系统造成很大的安全隐患,其中最重要的隐患就是SQL注入。SQL注入会导致敏感信息泄露,甚至造成巨大损失,并带来一系列严重后果。\par (2)效率问题。不同体量的数据库的数据规模不同,所采用的查询办法不同,如一般超市并不需要大规模查询优化,就能实现查询功能,但如果千万级别的服务器,不采取优化会导致效率地下,严重影响正常使用,导致数据阻塞,可能造成服务器瘫痪。\par 通过对SQL的研究,我认为SQL技术的不成熟性有以下方面原因:\par (1)人为原因。人们在使用数据库的时候,并不会恶意去使用,而有别有用心的人,通过构造特殊语句去查询不该查询的数据,导致SQL注入,造成危害\par (2)语言本身原因。SQL在工作的时候,并不能了解当前用户能查询的内容和不能查询的内容,即权限管理困难。\par (3)其他原因。网页后台与数据库的对接中,由于后台语言,如PHP语言的特性,导致查询的内容与预期不符,导致跨权操作。

    \section{总结和展望}
    SQL技术作为现有库存管理技术的主力军,必然有他的优势之处,随着非关系数据库的扩大使用,会减少关系型数据库的安全问题。我们坚信SQL技术会朝着更好的方向发展,为人们生活提供便捷。

    \begin{thebibliography}{0}
        \bibitem{Baidu}
        SQL .维基百科,2015-01-31
        \bibitem{yuanli}
        李武.姚珺.数据库原理及应用.哈尔滨:哈尔滨工程大学出版社,2011:179
        \bibitem{duibi}
        Wilson . 浅谈My SQL引擎的对比,2015
    \end{thebibliography}


\end{document}

上山不易,披荆斩棘才能善始;下岭更难,临渊履薄方可令终