Tóm tắt lý thuyết chương 2 môn Cơ sở dữ liệu và có ví dụ minh họa | Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh

Tóm tắt lý thuyết chương 2 môn Cơ sở dữ liệu và có ví dụ minh họa của Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

 

lOMoARcPSD|36625228
CHƯƠNG 2
1. Ràng buộc toàn vẹn là gì?
· Ràng buộc toàn vẹn là một điều kiện bất biến không được vi phạm trong một CSDL.
Trong một CSDL, luôn luôn tồn tại rất nhiều mối liên hệ ảnh hưởng qua lại lẫn nhau
giữa các thuộc tính của mối quan hệ, giữa các bộ giá trị trong một quan hệ giữa các
thuộc tính của các bộ giá trị trong các quan hệ với nhau. Các mối quan hệ phụ thuộc lẫn
nhau y chính những điều kiện bất biến tất cả các bộ của những quan hệ liên
quan trong sở dữ liệu đều phải thỏa mãn bất kthời điểm nào. Ràng buộc toàn vẹn
được gọi các quy tắc quản (Rules) được áp đặt n trên các đối tượng của thế giới
thực.
2. Tại sao các quan hệ phải có ràng buộc toàn vẹn?
Trong một CSDL, ràng buộc toàn vẹn được xem như một công cụ để diễn đạt ngữ nghĩa
của sở dữ liệu đó. Trong suốt quá trình khai thác sở dữ liệu, các RBTV đều phải được
thỏa mãn ở bất kỳ thời điểm nào nhằm đảm bảo cho CSDL luôn luôn trạng thái an toàn
và nhất quán về dữ liệu
Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL
Bảo đảm tính nhất quán của dữ liệu
Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế
3. Khóa chính (primary key) của một quan hệ Q
Khóa chính (primary key): Một trong c khóa ứng viên sẽ được chọn làm khóa chính
cho quan hệ.
4. Khóa ngoại (foreign key) của một quan hệ Q
Các table trong một database không tồn tại độc lập còn mối quan hệ mật thiết với
nhau về mặt dữ liệu.
Mối quan hệ y được thể hiện thông qua ràng buộc giá trị dữ liệu xuất hiện bảng này
phải có xuất hiện trước trong một bảng khác.
Mối quan hệ giữa các table trong database nhằm đảm bảo được tính đúng đắn hợp lệ
của dữ liệu trong database.
=> Một hay nhiều thuộc tính (khóa chính hay thuộc tính thuộc ràng buộc unique) trong một
mối quan hệ A xuất hiện trong một quan hệ B khác được gọi khóa ngoại trong quan hệ
B.
5. Ràng buộc về miền giá trị của 1 thuộc tính
lOMoARcPSD|36625228
- Miền giá trị (Domain) của một thuộc tính: một tập giá trị mà một thuộctính
có thể nhận.
Ví dụ:
Dom(Phai) = |Phai| = {‘Nam’, ‘Nu’}
Dom(Diem) = |Diem| = [0..10]
- Ràng buộc về miền giá trị: các giá trị trong cột phải nằm trong miền giátrị
của cột.
6. Một thuộc tính có ràng buộc Unique?
Ràng buộc unique (duy nhất): mỗi giá trị trong cột ràng buộc này phải duy
nhất trong cột đó.
7. Một thuộc tính có ràng buộc not null nghĩa là?
Ràng buộc not null sẽ không cho phép một cột chứa các giá trị NULL. Điều y sex
buộc một trường luôn chứa ít nhất một giá trị, nghĩa bạn không thể chèn bản
ghi mới hay cập nhật một bảng ghi không thêm một giá trị vào trường này (đ
trống).
8. Một thuộc tính có ràng buộc Check (điều kiện) nghĩa là?
- Một thuộc tính có ràng buộc Check (điều kiện) nghĩa là thuộc tính đó
chỉcho phép giá trị nhập vào nằm trong một phạm vi nhất định.
- Ràng buộc Check là một loại ràng buộc miền giá trị trong SQL Server.-
Ví dụ: thuộc tính DIEMTHI chỉ cho phép giá trị nằm trong khoảng từ 0
đến 10.
9. Câu lệnh khai báo, thêm và xóa các ràng buộc của quan hệ Q.
Câu lệnh khai báo ràng buộc:
CONSTRAINT (Tên ràng buộc) RÀNG BUỘC Tên thuộc tính
Ví dụ:
CONSTRAINT UC_Person UNIQUE (ID, LastName)
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
lOMoARcPSD|36625228
CONSTRAINT CHK_Person CHECK (Age >=18 AND City=’Sandness’)
Câu lệnh thêm ràng buộc:
ALTER TABLE [Tên bảng ADD CONSTRAINT Tên ràng buộc] Kiểu ràng
buộc (Tên thuộc tính);
*Phần màu đỏ là phần không bắt buộc. Có thể lượt bỏ nhưng thầy
khuyến khích là nên đặt tên cho constraints. Ví dụ:
ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL;
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);
-> ALTER TABLE Persons
-> ALTER TABLE Persons ADD
UNIQUE (ID);
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
-> ALTER TABLE Persons
-> ALTER TABLE Persons ADD
PRIMARY KEY(ID);
ALTER TABLE Orders
ADD CONSTRAINT FK_Person Order
FOREIGN KEY (PersonID) REFERENCES Persons (PersonID);
-> ALTER TABLE Orders
->ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons (PersonID);
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND
City='Sandn
es');
-> ALTER TABLE Persons
-> ALTER TABLE Persons
ADD CHECK (Age>=18);
- Câu lệnh xóa ràng buộc:
lOMoARcPSD|36625228
ALTER TABLE Tên bảng DROP CONSTRAINT Tên ràng buộc Kiểu ràng
buộc (Tên thuộc tính);
Ví dụ:
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
10. Cho Q1(A int, B int), Q2(A int, C int). A trong Q2 là khóa ngoại tham chiếu qua A của
Q1. Thao tác nào dưới đây không thực hiện được
(1) Thêm 1 dòng có A = 1 vào Q2, nhưng trong Q1 chưa có dòng nào có A = 1.
(2) Sửa 1 dòng trong Q2 có A = 1 thành A=0, nhưng trong Q1 chưa có dòng nào có A = 0.
(3) Cả (1) và (2) đều đúng
(4) Cả (1) và (2) đều sai
11. Trigger là gì?
Là một chương trình con tự động kích hoạt và thực thi
một chuỗi các lệnh được kết hợp với một biến cố, khi biến cố xảy ra thì trigger
tự động thực thi
12. Ý nghĩa của biến cố, điều kiện và hành động trong trigger
biến cố: trigger chỉ được thực thi khi biến cố xảy ra (insert, delete, update)
điều kiện: điều đầu tiên khi trigger được thực thi đó là kiểm tra điều kiện
hành động: nếu hành động đúng thì các hành động trong trigger được thực thi
13. Ý nghĩa của For và After trong câu lệnh tạo trigger
For: ngay khi biến cố xảy ra thì thực hiện Trigger
After: sau khi biến cố xảy ra mới thực hiện Trigger
14. Ý nghĩa của câu lệnh dưới
Create trigger AA on Q after delete as declare @new int, @old int select @old=ol.B from
deleted ol if (@old >2) print ('Notify Customer Relations');
-> Sau khi người dùng xóa, giá trị ol.B>2 thì sẽ in ra thông báo 'Notify Customer
Relations'
15. Instead of trigger là gì?
lOMoARcPSD|36625228
Instead of trigger là một loại trigger đặc biệt, nó cho phép bạn bỏ qua câu lệnh INSERT,
UPDATE hoặc DELETE trên một table hoặc view. Ví dụ bạn muốn khi có hành
động delete trên table product thì bạn không xóa sản phẩm sẽ chạy một câu lệnh
UPDATE status của product đó sang chế độ ẩn
16. Ý nghĩa của câu lệnh dưới
Create trigger AA on Q after delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Rollback; end Tạo một trigger
tên là AA sau khi người dùng thực hiện một câu lệnh xóa trên bảng nếu giá trị xóa lớn hơn
2 thì in ra câu 'Notify Customer Relations' phục hồi lại bảng ban đầu trước khi xóa
Rollback
17. Cho
Create trigger AA on Q after delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Rollback; end Từ khóa
“after” trong câu lệnh trên có nghĩa là gì?
Từ khóa “after” trong câu lệnh trên có nghĩa là gì?
Tức sau khi thực thi câu lệnh trigger sẽ được thực hiện và kiểm tra giá trị đã xóa
có lớn hơn 2 không nếu lớn hơn thì in ra dòng Notify Customer Relations và
phục hồi lại dữ liệu cũ bằng ROLLBACK.
18. Cho
Create trigger AA on Q for delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Từ khóa “for” trong câu lệnh
trên có nghĩa là gì?
FOR hoặc AFTER chỉ định rằng trình kích hoạt DML chỉ kích hoạt khi tất cả các
hoạt động được chỉ định trong câu lệnh SQL kích hoạt đã khởi chạy thành công. Tất
cả các hành động phân tầng tham chiếu và kiểm tra ràng buộc cũng phải thành công
trước khi trình kích hoạt này kích hoạt.
19. Ý nghĩa của câu lệnh dưới
Create trigger BB on Q1 instead of insert as Declare @newA int, @newB int Select
@newA = n.A, @newB = n.B From Inserted n Insert into Q2 values(@newA, @newB)
Câu lệnh trigger trên có ý nghĩa sau:
- Trigger có tên là "BB" được tạo trên bảng "Q1".
lOMoARcPSD|36625228
- Trigger này được kích hoạt khi một hoạt động chèn (insert) dữ liệu vào bảng "Q1"
đượcthực hiện.
- Thay chèn dữ liệu trực tiếp vào bảng "Q1", trigger y thay đổi hành vi mặc định
vàthực hiện các bước sau:
Đầu tiên, nó khai báo hai biến @newA và @newB để lưu giá trị mới
Đầu tiên, khai báo hai biến @newA @newB để lưu giá trị mới của các cột A
B.
Sau đó, nó thực hiện một truy vấn SELECT để lấy giá trị của cột A và
B từ bảng "Inserted". Bảng "Inserted" chứa các dòng dữ liệu mới
người dùng đã cố gắng chèn vào bảng "Q1".
Cuối cùng, trigger thực hiện một lệnh INSERT để chèn giá trị của @newA
và @newB vào bảng "Q2".
- Tóm lại, trigger "BB" sẽ thay đổi cách dữ liệu mới được chèn vào bảng"Q1" bằng cách
chèn dữ liệu y vào bảng "Q2" sau khi đã thực hiện một số xử lý hoặc biến đổi trên dữ
liệu mới.
20. View là gì?
View giúp ta tạo ra các bảng Ảo (Virtual Table) chứa các thông tin, dữ liệu đã được
lưu trữ sẵn cho người dùng sử dụng. Tuy nhiên, View không tồn tại như một cấu
trúc lưu trữ dữ liệu trong csdl.
21. Mục đích của sử dụng view
Các View thường được sử dụng với các mục đích sau đây:
- Sử dụng View để tập trung trên dữ liệu được xác định.
- Sử dụng View để đơn giản hóa thao tác dữ liệu- Sử dụng View để tùy biến dữ liệu.
- Sử dụng View để trích xuất dữ liệu tạo báo cáo.
Sử dụng View để bảo mật dữ liệu, che giấu thông tin
22. Trong SQL server, cú pháp câu lệnh tạo, xóa, sửa view?
CREATE VIEW <Tên view> as <câu lệnh select>, UPDATE, DROP VIEW
23. Phân loại View?
Standard View: view được tạo bao gồm các cột của các bảng hoặc các view khác
Indexed View: view được tạo và được đặt chỉ mục Unique Clustered Index
lOMoARcPSD|36625228
Partitiioned view: view được tạo bao gồm các dữ liệu được phân cụm ngang từ một
hoặc nhiều bảng
24. Ý nghĩa của câu lệnh
Create view cc as Select A, max(B) as ln from Q1 group by A;
Tạo ra view có tên cc từ việc chọn A và max của B bằng tên ln từ bảng Q1 với max được
gọp theo A
25. Cho PBan(MaPB int, TenPB char(20), MaNQL int). Viết câu lệnh thêm ràng
buộcđảm bảo mỗi phòng ban có 1 người quản
-ALTER TABLE PBan ADD CONSTRAINT FK_PBan_NQL FOREIGNKEY
(MaNQL) REFERENCES NhanVien(MaNhanVien),
-ADD CONSTRAINT UQ_PBan_MaNQL UNIQUE (MaNQL);
26. Cho NV(MaNV int, Hoten char(30), Luong int) câu lệnh alter table Emp add
constraint chk_luong_min check (salary > 10000). Giải thích ý nghĩa của câu lệnh
này.
- Sửa cấu trúc bảng NV bằng cách thêm một ràng buộc tên chk_luong_min
kiểmtra lương có >10000 hay không.
- Đảm bảo rằng mọi dòng dữ liệu mới hoặc dữ liệu đã tồn tại trong bảng "Emp"
phảituân theo điều kiện kiểm tra "salary > 10000". Nếu bất kỳ dòng nào không tuân
theo điều kiện y, việc thêm hoặc cập nhật dữ liệu trong bảng "Emp" sẽ bị từ chối (không
thể có các bản ghi với mức lương nhỏ hơn hoặc bằng 10,000 trong bảng này).
27. Cho NV(MaNV int, Hoten char(30), Luong int, MaPB int) view được định nghĩa
như sau Create view V_NV(MaPB, SoNV, TongLg, LgTB) as Select MaPB, Count(*),
Sum(Luong), Avg(Luong) From NV Group by MaPB;
Các câu SQL nào thực hiện được trên view V_NV
(1) Select * From V_NV
(2) Delete from V_NV Where MaPB = 1
(3) Cả (1) và (2) đều đúng
(4) Cả (1) và (2) đều sai
| 1/7

