資料庫gc
① 生物信息學資料庫常用的三種序列格式
一般來說所用的分析工具有在線跟下載的 下面簡要列舉一些常用在線軟體的使用 1、使用VecScreen工具,分析下列未知序列,輸出序列長度、載體序列的區域、可能使用的克隆載體都有哪些。一、步驟:
打開google 首頁,搜索VecScreen,進入VecScreen首頁,復制序列,運行,View report。
二、結果:
輸出序列長度918bp,
載體序列的區域456bp——854bp.
克隆載體:M13mp18 phage,pGEM-13Zf(+),pBR322,pRKW2。
2、使用相應工具,分析下列未知序列的重復序列情況,輸出重復序列的區域、包含的所有重復序列的類型、重復序列的總長度及Masked Sequence。
一、步驟:
進入google首頁,進入ICBI主頁,對序列進行BLAST。得出序列是human的。
進入google首頁,搜索RepeatMasker,進入RepeatMasker主頁,進入RepeatMasking,復制序列,DNA source選擇human,運行!點擊超鏈接,在結果中選擇
Annotation File :RM2sequpload_1287631711.out.html
3、使用CpGPlot/CpGReport/Isochore工具,分析下列未知序列,輸出CpG島的長度、區域、GC數量、所佔的百分比及Obs/Exp值。一、步驟:
進入google首頁,搜索CpGPlot,進入CpGPlot主頁,program中選擇cpgreport復制序列,運行!
二、結果:
CpG島的長度:385bp
區域:48——432;
GC數量:Sum C+G=297,百分數=77.14
Obs/Exp:1.01
4、預測下面序列的啟動子,輸出可能的啟動子序列及相應的位置。一、步驟:
進入google首頁,進入ICBI主頁,對序列進行BLAST。得出序列是human的
進入google首頁,搜索Neural Network Promoter Prediction,進入主頁,復制序列,選擇eukaryote,運行!
二、結果:
位置:711—761 ,1388—1438,1755—1805;
5、運用Splice Site Prediction工具分析下面序列,分別輸出內含子-外顯子剪接位點給體和受體的區域及剪接處位置的鹼基。一、步驟:
進入google首頁,進入ICBI主頁,對序列進行BLAST。得出序列是human的
進入google首頁,搜索Splice Site Prediction,進入主頁,復制序列。Organism選擇Human or other。其他默認,運行!
二、結果:
供體:
受體:
6、對下面序列進行六框翻譯,利用GENESCAN綜合分析(首先確定給定序列的物種來源)哪個ORF是正確的,輸出六框翻譯(抓圖)和GENESCAN結果(包括predicted genes/exons 和 predicted peptide sequence(s) 兩個部分)。一、步驟:
進入google首頁,進入ICBI主頁,對序列進行BLAST。得出序列是Zea的
進入google首頁;搜索NCBI,進入主頁,選擇all resources(A~Z),選擇O,選擇ORF finder。復制序列,默認,運行!
二、結果:ORF圖
三、步驟:進入google首頁,搜索GENESCAN,進入主頁,Organism:Maize, ,其他默認,運行!
四、結果:
G7、進入REBASE限制性內切酶資料庫,輸出AluI、MboI、EcoI三種內酶的Recognition Sequence和Type。
一、步驟:進入google首頁,google in English,搜索REBASE,進入主頁, 分別輸入AluI、MboI、EcoI,運行!
在MboI中選擇第一個,EcoI選擇第二個。
二、結果:
ENSCAN圖
8、使用引物設計工具,針對下列未知序列設計一對引物,要求引物長度為20-25bp,擴增產物長度300-500bp,退火溫度為50-60℃。請寫出選擇的一對引物(Forward Primer and Reverse Primer)、及相應的GC含量、引物的位點、Tm值和產物長度。一、步驟:進入google首頁,搜索genefisher,進入主頁,復制fasta格式,chechk input, sunmit, ; ;設置一下引物長度為20-25bp,擴增產物長度300-500bp,退火溫度為50-60℃; 。
② select選項中的option選項從資料庫輸入,結果只顯示最後一個數據
while(rs.next()){
gc[i].setId(rs.getString("id"));
gc[i].setName(rs.getString("name"));}
你的循環有問題撒,你的資料庫記錄的循環在i=0的時候就循環完了,這樣的話,你的gc.length應該是1,那麼肯定就只有最後一個數據了。
把gc[i].setName(rs.getString("name"));}後面的}改到rs.close();前面就可以了
③ 資料庫什麼是欄位應該設置索引
索引是提高數據查詢最有效的方法,也是最難全面掌握的技術,因為正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了資料庫空間,甚至大大降低查詢性能。
索引的管理成本
1、 存儲索引的磁碟空間
2、 執行數據修改操作(INSERT、UPDATE、DELETE)產生的索引維護
3、 在數據處理時回需額外的回退空間。
實際數據修改測試:
一個表有欄位A、B、C,同時進行插入10000行記錄測試
在沒有建索引時平均完成時間是2.9秒
在對A欄位建索引後平均完成時間是6.7秒
在對A欄位和B欄位建索引後平均完成時間是10.3秒
在對A欄位、B欄位和C欄位都建索引後平均完成時間是11.7秒
從以上測試結果可以明顯看出索引對數據修改產生的影響
索引按存儲方法分類
B*樹索引
B*樹索引是最常用的索引,其存儲結構類似書的索引結構,有分支和葉兩種類型的存儲數據塊,分支塊相當於書的大目錄,葉塊相當於索引到的具體的書頁。一般索引及唯一約束索引都使用B*樹索引。
點陣圖索引
點陣圖索引儲存主要用來節省空間,減少ORACLE對數據塊的訪問,它採用點陣圖偏移方式來與表的行ID號對應,採用點陣圖索引一般是重復值太多的表欄位。點陣圖索引在實際密集型OLTP(數據事務處理)中用得比較少,因為OLTP會對表進行大量的刪除、修改、新建操作,ORACLE每次進行操作都會對要操作的數據塊加鎖,所以多人操作很容易產生數據塊鎖等待甚至死鎖現象。在OLAP(數據分析處理)中應用點陣圖有優勢,因為OLAP中大部分是對資料庫的查詢操作,而且一般採用數據倉庫技術,所以大量數據採用點陣圖索引節省空間比較明顯。
索引按功能分類
唯一索引
唯一索引有兩個作用,一個是數據約束,一個是數據索引,其中數據約束主要用來保證數據的完整性,唯一索引產生的索引記錄中每一條記錄都對應一個唯一的ROWID。
主關鍵字索引
主關鍵字索引產生的索引同唯一索引,只不過它是在資料庫建立主關鍵字時系統自動建立的。
一般索引
一般索引不產生數據約束作用,其功能主要是對欄位建立索引表,以提高數據查詢速度。
索引按索引對象分類
單列索引(表單個欄位的索引)
多列索引(表多個欄位的索引)
函數索引(對欄位進行函數運算的索引)
建立函數索引的方法:
create index 收費日期索引 on GC_DFSS(trunc(sk_rq))
create index 完全客戶編號索引 on yhzl(qc_bh||kh_bh)
在對函數進行了索引後,如果當前會話要引用應設置當前會話的query_rewrite_enabled為TRUE。
alter session set query_rewrite_enabled=true
註:如果對用戶函數進行索引的話,那用戶函數應加上 deterministic參數,意思是函數在輸入值固定的情況下返回值也固定。例:
create or replace function trunc_add(input_date date)return date deterministic
as
begin
return trunc(input_date+1);
end trunc_add;
應用索引的掃描分類
INDEX UNIQUE SCAN(按索引唯一值掃描)
select * from zl_yhjbqk where hbs_bh='5420016000'
INDEX RANGE SCAN(按索引值范圍掃描)
select * from zl_yhjbqk where hbs_bh>'5420016000'
select * from zl_yhjbqk where qc_bh>'7001'
INDEX FAST FULL SCAN(按索引值快速全部掃描)
select hbs_bh from zl_yhjbqk order by hbs_bh
select count(*) from zl_yhjbqk
select qc_bh from zl_yhjbqk group by qc_bh
什麼情況下應該建立索引
表的主關鍵字
自動建立唯一索引
如zl_yhjbqk(用戶基本情況)中的hbs_bh(戶標識編號)
表的欄位唯一約束
ORACLE利用索引來保證數據的完整性
如lc_hj(流程環節)中的lc_bh+hj_sx(流程編號+環節順序)
直接條件查詢的欄位
在sql中用於條件約束的欄位
如zl_yhjbqk(用戶基本情況)中的qc_bh(區冊編號)
select * from zl_yhjbqk where qc_bh=』7001』
查詢中與其它表關聯的欄位
欄位常常建立了外鍵關系
如zl_ydcf(用電成份)中的jldb_bh(計量點表編號)
select * from zl_ydcf a,zl_yhdb b where a.jldb_bh=b.jldb_bh and b.jldb_bh=』540100214511』
查詢中排序的欄位
排序的欄位如果通過索引去訪問那將大大提高排序速度
select * from zl_yhjbqk order by qc_bh(建立qc_bh索引)
select * from zl_yhjbqk where qc_bh='7001' order by cb_sx(建立qc_bh+cb_sx索引,註:只是一個索引,其中包括qc_bh和cb_sx欄位)
查詢中統計或分組統計的欄位
select max(hbs_bh) from zl_yhjbqk
select qc_bh,count(*) from zl_yhjbqk group by qc_bh
什麼情況下應不建或少建索引
表記錄太少
如果一個表只有5條記錄,採用索引去訪問記錄的話,那首先需訪問索引表,再通過索引表訪問數據表,一般索引表與數據表不在同一個數據塊,這種情況下ORACLE至少要往返讀取數據塊兩次。而不用索引的情況下ORACLE會將所有的數據一次讀出,處理速度顯然會比用索引快。
如表zl_sybm(使用部門)一般只有幾條記錄,除了主關鍵字外對任何一個欄位建索引都不會產生性能優化,實際上如果對這個表進行了統計分析後ORACLE也不會用你建的索引,而是自動執行全表訪問。如:
select * from zl_sybm where sydw_bh='5401'(對sydw_bh建立索引不會產生性能優化)
經常插入、刪除、修改的表
對一些經常處理的業務表應在查詢允許的情況下盡量減少索引,如zl_yhbm,gc_dfss,gc_dfys,gc_fpdy等業務表。
數據重復且分布平均的表欄位
假如一個表有10萬行記錄,有一個欄位A只有T和F兩種值,且每個值的分布概率大約為50%,那麼對這種表A欄位建索引一般不會提高資料庫的查詢速度。
經常和主欄位一塊查詢但主欄位索引值比較多的表欄位
如gc_dfss(電費實收)表經常按收費序號、戶標識編號、抄表日期、電費發生年月、操作標志來具體查詢某一筆收款的情況,如果將所有的欄位都建在一個索引里那將會增加數據的修改、插入、刪除時間,從實際上分析一筆收款如果按收費序號索引就已經將記錄減少到只有幾條,如果再按後面的幾個欄位索引查詢將對性能不產生太大的影響。
如何只通過索引返回結果
一個索引一般包括單個或多個欄位,如果能不訪問表直接應用索引就返回結果那將大大提高資料庫查詢的性能。對比以下三個SQL,其中對表zl_yhjbqk的hbs_bh和qc_bh欄位建立了索引:
1 select hbs_bh,qc_bh,xh_bz from zl_yhjbqk where qc_bh=』7001』
執行路徑:
SELECT STATEMENT, GOAL = CHOOSE 11 265 5565
TABLE ACCESS BY INDEX ROWID DLYX ZL_YHJBQK 11 265 5565
INDEX RANGE SCAN DLYX 區冊索引 1 265
平均執行時間(0.078秒)
2 select hbs_bh,qc_bh from zl_yhjbqk where qc_bh=』7001』
執行路徑:
SELECT STATEMENT, GOAL = CHOOSE 11 265 3710
TABLE ACCESS BY INDEX ROWID DLYX ZL_YHJBQK 11 265 3710
INDEX RANGE SCAN DLYX 區冊索引 1 265
平均執行時間(0.078秒)
3 select qc_bh from zl_yhjbqk where qc_bh=』7001』
執行路徑:
SELECT STATEMENT, GOAL = CHOOSE 1 265 1060
INDEX RANGE SCAN DLYX 區冊索引 1 265 1060
平均執行時間(0.062秒)
從執行結果可以看出第三條SQL的效率最高。執行路徑可以看出第1、2條SQL都多執行了TABLE ACCESS BY INDEX ROWID(通過ROWID訪問表) 這個步驟,因為返回的結果列中包括當前使用索引(qc_bh)中未索引的列(hbs_bh,xh_bz),而第3條SQL直接通過QC_BH返回了結果,這就是通過索引直接返回結果的方法。
如何重建索引
alter index 表電量結果表主鍵 rebuild
如何快速新建大數據量表的索引
如果一個表的記錄達到100萬以上的話,要對其中一個欄位建索引可能要花很長的時間,甚至導致伺服器資料庫死機,因為在建索引的時候ORACLE要將索引欄位所有的內容取出並進行全面排序,數據量大的話可能導致伺服器排序內存不足而引用磁碟交換空間進行,這將嚴重影響伺服器資料庫的工作。解決方法是增大資料庫啟動初始化中的排序內存參數,如果要進行大量的索引修改可以設置10M以上的排序內存(ORACLE預設大小為64K),在索引建立完成後應將參數修改回來,因為在實際OLTP資料庫應用中一般不會用到這么大的排序內存。
④ 資料庫表與表之間的關系
表與表之間一般存在三種關系,即一對一,一對多,多對多關系。
例如:一個人可以擁有多輛汽車,要求查詢某個人擁有的所有車輛。
分析:這種情況其實也可以採用 一張表,但因為一個人可以擁有多輛汽車,如果採用一張表,會造成冗餘信息過多。好的設計方式是,人和車輛分別單獨建表,那麼如何將兩個表關聯呢?有個巧妙的方法,在車輛的表中加個外鍵欄位(人的編號)即可。
例如:學生選課,一個學生可以選修多門課程,每門課程可供多個學生選擇。
分析:這種方式可以按照類似一對多方式建表,但冗餘信息太多,好的方式是實體和關系分離並單獨建表,實體表為學生表和課程表,關系表為選修表,其中關系表採用聯合主鍵的方式(由學生表主鍵和課程表主鍵組成)建表。
什麼是視圖?
在 SQL 中,視圖是基於 SQL 語句的結果集的可視化的表。
第一點:
使用視圖,可以定製用戶數據,聚焦特定的數據。
解釋:
在實際過程中,公司有不同角色的工作人員,我們以銷售公司為例的話,
采購人員,可以需要一些與其有關的數據,而與他無關的數據,對他沒
有任何意義,我們可以根據這一實際情況,專門為采購人員創建一個視
圖,以後他在查詢數據時,只需select * from view_caigou 就可以啦。
第二點:使用視圖,可以簡化數據操作。
解釋:我們在使用查詢時,在很多時候我們要使用聚合函數,同時還要
顯示其它欄位的信息,可能還會需要關聯到其它表,這時寫的語句可能
會很長,如果這個動作頻繁發生的話,我們可以創建視圖,這以後,我
們只需要select * from view1就可以啦~,是不是很方便呀~
第三點:使用視圖,基表中的數據就有了一定的安全性
因為視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以
將基表中重要的欄位信息,可以不通過視圖給用戶,視圖是動態的數據的集
合,數據是隨著基表的更新而更新。同時,用戶對視圖,不可以隨意的更改
和刪除,可以保證數據的安全性。
第四點:可以合並分離的數據,創建分區視圖
隨著社會的發展,公司的業務量的不斷的擴大,一個大公司,下屬都設有很
多的分公司,為了管理方便,我們需要統一表的結構,定期查看各公司業務
情況,而分別看各個公司的數據很不方便,沒有很好的可比性,如果將這些
數據合並為一個表格里,就方便多啦,這時我們就可以使用union關鍵字,
將各分公司的數據合並為一個視圖。
以上,就是我認為視圖的作用,實際上很多公司都使用視圖來查詢數據的。
內連接: 只連接匹配的行
SELECT * from gradeclass gc inner join grade g on gc.grade_id=g.Id,
左外連接: 包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行),以及右邊表中全部匹配的行
select * from grade g rigth OUTER JOIN gradeclass g on g.grade_id=gc.Id(這里的outer可以省略)
右外連接: 包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行),以及左邊表中全部匹配的行
select * from grade g rigth OUTER JOIN gradeclass g on g.grade_id=gc.Id(這里的outer可以省略)
全外連接: 包含左、右兩個表的全部行,不管另外一邊的表中是否存在與它們匹配的行。
交叉連接: 生成笛卡爾積-它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每個行都一一匹配
⑤ 判斷資料庫里的某個欄位的值是否為空
連接資料庫你應該會了吧我只些連接資料庫中的表<% set rs=server.creatobject("adodb.recordset")sql="select * from news"rs.open sql,conn,1,2%><input type="button" name="text1" value="<% if rs("attachment")<>"" then%> <%response.write("2")%><%else%><%response.write("1")%> <%end if%>">
⑥ 三調資料庫圖斑字母代表什麼
就是漢字的首字母大寫。
CCWJQ拆除未盡區,CJDCQ村界調查區,CJDCQJX村界調查區界線,CLKZD測量控制點,CSKFBJ城市開發邊界,CZCDYD城鎮村等用地,DGX等高線,DLTB地類圖斑,DZGY地質公園,FJMSQ風景名勝區,GCZJD高程注記點,GDDB耕地等別,GFBQ光伏板區,GJGY國家公園,JZKZD數字正射影像圖糾正控制點,KFYQ開發園區,LMFW路面范圍,LSYD臨時用地,PZWJSTD批准為建設用地,QTJZKFQ其他禁止開發區,SCZZBHQ水產種植資源保護區,SDGY濕地公園,SLGY森林公園,STBHHX生態保護紅線,TTQ推土區,WJMHD無居民海島,XZQ行政區,XZQJX行政區界線,YJJBNTTB永久基本農田,YYSSYD飲用水水源地,ZRBHQ自然保護區,ZRYCBHQ自然遺產保護區,ZYXMYD重要項目用地。
地類圖斑DLTB中的欄位有序號,欄位名稱,欄位代碼,欄位類型,欄位長度,約束條件。
⑦ 創建一個xxgc的資料庫請寫出sql語句
create database xxgc;
use xxgc