日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DM8与Oracle关于模式、用户等概念的分析

發(fā)布時(shí)間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DM8与Oracle关于模式、用户等概念的分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在學(xué)習(xí)達(dá)夢(mèng)數(shù)據(jù)庫(kù)時(shí)對(duì)達(dá)夢(mèng)的模式概念有些模糊,所以將它和Oracle的進(jìn)行了對(duì)比。

一、Oracle數(shù)據(jù)庫(kù)關(guān)于模式、用戶等概念的分析

Oracle數(shù)據(jù)庫(kù)是我行一直使用的數(shù)據(jù)庫(kù),相對(duì)來(lái)說(shuō)schema的概念比較清晰。先用官方解釋來(lái)闡述下,在來(lái)講講我的理解。

原文:A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database’s data.
  大意:模式是數(shù)據(jù)庫(kù)對(duì)象的集合。模式對(duì)象是數(shù)據(jù)庫(kù)數(shù)據(jù)的邏輯結(jié)構(gòu)。(把數(shù)據(jù)庫(kù)對(duì)象用模式分開(kāi)成不同的邏輯結(jié)構(gòu))。

schema里面包含了各種對(duì)象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links等。

在我的理解中,schema的個(gè)數(shù)和名字都和user相同,但是schema和user的創(chuàng)建時(shí)間是不同的。schema是不能通過(guò)創(chuàng)建得到的,默認(rèn)是在創(chuàng)建用戶的時(shí)候自動(dòng)生成的,在創(chuàng)建一個(gè)用戶的同時(shí)為這個(gè)用戶創(chuàng)建一個(gè)與用戶名同名的schema并作為該用戶的缺省 schema。一個(gè)用戶有一個(gè)缺省的schema,其schema名就等于用戶名,當(dāng)然一個(gè)用戶還可以使用其他的schema。如果我們?cè)L問(wèn)一個(gè)表時(shí),沒(méi)有指明該 表屬于哪一個(gè)schema中的,系統(tǒng)就會(huì)自動(dòng)給我們?cè)诒砩霞由先笔〉膕chema名。比如我們?cè)谠L問(wèn)數(shù)據(jù)庫(kù)時(shí),訪問(wèn)scott用戶下的emp表,通過(guò) select * from emp; 其實(shí),這sql語(yǔ)句的完整寫(xiě)法為select * from scott.emp。

在數(shù)據(jù)庫(kù)中一個(gè)對(duì)象的完整名稱為schema.object,而不屬user.object。類似如果我們?cè)趧?chuàng)建對(duì)象時(shí)不指定該對(duì)象 的schema,在該對(duì)象的schema為用戶的缺省schema。這就像一個(gè)用戶有一個(gè)缺省的表空間,但是該用戶還可以使用其他的表空間,如果我們?cè)趧?chuàng) 建對(duì)象時(shí)不指定表空間,則對(duì)象存儲(chǔ)在缺省表空間中,要想讓對(duì)象存儲(chǔ)在其他表空間中,我們需要在創(chuàng)建對(duì)象時(shí)指定該對(duì)象的表空間。

二、DM8數(shù)據(jù)庫(kù)關(guān)于模式、用戶等概念的分析

官方定義為:用戶的模式(SCHEMA)指的是用戶賬號(hào)擁有的對(duì)象集,在概念上可將其看作是包含表、視圖、索引和權(quán)限定義的對(duì)象。包含表、視圖、約束、索引、序列、觸發(fā)器、存儲(chǔ)過(guò)程/函數(shù)、包、同義詞、類、域等。