Preview text:

lOMoARcPSD| 36625228 CHƯƠNG 2
1. Ràng buộc toàn vẹn là gì? ·
Ràng buộc toàn vẹn là một điều kiện bất biến không được vi phạm trong một CSDL.
Trong một CSDL, luôn luôn tồn tại rất nhiều mối liên hệ ảnh hưởng qua lại lẫn nhau
giữa các thuộc tính của mối quan hệ, giữa các bộ giá trị trong một quan hệ và giữa các
thuộc tính của các bộ giá trị trong các quan hệ với nhau. Các mối quan hệ phụ thuộc lẫn
nhau này chính là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên
quan trong cơ sở dữ liệu đều phải thỏa mãn ở bất kỳ thời điểm nào. Ràng buộc toàn vẹn
được gọi là các quy tắc quản lý (Rules) được áp đặt lên trên các đối tượng của thế giới thực.
2. Tại sao các quan hệ phải có ràng buộc toàn vẹn?
Trong một CSDL, ràng buộc toàn vẹn được xem như một công cụ để diễn đạt ngữ nghĩa
của cơ sở dữ liệu đó. Trong suốt quá trình khai thác cơ sở dữ liệu, các RBTV đều phải được
thỏa mãn ở bất kỳ thời điểm nào nhằm đảm bảo cho CSDL luôn luôn ở trạng thái an toàn
và nhất quán về dữ liệu •
Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL •
Bảo đảm tính nhất quán của dữ liệu •
Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế
3. Khóa chính (primary key) của một quan hệ Q
Khóa chính (primary key): Một trong các khóa ứng viên sẽ được chọn làm khóa chính cho quan hệ.
4. Khóa ngoại (foreign key) của một quan hệ Q
Các table trong một database không tồn tại độc lập mà còn có mối quan hệ mật thiết với nhau về mặt dữ liệu.
Mối quan hệ này được thể hiện thông qua ràng buộc giá trị dữ liệu xuất hiện ở bảng này
phải có xuất hiện trước trong một bảng khác.
Mối quan hệ giữa các table trong database nhằm đảm bảo được tính đúng đắn và hợp lệ
của dữ liệu trong database.
=> Một hay nhiều thuộc tính (khóa chính hay thuộc tính thuộc ràng buộc unique) trong một
mối quan hệ A xuất hiện trong một quan hệ B khác được gọi là khóa ngoại trong quan hệ B.
5. Ràng buộc về miền giá trị của 1 thuộc tính lOMoARcPSD| 36625228
- Miền giá trị (Domain) của một thuộc tính: một tập giá trị mà một thuộctính có thể nhận. Ví dụ:
Dom(Phai) = |Phai| = {‘Nam’, ‘Nu’} Dom(Diem) = |Diem| = [0..10]
- Ràng buộc về miền giá trị: các giá trị trong cột phải nằm trong miền giátrị của cột. 6.
Một thuộc tính có ràng buộc Unique?
Ràng buộc unique (duy nhất): mỗi giá trị trong cột có ràng buộc này phải là duy nhất trong cột đó. 7.
Một thuộc tính có ràng buộc not null nghĩa là?
Ràng buộc not null sẽ không cho phép một cột chứa các giá trị NULL. Điều này sex
buộc một trường luôn chứa ít nhất một giá trị, có nghĩa là bạn không thể chèn bản
ghi mới hay cập nhật một bảng ghi mà không thêm một giá trị vào trường này (để trống). 8.
Một thuộc tính có ràng buộc Check (điều kiện) nghĩa là?
- Một thuộc tính có ràng buộc Check (điều kiện) nghĩa là thuộc tính đó
chỉcho phép giá trị nhập vào nằm trong một phạm vi nhất định.
- Ràng buộc Check là một loại ràng buộc miền giá trị trong SQL Server.-
Ví dụ: thuộc tính DIEMTHI chỉ cho phép giá trị nằm trong khoảng từ 0 đến 10.
9. Câu lệnh khai báo, thêm và xóa các ràng buộc của quan hệ Q.
Câu lệnh khai báo ràng buộc:
CONSTRAINT (Tên ràng buộc) RÀNG BUỘC Tên thuộc tính Ví dụ:
CONSTRAINT UC_Person UNIQUE (ID, LastName)
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName) lOMoARcPSD| 36625228
CONSTRAINT CHK_Person CHECK (Age >=18 AND City=’Sandness’)
Câu lệnh thêm ràng buộc:
ALTER TABLE [Tên bảng ADD CONSTRAINT Tên ràng buộc] Kiểu ràng buộc (Tên thuộc tính);
*Phần màu đỏ là phần không bắt buộc. Có thể lượt bỏ nhưng thầy
khuyến khích là nên đặt tên cho constraints. Ví dụ: ALTER TABLE Persons
ALTER COLUMN Age int NOT NULL; ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName); -> ALTER TABLE Persons -> ALTER TABLE Persons ADD UNIQUE (ID); ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName); -> ALTER TABLE Persons -> ALTER TABLE Persons ADD PRIMARY KEY(ID); ALTER TABLE Orders
ADD CONSTRAINT FK_Person Order
FOREIGN KEY (PersonID) REFERENCES Persons (PersonID); -> ALTER TABLE Orders ->ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons (PersonID); ALTER TABLE Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandn es'); -> ALTER TABLE Persons -> ALTER TABLE Persons ADD CHECK (Age>=18);
- Câu lệnh xóa ràng buộc: lOMoARcPSD| 36625228
ALTER TABLE Tên bảng DROP CONSTRAINT Tên ràng buộc Kiểu ràng buộc (Tên thuộc tính); Ví dụ: ALTER TABLE Persons DROP CONSTRAINT UC_Person;
10. Cho Q1(A int, B int), Q2(A int, C int). A trong Q2 là khóa ngoại tham chiếu qua A của
Q1. Thao tác nào dưới đây không thực hiện được
(1) Thêm 1 dòng có A = 1 vào Q2, nhưng trong Q1 chưa có dòng nào có A = 1.
(2) Sửa 1 dòng trong Q2 có A = 1 thành A=0, nhưng trong Q1 chưa có dòng nào có A = 0.
(3) Cả (1) và (2) đều đúng
(4) Cả (1) và (2) đều sai 11. Trigger là gì?
Là một chương trình con tự động kích hoạt và thực thi •
Là một chuỗi các lệnh được kết hợp với một biến cố, khi biến cố xảy ra thì trigger tự động thực thi
12. Ý nghĩa của biến cố, điều kiện và hành động trong trigger
biến cố: trigger chỉ được thực thi khi biến cố xảy ra (insert, delete, update) •
điều kiện: điều đầu tiên khi trigger được thực thi đó là kiểm tra điều kiện •
hành động: nếu hành động đúng thì các hành động trong trigger được thực thi
13. Ý nghĩa của For và After trong câu lệnh tạo trigger
For: ngay khi biến cố xảy ra thì thực hiện Trigger •
After: sau khi biến cố xảy ra mới thực hiện Trigger
14. Ý nghĩa của câu lệnh dưới
Create trigger AA on Q after delete as declare @new int, @old int select @old=ol.B from
deleted ol if (@old >2) print ('Notify Customer Relations');
-> Sau khi người dùng xóa, mà giá trị ol.B>2 thì nó sẽ in ra thông báo 'Notify Customer Relations'
15. Instead of trigger là gì? lOMoARcPSD| 36625228
Instead of trigger là một loại trigger đặc biệt, nó cho phép bạn bỏ qua câu lệnh INSERT,
UPDATE hoặc DELETE trên một table hoặc view. Ví dụ bạn muốn khi có hành
động delete trên table product thì bạn không xóa sản phẩm mà sẽ chạy một câu lệnh
UPDATE status của product đó sang chế độ ẩn
16. Ý nghĩa của câu lệnh dưới
Create trigger AA on Q after delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Rollback; end Tạo một trigger
tên là AA sau khi người dùng thực hiện một câu lệnh xóa trên bảng nếu giá trị xóa lớn hơn
2 thì in ra câu 'Notify Customer Relations' và phục hồi lại bảng ban đầu trước khi xóa Rollback 17. Cho
Create trigger AA on Q after delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Rollback; end Từ khóa
“after” trong câu lệnh trên có nghĩa là gì?
Từ khóa “after” trong câu lệnh trên có nghĩa là gì?
Tức sau khi thực thi câu lệnh trigger sẽ được thực hiện và kiểm tra giá trị đã xóa
có lớn hơn 2 không nếu lớn hơn thì in ra dòng Notify Customer Relations và
phục hồi lại dữ liệu cũ bằng ROLLBACK. 18. Cho
Create trigger AA on Q for delete as declare @old int select @old=ol.B from deleted
ol if (@old >2) Begin print ('Notify Customer Relations'); Từ khóa “for” trong câu lệnh trên có nghĩa là gì?
FOR hoặc AFTER chỉ định rằng trình kích hoạt DML chỉ kích hoạt khi tất cả các
hoạt động được chỉ định trong câu lệnh SQL kích hoạt đã khởi chạy thành công. Tất
cả các hành động phân tầng tham chiếu và kiểm tra ràng buộc cũng phải thành công
trước khi trình kích hoạt này kích hoạt.
19. Ý nghĩa của câu lệnh dưới
Create trigger BB on Q1 instead of insert as Declare @newA int, @newB int Select
@newA = n.A, @newB = n.B From Inserted n Insert into Q2 values(@newA, @newB)
Câu lệnh trigger trên có ý nghĩa sau:
- Trigger có tên là "BB" được tạo trên bảng "Q1". lOMoARcPSD| 36625228
- Trigger này được kích hoạt khi một hoạt động chèn (insert) dữ liệu vào bảng "Q1" đượcthực hiện.
- Thay vì chèn dữ liệu trực tiếp vào bảng "Q1", trigger này thay đổi hành vi mặc định
vàthực hiện các bước sau:
Đầu tiên, nó khai báo hai biến @newA và @newB để lưu giá trị mới
Đầu tiên, nó khai báo hai biến @newA và @newB để lưu giá trị mới của các cột A và B.
Sau đó, nó thực hiện một truy vấn SELECT để lấy giá trị của cột A và
B từ bảng "Inserted". Bảng "Inserted" chứa các dòng dữ liệu mới mà
người dùng đã cố gắng chèn vào bảng "Q1".
Cuối cùng, trigger thực hiện một lệnh INSERT để chèn giá trị của @newA và @newB vào bảng "Q2".
- Tóm lại, trigger "BB" sẽ thay đổi cách dữ liệu mới được chèn vào bảng"Q1" bằng cách
chèn dữ liệu này vào bảng "Q2" sau khi đã thực hiện một số xử lý hoặc biến đổi trên dữ liệu mới. 20. View là gì?
View giúp ta tạo ra các bảng Ảo (Virtual Table) chứa các thông tin, dữ liệu đã được
lưu trữ sẵn cho người dùng sử dụng. Tuy nhiên, View không tồn tại như một cấu
trúc lưu trữ dữ liệu trong csdl.
21. Mục đích của sử dụng view •
Các View thường được sử dụng với các mục đích sau đây:
- Sử dụng View để tập trung trên dữ liệu được xác định.
- Sử dụng View để đơn giản hóa thao tác dữ liệu- Sử dụng View để tùy biến dữ liệu.
- Sử dụng View để trích xuất dữ liệu tạo báo cáo.
Sử dụng View để bảo mật dữ liệu, che giấu thông tin
22. Trong SQL server, cú pháp câu lệnh tạo, xóa, sửa view?
CREATE VIEW as , UPDATE, DROP VIEW 23. Phân loại View? •
Standard View: view được tạo bao gồm các cột của các bảng hoặc các view khác •
Indexed View: view được tạo và được đặt chỉ mục Unique Clustered Index lOMoARcPSD| 36625228 •
Partitiioned view: view được tạo bao gồm các dữ liệu được phân cụm ngang từ một hoặc nhiều bảng
24. Ý nghĩa của câu lệnh
Create view cc as Select A, max(B) as ln from Q1 group by A;
Tạo ra view có tên cc từ việc chọn A và max của B bằng tên ln từ bảng Q1 với max được gọp theo A
25. Cho PBan(MaPB int, TenPB char(20), MaNQL int). Viết câu lệnh thêm ràng
buộcđảm bảo mỗi phòng ban có 1 người quản lý
-ALTER TABLE PBan ADD CONSTRAINT FK_PBan_NQL FOREIGNKEY
(MaNQL) REFERENCES NhanVien(MaNhanVien),
-ADD CONSTRAINT UQ_PBan_MaNQL UNIQUE (MaNQL);
26. Cho NV(MaNV int, Hoten char(30), Luong int) và câu lệnh alter table Emp add
constraint chk_luong_min check (salary > 10000). Giải thích ý nghĩa của câu lệnh này. -
Sửa cấu trúc bảng NV bằng cách thêm một ràng buộc có tên là chk_luong_min
kiểmtra lương có >10000 hay không. -
Đảm bảo rằng mọi dòng dữ liệu mới hoặc dữ liệu đã tồn tại trong bảng "Emp"
phảituân theo điều kiện kiểm tra "salary > 10000". Nếu có bất kỳ dòng nào không tuân
theo điều kiện này, việc thêm hoặc cập nhật dữ liệu trong bảng "Emp" sẽ bị từ chối (không
thể có các bản ghi với mức lương nhỏ hơn hoặc bằng 10,000 trong bảng này).
27. Cho NV(MaNV int, Hoten char(30), Luong int, MaPB int) và view được định nghĩa
như sau Create view V_NV(MaPB, SoNV, TongLg, LgTB) as Select MaPB, Count(*),
Sum(Luong), Avg(Luong) From NV Group by MaPB;
Các câu SQL nào thực hiện được trên view V_NV (1) Select * From V_NV
(2) Delete from V_NV Where MaPB = 1
(3) Cả (1) và (2) đều đúng
(4) Cả (1) và (2) đều sai