當前位置:首頁 » 數據倉庫 » 資料庫建模教程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫建模教程

發布時間: 2022-10-02 21:23:52

① 怎樣建立一個簡單資料庫

具體步驟如下:

1、首先打開我們的access程序,打開方法是單擊開始——所有程序。

② 如何建立資料庫

手工創建資料庫的全部腳本及說明

系統環境:
1、操作系統:Windows 2000 Server,機器內存128M
2、資料庫: Oracle 8i R2 (8.1.6) for NT 企業版
3、安裝路徑:D:\ORACLE

建庫步驟:
1、手工創建相關目錄
D:\Oracle\admin\test
D:\Oracle\admin\test\adhoc
D:\Oracle\admin\test\bmp
D:\Oracle\admin\test\cmp
D:\Oracle\admin\test\create
D:\Oracle\admin\test\exp
D:\Oracle\admin\test\pfile
D:\Oracle\admin\test\ump

D:\Oracle\oradata\test
D:\Oracle\oradata\test\archive

2、手工創建初始化啟動參數文件:D:\Oracle\admin\test\pfile\inittest.ora,內容:

3、手工創建D:\Oracle\Ora81\DATABASE\inittest.ora文件,

內容:IFILE= 'D:\Oracle\admin\test\pfile\inittest.ora '

4、使用orapwd.exe命令,創建D:\Oracle\Ora81\DATABASE\PWDtest.ora

命令:D:\Oracle\Ora81\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora password=ORACLE entries=5

5、通過oradim.exe命令,在服務里生成一個新的實例管理服務,啟動方式為手工
set ORACLE_SID=test
D:\Oracle\Ora81\bin\oradim -new -sid test -startmode manual -pfile "D:\Oracle\admin\test\pfile\inittest.ora "

6、生成各種資料庫對象
D:\> svrmgrl

--創建資料庫
connect INTERNAL/oracle
startup nomount pfile= "D:\Oracle\admin\test\pfile\inittest.ora "
CREATE DATABASE test
LOGFILE 'D:\Oracle\oradata\test\redo01.log ' SIZE 2048K,
'D:\Oracle\oradata\test\redo02.log ' SIZE 2048K,
'D:\Oracle\oradata\test\redo03.log ' SIZE 2048K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'D:\Oracle\oradata\test\system01.dbf ' SIZE 58M REUSE AUTOEXTEND ON NEXT 640K
MAXDATAFILES 254
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET ZHS16GBK;

控制文件、日誌文件在上面語句執行時生成

connect INTERNAL/oracle
--修改系統表空間
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50);
ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;

--創建回滾表空間
CREATE TABLESPACE RBS DATAFILE 'D:\Oracle\oradata\test\rbs01.dbf ' SIZE 256M REUSE
AUTOEXTEND ON NEXT 5120K
MINIMUM EXTENT 512K
DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);

--創建用戶表空間
CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\test\users01.dbf ' SIZE 128M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);

--創建臨時表空間
CREATE TABLESPACE TEMP DATAFILE 'D:\Oracle\oradata\test\temp01.dbf ' SIZE 32M REUSE
AUTOEXTEND ON NEXT 640K
MINIMUM EXTENT 64K
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;

--創建工具表空間
CREATE TABLESPACE TOOLS DATAFILE 'D:\Oracle\oradata\test\tools01.dbf ' SIZE 64M REUSE
AUTOEXTEND ON NEXT 320K
MINIMUM EXTENT 32K
DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);

--創建索引表空間
CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\test\indx01.dbf ' SIZE 32M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);

--創建回滾段
CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS2 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS3 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS4 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS5 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS6 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS7 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS8 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS9 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS10 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS11 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS12 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS13 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS14 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS15 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS16 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS17 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS18 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS19 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS20 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS21 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS22 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS23 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS24 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );

--使回滾段在線
ALTER ROLLBACK SEGMENT "RBS0 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS1 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS2 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS3 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS4 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS5 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS6 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS7 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS8 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS9 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS10 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS11 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS12 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS13 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS14 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS15 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS16 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS17 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS18 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS19 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS20 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS21 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS22 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS23 " ONLINE;
ALTER ROLLBACK SEGMENT "RBS24 " ONLINE;