使用模式的主要原因:

  • 把數(shù)據(jù)庫(kù)對(duì)象組織成邏輯組,便于管理;
  • 允許多個(gè)用戶使用一個(gè)數(shù)據(jù)庫(kù)而互不干擾;
  • 不同的應(yīng)用可以放在不同的模式中,這樣可以避免和其它同類型對(duì)象的名稱沖突。
  • 可以使用如下語(yǔ)句查詢數(shù)據(jù)庫(kù)中所有模式:

    在DM中,一個(gè)用戶可以擁有多個(gè)模式,一個(gè)模式僅歸屬于一個(gè)用戶;一個(gè)模式中的對(duì)象(表、視圖等)可以被多個(gè)用戶使用(前提是有訪問(wèn)權(quán)限)。

    而這就是Oracle和DM最大的不同。

    如果要查看數(shù)據(jù)庫(kù)中所有模式分別歸屬于哪個(gè)用戶,可以使用如下語(yǔ)句查詢:

    使用如下語(yǔ)句可以查詢某模式(這里以TEST模式為名,模式名區(qū)分大小寫(xiě))下的所有數(shù)據(jù)庫(kù)對(duì)象:

    也可以在DM管理工具對(duì)象導(dǎo)航窗口查看模式下的所有對(duì)象,如下圖所示。在DM數(shù)據(jù)庫(kù)中,除模式對(duì)象之外,還有模式對(duì)象之外的其他對(duì)象,稱為非模式對(duì)象,比如:用戶、角色、表空間、目錄等。

    在創(chuàng)建用戶時(shí),系統(tǒng)會(huì)為每一個(gè)用戶自動(dòng)建立了一個(gè)與用戶名同名的模式作為其默認(rèn)模式,用戶還可以用模式定義語(yǔ)句建立其它模式。這一點(diǎn)也是和Oracle迥然不同的。

    在創(chuàng)建模式時(shí)也可以同時(shí)創(chuàng)建模式下對(duì)象,只有具有CREATE SCHEMA權(quán)限的用戶才能創(chuàng)建模式。圖形化如圖:

    或者用命令也可:

    create schema MYDM authorization test;

    如果我們不再使用某個(gè)模式,可以刪除該模式;使用如下語(yǔ)句刪除模式,默認(rèn)為RESTRICT方式(如果模式下存在對(duì)象則不能直接刪除,可以使用CASCADE級(jí)聯(lián)刪除模式及模式下的所有對(duì)象)。

    DROP SCHEMA <模式名> [RESTRICT | CASCADE];

    模式一旦定義,該用戶所建基表、視圖等均屬該模式,其它用戶訪問(wèn)該用戶所建立的基表、視圖等均需在表名、視圖名前冠以模式名;引用模式對(duì)象的格式如下:

    [模式名].對(duì)象名

    在當(dāng)前模式和要引用的模式對(duì)象所屬的模式相同時(shí),可以省略模式名。當(dāng)訪問(wèn)一個(gè)表時(shí),沒(méi)有指明該表屬于哪一個(gè)模式,系統(tǒng)會(huì)自動(dòng)在表前加上缺省的模式名。類似地,如果我們?cè)趧?chuàng)建對(duì)象時(shí)不指定該對(duì)象的模式,則該對(duì)象的模式為用戶的缺省模式。如果當(dāng)前模式和要引用的模式對(duì)象所屬的模式相同,可省略模式名。

    我們也可以使用如下語(yǔ)句指定某個(gè)模式為當(dāng)前模式(前提是該模式屬于當(dāng)前登錄用戶):

    SET SCHEMA <模式名>;

    如下樣例,我們使用SYSDBA查詢DMHR模式下的部門信息表,在未設(shè)置模式時(shí),默認(rèn)情況下,當(dāng)前模式是登錄用戶的同名模式(即SYSDBA),所以我們?cè)L問(wèn)DMHR模式下的表需要加上模式名;當(dāng)我們使用如下命令設(shè)置了當(dāng)前模式為DMHR時(shí),則訪問(wèn)DMHR模式下的表可以不必再加上模式名,簡(jiǎn)化了對(duì)象的訪問(wèn)。

    三、Oracle和DM8數(shù)據(jù)庫(kù)關(guān)于模式、用戶等概念的對(duì)比

    綜上所述,我們看出Oracle和DM之間在模式的這個(gè)定義上有所不同的:

    1)Oracle的話,一個(gè)用戶一般對(duì)應(yīng)一個(gè)schema,該用戶的schema名等于用戶名,并作為該用戶缺省schema。?而DM數(shù)據(jù)中一個(gè)用戶下可以存在多個(gè)schema。

    2)Oracle數(shù)據(jù)庫(kù)中不能新創(chuàng)建一個(gè)schema,要想創(chuàng)建一個(gè)schema,只能通過(guò)創(chuàng)建一個(gè)用戶的方法解決?。而DM數(shù)據(jù)庫(kù)中,在創(chuàng)建用戶時(shí),系統(tǒng)會(huì)為每一個(gè)用戶自動(dòng)建立了一個(gè)與用戶名同名的模式作為其默認(rèn)模式,并且用戶還可以用模式定義語(yǔ)句建立其它模式。

    3)Oracle數(shù)據(jù)庫(kù)不能刪除或者創(chuàng)建模式,而DM數(shù)據(jù)庫(kù)可以刪除或者創(chuàng)建模式。

    總結(jié)

    以上是生活随笔為你收集整理的DM8与Oracle关于模式、用户等概念的分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。