某學生宿舍管理系統,涉及的部分資訊如下:
學生:學號,姓名,性別,專業,班級。
寢室:寢室號,房間**。
管理員:員工號,姓名,聯絡**。
其中:每個寢室可同時住宿多名學生,每名學生只分配乙個寢室;每個寢室指定其中一名學生擔當寢室長;每個管理員同時管理多個寢室,但每個寢室只有一名管理員。
每組同學從以上選題中任選乙個進行相應的設計與實現。要求如下:
(1)從簡單的選題語義出發,按照資料庫設計步驟,分別完成如下內容:概念設計(er模型),給出滿足需求的最終全域性er圖,要求模型盡量精簡,消除不必要的冗餘,並給出理由或說明。
(2)邏輯設計(關係模型),把er模型轉換成適當的關係模式,並進行適當地規範化(可選),設計相關完整性約束。
(3)物理設計,在某一主流dbms中建立資料庫,根據業務需求規劃適當索引(包括聚簇索引和非聚簇索引),並設計必要的使用者檢視(即外模式),完成相關查詢或更新要求。
四、實驗要求
1、完成上述任務;
2、完成實驗報告(包括上述任務中的e-r圖、轉換後的關係模型及優化過程、建立資料庫的sql語句)
學生(學號,姓名,性別,專業,班級,寢室號)
寢室(寢室號,房間**,員工號) 管理員(員工號,姓名,聯絡**)
使用mysql8.0
第一步
建立資料庫,並選擇
create database shiyan;
use shiyan;
第二步建立學生表,宿舍表,管理員表
//學生表
create table student(
sno int(5) primary key ,
name varchar(6) not null,
*** enum('男','女') default '女',
dept varchar(10),
class varchar(10),
dno int(5));
//宿舍表
create table dormitory(
dno int(5) primary key ,
phone varchar(11) not null,
mno int(5)
);//管理員表
第三步
新增約束和索引
給student表的dno新增外來鍵約束
給dormitory表的mno新增外來鍵約束
若這是乙個實際應用的系統,那麼學生查詢無異於頻繁的,所以為學生的姓名新增普通索引
//新增普通索引
alter table add index s_name('name');
//新增dno的外來鍵約束
alter table student add constraint fk_st_do foreign key(dno) references dormitory(dno);
//新增mno的外來鍵約束
alter table dormitory add constraint fk_do_ma foreign key(mno) references manager(mno)
第四步建立檢視
create view v_student as select sno,name,***,dept,class,dno from student;
第五步插入資料
//manager表
insert into manager values(12345,18989341833)
//dormitory表
insert into dormitory values(12345,18989341832,12346)
//student表
insert into `student` (`sno`, `name`, `***`, `dept`, `class`, `dno`) values ('12345', '李銘煒', '男', '電腦科學與技術', '計科一班', '12345');
以下是外來鍵生效的效果
單應用單資料庫
2013 年的時候,我們公司採購了乙個消費金融核心系統,這個是乙個典型的單體架構的應用。同學們應該也很熟悉,單體架構應用的特點就是所有的 都在乙個工程裡面,打成乙個war 包部署到tomcat,最後執行在乙個程序中。這套消費金融的核心系統,用的是oracle 的資料庫,初始化以後有幾百張表,比如客戶...
簡單資料庫程式設計
1 修改配置檔案 web.config 2 建立鏈結類 connection.cs using system.data.sqlclient 新增名字空間 public static sqlconnection getconnection return new sqlconnection system...
SQLite簡單資料庫
通過觀察可以發現,不管是聊天列表還是 列表,有乙個共性 資料量大和資料結構複雜 那麼為什麼我們要用sqlite,有這麼幾個原因 sqlite常用的幾種資料型別為text文字型,integer整型,real浮點型,建 式要用規定的格式,如下 create table product 建立資料庫和資料表...