--修改sys用戶的臨時表空間為TEMP
alter user sys temporary tablespace TEMP;

--創建數據字典表
@D:\Oracle\Ora81\Rdbms\admin\catalog.sql;
@D:\Oracle\Ora81\Rdbms\admin\catexp7.sql
@D:\Oracle\Ora81\Rdbms\admin\catproc.sql
@D:\Oracle\Ora81\Rdbms\admin\caths.sql

connect system/manager
@D:\Oracle\Ora81\sqlplus\admin\pupbld.sql

connect internal/oracle
@D:\Oracle\Ora81\Rdbms\admin\catrep.sql
exit

--生成SQL*Plus幫助系統
sqlplus SYSTEM/manager
@D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
exit

--修改system用戶默認表空間和臨時表空間
svrmgrl
connect internal/oracle
alter user system default tablespace TOOLS;
alter user system temporary tablespace TEMP;
exit

7、將test實例啟動服務設置成自動啟動方式
D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto

③ 如何通過IBM SPSS Modeler對數據進行處理和建模

1、打開 IBM SPSS Modeler 客戶端,點擊左下角的 Server 按鈕,選擇要連接的 Modeler Server,這里需要說明的就是如果 SDAP 裝在和 Modeler Client 在一台機器,那麼就選擇 Local Server;

如果不在同一台機器,而是和單獨的 Modeler Server 裝在一台機器,就選在添加按鈕,輸入機器的主機名或者 IP 地址,設置登錄的用戶名和密碼,點擊完成按鈕,如圖 7 所示:

2、連接上 Modeler Server 之後,在源選項雙擊資料庫節點,然後就可以添加資料庫源節點到數據流工作區,雙擊節點,在數據項選擇添加一個資料庫連接,然後 Modeler Client 會將 Modeler Server 所在機器的所有 ODBC 查詢出來,找到需要連接的資料庫連接信息,輸入用戶名和密碼後,點擊連接按鈕,選擇完成然後進入選擇表,這里以 SQL Server 為例,如圖 8 所示:

3、點擊完成按鈕後,在表名列點擊選擇按鈕,選擇表名,這里以 dbo.Modeler_Drug1 為例,如圖 9 所示:

4、選擇表後,節點自動讀取表結構。

用同樣的方法再添加兩個資料庫節點,選擇 ODBC 為 DB2 和 Oracle, 輸入用戶名和密碼之後,就可以選擇要讀取數據的表名了。這樣就完成了用 Modeler Client 讀取資料庫數據的操作,然後要進行的就是對數據的處理。

首先利用 Modeler 的 Merge 節點對 DB2 和 Oracle 中的兩張表的數據進行合並,處理後的結果是得到的數據一部分來自 DB2 資料庫,一部分來自 Oracle 資料庫。對於來自 Oracle 資料庫的數據,取 3 個欄位的值:

對於來自 DB2 資料庫的數據,取 4 個欄位:

二、數據處理

1、雙擊記錄選項中的 Merge 節點,然後將 DB2 和 Oracle 兩個節點與之連接,雙擊 Merge 節點,可以看到處理後的數據包括來自 DB2 和 Oracle 的 7 個欄位:

2、然後需要通過 Modeler 的 Append 節點將 Merge 後的數據追加到來自 SQL Server 資料庫的數據。雙擊記錄選項中的 Append 節點,在流工作區中將 Merge 節點和 SQL Server 數據源節點與之連接,這樣得到的就是來自三個資料庫的數據了。

還可以通過 Modeler 的其他節點對數據進行進一步的處理,比如通過選擇節點,可以設置條件來選擇需要的數據,或者通過排序節點對某幾個列進行排序等等。

三、建模

1、最後要做的就是對處理過的數據進行建模了,首先需要設定一個 Target 列,也就是需要預測的列。

通過 Modeler 的 Type 節點設置 Target 列,在欄位選項雙擊 Type 節點,在流工作區中將 Append 節點與之連接,雙擊 Type 節點,修改 Drug 列的角色為 Target,其他默認為 Input 。

