資料庫實驗 簡單資料庫應用系統設計與實現

2021-10-06 22:57:06 字數 2574 閱讀 5431

某學生宿舍管理系統,涉及的部分資訊如下:

學生:學號,姓名,性別,專業,班級。

寢室:寢室號,房間**。

管理員:員工號,姓名,聯絡**。

其中:每個寢室可同時住宿多名學生,每名學生只分配乙個寢室;每個寢室指定其中一名學生擔當寢室長;每個管理員同時管理多個寢室,但每個寢室只有一名管理員。

每組同學從以上選題中任選乙個進行相應的設計與實現。要求如下:

(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 建立資料庫和資料表...