數(shù)據(jù)庫實(shí)習(xí)報(bào)告-2_第1頁
數(shù)據(jù)庫實(shí)習(xí)報(bào)告-2_第2頁
數(shù)據(jù)庫實(shí)習(xí)報(bào)告-2_第3頁
數(shù)據(jù)庫實(shí)習(xí)報(bào)告-2_第4頁
數(shù)據(jù)庫實(shí)習(xí)報(bào)告-2_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2頁(NUMPAGES14頁)***********大學(xué)本科生實(shí)習(xí)報(bào)告書教學(xué)單位****學(xué)院專業(yè)***********班級***********學(xué)生姓名學(xué)號指導(dǎo)教師一、實(shí)習(xí)目的通過上機(jī)實(shí)習(xí)把課堂上所學(xué)的理論進(jìn)行實(shí)踐,并通過實(shí)習(xí)掌握有關(guān)數(shù)據(jù)庫的一些基本操作。二、實(shí)習(xí)任務(wù)通過空間數(shù)據(jù)庫建庫實(shí)習(xí),使學(xué)生能夠在《網(wǎng)絡(luò)數(shù)據(jù)庫》、《地理空間數(shù)據(jù)庫》課程的課堂教學(xué)及實(shí)驗(yàn)課教學(xué)的基礎(chǔ)上進(jìn)一步將理論與實(shí)踐相結(jié)合,消化和理解課堂所學(xué)理論知識,掌握將地理信息數(shù)據(jù)(包括空間數(shù)據(jù)和屬性數(shù)據(jù))植入數(shù)據(jù)庫的技能,熟悉建庫的流程與方法。三、實(shí)習(xí)內(nèi)容1、熟悉Oracle11g和SQLServer的安裝過程。2、掌握空間數(shù)據(jù)在數(shù)據(jù)庫中的組織和操作。3、掌握屬性數(shù)據(jù)在數(shù)據(jù)庫中的組織和操作。4、掌握空間數(shù)據(jù)和屬性數(shù)據(jù)在數(shù)據(jù)庫中的關(guān)聯(lián)方法。5、掌握柵格數(shù)據(jù)在數(shù)據(jù)庫中的操作。(一)、Oracle安裝首先,解壓文件,然后將解壓后的win32_11gR2_database_2of2文件下的database文件夾復(fù)制到win32_11gR2_database_1of2文件下,替換該文件下的database文件夾。然后點(diǎn)擊setup.exe開始安裝,安裝需要等待一段時(shí)間,并且其間涉及到數(shù)據(jù)庫、監(jiān)聽程序、本地網(wǎng)絡(luò)服務(wù)等的配置。不做詳細(xì)介紹。最后安裝好后輸入用戶名和密碼,啟動(dòng)oracle。結(jié)果如下圖點(diǎn)擊服務(wù)器選項(xiàng):選擇表空間:點(diǎn)擊“創(chuàng)建”,創(chuàng)建表空間。返回管理首頁,在“安全性”下找到“用戶”。點(diǎn)擊右方“創(chuàng)建”按鈕創(chuàng)建用戶。角色的選擇很重要,一般“connect”和“dba”都要,否則會被限制很多。(二)、矢量數(shù)據(jù)存儲與管理操作的實(shí)驗(yàn)2.1數(shù)據(jù)組織結(jié)構(gòu)在Spatial中提供了一種抽象數(shù)據(jù)類型SDO_GEOMETRY用于存儲矢量空間數(shù)據(jù),一個(gè)Oracle空間數(shù)據(jù)表能夠包含至少一個(gè)SDOGEOMETRY類型的屬性列,每列可以存儲一個(gè)空間幾何實(shí)體??臻g數(shù)據(jù)表中的每一條記錄既可以存儲空間實(shí)體的全部空間數(shù)據(jù)又可以同時(shí)存儲相關(guān)的部分屬性數(shù)據(jù)(更詳細(xì)的屬性數(shù)據(jù)可以存儲在單獨(dú)的屬性表中),從而使得矢量空間數(shù)據(jù)和相關(guān)的屬性數(shù)據(jù)能夠同時(shí)存儲在oracle中。2.2SDO_GEOMETRY的定義SDO_GEOMETRY是在MDSYS方案中定義的一個(gè)抽象數(shù)據(jù)類型,此類型能描述任何復(fù)雜的空間特征數(shù)據(jù),其定義為CREATETYPEsdo_geometryASOBJECT(SDO_GTYPENUMBER,SDO_SRIDNUMBER,SDO_POINTSDO_POINT_TYPE,SDO_ELEM_INFOSDO_ELEM_INFO_ARRAY,SDO_ORDINATESSDO_ORDINATES_ARRAY);該對象由五個(gè)分量組成(1)SDO_GTYPE:是一個(gè)NUMBER型結(jié)構(gòu),用于存放幾何對象的類型。SDO_GTYPE是四位數(shù)字的整數(shù),其格式為dltt,其中”,表示幾何對象的維數(shù),可以是2、3或4;”l”表示三維線性參考系統(tǒng)中的線性參考值,當(dāng)”,為3或4時(shí)需要設(shè)置該值,一般情況下該值為0;”’表示幾何對象的類型,目前,OracleSpatial使用00到07(包括一種用戶自定義類型)來描述7種幾何類型。如SDO_GTYPE取值2003則表示2維的多邊形。下圖描述了OracleSpatial支持的幾何對象類型。(2)SDO_SRID:是一個(gè)NUMBER型結(jié)構(gòu),用于存放與幾何對象相關(guān)的空間坐標(biāo)參照系標(biāo)識符,Oracle所支持的SDO_SRID值均存儲在表MDSYS.CS_SRS的SRID字段中。如果該值為NULL,則表示沒有空間參照系與該幾何對象相關(guān),只采用笛卡爾平面坐標(biāo)系。一般在存儲地理數(shù)據(jù),即與地球相關(guān)的數(shù)據(jù)時(shí),均與特定的SRID相關(guān)聯(lián)。(3)SDO_POINT:是一個(gè)包含X,Y,Z三個(gè)分量的對象類型,用于存放點(diǎn)實(shí)體的空間坐標(biāo)。當(dāng)SDO_ELEM_INFO和SDO_ORDINATES數(shù)組都為空時(shí),SDO_POINT中的x,Y,Z為點(diǎn)實(shí)體的坐標(biāo)值,否則,SDO_POINT的值可以忽略。(4)SDO_ELEM_INFO:是一個(gè)NUMBER類型的變長數(shù)組,每3個(gè)值組成一個(gè)3元組,用于解釋存儲在SDO_ORDINATES分量中的坐標(biāo)。每個(gè)3元組包含以下3個(gè)部分的內(nèi)容:1)SDO_STARTING_OFFSET:表明每個(gè)幾何元素的第一個(gè)坐標(biāo)在數(shù)組SDO_ORIDINATES中的存儲位置,它的值從1開始,逐漸增加。2)SDO_ETYPE:它用于表示幾何對象中每個(gè)組成元素的幾何類型。當(dāng)它的值為1、2、1003和2003時(shí),表明這個(gè)幾何元素為簡單元素;如果SDO_ETYPE為1003,表明該多邊形為外環(huán)(第一個(gè)數(shù)為1表示外環(huán)),坐標(biāo)值以逆時(shí)針存儲;如果SDO_ETYPE為2003,表明該多邊形為內(nèi)環(huán)(第一個(gè)數(shù)為2表示內(nèi)環(huán)),坐標(biāo)值以順時(shí)針存儲;當(dāng)SDO_TYPE為4、1005和2005時(shí),表明這個(gè)幾何元素為復(fù)合元素,它至少包含一個(gè)頭三元組用以說明該復(fù)合元素具有多少個(gè)簡單幾何元素。同樣,當(dāng)1005表示多邊形為外環(huán)時(shí),坐標(biāo)值以逆時(shí)針存儲;當(dāng)2005表示多邊形為內(nèi)環(huán)時(shí),坐標(biāo)值以順時(shí)針存儲。SDO_INTERPRETATION:它具有兩層含義,具體的作用由SDO_ETYPE是否為復(fù)合元素決定。如果SDO_ETYPE是復(fù)合元素(4,1005和2005),則SDO_INTERPRETATION表示它后面有幾個(gè)子三元組屬于這個(gè)復(fù)合元素;如果SDO_ETYPE是簡單元素(1,2,1003和2003),則SDO_TERPRETATION表示該元素的坐標(biāo)值在SDO_ORDINATES中是如何排列的。需要注意的是,對于復(fù)合元素來說,組成它的子元素是連續(xù)的。一個(gè)子元素的最后一個(gè)點(diǎn)是下一個(gè)子元素的第一點(diǎn);最后一個(gè)子元素的最后一個(gè)坐標(biāo)要么與下一個(gè)元素的SDO_STARTING_OFFSET值減1所對應(yīng)的坐標(biāo)相同,要么是整個(gè)SDO_ORDINATES數(shù)組的最后一個(gè)坐標(biāo)。(5)SDO_ORDINATES:一個(gè)NUMBER類型的變長數(shù)組,用于存儲組成空間幾何對象邊界的空間坐標(biāo)值。SDO_ORDINATES必須與SDO_ELEM_INFO數(shù)組配合使用,才具有實(shí)際意義。SDO_ORDINATES的坐標(biāo)存儲方式由幾何對象的維數(shù)決定,如果幾何對象為三維,則SDO_ORDINATES的坐標(biāo)以{X1,Y,Z1,X2,Y2,Z2,……}的順序排列;如果幾何對象為二維,則SDO_ORDINATES的坐標(biāo)為{X1,Y1,X2,Y,……}。2.3矢量空間數(shù)據(jù)庫的創(chuàng)建方法創(chuàng)建矢量空間數(shù)據(jù)庫最基本的步驟就是創(chuàng)建矢量空間數(shù)據(jù)表和上載矢量數(shù)據(jù)。2.3.1創(chuàng)建矢量空間數(shù)據(jù)表要經(jīng)過以下幾個(gè)步驟:創(chuàng)建矢量空間數(shù)據(jù)表:創(chuàng)建一個(gè)名為chemical_plants的表,代碼如下:CREATETABLEchemical_plants(IdNUMBERPRIMARYKEY,NameVARCHAR2(32),geolocSDO_GEOMETRY);在命令提示符中鍵入代碼后運(yùn)行的結(jié)果如下圖:(2)將新創(chuàng)建的空間表注冊到元數(shù)據(jù)視圖代碼如下:INSERTINTOUSER_SDO_GEOM_METADATAVALUES('chemical_plants','geoloc',SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X',-180,180,0.000000005),SDO_DIM_ELEMENT('Y',-180,180,0.000000005)),8307);執(zhí)行后的結(jié)果如下圖:(3)為空間表創(chuàng)建R_Tree空間索引代碼如下:CREATEINDEXPLANTS_R_IDXONchemical_plants(geoloc)INDEXTYPEISMDSYS.SPATIAL_INDEX;結(jié)果如下:2.3.2矢量空間數(shù)據(jù)的加載方法可分為兩種情況:利用加載工具批量導(dǎo)入數(shù)據(jù)和利用SQL語句事務(wù)性的插入少量數(shù)據(jù)。(l)對于插入少量空間數(shù)據(jù)的情況,可以使用SQL語句中的INSERT語句。例如,向chemical_plants中添加一個(gè)化工廠(表示為一個(gè)由直線組成的五邊形)。代碼如下:INSERTINTOchemical_plantsVALUES(8,'城北化工廠',SDO_GEOMETRY(2003,8307,SDO_POINT_TYPE(-1.1229671,1.05127803,NULL),SDO_ELEM_INFO_ARRAY(1,1003,1),SDO_ORDINATE_ARRAY(-1.29838,1.10085102,-1.29838,1.0017060,-0.94755492,1.00170603,-0.94755492,1.10085102,-1.29838,1.10085102)))注意:輸入代碼的過程中需要在英文的輸入法狀態(tài)下進(jìn)行輸入,否則會提示標(biāo)識無效。(2)對于批量導(dǎo)入空間數(shù)據(jù)又可以分為兩大類:一類是利用Oracle本身的工具SQL*Loader;另一類是利用GIS軟件公司提供的加載工具。以少量數(shù)據(jù)為例,上述(1)鍵入后的實(shí)現(xiàn)結(jié)果如下:(三)、柵格數(shù)據(jù)存儲與管理操作的實(shí)驗(yàn)Oracle公司為了完善Spatial組件的空間數(shù)據(jù)管理機(jī)制,在升級N10g版本以后,引入了新的特性GeoRaster,它提供了存儲、索引、查詢、分析和發(fā)布柵格數(shù)據(jù)的能力,使得Oracle具備了在不用空間數(shù)據(jù)引擎的情況下也能存儲和處理柵格數(shù)據(jù)的能力。GeoRaster使用一個(gè)基于組件的、邏輯分層并且多維的通用柵格數(shù)據(jù)模型。柵格中的核心數(shù)據(jù)是由柵格單元(或象素)組成的多維矩陣,這些柵格單元的值被稱為單元值,并且這些核心的柵格數(shù)據(jù)集可以進(jìn)行分塊,用于優(yōu)化存儲、檢索和處理。3.1影像金宇塔機(jī)制顯示柵格圖像時(shí),大部分情況下不需要顯示全圖,更多的時(shí)候需要縮小顯示,如果這些情況下仍然加載整幅圖像,勢必會降低顯示速度.圖像越小,顯示速度越快,尤其是在不需要顯示非常詳細(xì)而僅顯示圖像輪廓的情況下,顯示速度明顯加快.為了提高柵格圖像在前端的顯示速度,Oracle11gSpatial在柵格數(shù)據(jù)模型中提供了影像金字塔技術(shù).影像金字塔分為不同的層次,即第0層、第1層等等,其中第0層表示原始圖像,層次數(shù)大于0時(shí)就表示縮小顯示。3.2層次尺寸確定的情況下,金字塔的每個(gè)層次對應(yīng)的柵格圖像的尺寸可以由下面的公式計(jì)算出r(n)=(int)(r(0)/2n)c(n)=(int)(c(0)/2n)其中r(0)與c(0)表示原始圖像的行數(shù)與列數(shù);r(n)與c(n)表示第n層的影像金字塔的行數(shù)與列數(shù);int用來取整數(shù).金字塔的層次不是可以無限多的,其最大的層次數(shù)由公式(int)(log2(a/64))決定,其中a表示原始圖像中行數(shù)與列數(shù)中較小的一個(gè)的數(shù)量.例如,如果圖像的大小是1024*768,由于行數(shù)與列數(shù)較小的數(shù)是768,所以影像金字塔的最高的層次數(shù)就是(int)(log2(768/64))=int(3.6)=3,即只能達(dá)到3層。3.3柵格數(shù)據(jù)存儲與管理操作方法的實(shí)驗(yàn)(1)創(chuàng)建柵格表代碼如下:CREATETABLERASTER(NAMEVARCHAR(64),IMAGESDO_GEORASTER);創(chuàng)建RASTER柵格表的觸發(fā)器代碼:callsdo_geor_utl.createDMLTrigger('RASTER','IMAGE');描述:在一張GeoRaster表中的一個(gè)GeoRaster列中創(chuàng)建所需的標(biāo)準(zhǔn)GeoRaster數(shù)據(jù)操作語言(DML)的觸發(fā)器,以便進(jìn)行適當(dāng)?shù)牟僮鲿r(shí),其相關(guān)的觸發(fā)器被觸發(fā)。

用法:為了保持GeoRaster的數(shù)據(jù)結(jié)構(gòu)引用的完整性,你在表上執(zhí)行任何DML操作前,都應(yīng)該始終使用此過程來對每個(gè)GeoRaster表和其每一個(gè)GeoRaster列進(jìn)行創(chuàng)建相結(jié)合的標(biāo)準(zhǔn)GeoRaster的DML觸發(fā)器。例如,如果GeoRaster表包含兩個(gè)GeoRaster列,兩次調(diào)用這個(gè)程序,指定名稱和列名稱為每個(gè)調(diào)用相應(yīng)的表。創(chuàng)建該表的柵格數(shù)據(jù)表CREATETABLERASTER_RDTOFSDO_RASTER(PRIMARYKEY(rasterID,pyramidLevel,bandBlockNumber,rowBlockNumber,columnBlockNumber))LOB(rasterBlock)STORE(CHUNK8192CACHEREADSNOLOGGINGPCTVERSION0STORAGE(PCTINCREASE0));說明:每張柵格數(shù)據(jù)表必須是一個(gè)SDO_RASTER類型的對象表,

而且必須有一個(gè)以下定義列(rasterID,pyramidLevel,bandBlockNumber,rowBlockNumber,columnBlockNumber)的主鍵。注意:最大的rasterBlock是4G字節(jié)。經(jīng)由柵格數(shù)據(jù)表'RASTER_RDT'初始化一個(gè)柵格圖對象插入柵格表中INSERTINTORASTERVALUES('gddst',sdo_geor.init('RASTER_RDT'));在存儲一個(gè)柵格圖像到一張柵格表前,必須創(chuàng)建一個(gè)柵格對象GeoRasterobject。

有兩種方法創(chuàng)建一個(gè)新的柵格對象:

1、使用SDO_GEOR.initfunction來初始化一個(gè)空的柵格對象;

2、SDO_GEOR.createBlankfunction來創(chuàng)建一個(gè)空白的柵格對象。(5)、利用SDO_GEOR.importFrom上載柵格數(shù)據(jù)首先設(shè)置用戶權(quán)限:BEGINdbma_java.grant_permission('SYSTEM','SYS:java.io.FilePermission','C:\image.tif','read');dbma_java.grant_permission('MDSYS','SYS:java.io.FilePermission','C:\image.tif','read');END;然后上載數(shù)據(jù):DECLAREgeorSDO_GEORASTER;BEGINSELECTIMAGEINTOgeorfromRASTERwhereNAME='gddst'FORUPDATE;sdo_geor.importFrom(geor,NULL,'TIFF','file','C:/gddst.tif');UPDATERASTERSETIMAGE=georwhereNAME='gddst';COMMIT;END;(6)、創(chuàng)建柵格金字塔利用SDO_GEOR.generatePyramid方法對指定柵格圖像創(chuàng)建金字塔結(jié)構(gòu)的PL/SQL過程如下:DECLAREgrmdsys.sdo_georaster;BEGINselectIMAGEintogrfromRASTERwhereNAME='gddst'forupdate;sdo_geor.generatePyramid(gr,'rLevel=2resampling=NN');updateRASTERsetIMAGE=grwhereNAME='gddst';COMMIT;END;具體實(shí)驗(yàn)過程如下圖:(7)、導(dǎo)出柵格數(shù)據(jù)至此完成了柵格數(shù)據(jù)的加載,創(chuàng)建影像金字塔,及柵格數(shù)據(jù)的導(dǎo)出的實(shí)驗(yàn)過程。四、實(shí)習(xí)儀器及軟件個(gè)人電腦以及Oracle11g軟件五、實(shí)習(xí)體會這次實(shí)習(xí),鞏固了以前學(xué)習(xí)的Oracle知識,加上這學(xué)期老師講的地理空間數(shù)據(jù)庫原理,我對空間數(shù)據(jù)庫的認(rèn)識有了進(jìn)一步的提高。當(dāng)然,這次實(shí)習(xí)也遇到了不少問題,首先是Oracle軟件的安裝,需要將解壓后的win32_11gR2_database_2of2文件下的database文件夾復(fù)制到win32_11gR2_database_1of2文件,替換該文件下的database文件夾,然后再點(diǎn)擊setup.exe開始安裝,如果在安裝的過程中提示IIS錯(cuò)誤,需要下載相應(yīng)的補(bǔ)丁。軟件安裝好后,開始進(jìn)行實(shí)習(xí)任務(wù),首先是以system用戶的身份登錄,創(chuàng)建用戶和表空間,修改角色,這里角色的選擇很重要,一般“connect”和“dba”都要,否則會被限制很多。然后是矢量數(shù)據(jù)的存儲和管理,先要熟悉數(shù)據(jù)的組織結(jié)構(gòu),SDO_GEOMETRY數(shù)據(jù)類型的定義,再進(jìn)行矢量數(shù)據(jù)表的創(chuàng)建和矢量空間數(shù)據(jù)的加載。在命令提示符中鍵入代碼的時(shí)候要注意字母和符號應(yīng)在英文輸入狀態(tài)下輸入,對于批量導(dǎo)入空間數(shù)據(jù)可以分為兩大類:一類是利用Oracle本身的工具S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論