1. 程式人生 > >Visio2010建立ER圖並直接匯出為SQL語句

Visio2010建立ER圖並直接匯出為SQL語句

        建立資料庫時我們需要考慮資料之間的關係,為了理清資料之間的關係我們需要對資料進行統一的整理。對於較複雜的資料庫我們需要建立資料庫模型,具體可分為兩步:首先對資料庫進行結構分析並使用樹、表等描述資料,然後分析資料庫的操作方法,規定資料庫的增刪改查操作,這兩個步驟就構成了我們通常所說的資料庫模型。

        資料庫模型有多重分類,通常所說的ER圖是圖模型,除此之外還有層次模型、網狀模型、關係模型等。這其中比較簡單的當數ER圖,也稱實體-聯絡圖(Entity RelationshipDiagram),它提供了表示實體型別、屬性和聯絡的方法,用來描述現實世界的概念模型。一般的ER圖畫法是採用圓、正方形、菱形來描述實體及他們之間的關係,這三者在圖中分別代表了屬性、實體、聯絡,如下圖為一般ER圖。


        對ER圖進行建模時提倡使用PowerDesigner(功能強大,形式多樣),因為PowerDesigner能夠直接將ER圖匯出為T-SQL程式碼。PowerDesigner能夠做到Visio就不能嗎?其實Visio本身沒有太大的毛病,而且操作簡單,但是功能相對較少和其他開發程式互動較弱。

一、Visio繪製ER圖

      1、Visio繪製一般的ER圖

        Visio沒有提供專門的模板來繪製一般的ER圖,有一種比較折中的辦法:先在“更多形狀”-->“流程圖”-->“基本流程圖”中找到長方形和菱形,分別右鍵“新增到我的形狀”-->“新增到新模具”

在彈出的對話方塊中填入“ER圖”,這樣我們就把菱形和方塊新增到了新模具“ER圖”中。用同樣的思路,在“資料庫”-->“ORM圖表”找到橢圓和直線,新增到模具“ER圖”中。

       新增完成後,我們就可以在畫ER圖時開啟該模具(檔案->形狀->開啟模具),ER圖所有的元素都會在一個模具中顯示出來了。

     2、用Visio自帶的資料庫模型模型圖畫ER圖

        Visio提供了兩種形式繪製ER圖,一種是通過資料庫選項卡內的反向工程,它通過Visio和其他資料庫驅動器進行互動,將已有的資料庫架構轉換為ER圖;另一種是通過圖形工具自己建立ER圖。下面以一個收費系統的資料庫的ER圖為例,為大家介紹visio繪製ER圖的方法。

       開啟Visio後選擇“檔案”-->“新建”-->“軟體和資料庫”,然後雙擊建立資料庫模型圖。建立後的控制面板左邊分別有三個針對資料庫ER模型的七個專用工具,最常用的是最上面的兩個分別代表了資料庫表及外來鍵關係。操作簡單在使用時只需將實體拖到頁面上,隨後會在下面出現數據庫屬性,在其中新增或修改資料表的一些屬性。

        可以通過更改實體的屬性進行增加列、設定列資料型別、設定主鍵等功能。下圖建立了一個名為T_Admin的實體,主鍵為chSerial。

          提示:如果想實體圖顯示實體的資料型別,可以通過資料庫----管理----顯示選項----表----資料型別---顯示物理的,進行設定 。

        實體間的關係,在visio中有兩種表示表示方法;分別為下圖所示:

                    

        visio預設為第一種形式,箭頭的指向為實體的父表。可以通過資料庫----管理----顯示選項----文件----同時選中關係和魚尾紋進行設定改變為第二種顯示方式。

        使用關係連線線連線後,會自動生成外來鍵。生成的外來鍵會在從表中自動建立父表中的主鍵列,可通過“資料庫屬性”----“定義”----選中兩表中相互關聯的列----“斷開連線”來斷開列,同樣也可以使用該方法來連線兩表中的列作為外來鍵。效果圖如下圖所示:

 


       使用Visio畫的ER圖基本的操作步驟已介紹完畢,在使用Visio建模時一定要細心,在畫圖前期一定要分析好每個實體及實體屬性的命名規範。

       上面的方法是通過使用圖形工具來自己建立ER圖,另外一種方法是通過“資料庫”----“反響工程”自動生成某個資料庫的ER圖,操作簡單、方便,建議大家使用下並和自己建立的ER圖進行比較來糾正自己的使用誤區。

