1. 程式人生 > >資料庫實驗一---圖書管理的資料庫建立

資料庫實驗一---圖書管理的資料庫建立

根據調研選定實體及相應屬性畫出E-R

2、將E-R模型轉換為對應關係模型,並指出主碼和外碼  

圖書book(書號,類別,出版社,作者,書名,定價,備註);

讀者reader(編號,姓名,單位,性別,電話);

借閱borrow(書號,讀者編號,借閱日期,還書日期)。

3. 建資料庫及表,定義各屬性的域 。並完成主碼、外碼的定義。    

根據上面的表結構,要求:① 對每個屬性選擇合適的資料型別;② 定義每個表的主碼、是否允許空值和預設值等列級資料約束;③ 對每個表的名字和表中屬性的名字儘可能用英文符號標識

實現相關約束(預習自學內容):①建立上述三個表的聯絡,即實現:借閱表與圖書表之間、借閱表與讀者表之間的外碼約束;② 實現讀者性別只能是“男”或“女”的約束等。

1)新建資料庫

 CREATE DATABASE Book_Reader_DB_20170513

 CONTAINMENT = NONE

 ON  PRIMARY

(

    NAME = 'Book_Reader_DB_20170513',

    FILENAME = 'C:\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\Book_Reader_DB_20170513.mdf' ,

    SIZE = 8192KB ,

    MAXSIZE = 2048GB,

    FILEGROWTH = 65536KB

)

LOG ON

(

    NAME = 'Book_Reader_DB_20170513_log',

    FILENAME = 'C:\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\Book_Reader_DB_20170513_log.ldf' ,

    SIZE = 8192KB ,

    MAXSIZE = 2048GB ,

    FILEGROWTH = 65536KB

)

2)新建圖書表

【操作語句】

            create table Book

(

    Bid char(

6) primary key,

    Btype nvarchar(10) not null,

    Bname nvarchar(50) not null,

    Bauthor nvarchar(20) not null,

    Pressname nvarchar(30) not null,

    Bprice float not null ,

    Btip nvarchar(50)

)

3)新建讀者表

【操作語句】

create table Reader

(

    Rid char(8) primary key,

    Rname nvarchar(10) not null,

    Rsex nchar(2) not null check(Rsex='男' or Rsex='女'),

    Rdepartment nvarchar(20) not null,

    Rnumber char(11) 

)

4)新建借閱表

【操作語句】

      create table RB

(

        Rid char(8) foreign key references Reader(Rid),

        Bid char(6) foreign key references Book(Bid),

        BorrowDate datetime not null default getdate(),

        ReturnDate datetime,

        primary key(Rid, Bid)

)

4、使用inesert語句向表中插入適當資料

--Reader表插入資料:

                  insert Reader values('2017258','東方','女','軟體學院','12345677654'),

('2017290','西門吹雪','男','軟體學院','24190520724'),

('2017250','上官','女','軟體學院','35729264967'),

('2017345','南宮問天','男','計算機學院','35705724064'),

('2017336','北冥雪','女','計算機學院','19036330639')

--Book表插入資料:

insert Book values('111000','計算機','計算機組成原理','蓋茨','清華出版社',32.8,'出版於2012年'),

('111110','計算機','計算機網路','扎克','清華出版社',28.2,'出版於2015年'),

('111120','計算機','計算機發展史','艾比恩姆','清華出版社',30.6,'出版於2013年'),

('111119','資料庫','SQL Server從入門到精(fang)通(qi)','王琳','中國人民大學出版社',32.8,'出版於2012年'),

('111205','資料庫','MY SQL實踐','蘇銘','中國科技大學出版社',38.3,'出版於2016年'),

('111250','作業系統','Linux就該這麼學','託沃茲','北京大學出版社',32.1,null)

--RB表(借閱表)插入資料:

insert RB values('2017258','111000','2018-10-28','2018-11-13'),

('2017258','111120','2018-10-28',null),

('2017290','111119','2018-10-25','2018-11-27'),

('2017250','111119','2018-10-24','2018-11-28'),

('2017336','111205','2018-10-28','2018-11-13'),

('2017345','111000','2018-10-28','2018-11-13'),

('2017345','111250','2018-10-10','2018-10-28')