1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Co so du lieu

48 385 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 0,97 MB

Nội dung

- Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp, phép toán quan hệ, ràng buộc toàn vẹn quan hệ.. Định nghĩa Mô hình dữ liệu phân cấp Hierachical Data Model - đượ

Trang 1

Trang 1

MỤC LỤC

BÀI 1: TỔNG QUAN VỀ CSDL 2

I Dữ liệu – thông tin 2

II Các ưu, khuyết điểm của CSDL 2

III Tính độc lập giữa dữ liệu và chương trình 2

IV Phân loại người dùng CSDL 3

BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU 3

I Sơ đồ tổng quát một hệ quản trị CSDL 3

II Thực thể - quan hệ 3

III Các mô hình CSDL 4

IV Mô hình thực thể quan hệ 4

V Mô hình dữ liệu quan hệ 5

VI Mô hình dữ liệu mạng 5

VII Mô hình dữ liệu phân cấp (dạng tree) 6

VIII Mô hình dữ liệu hướng đối tượng 6

BÀI 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 7

I Các khái niệm 7

II Ràng buộc toàn vẹn 8

III Các phép tính trên cơ sở dữ liệu quan hệ 10

BÀI 4: NGÔN NGỮ THAO TÁC DỮ LIỆU 12

I Đại số quan hệ 12

II Các phép toán trên quan hệ 12

III Các phép cơ sở trên quan hệ 13

IV Ngôn ngữ giao tiếp CSDL 14

BÀI 5: NGÔN NGỮ TRUY VẤN DỮ LIỆU 16

I.Tổng quan, các qui ước biểu diễn câu lệnh SQL 16

II Ngôn ngữ cập nhật dữ liệu 18

III Ngôn ngữ cập nhật CSDL 18

IV Ngôn ngữ truy vấn dữ liệu 19

V Nhóm lệnh tính toán, thống kê 21

BÀI 6: RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM 21

I RÀNG BUỘC TOÀN VẸN 21

II PHÂN LOẠI RÀNG BUỘC TOÀN VẸN 24

III PHỤ THUỘC HÀM 27

BAI 6: DẠNG CHUẨN CỦA LƯỢC ĐỒ 28

I.Một Số Khái Niệm Liên Quan Đến Các Dạng Chuẩn 28

II Dạng Chuẩn Một (First Normal Form) 29

III.Dạng Chuẩn 2 (second normal form) 29

IV Dạng Chuẩn 3 (third normal form) 30

V .Dạng Chuẩn BC (Boyce Codd normal form) 31

BÀI TẬP 32

Trang 2

2 Đơn vị, thông tin

Bit: Là một số có một ký số, biểu diễn bằng số 0, hoặc số 1

Một ký tự hoặc byte là một số gồm 8 bit liên tục

Trường: Là một tập các byte có liên quan Tên người có thể được cấu tạo bởi các trường tên, tên lót, họ Một trường là đơn vị nhỏ nhất có ý nghĩa đối với người sử dụng

Mẫu tin: Là một tập các trường có liên hệ với nhau

Tập tin: Là một tập các mẫu tin, trong đó các mẫu tin đều chứa một loại dữ liệu đặc biệt và những dữ liệu này có liên hệ với nhau theo một cách nào đó

II Các ưu, khuyết điểm của CSDL

1 Ưu điểm:

- Giảm thiểu dữ liệu thừa

- Bảo đảm tính toàn vẹn của dữ liệu

- Bảo đảm tính độc lập của dữ liệu

- Bảo vệ an toàn dữ liệu

- Duy trì tính nhất quản của dữ liệu

- Chi phí huấn luyện

- Phụ thuộc vào công nghệ của CSDL

III Tính độc lập giữa dữ liệu và chương trình

