資料庫設計的一般步驟

2021-09-24 10:52:34 字數 3417 閱讀 9341

經過幾天給韶關某個高校進行資料庫設計的實訓,對資料庫設計的過程有了更加深刻的理解。

(2)定義實體

了解系統功能需求之後,設計人員通過分析系統功能定義出系統有哪些實體。比如:到酒店開房。這裡應該至少包含兩個實體:客人和房間。

在定義出實體以後,我們還要定義實體的屬性。例如:

客人:姓名、性別、手機號碼、證件號碼、證件型別(身份證、駕駛證、通行證等等)…

房間:房號、房間型別(單人房、雙人房、豪華房等等)、入住時間、離開時間、房間狀態(已入住、未入住)…

(3)繪製e-r圖

定義好實體之後,接下來我們應該根據實體以及實體之間的關係繪製出e-r圖。比如:

長方形代表實體,橢圓形代表實體的屬性,菱形代表實體之間的關係。

(4)把e-r圖轉換成模型

繪製出e-r圖之後,我們需要根據它來構建物理模型。構建物理模型可以使用一些工具,比如目前比較流行的powerdesigner。

(5)檢查模型

完成模型設計後,我們還要檢查模型是否滿足第三正規化的要求。如果不滿足就需要重新對模型進行修正,直到滿足第三正規化的要求為止。

比如說,上面的模型並沒有滿足第三正規化的要求。因為customer和room這兩個表都存在一些與該錶沒有直接關係的字段。如果要滿足第三正規化要求,就需要把模型修改為:

上面模型增加了三個表,分別是identity_type(證件型別表)、register(入住登記表)、room_type(房間型別表),經過對模型的修正後,已經滿足第三正規化的要求。

(5)根據模型定義資料庫

不同資料庫的sql命令可能會有小小差別。比如我們這裡使用了mysql資料庫。

定義資料庫的命令:ddl

#建立資料庫

create database 資料庫名;

#刪除資料庫

drop database 資料庫名;

#查詢資料庫

show databases;

#選定資料庫

use 資料庫名;

#建立表

create table 表名 (

列名 資料型別 [primary key] [auto_increment],

列名 資料型別 [not null] [unique] [default '預設值'] [comment '字段說明'],

列名 資料型別 [not null] [unique] [default '預設值'] [comment '字段說明'],

...[constraint 外鍵名 foreign key(外來鍵列) references 表名(主鍵列) [on update|delete cascade]]

);#刪除表

drop table 表名;

下面根據模型定義資料庫:

#建立資料庫

create database hotel;

#查詢資料庫

show databases;

#選定資料庫

use hotel;

#證件型別表

create table identity_type (

identity_type_id int primary key auto_increment,

identity_type_name varchar(50) not null comment '證件型別名稱'

);#客人表

create table customer (

cust_id int primary key auto_increment,

cust_name varchar(255) not null unique default '' comment '客人名稱',

mobile varchar(11) default '' comment '手機號碼',

identity_num varchar(50) not null unique default '' comment '證件號碼',

identity_type_id int not null comment '外來鍵列,引用證件型別表',

constraint fk_cust_identity_type foreign key(identity_type_id) references identity_type(identity_type_id)

);#房間型別

create table room_type (

room_type_id int primary key auto_increment,

room_type_name varchar(50) not null comment '房間型別名稱'

);#房間

create table room (

room_id int primary key auto_increment,

room_num varchar(10) not null comment '房號',

room_type_id int not null comment '外來鍵列,引用房間型別表',

status int not null comment '房間狀態,1代表未入住,2代表已入住',

constraint fk_room_type foreign key(room_type_id) references room_type(room_type_id)

);#入住登記表

create table register (

cust_id int not null comment '外來鍵,引用客人表',

room_id int not null comment '外來鍵,引用房間表',

in_time datetime not null comment '入住時間',

out_time datetime comment '離開時間',

constraint fk_register_cust foreign key(cust_id) references customer(cust_id),

constraint fk_register_room foreign key(room_id) references room(room_id)

)

至此,資料庫設計階段的任務已經完成。

資料庫設計其實並不難,本人覺得比較難的地方在於開始的分析階段。就是如何根據客戶需求把資料庫裡面的實體,以及實體之間的關係分析出來。所以,在資料庫設計階段,我們應該把重點放在業務需求的分析上,準確把握客戶的需求,這樣才能夠設計出一套比較好的資料庫。

php訪問資料庫一般步驟

連線mysql資料庫 選擇資料庫 可選 執行sql語句 獲取結果集 關閉連線 建立連線物件 mysqli new mysqli host,username,password 選擇資料庫 mysqli select db dbname 執行sql語句 res mysqli query sql 獲取結果...

安裝mysql資料庫一般步驟

1.進入mysql官網,2.選擇downloads community mysql community server,直接鏈結如下 5.在path系統變數中新增 mysql home bin 6.用管理員身份執行cmd命令列,切換到mysql目錄的bin目錄下,輸入mysqld install命令進...

資料探勘的一般步驟

從資料本身來考慮,通常資料探勘需要有資訊收集 資料整合 資料規約 資料清理 資料變換 資料探勘實施過程 模式評估和知識表示等 8 個步驟。1 資訊收集 根據確定的資料分析物件抽象出在資料分析中所需要的特徵資訊,然後選擇合適的資訊收集方法,將收集到的資訊存入資料庫。對於海量資料,選擇乙個合適的資料儲存...