④ 誰能告訴我SQL資料庫如何建模

先建概念模型,可用ER或者EER表達,
再建立邏輯模型,是ER或者EER的衍生,(概念模型和邏輯模型有時可以一步到位)
最後再用軟體轉為物理模型,然後資料庫就自動生成了。

⑤ 簡述資料庫應用系統的設計步驟

資料庫設計的基本步驟:

1、系統需求分析與設計。

2、概念結構分析與設計。

3、邏輯結構分析與設計。

4、物理結構分析與設計。

5、系統實施。

6、系統維護。

(5)資料庫建模教程擴展閱讀:

資料庫設計技巧:

1、原始文件與實體的關系

它可以是一對一,一對多,多對多的關系。一般來說,它們是一對一的關系:一個原始文檔只對應於一個實體。在特殊情況下,它們可以是一對多或多對一關系,即一個原始文檔對應於多個實體,或者多個原始文檔對應於一個實體。

這里的實體可以理解為基本表。在對應關系明確後,對輸入介面的設計非常有利。

2、主鍵和外鍵

一般來說,實體不能既沒有主鍵也沒有外鍵。在E-R圖中,葉中的實體可以定義主鍵或不定義主鍵(因為它沒有子代),但它必須有外鍵(因為它有父項)。

主鍵和外鍵的設計在全局資料庫的設計中起著重要的作用。當全球資料庫的設計完成後,一位美國資料庫設計專家說:「鑰匙無處不在,只有鑰匙。」。這是他資料庫設計的經驗,也體現了他對信息系統核心(數據模型)高度抽象的理念。

因為:主鍵是一個高度抽象的實體。主鍵和外鍵的配對表示實體之間的連接。

3、基本表的屬性

基本表不同於中間表和臨時表,因為它具有以下四個特點:

原子性。基本表中的欄位不可分解。

原始主義。基本表中的記錄是原始數據(基本數據)的記錄。

演繹的。所有輸出數據都可以從基本表和代碼表中的數據導出。

穩定。基本表的結構比較穩定,表中的記錄要長期保存。

在了解基本表的性質之後,在設計資料庫時,可以將基本表與中間表和臨時表區分開來。

⑥ 數據建模的分析方法有哪些並寫出他們的大概介紹

從目前的資料庫及數據倉庫建模方法來說,主要分為四類。

第一類是大家最為熟悉的關系資料庫的三範式建模,通常我們將三範式建模方法用於建立各種操作型資料庫系統。

第二類是Inmon提倡的三範式數據倉庫建模,它和操作型資料庫系統的三範式建模在側重點上有些不同。Inmon的數據倉庫建模方法分為三層,第一層是實體關系層,也即企業的業務數據模型層,在這一層上和企業的操作型資料庫系統建模方法是相同的;第二層是數據項集層,在這一層的建模方法根據數據的產生頻率及訪問頻率等因素與企業的操作型資料庫系統的建模方法產生了不同;第三層物理層是第二層的具體實現。

第三類是Kimball提倡的數據倉庫的維度建模,我們一般也稱之為星型結構建模,有時也加入一些雪花模型在裡面。維度建模是一種面向用戶需求的、容易理解的、訪問效率高的建模方法,也是筆者比較喜歡的一種建模方式。

第四類是更為靈活的一種建模方式,通常用於後台的數據准備區,建模的方式不拘一格,以能滿足需要為目的,建好的表不對用戶提供介面,多為臨時表。

下面簡單談談第四類建模方法的一些的經驗。

數據准備區有一個最大的特點,就是不會直接面對用戶,所以對數據准備區中的表進行操作的人只有ETL工程師。ETL工程師可以自己來決定表中數據的范圍和數據的生命周期。下面舉兩個例子:

1)數據范圍小的臨時表

當需要整合或清洗的數據量過大時,我們可以建立同樣結構的臨時表,在臨時表中只保留我們需要處理的部分數據。這樣,不論是更新還是對表中某些項的計算都會效率提高很多。處理好的數據發送入准備載入到數據倉庫中的表中,最後一次性載入入數據倉庫。

