什么是模式(schema)
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)蒲縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
模式是一個(gè)邏輯容器,你可以把模式理解為文件夾,方便我們對一組數(shù)據(jù)庫對象進(jìn)行管理。通常,一個(gè)大的系統(tǒng)由許多小的系統(tǒng)組成,我們可以給每個(gè)小的系統(tǒng)創(chuàng)建一個(gè)模式,把該系統(tǒng)中用到的數(shù)據(jù)庫對象都創(chuàng)建在這個(gè)模式中。例如,每個(gè)公司都會有員工,我們可以創(chuàng)建一個(gè)模式 HR,然后在 HR 中創(chuàng)建一個(gè)表 EMPLOYEES 來維護(hù)員工信息,如果需要在其他模式中訪問 EMPLOYEES 表,我們需要指定它的全名 HR.EMPLOYEES。
模式對象
我們可以在模式中創(chuàng)建表(Table), 分區(qū)(Partition), 視圖(View), 索引(Indexe), 包(Package),存儲過程(Procedure),函數(shù)(Function),觸發(fā)起(Trigger),類型(Type), 序列(Sequence), 同義(Synonym)等數(shù)據(jù)庫對象。
創(chuàng)建模式
模式隸屬于某個(gè)數(shù)據(jù)庫用戶,模式名和數(shù)據(jù)庫用戶是相同的,那如何創(chuàng)建模式呢?呵呵,很簡單,其實(shí)就是創(chuàng)建數(shù)據(jù)庫用戶。
SYS 和 SYSTEM 模式
當(dāng)我們安裝 Oracle 的時(shí)候,系統(tǒng)自動幫我們創(chuàng)建了 SYS 和 SYSTEM 模式,它們擁有最高權(quán)限,用來管理數(shù)據(jù)庫,SYSTEM 比 SYS 提供了更多的表。
-- 更多參見:Oracle 精萃
-- 聲明:轉(zhuǎn)載請注明出處
-- Last edited on 2015-09-04
-- Created by ShangBo on 2015-09-04
-- End
從數(shù)據(jù)庫用戶角度看,數(shù)據(jù)庫中的數(shù)據(jù)是以表、視圖等方式儲存的。那么用戶自己是怎么創(chuàng)建表的呢?簡單的有兩種方式,一種是用戶可以在Oracle提供的SQL*Plus中使用CREATE TABLE語句創(chuàng)建表,也可以通過OEM圖形化工具創(chuàng)建表。
工具/材料
電腦
Oracle 10g
CREATE TABLE創(chuàng)建表
01
首先用戶必須要有CREATE TABLE系統(tǒng)權(quán)限,并且只能在自己的模式中創(chuàng)建表,圖中的例子使用CREATE TABLE語句在當(dāng)前模式中創(chuàng)建了一個(gè)共有5列的表:表的名稱為employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等為數(shù)據(jù)類型,括號里面為長度。
02
如果想要在其他模式中創(chuàng)建表,則必須在表名前加上模式名,并且用戶還要有CREATE ANY TABLE系統(tǒng)權(quán)限,例如圖中語句將在SYSTEM模式中創(chuàng)建employees1表
OEM創(chuàng)建表
01
在OEM主界面中選擇【管理】選項(xiàng)卡,進(jìn)入如圖所示的數(shù)據(jù)庫管理界面;然后在“數(shù)據(jù)庫對象”中單擊【表】選項(xiàng)。
02
系統(tǒng)進(jìn)入管理表界面,在該頁面中單擊【創(chuàng)建】按鈕,進(jìn)入如圖所示的“創(chuàng)建表的組織形式”界面。在該界面中用戶可以選擇創(chuàng)建的表類型---標(biāo)準(zhǔn)表、臨時(shí)表或索引表。
03
在選擇創(chuàng)建的表類型后,單擊【繼續(xù)】按鈕,進(jìn)入如圖所示的“創(chuàng)建表”界面。在“名稱”文本框中輸入要創(chuàng)建表的名稱。系統(tǒng)在“方案”文本框中顯示當(dāng)前模式,這表示新創(chuàng)建的表將屬于該模式。
04
在“創(chuàng)建表”頁面中選擇“約束條件”選項(xiàng)卡,進(jìn)入如圖所示的“表約束條件”頁面。該頁面中用戶可以為創(chuàng)建的表定義約束條件,包括主鍵約束(PRIMARY)、唯一約束(UNIQUE)、檢查約束(CHECK)和外鍵(FOREIGN)約束。
05
設(shè)置儲存參數(shù),選擇“儲存”選項(xiàng)卡,進(jìn)入如圖所示的儲存設(shè)置界面,最后保存表格,單機(jī)【確定】按鈕,系統(tǒng)會根據(jù)用戶對表的設(shè)置,創(chuàng)建一個(gè)新表。
oracle手動創(chuàng)建數(shù)據(jù)庫步驟如下所示:
1.編寫初始化參數(shù)文件
2.設(shè)置操作系統(tǒng)環(huán)境變量
3.創(chuàng)建實(shí)例
4.以管理員身份連接數(shù)據(jù)庫
5.啟動實(shí)例
6.create
database
創(chuàng)建數(shù)據(jù)庫
7.運(yùn)行數(shù)據(jù)字典腳本
8.Oracle的網(wǎng)絡(luò)配置
(客戶端連接到服務(wù)端)
初始化參數(shù)文件
從%ORACLE_HOME%\admin\sample\pfile從復(fù)制initsmpl.ora文件,并黏貼到$ORACLE_HOME%\database目錄下,改名為initsid假設(shè)改為initzhouyt.ora.(init為文本文件)
對initzhouyt.ora內(nèi)容進(jìn)行修改
新增參數(shù)
*
instance_name=zhouyt
*
db_domain=hdu.edu.cn
修改參數(shù)
*
db_name=zhouyt
*
db_block_size=8192(8kM)
*
remote_login_passwordfile=exclusive
操作系統(tǒng)環(huán)境變量
設(shè)置操作系統(tǒng)環(huán)境變量oracle_sid指向數(shù)據(jù)庫實(shí)例的名稱
set
oracle_sid=zhouyt
該命令在window
dos窗口下只對當(dāng)前有效,當(dāng)關(guān)閉窗口則失效,想要一直有效,則需要在系統(tǒng)環(huán)境變量中修改
創(chuàng)建實(shí)例
實(shí)用工具oradim使用
在DOS窗口輸入命令
oradim
-new
-sid
zhouyt
-intpwd
sys123(sys的密碼,sys是管理員)
-startmode
auto
sid是Oracle在操作系統(tǒng)中的“身份證號碼”
管理員身份連接數(shù)據(jù)庫
sqlplus實(shí)用工具登錄數(shù)據(jù)庫
在DOS命令輸入sqlplus/nolog
只是登錄狀態(tài)
以數(shù)據(jù)庫管理員身份連接數(shù)據(jù)庫
在上面的基礎(chǔ)上輸入命令
connect
sys/sys123
as
sysdba
因?yàn)橐?/p>
數(shù)據(jù)庫管理員身份
登錄可以
安裝數(shù)據(jù)庫
啟動實(shí)例
將文本初始化參數(shù)文件pfile轉(zhuǎn)化為二進(jìn)制初始化參數(shù)文件spfile
因?yàn)閿?shù)據(jù)庫啟動需要找到配置文件,默認(rèn)尋找二進(jìn)制文件,也可以手動啟動文本文件,那這一步就不需要了
輸入命令
create
spfile
from
pfile;
(將會報(bào)錯(cuò),因?yàn)槲谋疚募容^老相對于Oracle
10g),
這個(gè)時(shí)候我們需要修改配置文件initzhouyt.ora
這個(gè)時(shí)候在%ORACLE_HOME%\database文件下會生成SPFILEZHOUYT.ora文件
以nomount形式啟動實(shí)例
命令
startup
nomount,將會出現(xiàn)錯(cuò)誤,當(dāng)我們按照提示修改文本文件以后,如果我們還是按照startup
nomount來啟動的話,我們要生成相應(yīng)的二進(jìn)制文件來覆蓋舊的二進(jìn)制文件
并注釋%seed_control%
create
databae
創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫腳本
三個(gè)文件
控制文件
數(shù)據(jù)文件
重做日志文件
create
database
zhouyt
datafile
'C:\oracle\product\10.2.0\db_2\zhouyt\system_01.dbf'
size
100m
Autoextend
on
next
10m
maxsize
unlimited
sysaux
datafile
'C:\oracle\product\10.2.0\db_2\zhouyt\systemaux_01.dbf'
size
60m
Autoextend
on
next
10m
maxsize
unlimited
logfile
group
1
('C:\oracle\product\10.2.0\db_2\zhouyt\log_1_01.rdo')
size
10m,
group
2
('C:\oracle\product\10.2.0\db_2\zhouyt\log_2_01.rdo')
size
10m
character
set
zhs16gbk;
需要確保目錄文件"db_2\zhouyt"存在
生成兩個(gè)數(shù)據(jù)文件和兩個(gè)重做日志文件,那么控制文件呢?
運(yùn)行數(shù)據(jù)字典腳本
__數(shù)據(jù)庫創(chuàng)建后,系統(tǒng)會生成兩個(gè)管理員用戶sys和system
運(yùn)行3個(gè)數(shù)據(jù)字典腳本
catalog.sql
創(chuàng)建系統(tǒng)常用的數(shù)據(jù)字典視圖和同義詞
(sys登錄);
catproc.sql
建立PL/SQL功能的使用環(huán)境,還創(chuàng)建幾個(gè)PL/SQL包用于擴(kuò)展RDBMS功能
(sys登錄);
pupbld.sql
使用SQL*PLUS環(huán)境時(shí)需要
(system登錄)
在命令行輸入@
加腳本文件的絕對路徑
第二個(gè)腳本過程和第一個(gè)一樣
執(zhí)行第三個(gè)腳本需要切換到system用戶
connect
system/manager
@
C:\oracle\product\10.2.0\db_2\sqlplus\admin\pupbld.sql
創(chuàng)建scott模式
@
C:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\scott.sql
oracle在創(chuàng)建用戶(user)的時(shí)候自動創(chuàng)建一個(gè)同名的模式(schema),基本上,你不用區(qū)分模式和用戶,登錄用戶,也就是使用了該模式。
至于用戶(模式)下要創(chuàng)建哪些對象,這個(gè)得依據(jù)需求,做出概要設(shè)計(jì)才能確定。比如圖書表,工作人員表,學(xué)生表,圖書借閱記錄表是最基本的,然后還要有很多外圍的支持表(如各種代碼表)和視圖,以及若干存儲過程、觸發(fā)器等進(jìn)行數(shù)據(jù)處理和保持業(yè)務(wù)邏輯的完整性一致性,以及其它的一些OBJECTS。這些細(xì)節(jié)是在需求分析的基礎(chǔ)才能確定的。你這一句話太籠統(tǒng),暫時(shí)無法確定。
使用一個(gè)編輯器打開Store_schema.sql的腳本,如需要,可以修改system用戶的密碼。system用戶除具有普通用戶的其他權(quán)限之外,還具有創(chuàng)建新用戶和表的權(quán)限,其默認(rèn)的密碼是manager,如果system用戶密碼不是manager可以向DBA詢問正確的密碼。