進階搜尋


 
系統識別號 U0026-2807201423140200
論文名稱(中文) NoSQL資料庫之SQL語法介面實作—以Google App Engine為例
論文名稱(英文) Developing a SQL Interface for NoSQL Database — using Google App Engine as an example
校院名稱 成功大學
系所名稱(中) 工程科學系碩士在職專班
系所名稱(英) Department of Engineering Science (on the job class)
學年度 102
學期 2
出版年 103
研究生(中文) 施銘斌
研究生(英文) Ming-Pin Shih
學號 N97001154
學位類別 碩士
語文別 中文
論文頁數 44頁
口試委員 指導教授-王宗一
口試委員-侯廷偉
口試委員-黃悅民
口試委員-王明習
口試委員-鄧維光
中文關鍵字 NoSQL資料庫  SQL  Google App Engine 
英文關鍵字 NoSQL Database  SQL  Google App Engine 
學科別分類
中文摘要 關聯式資料庫自1970年代開始主導了資料庫儲存管理模式達數十年,然而近年來隨著雲端運算(Cloud Computing)急速成長,產生了海量資料(Big Data)的儲存管理的衝擊,傳統關聯式資料庫已經無法有效的儲存、查詢或分析海量資料,為了解決此問題,進而產生了NoSQL(Not Only SQL)資料庫之管理模式。
目前雖有多種NoSQL資料庫能夠提供給使用者查詢與異動資料庫的介面,但都不支援標準SQL語法類似的功能,Google App Engine使用的資料庫Datastore提供GQL(Google Query Language)語法,雖類似SQL,但不全然相同。關聯式資料庫與NoSQL資料庫是為了各自不同的目的而存在的,當企業有海量資料的需求時,勢必要將關聯式資料庫移轉到NoSQL海量資料庫,同時保持資料的關聯性。使用新資料庫若還需要學習新的語法或是無法達到資料關聯(JOIN)的查詢,都是非常不便利的,且標準SQL語法已經被廣泛學習且熟知。
本研究提出一個介面,可以將標準SQL語法轉譯為GQL語法,並可針對轉入海量資料庫之資料做新增(INSERT)、修改(UPDATE)、刪除(DELETE)及查詢(SELECT)。且在Google App Engine上實作該介面,達到了資料關聯(JOIN)特性、聚合函數(Aggregation)、子查詢(Subquery)等功能。因此使用本研究的實作介面時,使用者可以不需要另外學習NoSQL資料庫的語法,直接使用標準SQL語法,就可使用NoSQL資料庫,形同操作關聯式資料庫一般。
英文摘要 In recent years with the rapid growth of network business applications and the cloud computing, issues of Big Data emerge and impact the data storage management of database. It is recognized traditional relational database is unsuitable to store, query, or analyze such enormous data effectively. In order to solve this problem, NoSQL (Not Only SQL) database appear. Big names in web services, such as Amazon, Cassandra, and Google, provide direct query web interface and transaction APIs to the developers for using their NoSQL database. As the name Not Only SQL suggests, these databases do not fully support the standard SQL language. For example, the GQL (Google Query Language) is a SQL-like language for retrieving entities or keys from the App Engine scalable datastore maintained by the Google. Although the GQL has syntax similar to that of the SQL, they are not identical. Relational databases and NoSQL databases exists for different purposes. Developers have been using the SQL language for various database management systems for a long time. When they try to migrate from relational database to some NoSQL database, they have to learn the new syntax of NoSQL languages and, to be even worse, most NoSQL languages cannot perform join operations. This study develops an interface to translate standard SQL syntax into GQL syntax and manipulate the datastore by Insert, Update, Delete and Select operations that uses Google App Engine under the hood. The interface is able to support SQL Joins, Aggregate functions, and Subqueries. Therefore, when using this interface, developers can use standard SQL syntax on NoSQL databases, just like they are using SQL on relational databases.
論文目次 中文摘要 i
Extended Abstract ii
誌謝 vii
章節目錄 viii
表目錄 x
圖目錄 xii
第一章 緒論 1
第一節 研究背景與動機 1
第二節 研究目的 1
第三節 研究貢獻 2
第二章 文獻探討 3
第一節 關聯式資料庫與SQL 3
第二節 NoSQL資料庫 5
第三節 雲端運算與Google App Engine(GAE) 6
第四節 Google Query Language(GQL) 11
第三章 研究方法 13
第一節 介面架構 13
第二節 資料匯入NoSQL資料庫 15
第三節 INSERT流程 17
第四節 UPDATE流程 18
第五節 DELETE流程 19
第六節 SELECT流程 20
第七節 錯誤語法流程 22
第四章 介面實作 23
第一節 INSERT資料 23
第二節 UPDATE資料 24
第三節 DELETE資料 25
第四節 SELECT資料 26
第五節 錯誤語法判斷 39
第六節 其他介面比較 39
第五章 結論與未來工作 41
第一節 結論 41
第二節 未來工作 41
參考文獻 42
參考文獻 [1]李威和,網路應用程式開發-使用Google App Engine雲端運算,文魁出版,2009。
[2]李紹綸,資料庫系統設計理論,上奇出版,2010。
[3]Pramod J. Sadalage and Martin Fowler 原著,吳曜撰譯,搞懂NoSQL的15堂課,基峯資訊出版,2013。
[4]徐桂祥,SQL案例解析:以SQL Server與Oracle為例,悅知文化出版,2010。
[5]陳義雄,基於Cassandra資料庫之雲端資料建模:從SQL到NoSQL,臺灣大學電機工程學系碩士論文,2012。
[6]陸嘉恒,大數據挑戰與NoSQL數據庫技術,電子工業出版社出版,2013。
[7]張東淼,GAE(Google App Engine)雲端資料庫實作,上奇科技出版,2012。
[8]黃健瑋,以混合SQL與NoSQL為策略提昇關聯式資料庫在雲端架構下的效能,中正大學資訊工程系碩士論文,2012。
[9]湯秉翰,雲端網頁程式設計:Google App Engine應用實作(第二版),博碩文化出版,2013。
[10]雷萬雲,直達雲端運算的核心-SaaS、PaaS、IaaS的營運教戰手冊,佳魁資訊出版,2011。
[11]蕭毅,劉景豊,林威廷,黃奕欽,蔡慶堂,雲端分散式資料庫技術之介紹-以MongoDB為例,電信研究雙月刊,第42卷第2期,頁281-294,2012。
[12]Nance Cory, Losser Travis, Iype Reenu, Harmon Gary, "NOSQL VS RDBMS - WHY THERE IS ROOM FOR BOTH", Proceedings of the Southern Association for Information Systems Conference (SAIS), pp. 1469-1472. March 8th–9th, Savannah, GA, USA, 2013.
[13]See Wah Cheng, "Datastore Bulk Upload + ReferenceProperty in Google App Engine", http://seewah.blogspot.tw/2009/08/datastore-bulk-upload-referenceproperty.html, (Accessed 2014/04/06), 2009.
[14]Ramez A. Elmasri, Shamkant B. Navathe, "Fundamentals of Database Systems", 4th Edition, Addison-Wesley, ISBN:0-321-12226-7, pp. 127-129, 2004.
[15]Google Developers, "Google App Engine GQL Reference", https://developers.google.com/appengine/docs/python/datastore/gqlreference?hl=zh-tw , (Accessed 2014/05/02)
[16]Google Developers, "Python Datastore API", https://developers.google.com/appengine/docs/python/datastore/ , (Accessed 2014/05/18)
[17]Peter Mell, Timothy Grance, "The NIST Definition of Cloud Computing", NIST Special Publication
(http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf), 2011.
[18]Rabi Prasad Padhy, Manas Ranjan Patra, Suresh Chandra Satapathy, " RDBMS to NoSQL: Reviewing Some Next-Generation Non-Relational Database's", International Journal of Advanced Engineering Sciences and technologies, Vol. 11, Iss: 1, pp.15 – 30, 2011.
[19]Jaroslav Pokorny, "NoSQL databases: a step to database scalability in web environment", International Journal of Web Information Systems, Vol. 9, Iss: 1, pp. 69 – 82, 2013.
[20]John Roijackers, "Bridging SQL and NoSQL", Master thesis , Eindhoven University of Technology, Department of Mathematics and Computer Science, p. 8, 2012.
[21]Hailing Zhang, Yang Wang, Junhui Han, "Middleware Design for Integrating Relational Database and NOSQL Based on Data Dictionary", International Conference on Transportation, Mechanical, and Electrical Engineering (TMEE), pp.1469-1472. December 16-18, Changchun, China, 2011.
論文全文使用權限
  • 同意授權校內瀏覽/列印電子全文服務,於2017-08-15起公開。
  • 同意授權校外瀏覽/列印電子全文服務,於2018-08-15起公開。


  • 如您有疑問,請聯絡圖書館
    聯絡電話:(06)2757575#65773
    聯絡E-mail:etds@email.ncku.edu.tw