詳解PowerDesigner之CDM、PDM、SQL之間轉(zhuǎn)換
詳解PowerDesigner之CDM、PDM、SQL之間轉(zhuǎn)換
前段時(shí)間用了下PowerDesigner做了一些輔助工作、在此特地小結(jié)一下:
有關(guān)CDM、PDM、SQL之間轉(zhuǎn)換以及不同數(shù)據(jù)庫(kù)之間庫(kù)表Sql的移植,首先要了解的是它們各自的用途、這里就簡(jiǎn)單的描述一下,不做詳細(xì)的解釋了。
CDM:概念數(shù)據(jù)模型。CDM就是以其自身方式來描述E-R圖。它不考慮物理實(shí)現(xiàn)的細(xì)節(jié),只表示數(shù)據(jù)庫(kù)的整體邏輯結(jié)構(gòu),獨(dú)立于任何軟件和數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。
PDM:物理數(shù)據(jù)模型??紤]了數(shù)據(jù)庫(kù)的物理實(shí)現(xiàn),包括軟件和數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),即:PDM與具體的數(shù)據(jù)庫(kù)有關(guān)。
下面做了個(gè)簡(jiǎn)單的例子,簡(jiǎn)述了CDM與PDM與Sql之間的轉(zhuǎn)換,以及從MySql如何轉(zhuǎn)成Oracle
一、MySql_DB——>PDM——>CDM——>Oracle_DB
意思是要將MySql中的庫(kù)表腳本轉(zhuǎn)成相應(yīng)的Oracle腳本;
所需要的過程是,首先將MySql中的Sql腳本轉(zhuǎn)成其相應(yīng)的MySql_PDM,然后由這個(gè)PDM再轉(zhuǎn)換成CDM,這時(shí)由于CDM是與具體的DBMS無關(guān)的、所以此時(shí)我們將CDM轉(zhuǎn)成Oracle_PDM,最后將這個(gè)Oracle_PDM導(dǎo)成OracleSQL文件。
上面的流程強(qiáng)調(diào)的是必須轉(zhuǎn)成CDM先,因?yàn)镃MD不同于PDM,它是與DBMS無關(guān)的、只表示數(shù)據(jù)庫(kù)的整體邏輯結(jié)構(gòu)。
具體操作如下:
首先安裝PowerDesigner
安裝完成后、在數(shù)據(jù)庫(kù)中
創(chuàng)建好表(當(dāng)然這里測(cè)試用的MySql,這里只簡(jiǎn)述其中一個(gè)表了,比方說此時(shí)我們已經(jīng)有了該數(shù)據(jù)庫(kù)表的Sql腳本文件了,當(dāng)然也可以在PowerDesigner進(jìn)行連接的。)
打開PowerDesigner然后依次選擇
File——>Reverse Engineer——>Database
選擇相應(yīng)的數(shù)據(jù)庫(kù)類型(這里測(cè)試用的是Mysql5.0):
然后選擇Using Script File
點(diǎn)擊確定后將產(chǎn)生相應(yīng)的MySql_PDM:
然后選擇Tool——>Generate Conceptual Data Model
或者是快捷鍵:Ctrl+Shift+C
PowerDesigner 中的快捷鍵大致是:
PDM 即:Ctrl+Shift+P
CDM 即:Ctrl+Shift+C
OOM 即:Ctrl+Shift+O
即根據(jù)字母來生成;
SQL腳本:Ctrl+G
得到CDM后我們就可以將CDM轉(zhuǎn)為相應(yīng)DBMS的PDM,即:快捷鍵Ctrl+Shift+P (這里我們要生成的是Oracle,所以選擇了Oracle1g),
如下圖所示
點(diǎn)擊確定后生成了Oracle_PDM
這時(shí)只要使用快捷鍵Ctrl+G即可將Oracle_PDM轉(zhuǎn)成Oracle腳本sql文件。
生成成功后,唯一點(diǎn)不足是:存儲(chǔ)過程、觸發(fā)器等這些的轉(zhuǎn)換,正在摸索中。暫時(shí)還沒實(shí)現(xiàn)。
如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
java基本教程之synchronized關(guān)鍵字 java多線程教程
這篇文章主要介紹了java的synchronized原理、synchronized基本規(guī)則、synchronized方法 和 synchronized代碼塊、實(shí)例鎖和全局鎖2014-01-01java連接SQL?Server數(shù)據(jù)庫(kù)圖文教程(自用)
在Java應(yīng)用程序中,我們經(jīng)常需要與數(shù)據(jù)庫(kù)進(jìn)行交互,下面這篇文章主要給大家介紹了關(guān)于java連接SQL?Server數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06SpringBoot詳解shiro過濾器與權(quán)限控制
當(dāng)shiro被運(yùn)用到web項(xiàng)目時(shí),shiro會(huì)自動(dòng)創(chuàng)建一些默認(rèn)的過濾器對(duì)客戶端請(qǐng)求進(jìn)行過濾。比如身份驗(yàn)證、授權(quán)的相關(guān)的,這篇文章主要介紹了shiro過濾器與權(quán)限控制2022-07-07SpringSecurity學(xué)習(xí)之自定義過濾器的實(shí)現(xiàn)代碼
這篇文章主要介紹了SpringSecurity學(xué)習(xí)之自定義過濾器的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01MyBatisPlus代碼生成器的原理及實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了MyBatisPlus中代碼生成器的原理及實(shí)現(xiàn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)MyBatisPlus有一定幫助,需要的可以參考一下2022-08-08SpringBoot實(shí)現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼
在實(shí)際項(xiàng)目開發(fā)過程中,我們經(jīng)常將返回?cái)?shù)據(jù)的基本形式統(tǒng)一為JSON格式的數(shù)據(jù)。但項(xiàng)目可能是由很多人開發(fā)的,所以我們最好將返回的結(jié)果統(tǒng)一起來。本文介紹了SpringBoot實(shí)現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼,需要的可以參考一下2022-06-06