二、Visio資料庫模型圖匯出成SQL指令碼

        Visio沒有提供直接的匯出方法,想要將畫好的ER圖匯出為SQL指令碼只依賴Visio是遠遠不夠的,而要使用其他工具。一種方法是使用Visio的匯入/匯出功能,將模型圖匯出為ERwin檔案,然後使用PowerDesigner或者ERwin開啟,最後轉換為SQL即可,但是這種方法在Visio2010中已不存在,Visio2010不支援將ER圖匯出為ERwin格式,只支援匯入。這就需要我們的第二種方法。

       另外一種方法是使用OrthogonalToolBox小工具,它是專門負責VisioER轉出的小工具,這個工具會通過XSLT模板來產生對應的SQLScript。

 使用方法:

       2.把下載下來的xslt文件Copy到:C:\Program Files(X86)\OrthogonalSoftware Corporation\Orthogonal Toolbox\StyleSheets;

       3.若在Visio工具列沒有看到OrthogonalToolbox,在目前的工具列上檢視 - 工具列 – OrthogonalToolbox 打勾,便可看到;

      4. 選擇“載入項”-->“OrthogonalToolbox”-->選中需要匯出的ER圖-->“Export XML”-->選中Set StyleSheet-->並選中OTERtoSQL.xslt模板


       5.按下 Export會產生一個xml檔案,使用IE開啟該XML檔案即可看見我們建立資料庫的SQL指令碼。

      有問題就會有解決方法,我們需要耐心去找到它,有時幾分鐘,有時甚至幾小時又或者幾天,解決問題的關鍵在於是否有耐心,在這個過程中學到的知識比結果更重要。

相關推薦

Visio2010建立ER直接匯出SQL語句

        建立資料庫時我們需要考慮資料之間的關係,為了理清資料之間的關係我們需要對資料進行統一的整理。對於較複雜的資料庫我們需要建立資料庫模型,具體可分為兩步:首先對資料庫進行結構分析並使用樹、表等描述資料,然後分析資料庫的操作方法,規定資料庫的增刪改查操作,這兩個步

頁面直接匯出PDF檔案,支援分頁與頁邊距

將WEB頁面直接匯出為pdf檔案是經常會用到的一個功能,尤其是各種報表系統。總結了一下目前幾種主流的做法: 在後端用程式碼生成pdf檔案,比如iText一類; 在後端抓取頁面並生成pdf檔案,比如phantomjs一類; 在前端用js直接生成pdf檔案; 方案3的優勢在於前端直接

Java建立單鏈表直接選擇排序輸出