Khi có sự thay đổi dữ liệu (như sửa đổi cấu trúc 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

Sơ đồ tổng quát về CSDL

Trang 3

Trang 3

IV Phân loại người dùng CSDL

Người dùng trong HQTCSDL gồm có 4 kiểu:

* Người quản trị CSDL thực hiện các công việc quản lý và bảo trì CSDL như sau:

- Sự chính xác và toàn vẹn dữ liệu, và bảo mật dữ liệu

- Thực hiện các công việc sao lưu và phục hồi dữ liệu

- Giữ liên lạc thường xuyên với người lập trình, người dùng, người phát triển ứng dụng để kịp thời cập nhật CSDL

- Bảo đảm sự hoạt động của CSDL và HQTCSDL

* Người phát triển và lập trình ứng dụng là những người rành về máy tính có trách nhiệm

thiết kế và tạo các chương trình ứng dụng dành cho người dùng cuối cùng

* Người dùng cuối: là những người có thể không rành về máy tính nhưng nắm rõ về các

nghiệp vụ mà ứng dụng triển khai

BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU

I Sơ đồ tổng quát một hệ quản trị CSDL

II Thực thể - quan hệ

Trang 4

1 Thực thể

Loại thực thể (Entity Type) là những loại đối tượng hay sự vật của thế giới thực tồn tại cụ thể cần được quản lý

2 Quan hệ

Sự thể hiện của lược đồ quan hệ Q ở một thời điểm nào đó được gọi là quan hệ, rõ ràng là

trên một lược đồ quan hệ có thể định nghĩa rất nhiều quan hệ Thường ta dùng các ký hiệu như R, S, Q để chỉ các lược đồ quan hệ, còn quan hệ được định nghĩa trên nó tương ứng được ký hiệu là là r, s, q

- Mô hình dữ liệu phân cấp

- Mô hình hướng đối tượng

IV Mô hình thực thể quan hệ

1 Định nghĩa

Mối liên hệ giữa các tập thực thể là một danh sách có thứ tự của các tập thực thể

Một tập thực thể đặc biệt có thể xuất hiện nhiều lần trong danh sách Danh sách các tập thực thể này là khái niệm ở mức lược đồ của một mối liên hệ

Mô hình thực thể quan hệ được CHEN giới thiệu năm 1976

Mô hình này được sử dụng nhiều trong thiết kế dữ liệu mức khái niệm

Loại thực thể (Entity Type) là những loại đối tượng, sự vật của thế giới thực tồn tại cụ thể

cần được quản lý

Thực thể (Entity) là một thể hiện của loại thực thể

Ví dụ: Trong loại thực thể HOCSINH có thực thể:

- (HS001, ‘Nguyễn Văn A’,’20/11/1993’, ‘Nam’)

- (HS002, ‘Trần Thị C’,’02/10/1992’, ‘Nữ’)

Thuộc tính: là những tính chất đặc trưng của một loại thực thể

Ví dụ: Loại thực thể HOCSINH có các thuộc tính:

MAHS, HOTEN, NGAYSINH, GIOITINH, NOISINH…

- Thuộc tính nhận diện: là thuộc tính để phân biệt thực thể này với thực thể kia trong tập

Trang 5

Trang 5

Đa hợp (Composite): thuộc tính được tạo từ nhiều thành phần

Ví dụ: DIACHI (Sonha, tenduong, phuong, quan)

Chú ý: các thuộc tính đa trị và đa hợp có thể lồng nhau tùy ý

Ví dụ: {BANGCAP(TRUONGCAP, KETQUA,CHUYENNGANH)}

Khóa: Khóa của loại thực thể là thuộc tính để nhận dạng thực thể.Căn cứ vào đó để xác

định duy nhất một thực thể

Ví dụ: Mỗi HOCSINH có một mã duy nhất để phân biệt HS này với HS kia

Loại kết hợp (quan hệ): là mối kết hợp, sự liên kết giữa hai hay nhiều loại thực thể

Bản số của nhánh là số lượng tối thiểu và số lượng tối đa tham gia vào mối kết hợp.Ký

hiệu (số lượng tối thiểu, tối đa) – (1,n)

Loại thực thể yếu - Là loại thực thể không có khóa chính

- Phải tham gia trong một loại mối kết hợp xác định trong đó phải có một loại thực thể chủ

Ví dụ: Thân nhân là một loại thực thể yếu có các thuộc tính HOTEN, NGAYSINH,

QUANHE và tham gia và mối kết hợp Có với thực thể chủ NHANVIEN

V Mô hình dữ liệu quan hệ

1 Định nghĩa mô hình

Mô hình CSDL quan hệ do E.F Codd đề xuất năm 1971, mô hình này bao gồm:

- Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại,

- Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp, phép toán quan hệ, ràng buộc toàn vẹn quan hệ

VI Mô hình dữ liệu mạng

Mẫu tin: Mô tả đối tượng trong thế giới thực

Ví dụ: (‘NV001’, ‘Nguyễn Văn Tuấn’, 02/02/1942’, ‘Nam’)

Loại mẫu tin: Là tập các mẫu tin cùng tính chất

Ví dụ: Tập hợp các mẫu tin về nhân viên trong công ty tạo thành NHANVIEN

Loại liên hệ: Mô tả sự liên kết giữa 1 loại mẫu tin chủ và loại mẫu tin thành viên

Ví dụ: Nhân viên (tham gia)công việc

Bản số: chỉ ra số lượng các mẫu tin tham gia trong các mối quan hệ

- 1-1 (one to one): một mẫu tin từ loại mẫu tin chủ kết hợp với 1 mẫu tin của loại mẫu tin thành viên

- 1- n (one to many): 1 mẫu tin từ loại mẫu tin chủ kết hợp với 1 hoặc nhiều loại mẫu tin thành viên

- n- 1 (many to one): nhiều mẫu tin của loại mẫu tin chủ kết hợp với 1 loại mẫu tin thành viên

- Recursive: một mẫu tin chủ cũng có thể đồng thời là loại mẫu tin thành viên với chính

nó Loại liên hệ này gọi là Đệ quy

Trang 6

2 Đặc điểm của mô hình dữ liệu mạng

- Tương đối đơn giản

- Dễ sử dụng

- Không thích hợp với việc biểu diễn CSDL có quy mô lớn

- Khả năng diễn đạt ngôn ngữ kém

VII Mô hình dữ liệu phân cấp (dạng tree)

1 Định nghĩa

Mô hình dữ liệu phân cấp (Hierachical Data Model) - được gọi tắt là mô hình phân cấp (Hierachical Model): Mô hình là một cây (Tree), trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được liên hệ với nhau theo một mối quan hệ xác định

2 Loại mẫu tin:

(Recorde Type) là mẫu đặc trưng cho 1 loại đối tượng riêng biệt Chẳng hạn như trong việc quản lý nhân sự tại một đơn vị, đối tượng cần phản ảnh của thế giới thực có thể là Phòng, Nhân viên, Công việc, lý lịch do đó có các loại mẫu tin đặc trưng cho từng đối tượng này Trong đồ thị biểu diễn mô hình mạng mỗi loại mẫu tin được biểu diễn bởi một hình chữ nhật, một thể hiện (Instance) của một loại mẫu tin được gọi là bản ghi.Trong ví dụ trên loại mẫu tin Phòng có các mẫu tin là các phòng, ban trong đơn vị; loại mẫu tin nhân viên có các mẫu tin là các nhân viên đang làm việc tại các phòng ban của cơ quan

3 Loại mối liên hệ:

Kiểu liên hệ là phân cấp, theo cách:

• Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là nó thuộc một chủ duy nhất Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1¸n, và từ mẫu tin (hay bản ghi - record) thành viên với mẫu tin chủ là 1¸1

• Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất

VIII Mô hình dữ liệu hướng đối tượng

Mô hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đời từ cuối những năm

80 và đầu những năm 90

Đây là loại mô hình tiên tiến nhất hiện nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương pháp lập trình hướng đối tượng, nó sử dụng các khái niệm như lớp (class), sự kế thừa (inheritance), kế thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi-inheritance) Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính

