Bài giảng Các hệ cơ sở dữ liệu - 1. Giới thiệu và kiến trúc của hệ quản trị cơ sở dữ liệu
Một số hàm toán học ABS(N) CEILING(N) EXP(N) FLOOR(N) POWER(B, E) SQRT(N) ROUND(N) SQUARE(N)
Bạn đang xem trước 20 trang tài liệu Bài giảng Các hệ cơ sở dữ liệu - 1. Giới thiệu và kiến trúc của hệ quản trị cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giới thiệu HQTCSDL & mô hình dữ liệu
Nhắc lại các kiến thức về cơ sở dữ liệu (CSDL).
ðịnh nghĩa hệ quản trị CSDL
Người dùng của hệ quản trị cơ sở dữ liệu.
Mô tả sự cần thiết của cơ sở dữ liệu.
Các thành phần trong CSDL.
Xác ñịnh sự cần thiết của việc lên kế hoạch phát triển CSDL.
DBMS01 – Slides 2
Xác ñịnh các giai ñoạn phát triển cơ sở dữ liệu.
Xác ñịnh hậu quả của việc phân tích thiết kế CSDL nếu thực
hiện không tốt.
Mô hình dữ liệu.
Sơ ñồ ERD.
Khái niệm cơ sở dữ liệu
Cơ sở dữ liệu - CSDL (Database)
Là một hệ thống các thông tin có cấu
trúc ñược lưu trữ trên các thiết bị lưu
trữ thông tin thứ cấp (như băng từ,
ñĩa từ ...)
DBMS01 – Slides 3
Có thể thỏa mãn yêu cầu khai thác
thông tin ñồng thời của nhiều người
sử dụng hay nhiều chương trình ứng
dụng với nhiều mục ñích khác nhau.
Khái niệm cơ sở dữ liệu
DBMS01 – Slides 4
Khái niệm cơ sở dữ liệu
Giảm sự trùng lặp thông tin xuống mức thấp
nhất và do ñó bảo ñảm ñược tính nhất quán
Ưu ñiểm nổi bậc của CSDL
DBMS01 – Slides 5
và toàn vẹn dữ liệu
ðảm bảo dữ liệu có thể ñược truy xuất theo
nhiều cách khác nhau
Khả năng chia sẻ thông tin cho nhiều người
sử dụng và nhiều ứng dụng khác nhau
Khái niệm cơ sở dữ liệu
1. Tính chủ quyền của dữ liệu
Dữ liệu chia sẽ người có chức năng thay ñổi thường xuyên
ðể có dữ liệu mới nhất phải cập nhật thường xuyên
2. Tính bảo mật và quyền khai thác thông tin của người dùng
Vấn ñề cần giải quyết
DBMS01 – Slides 6
Dữ liệu ñược bảo vệ
Người dùng chỉ truy xuất thông tin mình có quyền
3. Tranh chấp dữ liệu
Dữ liệu ñược thêm vào ñồng thời
Dữ liệu ñược sửa ñồng thời
4. ðảm bảo dữ liệu khi có sự cố
ðang thực hiện thao tác thì mất ñiện
Khái niệm cơ sở dữ liệu
Liên hệ với việc
Xây dựng một ứng dụng quản lý
DBMS01 – Slides 7
Giới thiệu về HQTCSDL
Hệ quản trị cơ sở dữ liệu (Database
Management System - DBMS) ñược thiết kế
ñể quản lý khối lượng dữ liệu rất lớn. Mục
ñích chính của hệ quản trị CSDL là:
Cung cấp môi trường và công cụ ñể lưu trữ
và truy xuất dữ liệu từ cơ sở dữ liệu một
DBMS01 – Slides 8
cách hiệu quả.
Lưu giữ thông tin về người dùng của hệ
quản trị cơ sở dữ liệu và những tác vụ mà
người dùng này có thể tương tác với dữ liệu
ñược lưu trữ.
Một số hệ quản trị CSDL thường gặp
MS Access, MS SQL Server 200X, MySQL,
Oracle, LDAP, DB2,
Hệ quản trị CSDL
1. Ngôn ngữ giao tiếp giữa người sử dụng (NSD) và CSDL
a. Ngôn ngữ mô tả dữ liệu (Data Definition Language - DDL)
b. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language -
DML)
c. Ngôn ngữ truy vấn dữ liệu, hay ngôn ngữ hỏi ñáp có cấu
Các thành phần của hệ quản trị CSDL
DBMS01 – Slides 9
trúc (Structured Query Language - SQL)
d. Ngôn ngữ ñiều khiển dữ liệu (Data Control Language -
DCL)
2. Từ ñiển dữ liệu (Data Dictionary)
Dùng ñể mô tả các ánh xạ liên kết
Ghi nhận các thành phần cấu trúc của CSDL, các chương
trình ứng dụng, mật mã, quyền hạn sử dụng v.v...
3. Có biện pháp bảo mật tốt khi có yêu cầu bảo mật
Hệ quản trị CSDL
4. Cơ chế giải quyết vấn ñề tranh chấp dữ liệu
Cấp quyền ưu tiên cho từng người sử dụng (người quản trị
CSDL thực hiện)
ðánh dấu yêu cầu truy xuất dữ liệu, phân chia thời gian, người
nào có yêu cầu trước thì có quyền truy xuất dữ liệu trước
Các thành phần của hệ quản trị CSDL
DBMS01 – Slides 10
5. Cơ chế sao lưu (Backup) và phục hồi (Restore) dữ liệu
khi có sự cố xảy ra.
ðịnh kỳ kiểm tra CSDL, sau một thời gian nhất ñịnh hệ quản trị
CSDL sẽ tự ñộng tạo ra một bản sao CSDL. Cách này hơi tốn
kém, nhất là ñối với các CSDL lớn
Tạo nhật ký (LOG) thao tác CSDL. Mỗi thao tác trên CSDL ñều
ñược hệ thống ghi lại, khi có sự cố xảy ra thì tự ñộng lần ngược
lại (RollBack) ñể phục hồi CSDL.
Hệ quản trị CSDL
6. Hệ quản trị CSDL phải cung cấp một giao diện
(Interface) tốt, dễ sử dụng, dễ hiểu cho
những người sử dụng không chuyên
7. Bảo ñảm tính ñộc lập giữa dữ liệu và chương
Các thành phần của hệ quản trị CSDL
DBMS01 – Slides 11
trình
Khi có sự thay ñổi dữ liệu (như sửa ñổi cấu lưu trữ
các bảng dữ liệu, thêm các chỉ mục (Index) ...) thì
các chương trình ứng dụng (Application) ñang
chạy trên CSDL ñó vẫn không cần phải ñược viết
lại, hay cũng không làm ảnh hưởng ñến những
NSD khác.
Hệ quản trị CSDL
Kiến trúc của hệ quản trị CSDL
DBMS01 – Slides 12
Hệ quản trị CSDL
DBMS01 – Slides 13
Khái niệm cơ sở dữ liệu
1. Người dùng cuối (End User)
Sử dụng những công cụ hỗ trợ ñể khai thác
Ứng dụng này do chuyên viên tin học tạo ra
2. Người lập trình ứng dụng (Application Programmer)
Các ñối tượng sử dụng CSDL
DBMS01 – Slides 14
Xây dựng ứng dụng kết nối CSDL
3. Người quản trị CSDL (DBA – Database Administrator)
Tạo lập CSDL
Phục hồi hệ thống khi có sự cố xảy ra
Cấp phát quyền hạn khai thác CSDL
Application Programs/
Interactive Queries
Database
System
Database
Description
DBA Users/Programmers
DBMS01 – Slides 15
Catalog Database
Query ProcessorData
Access
DBMS
DDL
Compiler
Lý do dùng hệ quản trị CSDL ñể lưu trữ?
ðầu tiên ñể lưu trữ dữ liệu người ta
dùng hệ thống tập tin ñể lưu trữ. Cách
lưu trữ này thể hiện một số nhược ñiểm
sau:
DBMS01 – Slides 16
Dữ liệu lưu trữ bị dư thừa: Cùng một dữ
liệu lưu ở nhiều hơn 1 nơi không cần thiết.
Dữ liệu không nhất quán: Do dữ liệu ñược
lưu ở nhiều nơi nên khi cập nhật nếu
không cập nhật toàn bộ sẽ dẫn ñến tình
trạng không nhất quán của dữ liệu.
Ví dụ về lưu trữ theo hệ thống file
DBMS01 – Slides 17
Dùng hệ quản trị CSDL ñể lưu trữ có các
ưu ñiểm như sau:
Giảm thiểu sự dư thừa dữ liệu
Tránh ñược sự không ñồng nhất về dữ liệu
DBMS01 – Slides 18
Dữ liệu ñược chia sẻ.
Dữ liệu sẽ ñược bảo mật an toàn hơn.
Tính nhất quán của dữ liệu sẽ ñược ñảm bảo.
Các thành phần chức năng của
hệ quản trị CSDL
Hệ quản trị cơ sở dữ liệu có các thành phần chức
năng như sau:
Database manager: ñây là thành phần chính của
hệ quản trị cơ sở dữ liệu. Thành phần này có
nhiệm vụ ñáp ứng các lệnh truy vấn dữ liệu từ
người dùng và ñảm bảo tính nhất quán của cơ sở
DBMS01 – Slides 19
dữ liệu.
File Manager: Thành phần này sẽ chịu trách nhiệm
phục vụ tất cả các yêu cầu về dữ liệu. Nó sẽ liên
hệ với disk manager ñể lấy các khối dữ liệu từ ñĩa.
Disk Manager: ñây là phần thực hiện việc quản lý
dữ liệu ở cấp ñộ vật lý.
Ví dụ về dùng hệ quản trị CSDL ñể
lưu trữ
DBMS01 – Slides 20
Lên kế hoạch phát triển cơ sở dữ liệu
Lên kế hoạch phát triển cho hệ quản trị cơ sở dữ
liệu là quá trình chiến lược ñể tìm xem những
thông tin nào mà tổ chức sẽ cần thiết cho thời gian
tới.
Lợi ích của việc lên kế hoạch phát triển database:
Cho thấy rõ ñược tình trạng hiện tại của thông tin
DBMS01 – Slides 21
ñược lưu trong tổ chức.
Tìm và ñiều chỉnh lại các yêu cầu về tài nguyên
cho tổ chức.
Giúp cho phát triển ñược hệ quản trị CSDL ñáp
ứng ñược các yêu cầu của tổ chức.
Giúp cho việc lên kế hoạch hành ñộng ñể ñạt
ñược các mục tiêu của tổ chức.
Quy trình phát triển cơ sở dữ liệu bao
gồm 6 giai ñoạn:
Lên kế hoạch ban ñầu: Trong giai ñoạn này,
công ty sẽ thu thập thông tin về các ứng
dụng ñang dùng.
Nghiên cứu về tính khả thi: Trong giai ñoạn
này sẽ nghiên cứu về tính khả thi của kỹ
DBMS01 – Slides 22
thuật, kinh tế và cách vận hành CSDL.
ðịnh nghĩa các yêu cầu về CSDL: Giai ñoạn
này xác ñịnh tầm vực của CSDL, các yêu cầu
về thông tin ñể quản lý, các yêu cầu về phần
cứng, các yêu cầu về phần mềm.
Thiết kế ở mức luận lý: Trong giai ñoạn này
sẽ thiết kế lược ñồ CSDL ở mức luận lý.
Hiện thực: Trong giai ñoạn này ta sẽ chọ hệ
quản trị CSDL và chuyển thiết kế từ mức luận
DBMS01 – Slides 23
lý sang hiện thực trên hệ quản trị CSDL vừa
chọn.
ðánh giá và bảo trì cơ sở dữ liệu: sau khi
thiết kế và hiện thực ta ñưa CSDL và dùng,
ñánh giá lại hiệu quả của CSDL và ñồng thời
phải bảo trì nâng cấp CSDL ñã hiện thực.
Nếu ta phân tích, thiết kế và hiện thực CSDL
không tốt, cơ sở dữ liệu sẽ không hoạt ñộng
giống như ta mong ñợi. Một số nguyên nhân
thường dẫn ñến CSDL hoạt ñộng sai như:
Người dùng trực tiếp của CSDL không ñược
DBMS01 – Slides 24
xác ñịnh ñầy ñủ khi phân tích và thiết kế.
Dữ liệu ñược thu thập quá ít.
Cơ sở dữ liệu không dễ dàng thay ñổi ñể ñáp
ứng với sự thay ñổi về nghiệp vụ của tổ
chức
Mô hình dữ liệu
Mô hình dữ liệu mô tả cách tổ chức dữ liệu
bên trong CSDL.
Mô hình dữ liệu còn mô tả mối quan hệ dữ
liệu và các ràng buộc ñược ñịnh nghĩa trên
DBMS01 – Slides 25
dữ liệu ñó.
Mô hình dữ liệu ñược dùng rộng rãi nhất là
mô hình thực thể - kết hợp (Entity
Relationship Model)
Ví dụ mô hình ER
hoc HPhan mo
MaSV
Diem
(1,n)
(0,n)
Ten
(1,1)
mhoctruoc
MaMH
TenMH
(0,n)
Hocky
GvienNam
MaHP
DBMS01 – Slides 26
SVien MHoc
dieukien
Nganh
Lop
mhocsau
(0,n)
(0,n)
Tinchi
Khoa
Ví dụ mô hình ñối tượng
SVien
Ten
Lop
Nganh
LapTKB()
InBangDiem()
Diem
HPhan
Ten
SLuong
0..*1..*
hoc
1
mo
DBMS01 – Slides 27
DiemTH
DiemLT
DiemPrj
SuaDiem()
MHoc
Ten
Khoa
SoTinChi
CapNhatSTC()
0..*
0..*
0..*
Dieu kien
+MHoc truoc
+MHoc sau
Ví dụ mô hình quan hệ
SVien
MaSV
Ten
Lop
Nganh
Hoc
MaSV
MaHP
DiemLT
DiemTH
HPhan
MaHP
SLuong
MaMH
DBMS01 – Slides 28
MHoc
MaMH
TenMH
Khoa
TinChi
DKien
MaMH
MaMHTruoc
Ví dụ mô hình mạng
SVien MHoc
MHOC_MO
MHOC_SAU
MHOC_TRUOC
DBMS01 – Slides 29
HPhan
KQua
DKien
SVIEN_DIEM
KQUA_HPHAN
Ví dụ mô hình phân cấp
SVienHPhan
Mức 1:
KQua
DiemTH DiemLT
DBMS01 – Slides 30
TenSV Lop NganhTenHP SLuong
MHoc
TenMH Khoa TinChi
Mức 2:
Mức 3:
Mô hình thực thể - kết hợp
Mô hình thực thể - kết hợp dựa trên sự mô tả
các ñối tượng trong thế giới thực gọi là các
thực thể và các mối liên kết giữa chúng.
Sơ ñồ dùng ñể hiện thực mô hình thực thể
mối liên kết gọi là sơ ñồ thực thể - kết hợp
DBMS01 – Slides 31
ERD (Entity Relationship Diagram).
Các thành phần của sơ ñồ ERD:
Thực thể (Entity)
Mối quan hệ (Relationship)
Thuộc tính (Attribute)
Ví dụ về sơ ñồ E/R
Lam_viecNHANVIENTENNV
NGSINH DCHI
PHAI
LUONG
HONV
PHONGBAN
TENPB
MANV
MAPHG
DBMS01 – Slides 32
La_truong_phong
Phan_cong
Phu_trach
DEAN
TENDA
DDIEM_DA
MADA
Thực thể (Entity)
Thực thể là các ñối tượng, nơi chốn, con
người mà cần lưu giữ thông tin.
Thực thể ñược ñặt tên và ñược vẽ trong hình
chữ nhật.
Thực thể có 2 loại là thực thể ñộc lập và thực
thể phụ thuộc.
DBMS01 – Slides 33
Thực thể phụ thuộc còn ñược gọi là thực thể
yếu là thực thể mà sự tồn tại của nó phụ
thuộc vào một thực thể khác.
Thực thể yếu ñược mô tả bằng hình chữ nhật
có các cạnh bên ngoài là cạnh kép.
Ví dụ về thực thể
DBMS01 – Slides 34
Ví dụ về thực thể (tt)
DBMS01 – Slides 35
Mối quan hệ
Mối quan hệ thể hiện sự cộng tác giữa 2 thực
thể.
Mối quan hệ ñược thể hiện bằng hình thoi
chính giữa có tên quan hệ ñó.
Mối quan hệ có thể ñược tồn tại trên 2 thực
thể hoặc trên cùng 1 thực thể. Giữa hai thực
DBMS01 – Slides 36
thể có thể có nhiều mối quan hệ.
Mối quan hệ có 3 dạng:
Quan hệ 1 – 1
Quan hệ 1 – n
Quan hệ n - n
Ví dụ về các mối quan hệ:
DBMS01 – Slides 37
Ví dụ về các mối quan hệ:
DBMS01 – Slides 38
Ví dụ về các mối quan hệ:
DBMS01 – Slides 39
Ví dụ về các mối quan hệ:
DBMS01 – Slides 40
Ví dụ về các mối quan hệ:
DBMS01 – Slides 41
Ví dụ về các mối quan hệ:
DBMS01 – Slides 42
Thuộc tính
Thuộc tính thể hiện ñặc ñiểm của thực thể.
Thuộc tính ñược thể hiện bằng hình elipse,
với tên thuộc tính ñược vẽ bên trong hình.
Thuộc tính khóa ñược gạch dưới.
Các quan hệ cũng có thể có các thuộc tính.
DBMS01 – Slides 43 DBMS01 – Slides 44
Tóm tắt
Trong bài này bạn ñã ñược học:
ðịnh nghĩa hệ quản trị cơ sở dữ liệu (CSDL).
Người dùng của hệ quản trị cơ sở dữ liệu.
Mô tả sự cần thiết của cơ sở dữ liệu.
Các thành phần trong CSDL.
DBMS01 – Slides 45
Xác ñịnh sự cần thiết của việc lên kế hoạch phát
triển CSDL.
Xác ñịnh các giai ñoạn phát triển cơ sở dữ liệu.
Xác ñịnh hậu quả của việc phân tích thiết kế CSDL
nếu thực hiện không tốt.
Mô hình dữ liệu.
Sơ ñồ ERD
Thực thể, mối liên kết, thuộc tính
Kiến trúc của HQTCSDL
Tổ chức file trong SQL Server
Một CSDL ñược lưu trữ trong các tập tin vật lý trên
ñĩa cứng: Có 3 loại tập tin dùng ñể lưu trữ CSDL:
Một tập tin dữ liệu cơ sở (Primary Data files):
dùng lưu trữ dữ liệu và các thông tin khởi ñộng
Database (.mdf)
DBMS01 – Slides 47
Các tập tin dữ liệu phụ (Secondary data files):
chứa tất cả dữ liệu liên quan nhưng không ñặt
trong Primary Data files (.ndf)
Log files: dùng chứa các thông tin cần thiết cho
việc phục hồi các giao tác trong CSDL (.ldf)
Database Files
DBMS01 – Slides 48
Một tập tin CSDL có 5 thuộc tính :
Tên tập tin logic
Database
Data (file)
.mdf or .ndf
Log (file)
.Idf
DBMS01 – Slides 49
–
– Tên tập tin vật lý
– Một kích thước (size) ban ñầu
– Một kích thước tối ña (maximum size)
– Gia số tăng kích thước (growth increment)
Các thuộc tính và các thông tin khác ñược lưu trong
bảng hệ thống sysfiles
Cách cấp phát không gian lưu trữ:
– Dữ liệu ñược lưu trong các khối 8kb liền nhau của
không gian ñĩa gọi là trang (page), một CSDL (1MB)
lưu trên 128 page
– Các bảng, chỉ mục ñược lưu trong các extent (bộ
nhớ mở rộng), mỗi extent có 8 trang kề nhau, một
CSDL có 16 extent
Hoạt ñộng của transaction log:
DBMS01 – Slides 50
– Transaction log ghi nhận sự hiệu chỉnh dữ liệu (bởi
các lệnh: Insert, update, Delete)
– Trước hết SQL server chép các trang của Database
có sự thay ñổi vào 1 vùng RAM gọi là buffer cache
– Mỗi câu lệnh hiệu chỉnh dữ liệu ñược ghi nhận lại
thành vết và lưu vào tập tin log trước khi thay ñổi
ñó ñược tác ñộng vào CSDL (write –ahead log)
Database Object
Object Mô tả
Table Bảng quan hệ chứa dữ liệu
Data type Kiễu dữ liệu
DBMS01 – Slides 51
Constraint Các quy tắc kiểm tra ràng buộc dữ liệu
Default Các giá trị mặc ñịnh nếu giá trị 1 field không ñược nhập
Rule Các thông tin về giá trị hợp lệ trong 1 field
Index Là cấu trúc lưu trữ nhằm truy xuất nhanh dữ liệu
Database Object
Object Mô tả
View Bảng ảo, là 1 cách lấy dữ liệu từ table hay
từ các View khác
User-defined
Là các function do programmer ñịnh nghĩa
DBMS01 – Slides 52
function
Stored
procedure
Là các thủ tục do programmer ñịnh nghĩa
Trigger Là một dạng ñặc biệt của Procedure
nhưng ñược thực hiện tự ñộng khi user
thao tác dữ liệu lên bảng/view
Chức năng của Hệ QTCSDL
Quản Lý Dữ Liệu
Quản Lý File
Quản Lý ðĩa
DBMS01 – Slides 53
Ứng dụng của Hệ QTCSDL
Hàng không
Ngân hàng
Sản xuất
Quản lý ñơn ñặt hàng
DBMS01 – Slides 54
Quản lý bệnh viện
Thư viện
Khách sạn
v.v
Một số Hệ QTCSDL
Sysbase
Oracle
Microsoft SQL Server
MySQL Server
DBMS01 – Slides 55
Ingress
DB2
Mô hình thực thể
Thực thể (Entity) Bảng (Table)
Thuộc tính (Attribute) Cột (column)
Record Dòng (row)
DBMS01 – Slides 56
Mô hình thực thể
Thực thể (Entity) Bảng (Table)
ðược biểu diễn bởi hình gì?
Hình chữ nhật
Thuộc tính (Attribute) Cột (column)
ðược biểu diễn bởi hình gì?
DBMS01 – Slides 57
Hình elip hay chấm ñen
Record Dòng (row)
Mối kết hợp(1-1, 1-n, n-n) Relationship
ðược biểu diễn bởi hình gì?
Hình thoi hay elip
Bài tập tình huống
Kết quả khảo sát hệ thống quản lý nhân sự tiền lương tại một
công ty thu ñược kết quả như sau:
Mỗi nhân viên có một mã nhân viên duy nhất, có họ tên,
ngày tháng năm sinh và ñược lãnh lương theo hệ bậc lương
của mình. ðồng thời một nhân viên chỉ thuộc biên chế của
một và chỉ một phòng ban. VD: NV tên A có mã NV1 thuộc
biên chế phòng kỹ thuật (mã phòng KT) sinh 1984 lãnh
DBMS01 – Slides 58
lương chuyên viên chính.
Thông tin cần quản lý về phòng ban bao gồm: tên phòng
ban, mã phòng, số lượng nhân viên và người trưởng phòng.
VD: Phòng kỹ thuật có mã phòng KT có 5 nhân viên, trưởng
phòng là nhân viên A.
Mức lương gồm tên, số tiền, mô tả yêu cầu công việc.
VD: Chuyên viên chính lương 2,5 triệu tối thiểu 5 năm kinh
nghiệm.
Yêu cầu: Vẽ mô hình ERD cho hệ thống quản lý tiền lương
nói trên.
DBMS01 – Slides 59
Nội dung
Giới thiệu SQL
Làm việc với CSDL
Làm việc với bảng
Các truy vấn ñơn giản
Một số hàm:
DBMS01 – Slides 60
xử lý chuỗi, thời gian, toán học,
hàm toán học.
Truy vấn nhóm (Group by)
Truy vấn trên nhiều quan hệ, truy vấn con
Giới thiệu SQL
SQL – Structured Query Language
Thao tác trên dữ liệu (thêm, lấy, xóa,
sửa), tạo CSDL.
ðược ANSI và ISO chuẩn hóa
DBMS01 – Slides 61
Ngôn ngữ SQL chia làm 3 nhóm:
Ngôn ngữ ñịnh nghĩa dữ liệu (DDL)
Ngôn ngữ thao tác dữ liệu (DML)
Ngôn ngữ kiểm soát dữ liệu (DCL)
Lịch sử SQL
Thập kỉ 70, IBM phát triển SEQUEL cho
System R.
1978, SQL ñi vào sản phẩm thương mại
1986, ANSI công bố chuẩn SQL-86
1987, ANSI phê chuẩn SQL-87
DBMS01 – Slides 62
1992, SQL-2 hay còn gọi là SQL-92
1999, SQL-3 hay còn gọi là SQL-99
2003: SQL-2003: không miễn phí
2006: SQL-2006: không miễn phí
Một số chú ý
SQL không phân biệt chữ hoa, chữ thường.
Câu lệnh SQL thường kết thúc bằng dấu “;”
MS SQL Server dùng GO ñể ñánh dấu kết thúc một
lệnh.
CREATE DATABASE QLSV;
GO
DBMS01 – Slides 63
USE QLSV;
GO
Viết chú thích trong MS SQL Server:
Một dòng: --
Nhiều dòng: /* ... */
Làm việc với CSDL
ðặt tên: Dùng chữ cái (A-Z, a-z), số (0-
9), gạch dưới (_). Nếu muốn dùng
khoảng trắng thì bọc trong cặp [].
DBMS01 – Slides 64
Tạo CSDL
Tạo một CSDL có tên QuanLyDiemHocVien với kích
thước ban ñầu lúc khởi tạo là 50MB, tự ñộng tăng kích
thước lên 10% khi bị ñầy, kích thước tăng trưởng tập
tin tối ña không quá 200MB. Tập tin lưu vết lúc ban
ñầu lúc khởi tạo là 10MB, tự ñộng tăng kích thước lên
5MB khi dữ liệu bị ñầy, kích thước tăng trưởng tập tin
không giới hạn.
DBMS01 – Slides 65
CREATE DATABASE QuanLyDiemHocVien
ON PRIMARY (NAME = QuanLyDiemHocVien,
FILENAME='c:\QuanLyDiemHocVien.mdf', SIZE =
50MB, MAXSIZE = 200MB, FILEGROWTH = 10%)
LOG ON (NAME = QuanLyDiemHocVien_Log,
FILENAME='c:\QuanLyDiemHocVien.ldf', SIZE = 10MB,
MAXSIZE = UNLIMITED, FILEGROWTH = 5MB)
Tạo CSDL
Mặc ñịnh CSDL lưu ở:
C:\Program Files\Microsoft SQL
Server\MSSQL\Data
Lưu ý: Không ñược xóa CSDL bằng cách mở
DBMS01 – Slides 66
Windows Explorer ñể xóa các tập tin dữ liệu
trong C:\Program Files\Microsoft SQL
Server\MSSQL\Data vì làm ảnh hưởng ñến hệ
thống CSDL trong MS SQL Server.
QUẢN TRỊ CSDL
1. Thay ñổi kích thuớc của CSDL: có 2 cách
Hiệu chỉnh kích thước của file:
ALTER DATABASE database_name
MODIFY FILE
DBMS01 – Slides 67
(NAME = logic_name,
FILE NAME =‘ path/file_name’,
SIZE = size,
MAXSIZE = maxsize,
FILEGROWTH = filegrowth_increament)
QUẢN TRỊ CSDL
Thêm file mới:
ALTER DATABASE Logical_database_name
ADD FILE
( NAME = logical_file_name,
FILENAME = ‘path\filename.ndf',
DBMS01 – Slides 68
SIZE = size,
MAXSIZE = maxsize,
FILEGROWTH = filegrowth_increment )
[TO FILEGROUP filegroup_name]
QUẢN TRỊ CSDL
2. Thu nhỏ (Shrinking) Databases or Files
Thu nhỏ một CSDL tự ñộng:
ALTER DATABASE database_name
SET AUTO_SHRINK
DBMS01 – Slides 69
Thu nhỏ một CSDL bằng tay:
DBCC SHRINKDATABASE
(database_name, targer_percent)
DBCC SHRINKFILE
(file_name, targer_percent)
QUẢN TRỊ CSDL
3. ðổi tên CSDL:
Dùng hàm sp_renamedb ‘old_name’,
‘new_name’
4. Tạo script cho CSDL và các ñối tượng
của CSDL:
DBMS01 – Slides 70
Chọn CSDL cần tạo script Click phải
All Tasks
Trang General: Chọn ñối tựơng cần tạo
script
Trang formating: ðịnh dạng script
Làm việc với bảng
Dùng T-SQL:
CREATE TABLE table_name
(column_name datatype [NULL | NOT NULL]
[IDENTITY (SEED,INCREMENT)],
column_name datatype )
[ON {filegroup} | DEFAULT]
DBMS01 – Slides 71
Ví dụ:
CREATE TABLE Sinhvien
(Masv char(5) NOT NULL,
Hoten nchar(40) NOT NULL,
Diachi nchar(50) NOT NULL)
Một số kiểu dữ liệu
DBMS01 – Slides 72
Liệt kê các bảng trong CSDL hiện tại:
sp_help;
Thay ñổi tên bảng:
sp_rename ‘tên cũ’, ‘tên mới’
DBMS01 – Slides 73
Xóa bảng: DROP TABLE tên_bảng;
Liệt kê các cột của một bảng:
sp_columns tên_bảng;
Thêm một trường (cột):
ALTER TABLE table_name
ADD COLUMN column_name data_type;
ALTER TABLE SinhVien
ADD COLUMN DiaChi varchar(100) NULL ;
DBMS01 – Slides 74
Xoá một trường (cột):
ALTER TABLE table_name
DROP COLUMN column_name;
Sửa tên cột:
sp_rename 'TableName.ColumnName',
'NewColumnName', ‘COLUMN'
Các giá trị mặc ñịnh
Giá trị nào sẽ ñược ñiền vào các cột
mới ñược bổ sung?
NULL
Tự ñịnh nghĩa
DBMS01 – Slides 75
ðịnh nghĩa giá trị mặc ñịnh:
column_name data_type DEFAULT
default_value
Sử dụng ở bất kỳ chỗ nào có khai báo
thêm cột và kiểu dữ liệu tương ứng.
Giá trị NULL
Giá trị ñặc biệt trong SQL
ðược dùng khi không xác ñịnh ñược giá
trị của một thuộc tính của một bản ghi.
Ví dụ: Tên ñệm có thể có hoặc không.
DBMS01 – Slides 76
CREATE TABLE SinhVien (
sid int Primary Key,
name varchar(50) NOT NULL,
class varchar(10) NOT NULL,
address varchar(100));
Chèn dữ liệu:
INSERT [INTO] TableName VALUES (val1,
val2,)
INSERT [INTO]
DBMS01 – Slides 77
TableName(column1,,columnN) VALUES
(val1,, valN)
Insert into SinhVien(sid,class,name) VALUES
(112,’k51c’,’Nguyen Van A’);
Cập nhật dữ liệu:
UPDATE TableName SET columnN= valN
[WHERE condition];
VD: UPDATE SinhVien SET class=‘CNTT06CM’
WHERE class=‘CNTT06CaMau’;
Xóa dữ liệu:
DELETE FROM TableName
DBMS01 – Slides 78
[WHERE condition];
VD: DELETE FROM SinhVien
WHERE name=‘Nguyen Van A’;
Xóa toàn bộ nội dung bảng:
DELETE FROM TableName;
Một số câu lệnh
In ra màn hình:
PRINT content;
PRINT 123;
PRINT ‘Cau truy van’;
In ra màn hình bằng Select:
DBMS01 – Slides 79
SELECT ‘Xin chao’;
SELECT 12, 34; --In giá trị 12, 34 thành 2 cột
SELECT 12 AS ‘Tuổi’ --ðặt tên cho cột
Print và các phép toán:
PRINT 125 + 4088
PRINT 128 % 42
PRINT 154 - (12 + 8)
Các câu truy vấn ñơn giản
Cú pháp:
SELECT [DISTINCT]
FROM
[WHERE ]
[ORDER BY ]
Chọn tất cả các cột:
DBMS01 – Slides 81
SELECT * FROM
Chọn một số cột:
SELECT , ,... FROM
ðịnh tên cột tập kết quả:
SELECT MaSV AS ‘Mã Sinh Viên’ FROM SinhVien
Hằng trong tập kết quả:
SELECT TenNV + ‘là nhân viên của phòng’ + TenPB
FROM NhanVien A JOIN PhongBan B
ON A.MaPB = B.MaPB
Giá trị ñược tính toán:
SELECT TenNV, Luong * 0.02 AS ‘Bảo Hiểm’
FROM NhanVien
Loại trừ sự trùng lắp (lặp lại) với DISTINCT:
SELECT DISTINCT MaNV FROM PhanCong;
Hạn chế tập kết quả với TOP, PERCENT:
SELECT TOP n FROM ;
DBMS01 – Slides 82
SELECT TOP 10 * FROM MatHang;
SELECT TOP 40 PERCENT * FROM NhanVien;
Lựa chọn tập kết quả với IN, NOT IN:
SELECT TenDV FROM DonVi WHERE MaDV IN (113, 115)
So sánh với NULL:
SELECT * FROM SinhVien WHERE DienThoai IS NOT NULL;
Các phép toán so sánh
= So sánh bằng
Hoặc != So sánh khác
> So sánh lớn hơn
DBMS01 – Slides 83
< So sánh nhỏ hơn
>= So sánh lớn hơn hay bằng
<= So sánh nhỏ hơn hay bằng
BETWEEN...AND... So sánh nằm trong khoảng
LIKE So sánh mẫu, cho phép sử dụng kí tự ñại diện % và _
Một số hàm toán học
ABS(N)
CEILING(N)
EXP(N)
FLOOR(N)
DBMS01 – Slides 84
POWER(B, E)
SQRT(N)
ROUND(N)
SQUARE(N)
Một số hàm chuyển ñổi
CAST (expression AS data_type )
SELECT cast(getdate() AS varchar);
CONVERT (data_type [ ( length ) ] ,
expression [ , style ] )
DBMS01 – Slides 85
SELECT convert(datetime,'08-12-2008')
ðổi tên cột với SELECT:
SELECT ChucDanh=Title;
SELECT FullName=LastName+‘'+FirstName
FROM Employees;
So sánh chuỗi có ký tự ñặc biệt
Vd : Tên có ký tự % xuất hiện
SELECT * FROM sinhvien
WHERE ten LIKE '%[%]%' ;
Hoặc
DBMS01 – Slides 86
SELECT * FROM nhanvien
WHERE ten LIKE '%\%%' ESCAPE '\';
Bài tập
Lý thuyết:
Assginment01
Thực hành:
Quản lý Bóng ñá
DBMS01 – Slides 87
Quản lý Thư viện
Các file đính kèm theo tài liệu này:
- dbms01_5586.pdf