RT 寫Java也一年左右了,第一次用Java寫單鏈表。。。 廢話少說,程式碼如下: import java.util.Scanner; public class Exp1 { public s

PCL1.8建立深度儲存成png格式圖片程式碼(生成深度的原理一般就是透視投影或者正交投影)

PCL建立深度圖(官網有建立深度圖例子)並儲存成png格式圖片: 主要程式碼: //①以下生成點雲cloud2在某個角度下的深度圖 float angularResolution = (float)(1.0f * (M_PI / 180.0f));  //   1.0 de

PHP建立MySQL引入後執行sql語句

一:建立sql.php檔案 <?php function sqlMethod($sql){ $servername = "localhost"; $username = "root"; $password = "root";// 建立連線 $conn = mysqli_con

C# 讀取指定文件夾中的全部文件,按規則生成SQL語句

fun .text line -m ava inf hid 語句 ade 本實例的目的在於: 1 了解怎樣遍歷指定文件夾中的全部文件 2 控制臺怎樣輸入和輸出數據 代碼: using System; using System.IO; nam

將excel表格數據轉換sql語句

name value 表格 當前 type 懸停 csv 填充 單元格 今天剛從經理那學到的,迫不及待寫下來,以後肯定用得上 1.首先是將excel文件另存為csv格式文件 2.在當前行的最後新增一列,輸入下面函數(其中表字段因人而異) =CONCATENATE(

mysql 遍歷所有的庫根據表和sql語句備份

建庫、使用者語句 create database test_hb; create user ' test_hb'@'%' identified by '123456'; grant all privileges on test_hb.* to ' test_hb'@'%'; grant a

.net mvc3 直接執行oracle sql語句

備忘錄1) SQL語句查詢實體var members = crmDB.Members.SqlQuery( "select * from Member").ToList();2) SQL語句查詢非實體型別注意不要把型別指定錯了,這裡返回的一

Excel資料轉換Sql語句

開啟使用者提供的excel資料,滑鼠定位到第一行資料的最後一個單元格(這裡是F2單元格), 輸入="",在雙引號裡面寫入INSERT語句指令碼,這裡舉例oracle語句的insert into語句,格式如 INSERT INTO USER(USER_CODE,USER_NAME,USER_T

Java將檔案中的內容轉換sql語句(和併發定時讀取檔案)

資料檔案內容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11-11 18:08:08.0,TABLE_NUM=T17,OPTIONS=FIND,

利用EXCEL將多列多行資料轉換SQL語句【新增、刪除、修改同理】

語句如下: 按照下列標識進行替換,該語句可以快速生成對應資料的SQL插入語句,批量刪除,批量修改同理! =CONCATENATE("INSERT INTO 【表名】(【欄位名A】,【欄位名B】) V

react-native-android-unity(二)建立unity專案,匯出android程式碼包,嵌入android專案中

1.建立unity專案 給Main Camera新增指令碼Android,使用C#開發,指令碼內容如下: using System.Collections;
using System.Colle

Unity動態建立的Mesh,匯出Obj模型檔案,生成Prefab檔案

Unity執行時,動態建立的Mesh掛載到MeshFilter元件上,並不能儲存到本地Prefab檔案裡。在執行的場景裡,拖拽正確配置的MeshFilter物件到Unity資源管理器。生成的Prefab檔案,裡面的Mesh物件會missing。所以,我們需要在執行狀態,匯

C#建立數字證書匯出pfx,使用pfx進行非對稱加解密

我的專案當中,考慮到安全性,需要為每個客戶端分發一個數字證書,同時使用數字證書中的公私鑰來進行資料的加解密。為了完成這個安全模組,特寫了如下一個DEMO程式,該DEMO程式包含的功能有: 1:呼叫.NET2.0的MAKECERT建立含有私鑰的數字證書,並存儲到個人證書區;

Unity3D 動態建立的Mesh,匯出Obj模型檔案,生成Prefab檔案

Unity執行時,動態建立的Mesh掛載到MeshFilter元件上,並不能儲存到本地Prefab檔案裡。在執行的場景裡,拖拽正確配置的MeshFilter物件到Unity資源管理器。生成的Prefab檔案,裡面的Mesh物件會missing。所以,我們需要在執行狀態,匯出

AWS EC2例項Linux系統建立root使用者更改root使用者登入

  對於剛建立AWS EC2例項,或者經常使用AWS 例項的小夥伴們來說,剛建立的EC2例項是沒有ROOT許可權的,因此不能直接使用ROOT使用者去登陸例項,也無法獲取到root許可權。一般情況下,EC2例項預設是以ec2-user為使用者名稱去登陸的(除了Ubuntu系統例項,它的預設使用者名稱是ubunt

介面的表格匯出excel,下載

最近,公司做了一個介面上的表格匯出為excel並下載的一個功能.下面將具體的做法記錄一下,以便後面複習. 首先先說一下需求 一.介面上有一個表格: 就上面這個表格,我是寫死的,要在介面上方有一個按鈕,匯出並下載的功能,上圖中我還沒有整理,見諒. 二.先做匯出,我用

JS前端建立html或json檔案瀏覽器匯出下載

https://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/ 侵刪   一、HTML與檔案下載 如果希望在前端側直接觸發某些資源的下載,最方便快捷的方法就是使用HT

LINUX 新增的磁碟不建立分割槽,直接建立檔案系統掛載怎麼辦?

LINUX下新增的磁碟不建立分割槽,直接建立檔案系統並掛載: 不是都要先使用FDISK進行分割槽的麼?怎麼直接跳過了這步,直接建立檔案系統,並掛載了呢? 解決方法: 假設新硬碟是 /dev/sdcfdisk操作的是/dev/sdc ,分割槽後才會有/dev/sdc1 /