A. 基於GIS和Flash風險評價結果的可視化技術
採用WebGIS技術將海外油氣資源開發利用的風險評估結果通過B/S架構展現出來,其難點在於海外油氣資源開發利用基礎數據管理,風險的GIS專題圖製作、展示,以及海外油氣資源開發利用的風險綜合集成,以實現風險評估結果的可視化及簡單查詢修改。風險可視化流程喚拿如圖5.34所示。
5.3.3.1 海外油氣資源開發利用的基礎數據管理
海外油氣資源開發利和笑搭用GIS基礎數據分為空間數據和屬性數據,兩者的緊密結合形成對整個海外油氣資源開發利用風險地圖的描述(楊林等,2006)。如何在計算機中有效存儲和管理這兩類數據,是該系統GIS所涉及的基本問題。
圖5.34 海外油氣資源開發利用風險可視化流程圖
MapXtreme系統採用WorkSpace來管理這些.tab文件,本系統的工作空間是由世界地圖、港口地圖、航線地圖、海盜襲擊風險圖等組成的(張立,2008)。航線地圖的繪制即運用MapInfo結合航線信息繪製成全球航線圖(杜巧玲等,2006),通過坐標定升帶位避免與海岸線的沖突,並在WorkSpace中選中style的use Anti-aliasing和Enable Translucency屬性,以實現航線的平滑(圖5.35)。港口的坐標定位,即根據地球坐標系確定港口的精確坐標(圖5.36)。海盜襲擊風險圖主要是基於歷年海盜襲擊的數據,結合MapInfo矢量化繪制,各區域的頻率主要是按照國際海事局的數據按比例將歷年各主要區域海盜襲擊數據繪製成專題圖(圖5.37)。將這些.tab基礎數據文件打包成海外油氣資源開發利用風險的工作空間,即包含了對應的地圖信息。
圖5.37 繪制歷年海盜襲擊分布圖
5.3.3.2 海外油氣資源開發利用風險專題圖的製作及可視化
製作專題地圖是根據某個特定專題對地圖進行「渲染」的過程。所謂的專題渲染,就是以某種圖案或顏色填充來表明地圖對象(點、線、區域等)的某些信息(例如航線風險,港口吞吐量)。用戶可以使用范圍值、等級符號、點密度、獨立值、直方圖和餅圖等6種方式來創建不同的專題地圖。此可視化系統是基於范圍專題圖而開發,目的是為了國家或地區的石油開發利用,國家、航線等風險值可以通過顏色漸變達到易於比較與觀察的目的。
(1)海外油氣資源開發利用專題圖變數的確定
在專題圖中顯示的數據就是專題圖變數。例如港口綜合風險專題圖中,表示港口風險的欄位就是這個專題地圖的專題變數。也可以創建雙變數專題地圖,其中一個地圖對象可代表兩個不同的數據,符號的顏色代表一個專題變數,符號的大小代表另一個專題變數,例如本系統中港口的顏色表示港口的綜合風險值,港口的大小表示港口的不同吞吐量。
(2)海外油氣資源開發利用屬性數據的確定
本系統採用Microsoft公司的sql Server 2008進行海外油氣資源風險評估結果的存儲管理(鄭阿奇,2010)。而現有的海外油氣資源基礎地圖數據多以.tab文件的格式存放,為了實現風險評價結果的動態GIS可視化,需要將SQ L Server資料庫中的屬性數據與風險評價結果一一對應。首先要在.tab數據文件與SQ L Server數據表中建立唯一關鍵欄位,保證各評價對象的空間數據、屬性數據與評價結果一一對應。然後在系統中建立相關臨時表,將.tab數據表與SQL Server數據表的相關欄位根據關鍵欄位匹配鏈接,最終實現GIS數據的動態更新展示,核心代碼如下:
國外油氣與礦產資源利用風險評價與決策支持技術
(3)海外油氣資源開發利用專題圖的製作及展示
首先將海外油氣資源開發利用專題圖所需數據集引入地圖中,本系統採用范圍專題圖,即RangedTheme函數,基本代碼如下:
國外油氣與礦產資源利用風險評價與決策支持技術
Layer用於定義專題圖創建所需的層;expression指在專題圖中使用的欄位;method是指范圍專題圖的幾種分布方法,包括數量相等、范圍相等、標准偏差、自然間隔、分位數及定製。
國外油氣與固體礦產資源開發利用風險管理系統中,風險專題圖製作必然要解決專題圖默認屬性的更改問題。風險可視化之前,所有圖層中圖元的屬性比如點的樣式、線的樣式,以及顏色等都是根據需求所設計的。但當基於程序實現了風險的可視化時,我們只希望實現圖元對象的屬性更改,而非所有圖元基本屬性的更改,包括形狀的更改等。例如專題圖中表示風險顏色的漸變,每個對象(如國家、港口、航線等)的基礎數據都記錄在tab表中,需要通過程序調用關鍵欄位改變對象的顏色,利用Them e.Bins[]以及漸變效果函數SpreadBy()保證對象形狀等的一致,並實現地圖上不同對象的顏色漸變效果。
5.3.3.3 運輸信息展示
由於國外油氣與固體礦產資源開發利用風險GIS可視化技術只能對風險信息進行抽象展示,為了能使用戶更加直觀地讀取相關數據,系統進一步採用Flash技術實現動態展現。主要包括對運輸風險中航線風險、港口風險、承運風險、海盜襲擊風險共4大模塊的信息展示,實現用戶和系統的充分交互性。具體做法是,將MapInfo及MapXtreme軟體生成的點陣圖進行分離、套索並實時對其進行元件和影片剪輯的轉換,編寫Action Script代碼以控制媒體元素的行為方式,通過點擊按鈕或者選擇菜單實現用戶的響應。
另外,對於市場風險中涉及的海外交易所,為了方便用戶快速鏈接到具體交易所頁面,本系統也採用了Flash技術,通過對其進行超鏈接操作實現靜態Flash的交互操作和動態關聯。具體流程結構和示例展示如圖5.38所示。
圖5.38 Flash流程結構圖
B. SQL Server 2008標准教程的內容簡介
《程序員成長課堂:SQL Server 2008標准教程》由淺入深,全面、系統地介紹了SQLServer2008的開發與管理技術。《程序員成長課堂:SQL Server 2008標准教程》提供了大量實例,供讀者實戰演練。另外隨書所附光碟中包含大量配套教學視頻,以幫助讀者更好地學習《程序員成長課堂:SQL Server 2008標准教程》內容,書中的實例源代碼也一起收錄於隨書光碟中。
《程序員成長課堂:SQL Server 2008標准教程》共分5篇。第1篇介紹了SQLServer2008的背景知識及安裝、資料庫與表的創建與管理、表索引的創建與管理;第2篇介紹了Transact-SQL查詢語言、視圖、存儲過程、觸發器、游標、用戶自定義函數與數據類型;第3篇介紹了事務與鎖、全文檢索、資料庫的備份與恢復、數據升遷及安全性管理;第4篇介紹了報表服務和分析服務;第5篇介紹了如何使用C#和Java開發資料庫應用程序。
《程序員成長課堂:SQL Server 2008標准教程》內容涵蓋基本操作、高級技術、核心原理以及項目開發,幾乎涉及SQLServer2008的所有重要知識。《程序員成長課堂:SQL Server 2008標准教程》適合所有想全面學習SQLServer2008資料庫技術的人員,也適合各種使用SQLServer2008進行開發的工程技術人員。對於經常使用SQLServer2008的程序員,《程序員成長課堂:SQL Server 2008標准教程》更是一本必備的手冊。
C. 學sql server 2008,有幾本書但是拿不定主意買那些本
如果沒有任何的sql 基礎,野拿沒有接觸過sql2000,2005等版本,建議選用《sql server2008從入門到經通》《sql server2008資料庫設計與實現》《sql server2008基礎教程沒脊談》; 其餘三本的層次《sql server2008實戰枯碰》小於《精通sql server 2008程序設計》小於《T_SQL查詢》 另外建議: sql server的學習達到一定程度後,研究一下存儲過程,對於實際的編程效率很有幫助
D. 跪求 SQL server 2008課後答案 鄭阿奇主編,第三版
微軟自哪鏈SQL 2008以後提供了一個圖形化的活動監視器來幫助DBA觀察"當前的"阻塞現象. 詳情請參考 (點擊打開鏈接). DBA需要關注如下的信息列去
會話 ID:是建立連接時分配給每個用戶連接的唯一整數 (int)。
等待時間(毫秒):此任務等待資源所用的時間(毫秒孝緩虧)。如果任務沒有等待,則等待時間為 0。
等待類型:最近或當巧神前等待類型的名稱。
等待資源:所需資源的名稱。
阻塞者:如果有阻塞會話,則為正阻塞任務的會話的 ID。
頭阻塞程序:如果有阻塞會話,則標識導致第一個阻塞條件的會話。
值為 1 表示其他會話的頭阻塞程序。
E. 怎麼配置SQL Server 2008伺服器
SQl
Server
配置管理器(簡稱為配置管理器)包含了SQL
Server
2008服務、SQL
Server
2008網路配置和SQL
Native
Client配置3個工具,供資料庫管理人員做伺服器啟動停止與監控、伺服器端支持的網路協議配置、用戶訪問SQLServer
的網路相關設置等工作。
一、配置服務
1、SQL
Server
配置附案例七可以通過開始菜單欄中的【SQL
Server
2配置管理器】打開,或者通過在命令提示下輸入sqlservermanager.msc命令來打開。
2、首先打開SQL
Server
配置管理器,查看列出的與SQL
Server
2008相關的服務,選擇服務名並右鍵單擊彈出的快捷菜單中選擇【屬性】命令進行配置。在右鍵單擊SQL
Server(MSSQLSERVER)彈出的【SQL
Server(MSSQLSERVER屬性)】對話框。在【登錄】選項卡中設置服務的登錄身份,是使用本地系統賬戶還是指定的賬戶。
3、卻換到【服務】選項卡可以設置SQLServer
(MSSQLSERVER)服務的啟動模式,可以選項有「自動」、「手動」、「禁用」,用戶可以根據需要進行更改。
二、網路配置
1、SQL
Server
2008能使用多種協議,包括Shared
Memory、Named
Pipes、TCP/IP和VIA.所有這些協議都有獨立的伺服器和客戶端配置。通過SQL
Server網路配置可以為每一個伺服器實例獨立地設置網路配置。
2、在【SQL
Server配置管理器】窗口中,單擊左側的【SQL
Server
網路配置】節點,在窗口右側顯示出所有SQL
Server
伺服器中所使用的協議,右鍵單擊協議名稱,在彈出的快捷菜單中選擇【屬性】菜單項,在彈出來的對話框中進行設置啟用或者禁用操作,設置Shared
Memory協議的對話框,窗口右側所列個協議的作用如下。
3、Shared
Memory協議:Shared
Memory協議僅用於本地連接,如果該協議被啟用,任何本地客戶都可以使用此協議連接伺服器。如果不希望本地客戶使用Shared
Shared
Memory協議,則可以禁用。
4、Name
Pipes協議:Name
Pipes協議主要用於Windows
2008以前版本的操作系統的本地連接以及遠程連接。
5、TCP/IP協議:TCP/IP協議是通過本地或遠程連接到SQL
Server的首選協議。使用TCP/IP協議時,SQL
SERVER在指定的TCP埠和IP地址偵聽已響應它的請求。
6、VIA協議:如果同一計算機上安裝有兩個或多個SQL
Server實例,則VIA連接可能會不明確。VIA協議啟用後,將嘗試使用TCP/IP設置,並偵聽埠0:1433。對於不允許配置埠的VIA驅動程序,兩個SQL
Server實例均將偵聽同一埠。
三、本地客戶端協議配置
1、通過SQL
Native
Client(本地客戶端協議)配置可以啟用或禁用客戶端應用程序使用的協議。查看客戶端協議配置情況的方法是,在對話框中展開【SQL
Native
Client配置】節點,在進入的信息窗格中顯示了協議的名稱以及客戶端嘗試連接到伺服器是嘗試使用的協議的順序,用戶還可以查看協議是否以啟用或以禁用並獲得有關協議文件的詳細信息。
2、在默認的情況下
Share
Memory協議總是首選的本地連接協議。要改變協議順序可右鍵單擊協議,在彈出來的快捷菜單中選擇【順序】命令,在彈出來的【客戶協議屬性】對話框中進行設置,從【啟動的協議】列表中單擊選擇一個協議,然後通過右側的兩個按鈕來調整協議向上或向下移動。
F. SQL Server 實用教程(第3版)課後實驗答案 鄭阿奇主編的 郵箱[email protected]
--查詢全體學生的學號和姓名.
select Sno,Sname from Student
--查詢全體學生的詳細記錄.
select * from Student
--查詢所有選修課程的學生學號.
select distinct Sno from SC
--查詢考試有不及格的學生學號.
select distinct Sno from SC where Grade<60
--查詢不是信息系(is)、計算機系(cs)的學生性別、年齡、系別。
select Ssex,Sage,Sdept from Student where Sdept not in('is','cs')
--查詢選修了4號課的學生學號和成績,結果按成績降序排列.
select Student.Sno,Grade from Student,SC where Cno='004' order by Grade desc
--查詢每個課程號和相應的選課人數.
select Cno,count(Sno)選課人數 from SC group by Cno
--查詢計算機系(cs)的學生姓名、年齡、系別。
select Sno,Sage,Sdept from Student where Sdept in('cs')
--查詢年齡18~20歲的學生學號、姓名、系別、年齡。
select Sno,Sname,Sdept,Sage from Student where Sage between 18 and 20
--查詢姓劉的學生的情況.
select * from Student where Sname like '劉%'
--查詢既選修1號課程,又選修2號課程的學生學號.
select Sno from SC where Cno='001' and Cno='002'
select sno from SC where Cno='001' and Sno in (select Sno from SC where Cno='002')
select sno from SC where Cno='001' intersect select Sno from SC where Cno='002'
--查詢學生的姓名和出生年份(今年2008年)
select Sname,2008-Sage as 出生年份 from student
--查詢沒有成績的學生學號和課程號。
select Sno,Cno from sc where grade is null
--查詢總成績大於200分的學生學號。
select Sno from sc group by sno having sum(grade)>200
--查詢每門課程不及格學生人數。
select cno,count(sno) 不及格人數 from sc where grade<60 group by cno
--查詢不及格課程超過3門的學生學號。
select Sno from sc where grade<60 group by sno having count(grade)>3
--查詢年齡為10~19歲的學生信息。
select * from student where Sage between 10 and 19
--查詢全體學生情況,按所在系升序排列,同一個系的學生按年齡降序排列。
select * from student order by sdept, sage desc
--查詢選了1號課程的學生平均成績。
select avg(grade) from sc where cno='001'
--查詢選了3號課程的學生的最高分。
select max(grade) from sc where cno='003'
--查詢每個同學的總成績。
select sno,sum(grade) 總成績 from sc group by sno
---實驗五
--查詢每個學生及其選課情況。
select student.*,sc.*,course.* from student,sc,course where student.sno=sc.sno and sc.cno=course.cno
--select * from sc,student,course
--查詢每門課程的間接選修課。
select first.cno,second.cpno from course first,course second where first.cpno=second.cno;
--將STUDENT,SC進行右連接。
select * from student,sc
select student.*,sc.* from student right join sc on student.sno=sc.sno
--查詢有不及格學生的姓名和所在系。
select Sname,Sdept from student,sc where grade<60 and student.sno=sc.sno
--查詢所有成績為優秀(大於90)的學生姓名。
select Sname from student where sno in (select sno from sc group by sno having min(grade)>90)and sno not in (select sno from sc where grade is null) --錯誤
select sname from student,sc where student.sno=sc.sno and student.sno not in(select sno from sc where grade is null) group by sname having min(grade)>=90
--查詢既選修了2號課程又選修了3號課程的學生姓名、學號。
select distinct Sname,Sc.Sno from student,sc where student.sno=sc.sno and sc.sno in(select sno from sc where cno='002' and sno in (select sno from sc where cno='003'))
--查詢和劉晨同一年齡的學生。
select Sno,sname from student where sage=(select sage from student where sname='劉晨')
--選修了課程名為「資料庫」的學生姓名和年齡。
select Sname,Sage from student where sno in(select sno from sc where cno=(select cno from course where cname='資料庫'))
--查詢其他系比IS系任一學生年齡小的學生名單。
select sname from student where sdept!='is'and sage<(select max(sage) from student where sdept='is')
--查詢其他系中比IS系所有學生年齡都小的學生名單。
select Sname from student where sdept!='is' and sage<(select min(sage) from student where sdept='is')
--查詢選修了全部課程的學生姓名.
select sname from student where not exists(select * from course where not exists(select * from sc where sno=student.sno and cno=course.cno)) --正確
--查詢計算機系學生及其性別是男的學生.
select * from student where sdept='is' or ssex='男'
--查詢選修課程1的學生集合和選修2號課程學生集合的差集。
select sc.sno from student,sc where student.sno=sc.sno and cno='001'
except
select sc.sno from student,sc where student.sno=sc.sno and cno='002'
--或者
select sno from sc where cno='001' and sno not in (select sno from sc where cno='002')
--查詢李麗同學不學的課程的課程號.
select distinct cno from sc where cno not in (select cno from student,sc where sname='李麗'and student.sno=sc.sno)
--查詢選修了3號課程的學生平均年齡.
select avg(sage) from student where sno in(select sno from sc where cno='003')
--求每門課程學生的平均成績.
select cno,avg(grade) from sc group by cno
--統計每門課程的學生選修人數(超過3人的人統計)。要求輸出課程號和選修人數,結果按人數降序排列,若人數相同,按課程號升序排列。
--查詢學號比劉晨大,而年齡比他小的學生姓名。
select sname from student where sno>(select sno from student where sname='劉晨')and sage<(select sage from student where sname='劉晨')
--求年齡大於女同學平均年齡的男同學的姓名和年齡。
select sname,sage from student where sage>(select avg(sage) from student where ssex='女')and ssex='男'
--求年齡大於所有女同學年齡的男同學姓名和年齡。
select sname,sage from student where sage>(select max(sage) from student where ssex='女')and ssex='男'
--查詢至少選修了08002選修的全部課程的學生號碼。
--select cno from sc where sno='08002'
--select sno from sc where cno IN (select cno from sc where sno='08002')
--select * from sc A,sc B where A.SNO=B.SNO
--select * from (select distinct* from sc A,sc B where A.SNO=B.SNO)as e
select distinct sno from sc sc1 where not exists (select * from sc sc2 where sc2.sno='08002' and not exists (select * from sc sc3 where sc3.sno=sc1.sno and sc3.cno=sc2.cno))
--查詢08001和08002兩個學生都選修的課程的信息。
select course.* from course,sc where sno='08001' and course.cno=sc.cno intersect select course.* from course,sc where sno='08002' and course.cno=sc.cno
--查詢跟'08001'同學同姓的學生信息
select * from student where sname like(select left(sname,1) from student where sno='08001')+'%'