2)帶有冗餘欄位的臨時表

由於數據准備區中的表只有自己使用,所以建立冗餘欄位可以起到很好的作用而不用承擔風險。

舉例來說,筆者在項目中曾遇到這樣的需求,客戶表{客戶ID,客戶凈扣值},債項表{債項ID,客戶ID,債項余額,債項凈扣值},即客戶和債項是一對多的關系。其中,客戶凈扣值和債項余額已知,需要計算債項凈扣值。計算的規則是按債項余額的比例分配客戶的凈扣值。這時,我們可以給兩個表增加幾個冗餘欄位,如客戶表{客戶ID,客戶凈扣值,客戶余額},債項表{債項ID,客戶ID,債項余額,債項凈扣值,客戶余額,客戶凈扣值}。這樣通過三條SQL就可以直接完成整個計算過程。將債項余額匯總到客戶余額,將客戶余額和客戶凈扣值冗餘到債項表中,在債項表中通過(債項余額×客戶凈扣值/客戶余額)公式即可直接計算處債項凈扣值。

另外還有很多大家可以發揮的建表方式,如不需要主鍵的臨時表等等。總結來說,正因為數據准備區是不對用戶提供介面的,所以我們一定要利用好這一點,以給我們的數據處理工作帶來最大的便利為目的來進行數據准備區的表設計。

⑦ 數據建模的如何進行

