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