đa hình (polymorphism) và tính tái sử dụng (Reusability)

Trang 7

Trang 7

BÀI 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ

I Các khái niệm

1 Thuộc tính

Tên gọi: Dãy ký tự gợi nhớ

- Kiểu dữ liệu: Sổ, chuỗi, ngày tháng, luận lý…

- Miền giá trị: Tập giá trị mà thuộc tính đó có thể nhận Ký hiệu Dom(A)

Ví dụ: Thuộc tính GIOITINH, kiểu dữ liệu chuổi Miền giá trị: Dom(GIOITINH) = “Nam, Nữ”

- Trong cùng đối tượng không có 2 thuộc tính cùng tên

2 Lược đồ quan hệ

Tất cả các thuộc tính cần quản lý của đối tượng cùng mối liên hệ giữa chúng gọi là lược đồ quan hệ

Ví dụ: HOCVIEN (MAHV, HOTEN, NGSINH, GIOITINH, NOISINH, MALOP)

LOP (MALOP, TENLOP, SISO, TRGLOP, KHOA)

Nhiều lược đồ quan hệ cùng nằm trong một hệ thống quản lý gọi là lược đồ cơ sở dữ liệu

3 Tân từ

Tân từ: là một quy tắc dùng để mô tả một quan hệ Ký hiệu ║Q║

Ví dụ: Thi (MAHV, MAMH, LANTHI, DIEM)

║Thi║: mỗi học viên được phép thi một môn học nhiều lần, mỗi lần lưu trữ học viên nào học môn gì? Thi lần thứ mấy và điểm là bao nhiêu?

4 Bộ

Định nghĩa: Bộ là các thông tin của một đối tượng thuộc quan hệ, được gọi là mẫu tin (Record), dòng

Quan hệ của một bảng (table) với các cột gọi là thuộc tính và theo hàng gọi là bộ

Ví dụ: Mỗi bộ của quan hệ Q(A1, A2,…… , An) là q(a1, a2,…… , an) với giá trị € Dom(A)

5 Thể hiện của quan hệ

Định nghĩa: Thể hiện của một quan hệ là tập hợp các bộ giá trị của quan hệ tại một thời

điểm

Ký hiệu: thể hiện của quan hệ Q là TQ

Ví dụ: THOCVIEN là thể hiện của quan hệ HOCVIEN tại thời điểm hiện tại gồm có các bộ như sau:

6 Siêu khóa

Là một tập con các thuộc tính của Q mà giá trị của chúng có thể phân biệt 2 bộ khác nhau trong cùng một thể hiện TQ bất kỳ

Nghĩa là ¥ t1, t2 € TQ t1[K] ≠ t2[K] K là siêu khóa của Q

Một quan hệ có thể có ít nhất một siêu khóa hay nhiều siêu khóa

Ví dụ: các siêu khóa của quan hệ HOCVIEN là:

{Mahv};{Mahv,Hoten};

{Hoten};{Noisinh,Hoten}

Siêu khóa có ít thuộc tính nhất được gọi là Khóa hay Khóa chỉ định

1 lược đồ quan hệ có thể có nhiều khóa

- Trong lược đồ quan hệ, 1 khóa được chọn làm khóa chính (primary key)

Trang 8

- Thuộc tính có tham gia vào khóa được gọi là thuộc tính khóa, ngược lại, được gọi là thuộc tính không khóa

7 Khóa ngoại

- 1 tập thuộc tính được gọi là Khóa ngoại của Lược đồ quan hệ Q nếu và chỉ nếu nó nó là

tập thuộc tính của Q+ và là khóa của lược đồ quan hệ khác

Ví dụ : Cho lược đồ cơ sở dữ liệu Quản Lý Sinh Viên, các lược đồ quan hệ :

Q1= SINHVIEN(MaSV,Ho,Ten,DiemTB)