概念建模
數據建模大致分為三個階段,概念建模階段,邏輯建模階段和物理建模階段。其中概念建模和邏輯建模階段與資料庫廠商毫無關系,換言之,與MySQL,SQL Server,Oracle沒有關系。物理建模階段和資料庫廠商存在很大的聯系,因為不同廠商對同一功能的支持方式不同,如高可用性,讀寫分離,甚至是索引,分區等。
概念建模階段
實際工作中,在概念建模階段,主要做三件事:
1. 客戶交流
2. 理解需求
3. 形成實體
這也是一個迭代,如果先有需求,盡量去理解需求,明白當前項目或者軟體需要完成什麼,不明白或者不確定的地方和客戶及時交流,和客戶double confirm過的需求,落實到實體(Package);但是好多時候我們需要通過先和客戶交流,進而將交流結果落實到需求,之後進一步具體到實體;本文可能會涉及到一些來自於EA(Enterprise Architect 7.1)建模術語,(EA中將每個實體視為一個Package)。這里並不對各種建模工具進行比較,如Visio,EA,PowerDesigner, ERWin等;其實作為員工的我們選擇性很少,公司有哪個產品的Licence,我們就用哪個吧。
舉例說明:在一個B2C電子商務網站中,這樣的需求再普通不過了:客戶可以在該網站上自由進行購物!我們就以這個簡單例子,對其進行細分,來講解整個數據建模的過程,通過上面這句話,我們可以得出三個實體:客戶,網站,商品;就像Scrum(敏捷開發框架的一種)中倡導的一樣每個Sprint,都要產出確確實實的東西,OK,概念建模階段,我們就要產出實體。客戶和商品(我們將網站這個實體扔掉,不需要它。)
在創建這兩個實體(Package)的時候,我們記得要講對需求的理解,以及業務規則,作為Notes添加到Package中,這些信息將來會成為數據字典中非常重要的一部分,也就是所謂的元數據。BTW,EA或者其他建模工具應該都可以自動生成數據字典,只不過最終生成的格式可能不太一樣。如在Customer這個Package的Notes上,我們可以這樣寫,用戶都要通過填寫個人基本信息以及一個郵箱來注冊賬戶,之後使用這個郵箱作為登錄帳號登錄系統進行交易。
在概念建模階段,我們只需要關注實體即可,不用關注任何實現細節。很多人都希望在這個階段把具體表結構,索引,約束,甚至是存儲過程都想好,沒必要!!因為這些東西使我們在物理建模階段需要考慮的東西,這個時候考慮還為時尚早。可能有的人在這個階段擔心會不會丟掉或者漏掉一些實體?也不用擔心,2013年好多公司都在採用Scrum的開發模式,只要你當前抽象出來的實體滿足當前的User Story,或者當前的User Story裡面的實體,你都抽象出來了,就可以了!如果你再說,我們User Story太大,實體太多,不容易抽象,那就真沒辦法了,建議你們的團隊重新開Sprint 計劃會議。
邏輯建模
邏輯建模階段
對實體進行細化,細化成具體的表,同時豐富表結構。這個階段的產物是,可以在資料庫中生成的具體表及其他資料庫對象(包括,主鍵,外鍵,屬性列,索引,約束甚至是視圖以及存儲過程)。我在實際項目中,除了主外鍵之外,其他的資料庫對象我都實在物理建模階段建立,因為其他資料庫對象更貼近於開發,需要結合開發一起進行。如約束,我們可以在web page上做JavaScript約束,也可以在業務邏輯層做,也可以在資料庫中做,在哪裡做,要結合實際需求,性能以及安全性而定。
針對Customer這個實體以及我們對需求的理解,我們可以得出以下幾個表的結構,用戶基本信息表(User),登錄賬戶表(Account),評論表(Commnets,用戶可能會對產品進行評價),當然這個案例中我們還會有更多的表,如用戶需要自己上傳頭像(圖片),我們要有Picture表。
針對產品實體,我們需要構建產品基本信息表(Proct),通常情況下,我們產品會有自己的產品大類(ProctCategory)甚至產品小類(ProctSubCategory),某些產品會因為節假日等原因進行打折,因為為了得到更好的Performance我們會創建相應ProctDiscount表,一個產品會有多張圖片,因此產品圖片表(ProctPicture)以及產品圖片關系表(ProctPictureRelationship),(當然我們也可以只設計一張Picture表,用來存放所有圖片,用戶,產品以及其他)有人說產品和圖片是一對多的關系,不需要創建一個關系表啊?是的,我認為只要不是一對一的關系,我都希望創建一個關系表來關聯兩個實體。這樣帶來的好處,一是可讀性更好,實現了實體和表一一對應的關系,二是易於維護,我們只需要維護一個關系表即可,只有兩列(ProctID和PictureID),而不是去維護一個Picture表。
客戶進行交易,即要和商品發生關系,我們需要Transaction表,一個客戶會買一個或者多個商品,因為一筆Transaction會涉及一個或多個Procts,因此一個Transaction和ProctDiscount之間的關系(ProctDiscount和Proct是一一對應的關系)需要創建,我們稱其為Item表,裡面保存TransactionID以及這筆涉及到的ProctDiscountID(s),這里插一句,好多系統都需要有審計功能,如某個產品歷年來的打折情況以及與之對應的銷售情況,我們這里暫不考慮審計方面的東西。
就這樣,我們根據需求我們確定下來具體需要哪些表,進一步豐富每一個表屬性(Column),當然這裡面會涉及主鍵的選取,或者是使用代理鍵(Surrogate Key),外鍵的關聯,約束的設置等細節,這里筆者認為只要能把每個實體屬性(Column)落實下來就是很不錯了,因為隨著項目的開展,很多表的Column都會有相應的改動。至於其他細節,不同資料庫廠商,具體實現細節不盡相同。關於主鍵的選取多說一句,有的人喜歡所有的表都用自增長ID作為主鍵,而有的人希望找到唯一能標識當前記錄的一個屬性或者多個屬性作為主鍵;自增長ID作為代理主鍵,對於將來以多個類似當前Transaction System作為數據源,構建數據倉庫的時候,這些自增長ID主鍵會是一個麻煩(多個系統中,相同表存在大量主鍵重復);使用一個屬性或多個屬性作為作為主鍵,不管主鍵是可編輯的,讀寫效率是我們必須考慮得。所以並沒有一個放之四海而皆準的原則,筆者只是給大家推薦一些考慮的因素。
物理建模
物理建模階段
EA可以將在邏輯建模階段創建的各種資料庫對象生成為相應的SQL代碼,運行來創建相應具體資料庫對象(大多數建模工具都可以自動生成DDL SQL代碼)。但是這個階段我們不僅僅創建資料庫對象,針對業務需求,我們也可能做如數據拆分(水平或垂直拆分),如B2B網站,我們可以將商家和一般用戶放在同一張表中,但是針對PERFORMANCE考慮,我們可以將其分為兩張表;隨業務量的上升,Transaction表越來越大,整個系統越來越慢,這個時候我們可以考慮數據拆分,甚至是讀寫分離(即實現MASTER-SLAVE模式,MYSQL/SQLSERVER可以使用Replication,當然不同存儲引擎採用不同的方案),這個階段也會涉及到集群的事情,如果你是架構師或者數據建模師,這個時候你可以跟DBA說,Alright,I am done with it,now is your show time.
相信大家都知道範式,更有好多人把3NF奉為經典,3NF確實很好,但是3NF是幾十年前提出來的,那個時候的數據量以及訪問頻率和2012年完全不是一個數量級的;因此我們絕對不能一味地遵守3NF;在整個數據建模過程中,在保證數據結構清晰的前提下,盡量提高性能才是我們關注的要點,因此筆者大力倡導數據適當冗餘!
上面筆者是結合一些實際例子表達自己對數據建模的觀點,希望對讀著有用。在數據建模過程中,不要希望一步到位將資料庫設計完整,筆者不管是針對data warehouse還是Transactional Database設計,從來沒有過一次成功的經歷。隨著項目的進行,客戶和開發團隊對業務知識與日增長,因此原來的設計也在不斷完善中。畢竟,數據建模或者設計資料庫不是我們的最終目的,我們需要的是一個健壯,性能優越,易擴展,易使用的軟體!

