假設在某關聯式資料庫(Relational database)中,資料庫管理者(Database
Administrator, DBA)執行如下之SQL 指令以定義CUSTOMER 和
PURCHASE 兩個表格:
create table CUSTOMER
(cid char(2), name varchar(10), city varchar(10), primary key(cid));
create table PURCHASE
(cid char(2), mid char(2), amount integer,
primary key (cid, mid), foreign key(cid) references CUSTOMER);
若使用者依序執行下列六個SQL 指令,
指令一:insert into CUSTOMER values (‘C1’, ‘John’, ‘Taipei’);
指令二:insert into PURCHASE values (‘C1’, ‘M1’, 10);
指令三:insert into CUSTOMER values (‘C1’, ‘Mary’, ‘Taichung’);
指令四:insert into PURCHASE values (‘C1’, ‘M2’, 1);
指令五:update CUSTOMER set cid = ‘C2’ where cid = ‘C1’;
指令六:delete from PURCHASE where cid = ‘C1’;
請針對指令三至指令六此四個指令,分別說明其執行之後所產生的效
果,並加以解釋之。舉例來說,若某指令可順利執行,請說明是那些表
格受到影響,並詳述更新後的表格內容。反之,則請說明是表格定義中
的那項限制,導致該指令無法順利更新表格內容。(20 分)
(2)
(10)
(10)
(2)
(2) 20 分