设计房屋租赁管理系统--PostgreSQL--数据库原理及应用
第一次 “數據庫原理及應用”課程實踐大作業
針對房屋租賃管理系統開發,設計該系統數據庫,并在PostgreSQL數據庫服務器中實現該數據庫。
1)分析房屋租賃管理系統業務的基本數據需求,使用Power Designer建模工具,建立房屋租賃管理系統概念數據模型CDM。
2)針對關系數據庫設計,在Power Designer建模工具中,將房屋租賃管理系統概念數據模型轉換為系統邏輯數據模型LDM設計,并進行規范化完善設計。
3)針對PostgreSQL數據庫實現,在Power Designer建模工具中,將房屋租賃管理系統邏輯數據模型轉換為系統物理數據模型PDM設計。
4)在Power Designer建模工具中,將房屋租賃管理系統物理數據模型轉換為SQL腳本程序。
5)在PostgreSQL數據庫服務器中,執行該SQL腳本程序,實現房屋租賃管理系統數據庫對象創建實現。
作業要求:在作業文檔分別給出房屋租賃管理系統的概念數據模型、邏輯數據模型、物理數據模型模型設計圖,
并將數據庫設計模型在PostgreSQL數據庫服務器進行實現。給出各個模型設計步驟、設計說明、執行結果界面,并對結果進行說明。
實驗流程
1.新建概念數據模型
?2.選取概念數據類型,輸入名稱
3.定義租戶實體
?4.命名實體名稱
?5.命名實體屬性
6.同理定義房屋、房主、租貸合同實體
?
7.建立實體聯系,點取實體聯系符號,連接“租戶”實體與“房屋”實體
?
8.雙擊聯系符號,進入聯系選項設置,命名實體聯系名稱
9.設置實體之間的數量關系、參與關系
10.類似方法建立其他實體之間的聯系?
?
?
?
?11.保存概念數據模型
邏輯數據模型設計圖
1.?? ?在工具欄中選取創建邏輯數據模型菜單項
關于powerdesinger 出現Entity Attribute code uniqueness解決辦法
Tool->check?model...去掉Entity?Attribute下Entity?Attribute?name?uniqueness?和?Entity?Attribute?code?uniqueness
關于powerdesinger 出現Entity Attribute code uniqueness解決辦法_咸魚恒星的博客-CSDN博客
2.?? ?進入邏輯數據模型轉換設置對話框,設置選項與名稱后,點擊確定
3.?? ?即可將概念數據模型轉換為邏輯數據模型
4.?? ?對轉換之后的邏輯數據模型進行完善設計,可以增加實體屬性
5.?? ?為了更完整展示邏輯數據模型顯示內容,可選取工具菜單欄,顯示選項菜單項;進入模型顯示設置頁面,對邏輯數據模型實體顯示內容進行設置,點取確定,即可看到邏輯數據模型完整內容
?
物理數據模型設計圖
1.?? ?點取菜單工具Tools->創建物理數據模型Generate Physical Data Model
2.?? ?選取DBMS :PostgreSQL 9.x, 命名物理數據模型名稱,點擊確定,即可將邏輯數據模型轉換為物理數據模型
3.?? ?對物理數據模型的顯示內容進行設置, 可通過點取工具菜單中的顯示選項菜單項, 進入模型顯示設置頁面, 對物理數據模型顯示內容進行設置,即可看到所需要的模型設計內容
?轉換為SQL腳本程序,并在PostgreSQL數據庫服務器進行實現。
1.?? ?點取數據庫菜單欄"Databases"
2.?? ?點取創建數據庫菜單項Generate Database
3.?? ?進入數據庫設置對話框頁面, 在對話框頁面中設置腳本轉換選項,即可轉換為SQL腳本程序
?
4.?? ?在文本編輯器中,可以打開創建的SQL文件,即可看到各個數據庫對象創建的SQL語句
5.?? ?執行SQL腳本創建數據庫對象,在PostgreSQL數據庫管理工具中,執行SQL腳本,實現數據庫對象創建
6.?? ?使用pgAdmin4數據庫管理工具,連接PostgreSQL數據庫服務器,在服務器中創建房屋租賃數據庫HouseDB
7.?? ?調入創建數據庫對象的SQL腳本文件,Tool,Query Tool
?7.刪除索引文件
?
8.運行 ,刷新數據庫,完成
SQL文件內容
/*==============================================================*/ /* DBMS name: PostgreSQL 9.x */ /* Created on: 2022?ê4??24è? 19:57:04 */ /*==============================================================*//*==============================================================*/ /* Table: contract */ /*==============================================================*/ create table contract (IDnumber VARCHAR(18) not null,IDnumber2 VARCHAR(18) not null,renttime2 DATE null,owner2 VARCHAR(20) null,address2 VARCHAR(50) null,tenement VARCHAR(20) null );/*==============================================================*/ /* Index: partyB_FK */ /*==============================================================*/ create index partyB_FK on contract ( IDnumber );/*==============================================================*/ /* Index: partyA_FK */ /*==============================================================*/ create index partyA_FK on contract ( IDnumber2 );/*==============================================================*/ /* Table: house */ /*==============================================================*/ create table house (address VARCHAR(50) not null,area NUMERIC(5,2) not null,owner VARCHAR(20) not null,housetype CHAR(4) not null,renttime DATE null,rent VARCHAR(20) null,number SERIAL not null,IDnumber VARCHAR(18) null,IDnumber2 VARCHAR(18) not null,rentstate2 CHAR(4) null,constraint PK_HOUSE primary key (number) );/*==============================================================*/ /* Index: house_PK */ /*==============================================================*/ create unique index house_PK on house ( number );/*==============================================================*/ /* Index: rent_FK */ /*==============================================================*/ create index rent_FK on house ( IDnumber );/*==============================================================*/ /* Index: own_FK */ /*==============================================================*/ create index own_FK on house ( IDnumber2 );/*==============================================================*/ /* Table: owner */ /*==============================================================*/ create table owner (name2 VARCHAR(20) null,gender2 CHAR(2) null,address3 VARCHAR(50) not null,phonenumber2 VARCHAR(11) null,identity CHAR(4) not null,IDnumber2 VARCHAR(18) not null,constraint PK_OWNER primary key (IDnumber2) );/*==============================================================*/ /* Index: owner_PK */ /*==============================================================*/ create unique index owner_PK on owner ( IDnumber2 );/*==============================================================*/ /* Table: tenement */ /*==============================================================*/ create table tenement (IDnumber VARCHAR(18) not null,name VARCHAR(20) not null,gender CHAR(2) not null,phonenumber VARCHAR(11) not null,address VARCHAR(50) not null,renttime DATE null,rentstate2 CHAR(4) null,constraint PK_TENEMENT primary key (IDnumber) );/*==============================================================*/ /* Index: tenement_PK */ /*==============================================================*/ create unique index tenement_PK on tenement ( IDnumber );alter table contractadd constraint FK_CONTRACT_PARTYA_OWNER foreign key (IDnumber2)references owner (IDnumber2)on delete restrict on update restrict;alter table contractadd constraint FK_CONTRACT_PARTYB_TENEMENT foreign key (IDnumber)references tenement (IDnumber)on delete restrict on update restrict;alter table houseadd constraint FK_HOUSE_OWN_OWNER foreign key (IDnumber2)references owner (IDnumber2)on delete restrict on update restrict;alter table houseadd constraint FK_HOUSE_RENT_TENEMENT foreign key (IDnumber)references tenement (IDnumber)on delete restrict on update restrict;總結
以上是生活随笔為你收集整理的设计房屋租赁管理系统--PostgreSQL--数据库原理及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python对excel表统计视频教程_
- 下一篇: ubuntu系统下Java环境JDK的安