Q2= HOCPHAN(MaHP,TenHP,SoTinChi)

Q3= DANGKY_HOCPHAN(MaSV,MaHP)

{MaSV} là khóa của Q1

{MaHP} là khóa của Q2

{MaSV,MaHP} là khóa của Q3

{MaSV}, {MaHP} là các khóa ngoại của Q3

Trong thiết kế CSDL, nhà thiết kế thường dựa vào các Tân từ để xác định khóa cho Lược

đồ quan hệ

II Ràng buộc toàn vẹn

1 Định nghĩa ràng buộc toàn vẹn

Ràng buộc toàn vẹn là các quy định điều kiện từ ứng dụng thực tế, các điều kiện này là bất biến

=> Vì thế phải luôn đảm bảo cơ sở dữ liệu thỏa ràng buộc toàn vẹn sau mỗi thao tác làm thay đổi tình trạng của cơ sở dữ liệu

2 Các đặc trưng của ràng buộc

- Mô tả chặt chẽ ý nghĩa của ràng buộc toàn vẹn

Nội dung được phát biểu bằng ngôn ngữ tự nhiên hoặc ngôn ngữ hình thức (ngôn ngữ tân

từ, đại số quan hệ, mã giã)

- Ngôn ngữ tự nhiên: dễ hiểu, nhưng không chặt chẽ, logic

- Những thuộc tính là khóa chính không được sửa giá trị

- Trước khi xét thao tác thực hiện có thể vi phạm ràng buộc hay không thì CSDL phải thỏa mãn ràng buộc toàn vẹn trước

- Thêm xét trên một bộ của quan hệ Sửa và xóa xét trên từng thuộc tính của quan hệ

Ràng buộc Ri Thêm Xóa Sửa

Quan hệ 1

……

Trang 9

Trang 9

-: Không ảnh hưởng

+(A): Ảnh hưởng khi sửa thuộc tính A

-(*): Không ảnh hưởng do thao tác không thực hiện được

4 Ràng buộc bối cảnh trên một quan hệ

a Ràng buộc miền giá trị

Là một tập các giá trị mà thuộc tính có thể nhận được

R1: Điểm của HV chỉ có thể từ 1-> 10

hv HOCVIEN: hv.DIEM {1 10}

b Ràng buộc liên thuộc tính

Là ràng buộc giữa các thuộc tính với nhau trong cùng một bộ của quan hệ

R2: Ngày bắt đầu đi dạy luôn nhỏ hơn ngày kết thúc

gd GIANGDAY: gd.TUNGAY < gd.DENNGAY

Là ràng buộc trên cũng nhiều bộ của quan hệ có thể liên quan đến nhiều thuộc tính

R3: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương là như nhau

5 Ràng buộc bối cảnh nhiều quan hệ

a Ràng buộc tham chiếu

Là ràng buộc quy định giá trị thuộc tính một bộ của quan hệ R (khóa ngoại) phải phụ thuộc vào sự tồn tại của bộ trong quan hệ S (khóa chính)

RBTV tham chiếu hay còn gọi là RB phụ thuộc tồn tại hay RV khóa ngoại

Học viên thi một môn nào đó thì môn đó phải có trong bảng môn học

R2: Ràng buộc liên bộ liên thuộc tính

Ngày mà giáo viên đó dạy một môn học phải sau ngày vào làm

Nếu gv GIAOVIEN: gd.Magv = gv.Magv thì gv.NGVL gd.TUNGAY

Trang 10

b Ràng buộc toàn vẹn do thuộc tính tổng hợp

Là ràng buộc giữa các thuộc tính các bộ trên những quan hệ khác nhau

Thuộc tính tổng hợp là những thuộc tính được tính toán từ giá trị của các thuộc tính khác, các bộ khác

Ví dụ : SANPHAM(Masp, Tensp, Nuocsx, Gia)

KHACHHANG(Makh, Hoten, Doanhso)

HOADON(Sohd, Nghd,Makh,Trigia)

CTHD(Sohd,Masp,Soluong,Gia)

– Trị giá của một hóa đơn bằng tổng thành tiền của các chi tiết thuộc hóa đơn đó

III Các phép tính trên cơ sở dữ liệu quan hệ

Trang 12

BÀI 4: NGÔN NGỮ THAO TÁC DỮ LIỆU

- Cho phép mô tả các phép toán rút trích dữ liệu từ các quan hệ trong cơ sở dữ liệu quan hệ

- Cho phép tối ưu quá trình rút trích bằng các phép toán có sẵn của lý thuyết tập hợp

3 Biểu thức đại số quan hệ

- Biểu thức ĐSQH là một biểu thức gồm các phép toán ĐSQH

- Biểu thức ĐSQH được xem như một quan hệ (không có tên)

- Có thể đặt tên cho quan hệ được tạo từ một biểu thức quan hệ

- Có thể đổi tên các thuộc tính của quan hệ được tạo từ một biểu thức ĐSQH

II Các phép toán trên quan hệ

t phải thỏa điều kiện p

Kết quả trả về là một quan hệ, có cùng danh sách thuộc tính với quan hệ R Không có kết quả trùng

Phép chọn có tính chất giao hoán