⑧ 如何創建資料庫

什麼是SQL呢 SQL就是專門用來做資料庫的一門語言 和C語言差不多 (當然功能不緊緊是做數據了 編程啊 都可以..... 這里就不多說了)z這道題用ACCESS 就可以完成了

1 首先 用Access 2000(資料庫 )做一個資料庫 打開設計器創建表 在點菜單 另存為 名為班級名+自己名字英文簡寫 最後點保存啦 (每完成系統都是有提示的啦) 第一問 解決
2 打開設計器 上面做的表下面下
創建數據表 名字都是在最後完成時做的 先不用管 然後在輸入sID,sName,sSex,sAge,sClass 注意根據後面的要求填寫欄位 及數據類型 以及
在做其他的問題了將T_Student表的sID欄位設置為標識列,種子為1,增量為2。
為T_Student表的sSex(性別)欄位設置其默認值為「男」。
為T_Student表的sAge(年齡)欄位設置檢查約束,規定年齡在0到30歲之間。
為T_KC表的cName(課程名稱)欄位設置唯一性約束。,規定課程名稱不得重復。
生成一個規則t_rule,限制數據的取值范圍在(0---100)之間,然後將這個規則綁定到T_CJ表的cj(成績)欄位。
為T_KC表的cName欄位創建索引。
最後
當然主鍵當然是SID了 一定要標好哦~~·先不管作業其他要求
在依次做其他2個表;
T_KC(cID,cName,sBianhao,sXuefen)
T_CJ(sID,cID,cj) 注意主鍵是SID

3. 做好了三個表後退出設計器
在打開以一個個表 在按要求輸入(在每個表中添加3-5條記錄。)
好了 基本就完成了
當然用SQL 也能完成 這些問題 並且要快 但涉及到TQL語言 編程問題 很難說清楚 就不一一解釋了···

⑨ 數據分析建模步驟有哪些

1、分類和聚類


分類演算法是極其常用的數據挖掘方法之一,其核心思想是找出目標數據項的共同特徵,並按照分類規則將數據項劃分為不同的類別。聚類演算法則是把一組數據按照相似性和差異性分為若干類別,使得同一類別數據間的相似性盡可能大,不同類別數據的相似性盡可能小。分類和聚類的目的都是將數據項進行歸類,但二者具有顯著的區別。分類是有監督的學習,即這些類別是已知的,通過對已知分類的數據進行訓練和學習,找到這些不同類的特徵,再對未分類的數據進行分類。而聚類則是無監督的學習,不需要對數據進行訓練和學習。常見的分類演算法有決策樹分類演算法、貝葉斯分類演算法等;聚類演算法則包括系統聚類,K-means均值聚類等。


