----商品定購系統案例分析
設有商業銷售系統資料庫。乙個顧客(顧客編號,姓名,性別,單位,**號碼)可以定購多種商品,一種商品(商品編號,名稱,型號,廠商,單價)可以提供給多個顧客。顧客定購商品時需要確定定購商品的數量,並記錄定購日期與取貨日期。
(1) 試畫出該系統的實體-聯絡模型e-r圖。
(2) 給出相應的關係資料模型
顧客(顧客編號, 姓名, 性別, 單位, **)
商品(商品編號, 名稱, 型號, 單價, 廠商)
定購(顧客編號, 商品編號, 定購數量, 定購日期, 取貨日期)
(3) 給出相應邏輯結構的設計
(1) 表名:customer
屬性:id 字元型最大10個字元 ——顧客編號
name 字元型最大16個字元 ——顧客姓名
*** 字元型最大2個字元 ——性別
mobile 字元型最大11個字元 ——移動**
address 字元型最大50個字元 ——家庭住址
約束: id——主碼; name——非空屬性; ***——取值「男」或「女」;
mobile——唯一性; address——預設為unkown;
create table customer
( id char(10) primary key,
name not null,
*** char(2) check(***=』男』 or ***=』女』),
mobile char(11) unique,
address default 『unkown』
)(2) 表名:orderbook
屬性:csid 字元型最大10個字元 ——顧客編號
cmid 字元型最大12個字元 ——商品編號
count 整型 ——定購數量
bookdate 日期型 ——訂貨日期
takedate 日期型 ——交貨日期
約束:csid,cmid——主碼; 定購數量要大於0; 訂貨日期要小於交貨日期;
csid——外碼,引用customer表的id;
cmid——外碼,引用commodity表的id;
create table orderbook
( csid char(10) foreign key (csid) references customer(id),
cmid char(10) foreign key (cmid) references commodity(id),
count int check(count>0),
bookdate datetime,
takedate datetime,
check(takedate>bookdate),
primary key(csid, cmid)
)(3) 表名:commodity
屬性:id 字元型最大12個字元 ——商品編號
name 字元型最大20個字元 ——商品名稱
manufacture 字元型最大20個字元 ——生產廠商
price 小數型最大不超過4位數,保留2位小數 ——商品單價
約束:id——主碼; name——非空;
create table commodity
( id char(12) primary key,
name varchar(20) not null,
manufactur varchar(20),
price decimal(6,2)
)(1) 往基本表customer中插入顧客元組(」0421f901」,」wu」,」女」,139********)
insert into customer(id,name,***, mobile) values(『0421f901』, 『wu』, 『女』, 『139
(2) 往基本表commodity中插入一條商品記錄(「0311牙膏」,「保潔公司」,5.00)
isnert into commodity(id, name, manufacture, price) values(『0311牙膏』, 『保潔公司』, 5)
(3) 修改「wangyan」顧客定購商品的記錄交貨日期為2005-12-25。
update order set taketime=』2005-12-25』 where csid in (select id from customer where name=』wangyan』)
(4) 把「雀巢奶粉」的定購商品記錄全部刪去。
delete from order where cmid in (select id from commodity where name=』雀巢奶粉』)
(5) 查詢「anan」顧客的手機號和住址。
select mobile, address from customer where name=』anan』
(6) 查詢商品的平均**高於75元錢的廠商名稱。
select manufacture from commodity group by manufacture h**ing **g(price) >75
(7) 查詢顧客的定購資訊,並按訂貨日期公升序排列,若訂貨日期相同,則按定購數量降序排列。
select * from orderbook order by bookdate,count desc
(8) 查詢定購數量超過100的顧客姓名、**和住址。
select name, mobile, address from customer where id in(select csid from orderbook where count>100)
(9) 查詢沒有訂單的商品編號、名稱和廠商。
select id,name, manufacture from comodity where id not in(select csid from orderbook)
(10) 查詢定購了商品號為「m900532481」的顧客總人數和最高數量。
select count(*) ,max(count) from order where cmid=』m900532481』
(11) 查詢定購了「可比克」商品的顧客編號、姓名。
select id,name from customer where id in(select csid from order where cmid in(select id from comodity where name=』 可比克』))
(12) 查詢商品名中包含「糖」的所有商品的編號、廠商、單價。
select id,manufacture ,price from comodity where name like 『%糖%』
(13) 查詢至少有兩位顧客定購的商品的名稱。
select name from comodity where id in(select cmid from order group by cmid h**ing count(*)>=2)
(14) 查詢截至2023年底所有商品訂單最晚的交貨日期。
select taketime from order where taketime = (select max(taketime) from order where taketime<』2005-12-31』)
(15) 查詢住址中含有「軟體園」三個字的顧客人數。
select count(*) from customer where address like』%軟體園%』
(16) 建立定購商品號為「m900532481」的顧客的編號、住址、訂貨數量、交貨日期的檢視view001。
create view view001 (編號,住址,訂貨數量,交貨日期)
asselect csid,address,count,taketime from orderbook, customer
where customer .id= orderbook .csid and cmid=』m900532481』
(17) 建立檢視(view002),包含每位顧客的編號、訂單數量、平均訂購數量、最早交貨日期和最晚交貨日期。
create view view002(顧客編號,訂單數量,平均訂購數量,最早交貨日期,最晚交貨日期)
as select csid, count(*), **g(count), min(taketime), max(taketime) from order group by csid
班級學號姓名成績
資料庫原理題庫
班級專業姓名考號 密封裝訂線 一 單項選擇題 每小題1分,共10分 要求 請將答案填寫在下方的 中,否則不得分。1 資料模型的三要素是 a外模式 模式和內模式 b 關係模型 層次模型 網狀模型 c實體 屬性和聯絡 d資料結構 資料操作和完整性約束 2 在資料庫中儲存的是 a資料 b資料模型 c資料及...
資料庫原理題庫
班級專業姓名考號 密封裝訂線 一 單項選擇題 每小題1分,共10分 要求 請將答案填寫在下方的 中,否則不得分。1.下列四項中,不屬於資料庫特點的是 a.資料共享 b.資料完整性 c.資料冗餘很高 d.資料獨立性高 2.反映現實世界中實體及實體間聯絡的資訊模型是 a.關係模型 b.層次模型 c.網狀...
資料庫原理 62
一 單項選擇題 本大題共20小題,每小題1分,共20分 1.位於使用者和資料庫之間的一層資料管理軟體是 2.乙個事務中所有對資料庫操作是乙個不可分割的操作序列,這稱為事務的 a a.原子性 b.一致性 c.隔離性 d.永續性 3.關係代數的五個基本操作是 並 差 選擇 投影和 d a.等值連線 連線...