Ví dụ : Cho LĐ CSDL Quản lý giáo vụ như sau:

HOCVIEN(MAHV, HO,TEN, NGAYSINH, GIOITINH, NOI SINH, MALOP)

LOP(MALOP, TENLOP, TRUONGLOP, SISO, MAGVCN)

KHOA(MAKHOA, TENKHOA, NGAYTLAP, TRUONGKHOA)

MONHOC(MAMH, TENMH, TCLT, TCTH, MAKHOA)

GIAOVIEN(MAGV, TENGV, HOCVI, HOCHAM, GIOITINH, NGAYSINH, NGVAOLAM, HESO, MUCLUONG, MAKHOA)

GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY)

KQTHI(MAHV, MAMH, LANTHI, NGAYTHI, DIEM, KQ)

Thực hiện chọn những HS có giới tính là "Nam" và NOISINH ở "TPHCM"

Trang 13

HOCVIENMahv TrglopLOP

Nếu điều kiện kết có 2 cột giống nhau thì bỏ bớt một cột

HOCVIEN> Mahv < KETQUATHI

HOCVIEN * Mahv KETQUATHI

3 Phép kết ngoài

2 Phép chiếu

Sử dụng để trích chọn giá trị một và thuộc tính của quan hệ

Ký hiệu (A1, A2 Ak)(R)

Trong đó A1, A2, Ak là các thuộc tính được chiếu

Kết quả của phép tính trả về một quan hệ có k thuộc tính theo thứ tự như liệt kê Các dòng trùng nhau chỉ lấy một

Phép chiếu không có tính chất giao hoán

Ví dụ:

Tìm mã số, họ tên của những học viên “Nam” và có nơi sinh ở “TPHCM”

Dùng để biểu diễn các câu truy vấn phức tạp

Ký hiệu A  B

Ví dụ:

R(HO,TEN, LUONG)  NV, TENNV, LUONG) (NHANVIEN)

Bên trái là biến quan hệ mới, kết quả nằm bên tay phải sẽ được gán vào quan hệ mới ở bên trái

1 Phép kết (Theta join)

Phép tính này giống như phép tích dercarts kết hợp với phép chọn

Điều kiện chọn gọi là điều kiện kết

Trong đó R,S là các quan hệ, p là điều kiện kết

- Các bộ có giá trị Null tại thuộc tính kết nối không xuất hiện trong kết quả của phép kết

Trang 14

Left outer join

Right outer join

Full outer join

Ví dụ: In ra danh sách của học viên và điểm số mà học viên đó tham gia thi

KETQUATHI

HOCVIEN

Kết quả hiển thị sau khi kết

IV Ngôn ngữ giao tiếp CSDL

Là ngôn ngữ chuẩn dùng để thao tác và truy vấn trên CSDL quan hệ

- Là ngôn ngữ phi thủ tục

- Khởi nguồn của SQL là SEQUEL – Structured English Query Language, năm 1974

1 Ngôn ngữ mô tả dữ liệu (Data Definition Language)

Là ngôn định nghĩa CSDL cho phép khai báo cấu trúc bảng, các mối liên hệ và các ràng buộc

a Lệnh tạo bảng

b Một số kiểu dữ liệu

Là một phép kết dùng để tránh trường hợp mất thông tin

- Thực hiện phép kết sau đó thêm vào kết quả các bộ của quan hệ mà không phù hợp với các

bộ của quan hệ kia

Trang 15

Trang 15

Sử dụng các kiểu dữ liệu và cấu trúc tạo bảng tạo các bảng dữ liệu sau đây trong SQL Server

Ví dụ: Tạo bảng CTHD

2 Ngôn ngữ thao tác dữ liệu (Data Manipulation Language)

Là ngôn ngữ sử dụng các câu lệnh SQL để thao tác trên CSDL như: Thêm, Sửa, Xóa

Ví dụ:

Thêm một Khách hàng vào bảng KHACHHANG

