第一篇:大型數據庫技術教案01
課
題
概述
目的要求
1、了解Oracle產品簡史,學習大型數據庫技術課程的意義。
2、了解網格計算的概念及特點及其在數據庫中的技術應用。
3、理解數據庫管理的主要工作內容。
教學重點
1、Oracle產品簡史,網格計算的概念和特點
2、Oracle Database 10g系統特點,數據庫技術特點
3、數據庫管理員的關鍵任務
教學難點
網格計算的概念和特點
教學課時
教學方法
大屏幕投影、PowerPoint幻燈課件
教學內容與步驟
1.1 Oracle產品簡史 1.2 網格計算的概念和特點 1.3 Oracle Database 10g系統特點 1.4 數據庫技術特點
1.5 數據庫管理員的工作任務 教學過程
導入語:Oracle Database 10g產品把我們帶入了網格計算時代。Oracle Database 10g是由Oracle公司推出的數據庫系統,本書將全面介紹Oracle Database 10g數據庫系統的功能特點。據統計,Oracle在全球數據庫市場上的占有率超過三分之一,多年來持續性地雄踞全球數據庫市場霸主地位。我國于1987引進了Oracle系統,當前,Oracle公司在中國的業務取得了迅猛發展,贏得了國內許多行業主管部門、應用單位和合作伙伴的廣泛信任和支持,確立了在中國數據庫和電子商務應用市場的絕對領先優勢。1 Oracle產品簡史 × 25 = 500
Oracle,甲骨文自20世紀70成功推出Oracle產品以來,它成為世界上最大的數據庫專業廠商之一。1996年,Oracle公司成功推出了專門面向中國市場的數據庫產品,即Oracle 7。1997年,Oracle公司推出了基于網絡計算的數據庫產品,即Oracle 8。1999年,針對Internet技術的發展,Oracle公司推出了第一個基于Internet的數據庫,即Oracle 8i。2001年,Oracle公司又推出了新一代Internet電子商務基礎架構,即Oracle 9i。2003年9月,Oracle公司發布了其最新數據庫產品,即Oracle Database 10g。網格計算的概念和特點
圍繞網格計算,本節講述兩個方面的內容,首先講述網格計算的概念,然后探索網格計算的基本特點。
背景介紹:企業IT不斷承受使用越來越少的資源做好越來越多事情的壓力。同時,為了應付計算需求的不可預測性和即時性,公司一般擴大服務器規模來適應高峰負載。
為了解決這些問題,出現了一種新的計算模型,即網格計算模型。但是也有其他說法:
按需計算(computing on demand)自適應計算(adaptive computing)效用計算(utility computing)托管計算(hosted computing)有機計算(organic computing)泛在計算(ubiquitous computing)網格計算的概念:核心思想是計算應當和公用設施一樣可靠、深入和透明。網格計算的目標是使計算成為一項公用設施—— 一種無處不在的數據日用品。網格計算基礎架構的5個特點
? 每一層計算堆棧上的虛擬化;
? 根據策略和動態需求來提供工作和資源; ? 集中資源以提高利用率; ? 自我調整和修補的自適應軟件; ? 統一管理和供應。Oracle Database 10g系統特點 × 25 = 500
Oracle Database 10g提供了4個版本,每一個版本適用于不同的開發和部署環境。除了Oracle Database 10g系統之外,Oracle還提供了另外幾種數據庫產品,這些針對特殊應用需求的數據庫產品大大增強了Oracle Database 10g 的功能。
本節從版本類型、可選產品和Oracle管理程序包了個方面來介紹Oracle Database 10g系統的特點。
在服務器集群上運行和調整全部應用負載的獨特能力是企業網格的重要基礎。利用兩個主要的新功能使得管理集群數據庫變得更加容易:集成的集群件/自動工作負載管理 4 數據庫技術特點
本節從數據庫和實例、表、視圖、索引、數據存儲、數據保護、可編程的結構等幾個方面概括介紹Oracle Database 10g系統的技術特點。
數據庫:每一個Oracle數據庫都是一個數據的集合,這些數據包含在一個或多個文件中。數據庫有物理和邏輯兩種結構。
Oracle實例:由被稱為系統全局區(system global area,SGA)的內存區域和相應的后臺進程組成。這些后臺進程負責SGA和數據庫磁盤文件之間的交互。表:在Oracle數據庫中,表是最基本的結構。Oracle Database 10g系統支持多種類型的表,這些表包括關系表、對象關系表、索引編排表、外部表、分區表、物化視圖、臨時表、群集表、刪除的表。
視圖:可以使用視圖訪問表中的數據。視圖可以處理連接和聚集、限制返回的數據行、更改顯示的列名稱等。在Oracle Database 10g系統中,視圖既可以是只讀的,也可以是可更新的,既可以引用本地表,也可以引用遠程表。
索引:為了提高對表中數據的訪問效率,Oracle系統支持多種類型的索引,這些索引包括B樹索引、位圖索引、反轉鍵值索引、基于函數的索引、分區索引、文本索引等。
數據存儲:數據庫中的所有邏輯結構都必須存儲在數據庫中的某個地方。Oracle系統提供了一個記錄與所有對象相關的元數據的數據字典。對于需要物理空間保存的對象,Oracle系統會在一個表空間中為其分配空間。
表空間由一個或多個文件組成,數據文件可能是表空間的全部,也可能是一個表空間的一部分。× 25 = 500
數據保護:在Oracle系統中,可以完全控制數據的訪問權限。可以為用戶授予執行select、update等特定操作所需要的權限。可以對角色授權,然后把角色授予用戶,從而簡化權限的管理。
可編程的結構:SQL語言是操縱數據庫的最基本的方法。
可以使用PL/SQL創建存儲過程和函數,可以在查詢中調用已創建的函數,過程和函數可以集中存放在程序包中。可以使用PL/SQL創建觸發器,用于通知數據庫當不同的事件發生時應該分別采取什么樣的操作。5 數據庫管理員的工作任務
在Oracle系統中,數據庫管理員(database administrator,DBA)是最重要的角色。DBA的工作目標是確保Oracle系統正常高效的運行。DBA的工作是最繁忙的,無論是性能調整,還是災難恢復,都離不開DBA的支持。一般情況下,作為一個DBA,應該做好下面12項任務。
安裝和配置;容量規劃;應用架構設計;管理數據庫對象;存儲空間管理;安全管理;備份和恢復;作業調度;網絡管理;高可用性和高可伸縮性管理;故障解決 × 25 = 500
第二篇:銀行通用大型數據庫
銀行通用大型數據庫---Db2 日常實用操作 收藏
怎么沒人發DB2啊,我記得我剛參加工作時面試,有一個問題是“你用過什么大型數據庫?”,我當時還搞不清什么叫大型,就順便說了FOX,ACCESS,主考的人看著我的,用一句歌詞來形容就是”得意的笑,他得意的笑“,也幸好去面試的只有一個人說了個INFORMIX,我才在公司學了DB2,學了 INFORMIX,學了SOCKET,哈,看著公司一年有十億RMB的進賬,看著我每月薪水都在一把(一把是一百張,一張是一百元,哈)以上,真是感慨良多啊!哈,幸好是走過來了!
先貼點基礎的,可別小看,這是你以后的基礎,就像現在IBM搞培訓,不到一周時間,會講600M的文檔,知識點也就講個名字,要不老師會累死,哈!
以下是正文:
1、Load 方法裝入數據:
export to tempfile of del select * from TABLENAME where not 清理條件; load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
說明:
在不相關的數據表export數據時,可以采取并發的形式,以提高效率;
TABLENAME指待清理table的名稱;
modified by delprioritychar防止數據庫記錄中存在換行符,導致數據無法裝入的情況;replace into對現數據庫中的內容進行替換,即將現行的數據記錄清理,替換為數據文件內容;
nonrecoverable無日志方式裝入;
2、查找當前的應用:
db2 list application |grep DBSNAME;
3、刪除當前正在使用的application:
db2 “force application(Id1,Id2,Id3)”
Id1,Id2,Id3 是List顯示的應用號;
4、查看當前應用號的執行狀態:
db2 get snapshot for application agentid 299 |grep Row5、查看數據庫參數:
db2 get db cfg for
6、修改數據庫的Log數據:
db2 update db cfg using <參數名> <參數值>、Db2Stop Force的用法:
在進行Bind的時候出現如下錯誤:
SQL0082C An error has occurred which has terminated processing.SQL0092N No package was created because of previous errors.SQL0091N Binding was ended with “3” errors and “0” warnings.主要是表文件被加鎖,不能繼續使用;
在進行stop的時候報錯:db2stop
8/03/2005 21:46:53 0 0SQL1025N The database manager was not stopped because databases are still active.SQL1025N The database manager was not stopped because databases are still active.需要使用如下命令可以解決這個問題: db2stop force
08/03/2005 21:47:4900SQL1064N DB2STOP processing was successful.SQL1064N DB2STOP processing was successful.然后啟動數據庫db2start,連接數據庫db2s后,重新進行bind即可。
8、緩沖池參數修改:
db2 alter bufferpool ibmdefaultbp size 10240
查看本表的數據內容如下:
db2 “select * from syscat.bufferpools”;
9、DB2 日志處理:
DB2日志是以文件的形式存放在文件系統中,分為兩種模式:循環日志和歸檔日志。當創建新數據庫時,日志的缺省模式是循環日志。在這種模式下,只能實現數據庫的脫機備份和恢復。如果要實現聯機備份和恢復,必須設為歸檔日志模式。目前在綜合業務系統中,設置的均是歸檔日志模式;其它系統(如事后監督、經營決策、中間業務等)一般都設置為循環日志模式。至于采用何種模式,可以通過修改數據庫配置參數(LOGRETAIN)來實現: 歸檔日志模式:db2 update db cfg for
必須按照以下正確的步驟進行操作:要求必須使用DB2命令PRUNE進行清理,不建議使用rm命令刪除。刪除前應保證應用已停止(即聯機已下來)。查看當前使用的日志文件目錄及第一活動日志文件用 “db2 get db cfg for
$ db2 connect to
$ db2 prune logfile prior to S???.LOG
注:S???.LOG為查看到的第一活動日志文件。此命令可以將當前第一活動日志文件之前的歸檔日志文件全部刪除。
11、如何清理db2diag.log文件
db2diag.log,是用來記錄DB2數據庫運行中的信息的文件。可以通過此文件,查看記錄的有關DB2數據庫詳細的錯誤信息。此文件也是不斷增大的,需要定期進行清理。可以通過查看實例的配置參數DIAGPATH,來確定db2diag.log文件是放在哪個目錄下:db2 get dbm cfg 如果Diagnostic data directory path(DIAGPATH)= /home/db2inst1/sqllib/db2dump,則此文件是放在/home/db2inst1/sqllib/db2dump目錄下。當文件系統/home的使用率達到80%-90%左右時,應及時刪除db2diag.log文件。請按以下正確步驟操作:確認應用(如BTP)、DB2已經停止。將原db2diag.log文件備份到其它文件系統下。刪除db2diag.log文件。刪除后,DB2會自動創建一個新的文件。
12、Load 操作
在進行load的時候
db2 “load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
由于數據不規范出現錯誤,強行中斷以后,進行操作的時候出現如下錯誤:
SQL0668N Operation not allowed for reason code ”3“ on table ”BTP.ACMMST“.SQLSTATE=57016
此時,進行反方向操作即可:
db2 ”load from /dev/null of del terminate into acmmst nonrecoverable“。
如果沒有使用參數nonrecoverable,則會出現數據庫狀態不正確的情況,使用:
db2 list tablesapces show detail 查看狀態,如果不是正常狀態,則脫機狀態進行備份即可。
兩個表文件之間UPDATE的方法:
db2 ”update cdmcrd set offset =(select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno)where cdmcrd.crdno in(select cdmlsl.crdno from cdmlsl)
13、多字段條件查詢和修改:
表A中的字段有actno, cnlno,bal,pwd;表B中的字段為Actno,Cnlno,TxnAmt;目的是將A表中的bal修改為B表中的TxnAmt,命令:
db2 “update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno)where A.actno||A.cnlno in(select Actno||cnlno from B);
14、多條件匹配查詢
查詢某個表中條件是B?AAA的記錄:
db2 ”select * from A where actno like 'B_AAA%'“.查詢數據中存在某些字符的記錄:
db2 ”select * from A where actno like '%-AAA%“.15/數據庫恢復的處理
進行數據庫恢復的時候使用以下的命令:
restore db db1 to /tstdb2/catalog into db newlogpath /tstdb2/db2log buffer 2048
replace existing redirect parallelism 16;
set tablespace containers for 1 using(path '/tstdb2/db2tmp');
set tablespace containers for 2 using
(device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440);
restore db db1 continue;
恢復完成以后執行命令db2s時報如下的錯誤:
P570:>db2s
SQL1117N A connection to or activation of database ”DB" cannot be made because of ROLL-FORWARD PENDING.SQLSTATE=57019
DB21034E The command was processed as an SQL statement because it
was not a
valid Command Line Processor command.During SQL processing it returned:
SQL1024N A database connection does not exist.SQLSTATE=08003 解決辦法如下:
P570:>db2 rollforward db db to end of logs and complete
Rollforward Status
Input database alias= db
Number of nodes have returned status= 1
Node number= 0
Rollforward status= not pending
Next log file to be read=
Log files processed=-
Last committed transaction= 2005-11-20-10.59.23.000000
DB20000I The ROLLFORWARD command completed successfully.
第三篇:數據庫教案
任務引入 [4分鐘]
布置任務 [4分鐘] 任務分析 [6分鐘] 任務實施 [35分鐘]
在手機商城中,當用戶注冊時,要填寫用戶注冊表單,那么,我們填寫的數據就要保存在后臺數據庫中,當注冊成功后用戶登
錄時,就可以直接從后臺數據庫的注冊信息進行信息驗證。現在,教師引導 我們就在MOBILE數據庫中創建一個用戶注冊的數據表吧。
任務:
在MOBILE數據庫中創建數據表,并為表中各列設置恰當 的數據類型,設置主鍵。
要完成手機商城數據庫中數據表創建,可按照前面設計階段 的各表結構建立相關數據表,并按照設計階段的分析為表中各列 設置恰當的數據類型以及設置主鍵。
一、使用MySQL界面方式創建手機商城數據庫中的數據表。學生操作 具體見任務書
教師指導
二、使用SQL命令創建數據表。
(商品大類別表)CREATE TABLE class
(復習數據classID INT PRIMARY KEY, 類型 classNAME CHAR(20)NULL);
三、修改表
ALTER TABLE用于更改原有表的結構。例如,可以增加或 刪減列,創建或取消索引,更改原有列的類型,重新命名列或表,還可以更改表的評注和表的類型。
語法格式:
ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification]...相關知識 [13分鐘] alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
/*添加列*/
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
/*修改默認值*/
| CHANGE [COLUMN] old_col_name column_definition
/*對列重命名*/
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
/*修改列類型*/
| DROP [COLUMN] col_name /*刪除列*/
| RENAME [TO] new_tbl_name
/*重命名該表*/
| ORDER BY col_name
/*排序*/
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] /*將字符集轉換為二進制*/
|
[DEFAULT]
CHARACTER
SET
charset_name [COLLATE collation_name]
/*修改默認字符集*/
| table_options
| 列或表中索引項的增、刪、改
四、復制表 語法格式:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[()LIKE old_tbl_name [ ] ]
| [AS(select_statement)];說明:
學生練習
學生練習[25分鐘] 小結 [3分鐘]
使用LIKE關鍵字創建一個與old_table_name表相同結構的新表,列名、數據類型、空指定和索引也將復制,但是表的內容不會復制,因此創建的新表是一個空表。使用AS關鍵字可以復制表的內容,但索引和完整性約束是不會復制的。select_statement表示一個表達式,例如,可以是一條SELECT語句。
完善表的設計,并輸入記錄數據。
本次課我們學習了創建數據表的另一種方法,以及表的修改和復制等方法,同學們要在課后多加練習。
第四篇:數據庫教案
任務引入 [4分鐘]
請同學們回憶在設計關系時定義了哪些主鍵? 引導學生思考:
學生瀏覽相關資料
有的關系中的某些字段是需要參考另外一個關系中的主鍵,布置任務 [4分鐘] 任務實施 [45分鐘]
相關知識 [34分鐘]
怎樣在MySQL中實現這些?
任務:正確設置相關表的主鍵、外鍵等約束,部分實現表的數據完整性。
實施步驟:
1.教師將學生分組,每個小組經商討后,進一步明確需在表中實現的數據完整性。
2.小組成員先嘗試實現主鍵約束;再嘗試實現外鍵約束、UNQUE約束、CHECK約束、默認值等。3.學生訪問參考網址,自行搜索所需資料:
http://www.tmdps.cn http://www.tmdps.cn ……
4.在實現過程中,教師提示引導同學們參考教材,最后整理設計結果并形成文件,上交到指定位置。相關知識
二、數據的完整性
數據庫完整性就是確保數據庫中數據的一致性和正確性。MySQL通過各種約束、默認值、規則等數據庫對象來保證數據庫的完整性。
1.約束
(1)PRIMARY KEY約束
表的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。
教師引導
學生分組
學生討論
主鍵是在創建表時進行創建的,添加到表中還沒有創建主鍵 約束的數據表中,一個表只能有一個PRIMARY KEY約束。如 果已經創建了一個PRIMARY KEY約束,則可以對其進行修改或刪除。在一個表中,不能有兩行包含相同的主鍵值。不能在主鍵內的任何列中輸入NULL值。
(2)FOREIGN KEY約束
FOREIGN KEY約束標識表之間的關系,用于強制參照完整性,為表中一列或者多列數據提供參照完整性。
FOREIGN KEY作為表定義的一部分在創建表時創建。如果FOREIGN KEY約束與另一個表(或同一表)已有的PRIMARY KEY約束或UNQUE約束相關聯,則可向現有表添加FOREIGN KEY約束。一個表可以有多個FOREIGN KEY約束。可以對已有的FOREIGN KEY約束進行修改或刪除。
(3)UNQUE約束
實施實體完整性。確保在非主鍵列中不輸入重復的值。想要強制一列或多列組合的唯一性時使用該約束而不是PRIMARY KEY約束,可以對一個表聲明多個UNIQUE約束,且允許NULL值。
(4)CHECK約束
CHECK約束通過限制用戶輸入的值來加強域完整性。它指定應用于列中輸入的所有值的布樂搜索條件,拒絕所有不取值為TRUE的值。可以為每列指定多個CHECK約束。
(5)列約束和表約束
約束可以是列約束和表約束。列約束被定為列定義的一部分,并且僅適用于那個列,表約束的聲明與列的定義無關,可以適用于表中一個以上的列。當一個約束中必須包含一個以上的列時,必須使用表約束。
2.默認值
在設計表結構時可根據需要為某列設置默認值,也可以創建默認值對象并綁定到某一列。
小結 [3分鐘]
本次課我們了解了B2C網站應該具有的會員在線訂購功能及流程,并且設計了結構合理的數據表,存儲相關信息。
第五篇:電子商務數據庫技術重點
數據庫的建立:CREATE DATABASE<數據庫名>; 刪除: DROP DATABASE<數據庫名>
基本表的定義:EATE TABLE[<數據庫名>]<表名>;刪除DROP TABLE[<數據庫名>]表名
修改:a增加屬性:ALTER TABLE[<數據庫名>]表名ADD
B刪除屬性:ALTER TABLE[<數據庫名>]表名DROP
3)視圖的定義:REATE VIEW 視圖名AS SELECT語句;刪除:DROP VIEW 視圖名
4)索引的定義:CREATE [UNIQUE] INDEX 索引名ON;刪除DROP INDEX 索引名
8SQL查詢1)“*”為通配符,表示查找FROM中所指出關系的所有屬性的值
1、表、視圖、索引的定義及使用:(1)基本表的定義:create table 〔﹤數據庫名﹥.〕﹤表名﹥(﹤列名﹥ 數據
類型 ﹝缺省值))eg.建一個學生情況表(student)create table student st-class chat(8),st-no char(10),……(2)視圖的定義:create view 視圖名 as select 語句eg.從基本表student和score中導出只包括女學生且分數在60分以上的視圖create view woman-score as select student.st-class,student.st-no,student.st-name,student.st-age,score.sc-score from student.score where student.st-sex=“女”and score.sc-score>=60 and student.st-no=score.st-no(3)索引的定義:create 〔unique〕index索引名on〔﹤數據庫名﹥.〕表名(列名〔ASC/DESC〕,列名〔ASC/DESC〕…)eg.對基本表student中的st-no和st-age建立索引,分別為升序與降序,且索引值不允許重復create unique index stindex on student(st-no ASC,st-age DESC)
2、SQL查詢語言的主要應用:(1)無條件查詢例子:找出所有學生的選課情況select st-no,su-nofrom score
(2)條件查詢例子:找出任何一門課成績在70分以上的學生情況、課號及分數select unique student.st-class,student.st-no,student.st-name,student.st-sex,student.st-age,score.su-no,score.scorefrom student,scorewhere score.score>=70 and score.stno=student.st-no(3)排序查詢例子:查詢不及格的課程,并將結果按照課程號從大到小排列select unique su-nofrom scorewhere score<60 oeder by su-no desc(4)嵌套查詢例子:查詢課程編號為c03且課程成績在80分以上的學生的學號、姓名select st-no,st-name from student where stno in(select st-no from score from score where su-no=’c03’and score>80)(5)計算查詢常用函數有:count(*)計算元組的個數;count(列名)對某一列中的值計算個數;sum(列名)求某一列值的總和(此值是數值型);avg(列名)求某一列的平均值;max(列名)求一列中的最大值;min(列名)求一列中的最小值例子:求男學生的總人數和平均年齡select count(*),avg(st-age)from student where st-sex=’男’
3、SQL數據的主要插入、刪除、修改操作:(1)數據插入:將數據插入SQL的基本表有兩種方式,一種是單元
組的插入,eg:向基本表score中插入一個成績元組(100002,c02,95)insert into score(st-no,su-弄,score)values(’100002’,’c02’,95);另一種是多元組的插入;(2)數據刪除:單元組的刪除 eg,把學號為100002的學生從學生表student中刪除delete from student where st-no=’100002’;多元組的刪除eg,把學號為100002的成績從表score中刪除delete from score where st-no=’100002’ ;帶有子查詢的刪除操作eg.刪除所有不及格的學生記錄delete from student where st-no in(select st-no from score where score<60)(3)數據修改eg.把c02的課程名改為英語 update subject set su-subject=’英語’ where su-no=’c02’