2、回歸分析


回歸分析是確定兩種或兩種以上變數間相互依賴的定量關系的一種統計分析方法,其主要研究的問題包括數據序列的趨勢特徵、數據序列的預測以及數據間的相關關系等。按照模型自變數的多少,回歸演算法可以分為一元回歸分析和多元回歸分析;按照自變數和因變數間的關系,又可分為線性回歸和非線性回歸分析。


3、神經網路


神經網路演算法是在現代神經生物學研究的基礎上發展起來的一種模擬人腦信息處理機制的網路系統,不但具備一般計算能力,還具有處理知識的思維、學習和記憶能力。它是一種基於導師的學習演算法,可以模擬復雜系統的輸入和輸出,同時具有非常強的非線性映射能力。基於神經網路的挖掘過程由數據准備、規則提取、規則應用和預測評估四個階段組成,在數據挖掘中,經常利用神經網路演算法進行預測工作。


4、關聯分析


關聯分析是在交易數據、關系數據或其他信息載體中,查找存在於項目集合或對象集合之間的關聯、相關性或因果結構,即描述資料庫中不同數據項之間所存在關系的規則。例如,一項數據發生變化,另一項也跟隨發生變化,則這兩個數據項之間可能存在某種關聯。關聯分析是一個很有用的數據挖掘模型,能夠幫助企業輸出很多有用的產品組合推薦、優惠促銷組合,能夠找到的潛在客戶,真正的把數據挖掘落到實處。4市場營銷大數據挖掘在精準營銷領域的應用可分為兩大類,包括離線應用和在線應用。其中,離線應用主要是基於客戶畫像進行數據挖掘,進行不同目的針對性營銷活動,包括潛在客戶挖掘、流失客戶挽留、制定精細化營銷媒介等。而在線應用則是基於實時數據挖掘結果,進行精準化的廣告推送和市場營銷,具體包括DMP,DSP和程序化購買等應用。

⑩ 怎樣建立一個大型資料庫

建立一個資料庫當你想建立一個表時,你必須按照以下的步驟先建立一個資料庫:在SQL Enterprise Manager中,選擇你的資料庫的名字。從Manage菜單中選擇Databases選項。管理資料庫的窗口就出現了。在工具條上點擊新建資料庫的按鈕,就會出現新建資料庫的對話框(如圖3.5所示)。注意</B>現在版本的SQL Server(version 6.5)最多能有32,767個資料庫。每個資料庫的最小容量是1MB,最大容量是ITB。在SQL Enterprise Manager對話框中的新建資料庫對話框。 填寫你的資料庫所要使用的名字(不能有空格)。 然後,填寫你要建立的資料庫所在的資料庫設備(例如,他就是你在前面一步建立的資料庫設備)。 這個新建資料庫的對話框會以圖形的方式顯示所有資料庫設備的已經使用和沒有使用的空間。 當你建立一個資料庫時,你可以選擇去建立事務日誌。為了建立事務日誌,你需要指定一個log device(日誌資料庫設備)。在新建資料庫對話框中,打開標有LogDevice的下拉式框,然後選擇一個資料庫設備和用於日誌的空間大小。注意</B>每個資料庫都有它自己的事務處理日誌,它記錄了對資料庫每一個請求(modify,insert,delete)。日誌文件是對資料庫的內部處理過程的一種監視。它允許你對資料庫執行updates, inserts, deletes等操作。所以在需要的時候,你也可以取消這些操作的結果。在系統沒有正確地關閉,而只是停機或重新啟動時,這些事務處理的日誌是很有用的-在重新啟動時,SQL Server會根據事務處理日誌來恢復數據。注意</B>當你把事務處理日誌向一個mp 資料庫傾倒時,你的事務處理日誌會被截短。你也可以強制地使你的事務日誌縮短。如果你想知道有關事務日誌的更多的信息,請查詢SQL 在線幫助文件,用關鍵字transaction log查找。6當你完成在新建資料庫的對話框中的這些問題的回答,點擊Create Now 按鈕。你的資料庫就會在Databases文件夾下顯示出來。