INSERT INTO (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK, CMND) Values (“KH02”, “Nguyen Van A”, “123 Hà Tây”, “ 0925364785”, “20/11/1983”, 25365,

“25/12/2006”, “273083815”

3 Ngôn ngữ truy vấn dữ liệu (Structured Query Language)

Là ngôn ngữ sử dụng các câu lệnh truy vấn và nhóm lệnh gom nhóm cũng như các hàm tính toán, thống kê để tìm kiếm và chọn lọc dữ liệu cần thiết theo mong muốn,

4 Ngôn ngữ quản lý dữ liệu

Thay đổi cấu trúc của các bảng dữ liệu

Khai báo bảo mật thông tin

Quyền hạn của người dùng trong khai thác CSDL

Trang 16

BÀI 5: NGÔN NGỮ TRUY VẤN DỮ LIỆU

I.Tổng quan, các qui ước biểu diễn câu lệnh SQL

1 Định nghĩa

SQL = Structured Query Language

- Là ngôn ngữ dùng để truy vấn dữ liệu

- Ngôn ngữ = cú pháp (cấu trúc ngữ pháp) + các từ khóa (từ vựng) + hàm lập sẵn

- Là 1 công cụ giao tiếp của HQTCSDL

Là cầu nối giữa:

- Nhà phát triển (Lập trình viên ) và Hệ quản trị CSDL

- Người dùng cuối (End-user) và Hệ quản trị CSDL

2 Qui ước biểu diễn

- Chuỗi (String) : được đặt trong dấu nháy kép hoặc đơn

- Ngày tháng (date/time) : được đặt trong cặp dấu #, giữa ngày – tháng – năm là dấu phân

cách “-” hoặc “/”, tên tháng có thể là số (1-12) hoặc viết tắt 3 chữ cái đầu

Trang 17

se Tru

e

And Luật và (5>2) And

(2>5) (5>2) And (5>4)

Fal

se Tru

e

Or Luật hay (5>2) Or

(2>5) (2>5) Or (4>5)

Tru

e Fal

? : đại diện cho một ký tự bất kỳ

# : đại diện cho 1 ký tự số

[A1,A2,…] : đại diện cho 1 ký

tự thuộc tập {A1, A2, …}

[A1 – A2] : đại diện cho 1 ký tự

Trang 18

WHERE DIEMTB>= IIF(GIOITINH=‘Nam’,6.5,6)

Hàm Date: Trả về ngày giờ của hệ thống

SELECT *

WHERE NGAYLAP >= (DATE()-5)

Hàm Day(<biểu thức ngày>) : trả về chỉ số của ngày trong <biểu thức ngày>

Ví dụ : Day(#12/2/2005#)  12

Hàm Month(<biểu thức ngày>) : trả về chỉ số của tháng trong <biểu thức ngày>

Hàm Year(<biểu thức ngày>) : trả về chỉ số của năm trong <biểu thức ngày>

Hàm Len(<giá trị chuỗi>) : trả về độ dài của chuỗi

Left(s,n) : trả về chuỗi gồm n ký tự bên trái của chuỗi s

Right(s,n) : trả về chuỗi gồm n ký tự bên phải của chuỗi s

Mid(s,i,n) : trả về chuỗi con của chuỗi s gồm n ký tự kể từ vị trí i

II Ngôn ngữ cập nhật dữ liệu

1 Thêm thuộc tính vào quan hệ

ALTER TABLE SINHVIEN ADD COLUMN GIOITINH TEXT(10)

2 Sửa kiểu dữ liệu của thuộc tính

ALTER TABLE SINHVIEN ALTER COLUMN GIOITINH BOOLEAN

3 Xóa thuộc tính

ALTER TABLE SINHVIEN DROP COLUMN GIOITINH

4 Xóa ràng buộc khóa chính

ALTER TABLE SINHVIEN DROP CONSTRAINT k1

5 Thêm ràng buộc khóa chính

ALTER TABLE SINHVIEN ADD CONSTRAINT k1 PRIMARY KEY (MASV)

6 Thêm ràng buộc miền giá trị lên thuộc tính

ALTER TABLE SINHVIEN ADD CONSTRAINT k3 CHECK (DIEMTB>=0 AND

DIEMTB<=10)

III Ngôn ngữ cập nhật CSDL

1 Thêm một trường dữ liệu mới

INSERT INTO <TÊN BẢNG>(

Trang 19

Trang 19

Nếu có thuộc tính nào trong lược đồ quan hệ <TÊN BẢNG> không được khai báo trong

<TÊN BẢNG>(…) và VALUES(…) thì giá trị của bộ mới được thêm vào ứng với thuộc tính đó sẽ được đặt bằng Null

2 Sửa trường dữ liệu mới

UPDATE <TÊN BẢNG> SET

3 Xóa một trường dữ liệu mới

DELETE FROM <TÊN BẢNG>

WHERE <ĐIỀU KIỆN>

Lưu ý trong việc sửa, xóa trường dữ liệu cần phải có điều kiện where để tránh cập nhật dữ liệu sai

Ví dụ:

IV Ngôn ngữ truy vấn dữ liệu

Cấu trúc chung của một câu truy vấn

SELECT [DISTINCT] {<tên cột> | <biểu thức> [,]} | *

FROM {<tên bảng> | <tên view> [,]}

[WHERE <biểu thức điều kiện>]

[GROUP BY {<tên cột> | <tên biểu thức> [,]} [HAVING <biểu thức điều kiện>]]

[ORDER BY {<tên cột> | <tên biểu thức> [ASC | DESC] [,]}

Ví dụ 1 : Chọn tất cả sinh viên có điểm trung bình >= 6.5

SELECT * FROM SINHVIEN WHERE DIEMTB >= 6.5;

Ví dụ 2 : Chọn 10 sinh viên có điểm trung bình cao nhất

SELECT TOP 10 FROM SINHVIEN;

Ví dụ 3 : Chọn 10% sinh viên có điểm trung bình cao nhất

SELECT TOP 10% FROM SINHVIEN;

Ví dụ 4 : Chọn có loại bỏ các bộ trùng : chọn các mức điểm khác nhau mà các sinh viên đã đạt được

SELECT DISTINCT DIEMTB FROM SINHVIEN;

Trang 20

Lưu ý : Dấu ; cho biết đã kết thúc câu lệnh SQL

AND S.MASV= DK.MASV

AND DK.MAHP= HP.MAHP;

Là chọn các dữ liệu theo điều kiện và sắp xếp thứ tự theo thuộc tính

Ví dụ 1 : Tìm tất cả các tên sinh viên đã đăng ký học phần có mã là CSDL, sắp thứ tự kết quả trả về theo tên tăng dần, họ tăng dần và mã sinh viên giảm dần

SELECT MASV,HO,TEN

FROM (SINHVIEN INNER JOIN DANGKY_HOCPHAN ON

SINHVIEN.MASV = DANGKY_HOCPHAN.MASV

WHERE MAHP = ‘CSDL’

ORDER BY TEN ASC, HO ASC, MASV DESC;

Lưu ý : Khi thuộc tính giữa các bảng được truy vấn sau từ khóa From không trùng tên thì ta

có thể ghi tường minh tên thuộc tính, mà không cần phải ghi :

<Tên bảng>.<Tên thuộc tính>

Ví dụ 2 : Tìm tất cả các tên sinh viên đã đăng ký học phần ít nhất 3 học phần trở lên

SELECT SINHVIEN.MASV, SINHVIEN.HOTEN

DANGKY_HOCPHAN.MASV=SINHVIEN.MASV

GROUPBY SINHVIEN.MASV,SINHVIEN.HOTEN

HAVING COUNT(DANGKY_HOCPHAN.MAHP)>4

3 Truy vấn lồng nhau (truy vấn con)

Là câu lệnh truy vấn mà trong biểu thức điều kiện của WHERE hoặc HAVING là câu truy vấn khác

Ví dụ 1 : Lấy về thông tin của sinh viên có điểm trung bình cao nhất

SELECT MASV,HOTEN

WHERE DIEMTB >=

Trang 21

Trang 21

ANY, SOME : Kết quả các bộ trả về của query cha so sánh với 1 trong (bất kỳ) các bộ của

query con

ALL : Kết quả các bộ trả về của query cha so sánh với tất cả các bộ của query con

IN : Kết quả các bộ trả về của query cha bằng với 1 trong (bất kỳ) các bộ của query con NOT IN : Kết quả các bộ trả về của query cha không bằng với bất kỳ bộ nào của query con EXISTS / NOT EXISTS : Kết quả các bộ trả về của query cha được thỏa khi query con có

tồn tại ít nhất 1 bộ / không tồn tại bộ nào

Ví dụ 2 : Lấy về thông tin của các sinh viên có đăng ký môn học CSDL

SELECT MASV,HOTEN

(SELECT MASV FROM DANGKY_HOCPHAN WHERE MAHP=‘CSDL’)

Ví dụ 3: Trả về điểm trung bình cộng của các sinh viên nếu như có ít nhất 1 sinh viên có điểm trung bình >= 5

Hàm Sum: Tính tổng của các giá trị của cột theo điều kiện sau Where

Ví dụ: Trả về tổng giá trị của các hóa đơn có ngày lập trong vòng 6 ngày gần đây

SELECT Sum(GIATRI)

WHERE NGAYLAP >= (DATE()-5)

Hàm Max: Dùng để tìm giá trị lớn nhấn của cột

Ví du: Trả về giá trị lớn nhất trong các hóa đơn có ngày lập trong vòng 6 ngày gần đây

SELECT Max(GIATRI)

WHERE NGAYLAP>=(DATE()-5)

Avg(<tên thuộc tính>) : trả về giá trị trung bình cộng của các giá trị tương ứng với <tên

thuộc tính> của các bộ thỏa điều kiện WHERE có trong quan hệ

Count(<tên thuộc tính>) : trả về số lượng các giá trị tương ứng với <tên thuộc tính> của các

bộ thỏa điều kiện WHERE và khác Null có trong quan hệ

BÀI 6: RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM

I RÀNG BUỘC TOÀN VẸN

1 Khái Niệm Ràng Buộc Toàn Vẹn

Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan hệ của một lược đồ CSDL Các mối liên hệ này 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 CSDL đều phải thoả mãn ở mọi thời điểm Những điều kiện bất biến đó được

Trang 22

gọi là ràng buộc toàn vẹn Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp

đặt trên các đối tượng của thế giới thực Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên

dự thi một môn học không quá 3 lần,… Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong

hồ sơ phân tích thiết kế - đó là một việc làm rất quan trọng Ràng buộc toàn vẹn được xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL Một CSDL được thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL

Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật dữ liệu ( thêm, sửa, xoá) Những ràng buộc toàn vẹn phát sinh phải cần được ghi nhận và xử lý một cách tường minh (thường là bởi một hàm chuẩn hoặc một đoạn chương trình)

Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến hậu quả nghiêm trọng về tính an toàn và toàn vẹn

dữ liệu , đặc biệt là đối với những cơ sở dữ liệu lớn

2 Các Yếu Tố Của Ràng Buộc Toàn Vẹn

Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm:

a Điều kiện

Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội dung của nó Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng phụ thuộc hàm

Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý sinh viên

Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác trong trường Mỗi lớp học phải thuộc về một khoa của trường Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh viên nào trong trường

Mỗi học viên phải đăng ký vào một lớp học trong trường

Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học

Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được của một lớp tại một thời điểm nào đó

b Bối cảnh

Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra khi tiến hành cập nhật dữ liệu Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ

Chẳng hạn với ràng buộc toàn vẹn R trên thì bối cảnh của nó là quan hệ Sinhvien

c3.Bảng tầm ảnh hưởng

Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng tầm ảnh hưởng

Trang 23

Trang 23

hành cập nhật dữ liệu Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật dữ liệu

Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau:

Bảng này chứa toàn các ký hiệu + , – hoặc -(*)

Chẳng hạn + tại (dòng r1, cột Thêm) thì có nghĩa là khi thêm một bộ vào quan hệ r1 thì

-Không được sửa thuộc tính khoá

-Nếu không bị vi phạm do không được phép sửa đổi thì ký hiệu là -(*)

d.Hành động cần phải có khi phát hiện có RBTV bị vi phạm:

khi một ràng buộc toàn vẹn bị vi phạm, cần có những hành động thích hợp Thông thường

có 2 giải pháp:

Thứ nhất: Đưa ra thông báo và yêu cầu sửa chữa dữ liệu của các thuộc tính cho phù hợp với quy tắc đảm bảo tính nhất quán dữ liệu Thông báo phải đầy đủ và phải thân thiện với người

sử dụng Giải pháp này là phù hợp cho việc xử lý thời gian thực

Thứ hai:Từ chối thao tác cập nhật Giải pháp này là phù hợp đối với việc xử lý theo lô Việc

từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng vì sao thao tác bị từ chối và cần phải sữa lại những dữ liệu nào ?

Khóa nội, khoá ngoại, giá trị NOT NULL là những ràng buộc toàn vẹn miền giá trị của các thuộc tính Những ràng buộc toàn vẹn này là những ràng buộc toàn vẹn đơn giản trong CSDL

Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các ràng buộc toàn vẹn

về miền giá trị của khoa nội, khoá ngoại, giá trị NOT NULL

Việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào những thời điểm sau đây

Thứ nhất: Kiểm tra ngay sau khi thực hiện một thao tác cặp nhật CSDL

Thao tác cặp nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một ràng buộc toàn vẹn nào , nghĩa là nó không làm mất tính toàn vẹn của CSDL Nếu vi phạm ràng buộc toàn vẹn , thao tác cặp nhật bị coi là không hợp lệ và sẽ bị hệ thống huỷ bỏ (hoặc có một xử

lý thích hợp nào đó)

Trang 24

Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra ràng buộc toàn vẹn được tiến hành độc lập với thao tác cặp nhật dữ liệu Đối với những trường hợp vi phạm ràng buộc toàn vẹn , hệ thống có những xử lý ngầm định hoặc yêu cầu người sử dụng xử lý những sai sót một cách tường minh

II PHÂN LOẠI RÀNG BUỘC TOÀN VẸN

Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó Việc phân loại các ràng buộc toàn vẹn là rất có ích,

nó nhằm giúp cho người phân tích có được một định hướng để phát hiện các ràng buộc toàn vẹn, tránh bỏ sót Các ràng buộc toàn vẹn có thể được chia làm hai loại chính như sau: Thứ nhất: Ràng buộc toàn vẹn có phạm vi là một quan hệ bao gồm :Ràng buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn liên bộ

Thứ hai: Ràng buộc toàn vẹn có phạm vi là nhiều quan hệ bao gồm :Ràng buộc toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan hệ

Để minh hoạ cho phần lý thuyết của chương này, chúng ta xét ví dụ sau đây:

Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)

Tân từ:

Mỗi hoá đơn tổng hợp có một mã số duy nhất là SOHD, mỗi hoá đơn bán hàng có thể gồm nhiều mặt hàng Mỗi hoá đơn xác định ngày lập hoá đơn (NGAYLAP), ứng với số đặt hàng nào (SODH) Giả sử rằng hoá đơn bán hàng theo yêu cầu của chỉ một đơn đặt hàng có mã số

là SỌDH và ngược lại , mỗi đơn đặt hàng chỉ được giải quyết chỉ trong một hoá đơn Do điều kiện khách quan có thể công ty không giao đầy đủ các mặt hàng cũng như số lượng từng mặt hàng như yêu cầu trong đơn đặt hàng nhưng không bao giờ giao vượt ngoài yêu cầu Mỗi hóa đơn xác định một trị giá của nhưng các mặt hàng trong hoá đơn (TRIGIAHD)

Ngày đăng: 14/09/2017, 22:54

Xem thêm

HÌNH ẢNH LIÊN QUAN

IV. Phân loại người dùng CSDL - Co so du lieu
h ân loại người dùng CSDL (Trang 3)
BÀI 2: CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU - Co so du lieu
2 CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU (Trang 3)
Là ngôn định nghĩa CSDL cho phép khai báo cấu trúc bảng, các mối liên hệ và các ràng buộc - Co so du lieu
ng ôn định nghĩa CSDL cho phép khai báo cấu trúc bảng, các mối liên hệ và các ràng buộc (Trang 14)
(sơ đồ thể hiện mối quan hệ giữa các bảng) - Co so du lieu
sơ đồ th ể hiện mối quan hệ giữa các bảng) (Trang 35)
BẢNG THUỘCTÍNH - Co so du lieu
BẢNG THUỘCTÍNH (Trang 36)
BẢNG THUỘCTÍNH - Co so du lieu
BẢNG THUỘCTÍNH (Trang 44)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w