Professional Documents
Culture Documents
DBMS-TLTK
DBMS-TLTK
1.1.3. Mô hình dữ liệu: Mô hình kiến trúc ba mức của hệ CSDL bao gồm:
Mô hình mức ngoài: mô tả dữ liệu: mức luận lý & mức khung nhìn. Cung cấp khả năng cấu trúc linh hoạt và các ràng
buộc dữ liệu được xác định tường minh.
Mô hình mức khái niệm: mô tả dữ liệu: mức luận lý / mức khung nhìn. → xác định cấu trúc luận lý tổng thể CSDL (Chi
tiết cấu trúc dữ liệu, các ràng buộc).
Mô hình mức trong: mô tả dữ liệu ở mức thấp nhất (Cấu trúc lưu trữ, Cách thức truy cập). Hai mô hình dữ liệu vật lý
được biết rộng rãi nhất: mô hình hợp nhất (unifying model) và mô hình khung bộ nhớ (frame-memory model).
Độc lập dữ liệu logic: Thay đổi lược đồ khái niệm mà không cần phải thay đổi lược đồ mức ngoài hoặc những chương trình ứng dụng.
Độc lập dữ liệu vật lý: Thay đổi lược đồ mức trong mà không cần thay đổi lược đồ khái niệm.
Mô hình: Sự trừu tượng đơn giản về đặc điểm và mối liên hệ của cácsự kiện trong thế giới thực.
Mô hình dữ liệu: Tập hợp các khái niệm dùng để biểu diễn các cấu trúc của dữ liệu.
Mô hình dữ liệu thể hiện: sử dụng những ký pháp tương ứng với mô hình dữ liệu mà một hệ quản trị CSDL sử dụng.
Mô hình dữ liệu khái niệm: Mô tả các dữ liệu bằng cách cung cấp những khái niệm gần gũi với đa số người sử dụng, mô hình này chỉ ra
cái gì được đưa vào để quản lý.
Mô hình dữ liệu vật lý: Cung cấp những khái niệm để biểu diễn chi tiết cách thức dữ liệu được lưu trữ trong máy tính.
Hình 1.1. Cấu trúc tổng thể của Hệ quản trị CSDL
1.6. Các xu hướng mới về hệ quản trị CSDL
CSDL kết nối SQL/NoSQL. Xu hướng mới nhất. Cho phép người dùng truy cập CSDL NoSQL theo cách tương tự như CSDL quan hệ.
CSDL trên đám mây/nền tảng như là dịch vụ. sự cân bằng giữa công khai và riêng tư. Tiến tới đám mây không có nghĩa là thay đổi các ưu
tiên của tổ chức mà là tìm kiếm các sản phẩm và dịch vụ giúp nhóm các tổ chức đạt được mục tiêu.
Tự động hóa trong việc quản trị. các rủi ro thường không dự kiến trước, việc khắc phục cần sự can thiệp của con người.
Tăng cường tập trung vào bảo mật.
Dữ liệu lớn. Dữ liệu lớn không nhất thiết có nghĩa là nhiều dữ liệu. Những gì nó thực sự đề cập đến là khả năng xử lý bất kỳ loại dữ liệu
nào: những gì thường được gọi là dữ liệu bán cấu trúc và phi cấu trúc cũng như dữ liệu có cấu trúc.
1.7. Các nhóm người dùng CSDL:
- Nhóm quản trị cơ sở dữ liệu: Phân quyền truy cập cơ sở dữ liệu; Giám sát quá trình vận hành cơ sở dữ liệu; Sao lưu,
khôi phục cơ sở dữ liệu; Phân bổ tài nguyên phần cứng, phần mềm; Xử lý sự cố.
- Nhóm thiết kế cơ sở dữ liệu: Lựa chọn cấu trúc biểu diễn và lưu trữ dữ liệu; Đặc tả yêu cầu dữ liệu của người sử dụng;
Xây dựng khung nhìn dữ liệu phù hợp.
- Nhóm người dùng cuối: Truy xuất dữ liệu theo yêu cầu; Cập nhật dữ liệu theo hai hình thức: Trực tuyến/ Theo phiên.
- Nhóm nhân viên phát triển: Đặc tả yêu cầu của người sử dụng; Xây dựng hệ thống hướng cơ sở dữ liệu.
- Nhóm nhân viên bảo trì: Đảm bảo hệ thống hoạt động liên tục.
CHƯƠNG 2: TỔNG QUAN VỀ HỆ QUẢN TRỊ MS SQL SERVER
2.1. Lịch sử phát triển Hệ quản trị Microsoft SQL Server
Số lượng core tối đa Không giới hạn 24 core 4 core Không giới hạn
Bộ nhớ cột x x x x
PolyBase x x x x
Sys.altfiles Thông tin về mỗi tập tin trong CSDL: gồm ID tập tin, ID csdl, các tên tập tập tin vật ký và logic, vị trí, kích
cỡ.
Sys.configures Thông tin về mỗi lựa chọn máy chủ được thiết lập
trước khi QSL server đc bắt đầu, Chứa các dòng thông tin cấu hình quản lý csdl đó.
Sys.databases Thông tin về mỗi CSDL: số lượng csdl, ID csdl, tạo ngày nào, ai sở hữu, độ tương thích CSDL.
Sys.devices Thông tin về mỗi thiết bị sao lưu (thường xuyên) gồm các tên tập tin vật lý và logic, kích cỡ tập tin. Vd ổ
đĩa pc, ổ dĩa mt mạng,.
Sys.logins Thông tin về mỗi tài khoản đăng nhập: ID bảo mật, ID đăng nhập, mã hóa mật khẩu (null).
Sys.comments Thông tin về mỗi khung nhìn, luật, mặc định, bẩy lỗi, ràng buộc (check, default & các thủ tục)
Sys.indexes Thông tin về mỗi chỉ mục: gồm id chỉ mục, loại, các yếu tố ban đầu, và tên chỉ mục
Sys.objects Thông tin về mỗi đối tượng trong CSDL:tên đối tượng, id đối tg, id ng dùng của chủ sở hữu và ngày tạo.
Sys.users Thông tin về mỗi người dùng. ( ng dùngWindows) nhóm Windows, SQL Server và vai trò SQL Server
trong CSDL gồm ID, tên, nhóm ID và ngày tạo. login vào hệ thống → user vào database
Các bảng cơ sở hệ thống có cấu trúc giống các bảng cơ sở. Các câu lệnh T-SQL để truy xuất thông tin trong bảng cơ sở
cũng dùng để truy xuất thông tin trong bảng cơ sở hệ thống với tài khoản sử dụng thuộc nhóm System Administrator. SELECT *
FROM tên bảng hệ thống
Ví dụ 2.3. Sử dụng T-SQL truy cập danh mục hệ thống
Ví dụ 3.3: Chỉnh sửa kích cỡ tập tin nhật ký của MyDB31 thành 10MB.
Ví dụ 3.4: Bổ sung thêm một tập tin dữ liệu MyDB312_dat.
Ví dụ 3.5: Chỉnh sửa tỷ lệ gia tăng của tập tin MyDB31_dat của MyDB31 thành 15%.
Ví dụ 3.6: Chỉnh sửa kích cở của tập tin MyDB31_dat của MyDB31 thành 20MB.
Ví dụ 3.8: Xóa hai CSDL MyDB31, MyDB32 trong cùng một câu lệnh
Ví dụ 3.9: Xóa CSDL MyDB31 sau khi ngắt tất cả kết nối tới CSDL này
3.2. Giao dịch dữ liệu
3.2.1. Khái niệm giao dịch
Giao dịch (transaction) là một tập hợp có thứ tự các thao tác trên CSDL cấu thành một đơn vị công việc logic không thể chia cắt.
Ví dụ 3.10: Ngân hàng thực hiện chuyển tiền từ tài khoản A sang tài khoản B, giao dịch này bao gồm hai thao tác:
- Trừ tiền trong tài khoản A
- Cộng tiền trong tài khoản B
Hai thao tác này hoặc cả hai thành công hoặc không có thao tác nào thành công. Nếu một công việc vì lý do nào đó không thực hiện
thành công thì trạng thái ban đầu (trước khi chuyển tiền) phải được khôi phục để bảo toàn dữ liệu.
3.2.2. Tính chất của giao dịch
Các CSDL sử dụng nhật ký giao dịch (transaction log) để ghi lại các thay đổi trên dữ liệu do các thao tác trong giao dịch gây ra.
Dựa các các nhật ký giao dịch này, dữ liệu có thể được phục hồi trong trường hợp: lỗi phát sinh khiến cho giao dịch không thể thành công/
ít nhất một thao tác trong giao dịch không thực hiện thành công.
Trên cơ sở đó, một giao dịch phải đáp ứng tính nguyên tử, tính nhất quán, tính độc lập và tính bền vững.
3.3. Sao lưu, phục hồi dữ liệu
Sao lưu dữ liệu quan trọng nhất với DBA (Database administrator- nhà quản trị csdl).
Mục tiêu: Dự phòng các biến cố có thể xảy ra; Phục hồi dữ liệu nhanh và chính xác
Các biến cố: Chủ quan & khách quan; Hệ thống & hành vi; Bên trong & bên ngoài.
SQL Server ưu tiên thực hiện giao dịch, xong tiếp tục sao lưu. Dữ liệu sao lưu đã bị thay đổi. Sau khi sao lưu dữ liệu, SQL Server thực
hiện sao lưu transaction logs
Sau đó, SQL Server sẽ khôi phục tiếp transaction log. Các dữ liệu sẽ được roll forward để đảm bảo không bị thay đổi trong quá trình sao
lưu. Đến dữ liệu thứ ba (456), SQL Server phát hiện có sự thay đổi (từ log backup), roll back được thực hiện.
3.3.1. Phương pháp sao lưu dữ liệu
3.3.1.1. Sao lưu đầy đủ
Sao lưu đầy đủ (Full database backup) là phương pháp sao chép vào tập tin lưu trữ toàn bộ CSDL, bao gồm tất cả nhóm
tập tin, tập tin dữ liệu, dữ liệu người dùng, các đối tượng dữ liệu như là bảng hệ thống, chỉ mục, bảng người dùng định nghĩa, ...
Phương pháp sao lưu đầy đủ nhất, tốn kém nhất về thời gian thực hiện và phương tiện lưu trữ.
Sao lưu đầy đủ chỉ thực hiện được khi ngừng toàn bộ hoạt động của hệ thống, nghĩa là không có bất cứ giao dịch nào truy
cập CSDL.
Với bản sao lưu đầy đủ, CSDL có thể được phục hồi về thời điểm thực hiện sao lưu gần nhất.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- CSDL ít quan trọng, những thay đổi của CSDL có thể tái tạo thủ công hơn là sử dụng các nhật ký giao dịch
- CSDL ít thay đổi, CSDL chỉ đọc
- CSDL có kích thước vừa và nhỏ
Ví dụ 3.14: Lịch trình sao lưu dữ liệu
Thời điểm Hành động
- Sao lưu đầy đủ (1) được tạo lúc 24:00 thứ 3, bao gồm tất cả “mọi thứ” trong CSDL tại thời điểm 24:00 thứ 3.
- Sao lưu đầy đủ (2) được tạo lúc 24:00 thứ 4, bao gồm tất cả “mọi thứ” trong CSDL tại thời điểm 24:00 thứ 4.
3.3.1.2. Sao lưu khác biệt
Sao lưu khác biệt (Differential database backup) là phương pháp sao chép vào tập tin lưu trữ chỉ những dữ liệu bị thay
đổi kể từ lần sao lưu đầy đủ gần nhất.
Phương pháp này nhanh hơn và ít tốn không gian lưu trữ hơn rất nhiều so với phương pháp sao lưu đầy đủ.
Khó thực hiện hơn và việc phục hồi dữ liệu sử dụng các bản sao lưu khác biệt đòi hỏi nhiều thời gian hơn.
Với sao lưu khác biệt, CSDL có thể được phục hồi về thời điểm thực hiện sao lưu gần nhất.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- CSDL ít quan trọng, những thay đổi của CSDL có thể tái tạo thủ công hơn là sử dụng các nhật ký giao dịch.
- Tài nguyên để thực hiện sao lưu dữ liệu bị hạn chế như thiếu vùng lưu trữ hoặc thời gian thực hiện sao lưu.
Ví dụ 3.15: Lịch trình sao lưu dữ liệu
Thời điểm Hành động
24:00 (Thứ 3) Sao lưu đầy đủ (1)
- Sao lưu khác biệt (2) bao gồm tất cả mọi thay đổi dữ liệu từ lần sao lưu đầy đủ (1)
- Sao lưu khác biệt (3) gồm tất cả mọi thay đổi dữ liệu từ sao lưu đầy đủ (1) đến 12:00 thứ 4.
- Sao lưu khác biệt (7) gồm tất cả mọi thay đổi dữ liệu từ sao lưu đầy đủ (5) đến 12:00 thứ 5.
3.3.1.3. Sao lưu nhật ký giao dịch
Sao lưu nhật ký giao dịch (Transaction log backup) là phương pháp sao chép vào tập tin lưu trữ các bản ghi nhật ký
trong tập tin nhật ký giao dịch kể từ lần sao lưu đầy đủ/khác biệt/nhật ký gần nhất. Sao chép một cách có thứ tự tất cả các thao tác
chứa trong LDF kể từ lần transaction log backup gần nhất. Chỉ sao lưu những thao tác, ko lưu dữ liệu (data) của database.
Phương pháp này không sao chép lại bản thân dữ liệu mà chỉ sao chép các thao tác ảnh hưởng đến dữ liệu (thêm mới, sửa,
xóa).
Do đó, việc tạo các bản sao lưu nhật ký giao dịch thường diễn ra trong thời gian ngắn và ít tốn không gian lưu trữ so với
phương pháp sao lưu khác biệt.
Tuy nhiên, các bản sao lưu nhật ký không thể tồn tại độc lập mà phải kết hợp với một bản sao lưu đầy đủ và các bản sao
lưu khác biệt (nếu có).
Với sao lưu nhật ký giao dịch, CSDL có thể được phục hồi về một thời điểm bất kỳ trong quá khứ mà vẫn đảm bảo tính
nhất quán.
Phương pháp sao lưu này phù hợp với CSDL có đặc điểm sau đây:
- Tài nguyên để thực hiện sao lưu dữ liệu bị hạn chế như thiếu vùng lưu trữ hoặc thời gian thực hiện sao lưu.
- Không chấp nhận việc mất dữ liệu khi gặp sự cố và không thể khôi phục được.
- Mong muốn trả về CSDL tại thời điểm xảy ra sự cố.
- CSDL thay đổi thường xuyên
3.3.1.4. File or file group backups
Sao chép một datafile đơn hoặc một file group
Ví dụ 3.16: Lịch trình sao lưu dữ liệu
Thời điểm Hành động
Bảng:
Khung nhìn:
Khung nhìn có khả năng cập nhật: thêm xóa sửa, thay đổi trên bảng bảng cơ sở làm thay đổi khung nhìn đó. Thậm chí, sự thay đổi khung
nhìn (trong vài trường hợp) dẫn tới sự thay đổi tương tự trên bảng cơ sở.
Ví dụ: Giả sử EmployeeOnDep1 là khung nhìn với bảng cơ sở là Employee
Xóa khung nhìn bằng lệnh DROP VIEW EmployeeOnDep1 →Xóa định nghĩa tạo khung nhìn; không ảnh hưởng tới bảng cơ sở.
Xóa bảng Employee bằng lệnh DROP TABLE Employee →Xóa lược đồ và thể hiện của bảng Employee; Khung nhìn EmployeeOnDep1
trở nên không sử dụng được.
Thủ tục lưu trữ bao gồm hai loại thủ tục hệ thống (system procedure) và thủ tục người dùng định nghĩa (user-defined procedure).
Bốn thành phần của một thủ tục lưu trữ là tên gọi, các tham số, các câu lệnh thực thi và giá trị trả về (nếu có).
- Tên gọi: định danh, duy nhất trong mỗi CSDL.
- Tham số: đại lượng dùng để lưu giữ giá trị trao đổi giữa thủ tục và môi trường thực thi.
o Phân loại
Tham số đầu vào (lưu giữ giá trị truyền vào từ môi trường thực thi): Tham số bắt buộc (bắt buộc phải truyền giá trị cho tham só); Tham số
tùy chọn (đã được gắn giá trị mặc định: nếu không có giá trị được truyền trong lời gọi thủ tục, tham số nhận gtri mặc định)
Tham số đầu ra: (lưu giữ giá trị trả về môi trường thực thi.Khai báo bằng từ khóa OUTPUT: trả gtri bất kỳ/ hàm RETURN để trả về giá trị
số nguyên)
o Các câu lệnh thực thi: mọi câu lệnh SQL, bao gồm câu lệnh khai báo biến.
o Truyền giá trị cho tham số đầu vào: Truyền theo vị trí (thứ tự các giá trị truyền = thứ tự tham số được liệt kê trong câu lệnh định nghĩa
thủ tục); Truyền theo tên: (các cặp <tên tham số> = <giá trị> được liệt kê trong lời gọi thủ tục
Kiểm tra tính hợp lệ và tạo thông báo lỗi
🞇 Xử lý lỗi với lệnh TRY ... CATCH
🞇 Phát sinh lỗi với lệnh RAISERROR
Xem nội dung SP lưu trữ trong CSDL: sp_helptext [tên thủ tục]
Chỉnh sửa nội dung SP: alter procedure ...
Xóa SP: drop procedure ...
4.2.2. Hàm
Hàm (Function) là một đối tượng trong CSDL, gồm một nhóm các câu lệnh SQL được đặt tên là lưu trữ cùng nhau trong CSDL. hàm hệ
thống (system function) và hàm người dùng định nghĩa (user-defined function).
4.2.3. Trình kích hoạt/ Bẫy lỗi Trigger
Trigger là một loại thủ tục lưu trữ đặc biệt ở trạng thái sẵn sàng, được kích hoạt bởi một sự kiện xảy ra trong máy chủ CSDL. Mục đích:
tự động thực hiện việc kiểm soát / kiểm tra sự thay đổi của dữ liệu
Có ba loại trình kích hoạt tương ứng với ba loại sự kiện: bao gồm đăng nhập (Login trigger):phản hồi sự kiện đăng nhập , thay đổi cấu
trúc (DDL trigger): câu lệnh CREATE, ALTER và DROP và thay đổi dữ liệu (DML trigger): INSERT, UPDATE hoặc DELETE trên
bảng lưu trữ hoặc khung nhìn.
Các thành phần của trigger: Tên trigger; Bảng (khung nhìn) liên kết với trigger; Thời điểm kích hoạt (FOR / AFTER / INSTEAD OF);
Hành động kích hoạt (INSERT / UPDATE / DELETE); Các thao tác được thực hiện sau khi kích hoạt.
Câu lệnh tạo trigger:
chú ý: Trigger ghi dòng dữ liệu mới (thêm mới, thay đổi) vào bảng Inserted trong bộ nhớ cache.
Trigger ghi dòng dữ liệu cũ (bị xóa, thay đổi) vào bảng Deleted trong bộ nhớ cache.
Điều kiện áp dụng: Cài đặt ràng buộc toàn vẹn; Kiểm soát sự thay đổi dữ liệu trong bảng; Kiểm tra dữ liệu nhập phù hợp với mối quan hệ
giữa các bảng; Định nghĩa thông báo lỗi; So sánh trạng thái trước và sau khi hiệu chỉnh.
CHƯƠNG 5: QUẢN TRỊ NGƯỜI DÙNG SQL SERVER.
1. Quyền đăng nhập hệ thống
Mô hình truy cập: / bảo mật
Quyền cấp cơ sở dữ liệu: quản lý quyền trong CSDL. Vai trò CSDL cố định (fixed database roles) db_owner/vai trò CSDL do
người dùng xác định (user-defined database roles) msdb
- Tạo Windows login bằng thủ tục hệ thống → Áp dụng đối với thành viên của sysadmin hoặc securityadmin server
roles.
- Tạo SQL Server login bằng thủ tục hệ thống: → Áp dụng đối với thành viên của sysadmin hoặc securityadmin server roles.
- Gán server roles cho login bằng T-SQL: Thành viên của nhóm có thể thêm login vào nhóm; thành viên nhóm sysadmin thêm
login vào tất cả các nhóm.
- Gán quyền truy cập CSDL hiện hành cho Windows hoặc SQL Server login →Áp dụng thuộc nhóm
sysadmin, db_accessadmin, db_owner.
- Thay đổi vai trò của tài khoản người dùng trong CSDL hiện hành → Áp dụng thuộc nhóm sysadmin, db_owner,
db_security;