1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Cơ sở dữ liệu (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ

59 39 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

Tiêu đề Giáo Trình Cơ Sở Dữ Liệu
Tác giả Cù Ngọc Quỳnh, Tập Thể Giảng Viên Khoa CNTT
Trường học Trường Cao Đẳng Nghề Kỹ Thuật Công Nghệ
Chuyên ngành Lập Trình Viên Máy Tính
Thể loại giáo trình
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 59
Dung lượng 746,34 KB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (8)
    • 1. Một số khái niệm cơ bản (8)
      • 1.1. Định nghĩa cơ sở dữ liệu (8)
      • 1.2. Ưu điểm của cơ sở dữ liệu (8)
      • 1.3. Các đặc trưng của phương pháp cơ sở dữ liệu (8)
      • 1.4. Các đối tượng sử dụng CSDL (8)
      • 1.5. Hệ Quản Trị Cơ Sở Dữ Liệu (Data Base Management System) (9)
      • 1.6. Các Ứng Dụng Của Cơ Sở Dữ Liệu (9)
    • 2. Các mô hình dữ liệu (9)
    • 3. Mô hình thực thể kết hợp (10)
      • 3.1. Thực Thể (entity) (10)
      • 3.2. Thuộc tính (attribute) (10)
      • 3.3. Loại thực thể (entity type) (10)
      • 3.4. Khoá (key) (10)
      • 3.5. Mối kết hợp (relationship) (11)
  • Chương 2. MÔ HÌNH DỮ LIỆU QUAN HỆ (17)
    • 1.1. Thuộc tính (17)
    • 1.2 Lược Đồ Quan Hệ (relation schema) (18)
    • 1.3. Quan Hệ (relation) (18)
    • 1.4. Bộ (Tuple) (18)
    • 2. Chuyển mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ (18)
    • 3. Ngôn ngữ đại số quan hệ (19)
      • 3.1. Phép Hợp 2 quan hệ(Union) (19)
      • 3.2. Phép Giao 2 quan hệ (Intersection) (20)
      • 3.3. Phép Trừ 2 quan hệ (Minus) (20)
      • 3.4. Tích Decac của 2 quan hệ (Cartesian Product) (20)
      • 3.5. Phép chia 2 quan hệ (21)
      • 3.6. Phép Chiếu (projection) (21)
      • 3.7. Phép Chọn (Selection) (22)
      • 3.8. Phép θ - kết (22)
      • 3.9. Phép Kết Tự Nhiên (natural join) (23)
  • Chương 3: NGÔN NGỮ TRUY VẤN DỮ LIỆU (26)
    • 1. Mở đầu (26)
    • 2. Tìm thông tin từ các cột của bảng – Mệnh đề Select (28)
    • 3. Chọn các dòng của bảng – Mệnh đề Where (29)
    • 4. Sắp xếp các dòng của bảng – Mệnh đề Order by (30)
    • 5. Câu lệnh truy vấn lồng nhau (30)
    • 6. Gom nhóm dữ liệu – mệnh đề Group by (33)
  • Chương 4: RÀNG BUỘC TOÀN VẸN (38)
    • 1. Ràng buộc toàn vẹn (38)
      • 1.1. Khái niệm ràng buộc toàn vẹn (38)
      • 1.2. Các yếu tố của ràng buộc toàn vẹn (38)
    • 2. Phân loại các ràng buộc toàn vẹn (40)
      • 2.1. Ràng buộc toàn vẹn có bối cảnh là một quan hệ (40)
      • 2.2. Ràng buộc toàn vẹn có bối cảnh là nhiều quan hệ (41)
  • Chương 5: LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU (45)
    • 1. Các vấn đề gặp phải khi tổ chức dữ liệu (45)
    • 2. Phụ thuộc hàm (45)
      • 2.1. Định nghĩa phụ thuộc hàm (45)
      • 2.2. Cách xác định phụ thuộc hàm cho lược đồ quan hệ (46)
      • 2.3. Một số tính chất của phụ thuộc hàm – hệ luật dẫn Armstrong (46)
    • 3. Bao đóng của tập phụ thuộc hàm và bao đóng của tập thuộc tính (46)
      • 3.1. Bao đóng của tập phụ thuộc hàm F (46)
      • 3.2. Bao đóng của tập thuộc tính X (47)
      • 3.3. Bài toán thành viên (47)
      • 3.4. Thuật toán tìm bao đóng của một tập thuộc tính (48)
    • 4. Khóa của lược đồ quan hệ - một số thuật toán tìm khóa (48)
      • 4.1. Định nghĩa khóa của quan hệ (48)
      • 4.2. Thuật toán tìm một khóa của một lược đồ quan hệ (49)
      • 4.3. Thuật toán tìm tất cả các khóa của một lược đồ quan hệ (49)
    • 5. Phủ tối thiểu (50)
      • 5.1. Tập phụ thuộc hàm tương đương (50)
      • 5.2. Phủ tối thiểu (50)
      • 5.3. Thuật toán tìm phủ tối thiểu (51)
    • 6. Dạng chuẩn của lược đồ quan hệ (51)
      • 6.1. Một số khái niệm liên quan đến các dạng chuẩn (51)
      • 6.2. Dạng chuẩn 1 (First Normal Form) (52)
      • 6.3. Dạng chuẩn 2 (Second Normal Form) (52)
      • 6.4. Dạng chuẩn 3 (Third Normal Form) (53)
      • 6.5. Dạng chuẩn BCNF (Boyce Codd Normal Form) (54)
  • TÀI LIỆU THAM KHẢO (59)

Nội dung

(NB) Giáo trình không đi sâu vào việc chứng minh các định lý mà chú trọng đến việc giải thích ý nghĩa thực tế của các công thức lý thuyết để từ đó hướng dẫn học viên cách tiếp cận tư duy logic, nắm vững kỹ thuật tính toán cũng như các bước triển khai giải quyết các bài toán thực tế trên khía cạnh công nghệ.

TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

Một số khái niệm cơ bản

Mục tiêu: Trình bày sơ lược các khái niệm về cơ sở dữ liệu.

1.1 Định nghĩa cơ sở dữ liệu

Cơ sở dữ liệu là hệ thống lưu trữ dữ liệu trên các thiết bị theo một cấu trúc nhất định, nhằm phục vụ nhu cầu của nhiều người dùng với các mục đích khác nhau.

1.2 Ưu điểm của 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 và toànvẹn dữ liệu.

- Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau.

- Khả năng chiasẻ thông tin cho nhiều người sử dụng.

1.3 Các đặc trưng của phương pháp cơ sở dữ liệu

- Tính chia sẻ dữ liệu: dữ liệu được chia sẻ bởi nhiều người dùng hợp pháp.

- Tính giảm thiểu dư thừa dữ liệu: Dữ liệu dùng chung cho nhiều bộ phận được lưu một nơi theo cấu trúc thống nhất.

- Tính tương thích: Việc loại bỏ dư thừa kéo theo hệ quả là sự tương thích.

- Tính toàn vẹn dữ liệu: Đảm bảo một số ràng buộc toàn vẹn Khi người dùng chèn, xoá, sửa thì ràng buộc phải được kiểm tra chặc chẽ.

- Tính bảo mật dữ liệu: Đảm bảo an toàn dữ liệu và bảo mật thông tin là quan trọng.

Tính đồng bộ dữ liệu là yếu tố quan trọng trong việc quản lý cơ sở dữ liệu, đặc biệt khi có nhiều người dùng truy cập đồng thời Để đảm bảo tính nhất quán và tránh sự không tương thích, cần thiết phải thiết lập các cơ chế bảo vệ hiệu quả.

Tính độc lập dữ liệu là khả năng tách biệt cấu trúc mô tả dữ liệu khỏi chương trình ứng dụng, cho phép tổ chức và phát triển dữ liệu mà không cần phải thay đổi chương trình ứng dụng Điều này mang lại sự linh hoạt và hiệu quả trong việc quản lý dữ liệu.

1.4 Các đối tượng sử dụng CSDL Đối tượng sử dụng là người khai thác cơ sở dữ liệu thông qua hệ quản trị CSDL Có thể phân làm ba loại đối tượng: Người quản trị CSDL, người phát triển và lập trình ứng dụng, người dùng cuối cùng.

Người quản trị CSDL: Là người hàng ngày chịu trách nhiệm quản lí và bảo trì CSDL như:

+ Sự chính xác, toàn vẹn và bảo mật của dữ liệu và ứng dụng trong CSDL.

+ Lưu trữ dự phòng và phục hồi CSDL.

+ Giữ liên lạc với người phát triển và lập trình ứng dụng, người dùng cuối.

+ Bảo đảm sự hoạt động hiệu quả của CSDL và hệ quản trị CSDL

Người phát triển và lập trình ứng dụng là những chuyên gia trong lĩnh vực công nghệ thông tin, có nhiệm vụ thiết kế, phát triển và duy trì các ứng dụng để cung cấp thông tin hữu ích cho người dùng.

Người dùng cuối là những cá nhân không chuyên về công nghệ thông tin, nhưng là chuyên gia trong các lĩnh vực khác nhau với trách nhiệm cụ thể trong công việc của họ Họ sử dụng cơ sở dữ liệu thông qua các phần mềm ứng dụng do các nhà phát triển xây dựng hoặc thông qua các công cụ truy vấn của hệ quản trị cơ sở dữ liệu.

1.5 Hệ Quản Trị Cơ Sở Dữ Liệu (Data Base Management System) Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như đã nói ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng Những phần mềm này được gọi là các hệ quản trị CSDL Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng như những người khai thác CSDL Hiện nay trên thị trường phần mềm đã có những hệ quản trị CSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual Foxpro, SQL Server, Oracle, …

Mỗi hệ quản trị CSDLđều được cài đặt dựa trên một mô hình dữ liệu cụ thể.

Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủ các yếu tố sau:

Ngôn ngữ giao tiếp giữa người sử dụng và cơ sở dữ liệu (CSDL) bao gồm ba loại chính: Ngôn ngữ mô tả dữ liệu, cho phép khai báo cấu trúc và mối quan hệ của dữ liệu cùng với các quy tắc quản lý; Ngôn ngữ thao tác dữ liệu, giúp người dùng cập nhật dữ liệu thông qua các thao tác thêm, sửa, hoặc xoá; và Ngôn ngữ truy vấn dữ liệu, cho phép người khai thác truy xuất thông tin cần thiết từ CSDL.

Cơ sở dữ liệu là hệ thống lưu trữ thông tin, trong đó ngôn ngữ quản lý dữ liệu cho phép các quản trị viên thay đổi cấu trúc bảng dữ liệu, thiết lập các quy định bảo mật thông tin và cấp quyền truy cập cho người dùng.

Từ điển dữ liệu là công cụ quan trọ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 cơ sở dữ liệu (CSDL), các chương trình ứng dụng, mật mã và quyền hạn sử dụng Việc sử dụng từ điển dữ liệu giúp tổ chức thông tin một cách hiệu quả, hỗ trợ quản lý và truy xuất dữ liệu dễ dàng hơn.

Cơ chế giải quyết vấn đề tranh chấp dữ liệu trong hệ quản trị CSDL có thể được cài đặt riêng, với một số biện pháp phổ biến Đầu tiên, cấp quyền ưu tiên cho từng người sử dụng là một cách hiệu quả Thứ hai, việc đánh dấu yêu cầu truy xuất dữ liệu và phân chia thời gian, cho phép người có yêu cầu trước được quyền truy xuất dữ liệu trước, cũng là một giải pháp quan trọng.

Hệ quản trị cơ sở dữ liệu cần có cơ chế sao lưu và phục hồi dữ liệu để đảm bảo an toàn khi xảy ra sự cố Việc này có thể được thực hiện tự động sau một khoảng thời gian nhất định, tuy nhiên, cách này có thể tốn kém, đặc biệt là đối với các cơ sở dữ liệu lớn.

- Hệ qu ả n tr ị CSDL ph ả i cung c ấ p m ộ t giao di ệ n thân thi ệ n, d ễ s ử d ụ ng

1.6 Các Ứng Dụng Của Cơ Sở Dữ Liệu

Hiện nay, cơ sở dữ liệu (CSDL) đóng vai trò quan trọng trong hầu hết các ứng dụng công nghệ thông tin, từ việc quản lý hệ thống thông tin tại các cơ quan nhà nước đến việc lưu trữ và xử lý dữ liệu trong doanh nghiệp CSDL cũng được sử dụng rộng rãi trong nghiên cứu khoa học, giảng dạy và tổ chức thông tin đa phương tiện.

Các mô hình dữ liệu

Mục tiêu: Trình bày giới thiệu sơ lược các mô hình dữ liệu.

Mô hình dữ liệu là sự trừu tượng hóa của môi trường thực, phản ánh cách tiếp cận dữ liệu khác nhau của các nhà phân tích thiết kế cơ sở dữ liệu Mỗi loại mô hình dữ liệu đều có những ưu điểm và hạn chế riêng, nhưng một số mô hình nổi bật và thu hút sự quan tâm nghiên cứu hơn cả.

Sauđây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu.

- Vào những năm sáu mươi, thế hệ đầu tiên của CSDL ra đời dưới dạng mô hình thực thể kết hợp, mô hình mạng và mô hình phân cấp.

Vào những năm 1970, mô hình dữ liệu quan hệ do EF Codd phát minh đã ra đời, đánh dấu thế hệ thứ hai của cơ sở dữ liệu với cấu trúc logic chặt chẽ Mô hình này hiện đang được áp dụng rộng rãi trong quản lý toàn cầu Nghiên cứu về mô hình dữ liệu quan hệ tập trung vào lý thuyết chuẩn hóa các quan hệ, đóng vai trò quan trọng trong phân tích và thiết kế các hệ thống cơ sở dữ liệu hiện nay Mục tiêu của nghiên cứu này là loại bỏ các phần tử không bình thường và dư thừa trong quan hệ khi thực hiện các phép cập nhật.

Vào thập kỷ 80, các mô hình cơ sở dữ liệu mới đã xuất hiện, bao gồm mô hình cơ sở dữ liệu hướng đối tượng, mô hình cơ sở dữ liệu phân tán và mô hình cơ sở dữ liệu suy diễn.

Trong phần tiếp theo, chúng tôi sẽ giới thiệu mô hình dữ liệu thực thể kết hợp, một trong những mô hình tiêu biểu nhất để thiết kế ứng dụng tin học Các chương tiếp theo của giáo trình sẽ tập trung vào mô hình dữ liệu quan hệ.

Mô hình thực thể kết hợp

Mục tiêu: Trình bày chi tiết mô hình thực thể kết hợp (ERD), có thể phân tích dữ liệu và thiết kế được mô hình thực thể kết hợp.

Hiện nay, mô hình dữ liệu quan hệ là một trong những mô hình phổ biến trong các hệ quản trị cơ sở dữ liệu (CSDL) và thuộc cấp độ vật lý Để xây dựng mô hình này, cần sử dụng mô hình dữ liệu ở cấp độ quan niệm, trong đó mô hình thực thể kết hợp là một dạng tiêu biểu Sau đó, một số quy tắc sẽ được áp dụng để chuyển đổi hệ thống từ mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ, các quy tắc này sẽ được trình bày trong mục 2.2.

Sauđây là các khái niệm của mô hình thực thể kết hợp.

Thực thể là một sự vật cụ thể và có thể phân biệt, ví dụ như sinh viên Nguyễn Văn Thành, lớp Cao Đẳng Tin Học 2A, môn học Cơ Sở Dữ Liệu, và xe máy mang biển số 52-0549.

Cácđặcđiểm riêngcủa thực thể gọi là các thuộc tính.

Chẳng hạn các thuộc tính của sinh viên Nguyễn Văn Thành là: mã số, sinh viên, giới tính, ngày sinh,hộ khẩu thường trú, lớpđang theohọc,…

3.3.Loại thực thể (entity type)

Một loại thực thể là tập hợp các thực thể có thuộc tính giống nhau và cần được đặt tên một cách có ý nghĩa Mỗi loại thực thể được biểu diễn bằng hình chữ nhật.

Ví dụ các sinh viên có mã sinh viên là ““02CĐTH019”, “02CĐTH519”,

“02TCTH465”,… nhóm lại thành một loại thực thể, được đặt tên là Sinhvien chẳng hạn.

Tương tự trong ứng dụng quản lý điểm của sinh viên (sẽ được trình bày ngay sauđây) ta có các loại thực thể như Monhoc, Lop, Khoa.

Khoá của loại thực thể E là một hay một tập các thuộc tính của E có thể dùng để phân biệt hai thực thể bất kỳ của E.

Ví dụ khoá của loại thực thể Sinhvien là MASV, của Lớp là MALOP, của Khoa là MAKHOA, của Monhoc là MAMH,…

Khi xây dựng mô hình thực thể kết hợp cho một hệ thống, cần đảm bảo rằng tên các loại thực thể là duy nhất Các thuộc tính khóa trong danh sách thuộc tính của từng loại thực thể nên được gạch dưới để phân biệt Nếu hệ thống có nhiều loại thực thể, có thể chỉ cần liệt kê tên các loại thực thể, trong khi các thuộc tính cụ thể sẽ được trình bày riêng biệt.

Bài toán quản lý điểm sinh viên yêu cầu quản lý thông tin cá nhân như họ tên, ngày sinh, giới tính, nơi sinh và hộ khẩu thường trú Mỗi sinh viên được cấp mã số sinh viên duy nhất và thuộc về một lớp học có mã lớp riêng Các lớp học thuộc về các khoa, mỗi khoa có tên và mã số riêng Mỗi môn học cũng có tên và mã số riêng, được giảng dạy bởi giảng viên có thông tin như họ tên, học vị, chuyên ngành và mã giảng viên Giảng viên có thể dạy nhiều môn học nhưng chỉ thuộc quản lý của một khoa Sinh viên có quyền thi tối đa 3 lần cho mỗi môn học, với điểm thi được ghi nhận Các thực thể cần quản lý bao gồm sinh viên, môn học, khoa, lớp và giảng viên.

Ví dụ với loại thực thể Sinhviên thì cần quản lý các thuộc tính như: MASV,HOTENSV, NGAYSINH,… và ta có thể biểu diễn như sau:

Mối kết hợp diễn tả sự liênhệ giữa các loại thực thể trong mộtứng dụng tinhọc.

Ví dụ mối kết hợp giữa hai loại thực thể Sinhviên và Lop, mối kết hợp giữaSinhviênvới Mônhọc,

Mối kết hợp được thể hiện qua hình elip, với hai nhánh bên cạnh gắn kết các loại thực thể hoặc mối kết hợp liên quan Tên của mối kết hợp thường sử dụng các từ như: thuộc, gồm, chứa,

Chẳng hạn giữa hai loại thực thể Lớp và Khoa có mối kết hợp “thuộc” như sau:

Bản số của mối kết hợp:

Bản số của nhánh R trong mối kết hợp thể hiện số lượng thực thể từ nhánh đối diện có liên quan đến một thực thể của nhánh R.

Mỗi bản số là một cặp số (min,max), chỉ số lượng tối thiểu và số lượng tối đa của thực thể khi tham gia vào mối kết hợpđó.

Mỗi sinh viên chỉ thuộc về một lớp duy nhất, do đó, mối quan hệ giữa bảng Sinh viên và bảng Lớp là (1,1) cho sinh viên và (1,n) cho lớp, nghĩa là mỗi lớp có từ 1 đến n sinh viên Trong một số trường hợp đặc biệt, các mối quan hệ này có thể kèm theo các thuộc tính bổ sung và thường được đặt tên với ý nghĩa rõ ràng hơn.

Giữa hai loại thực thể Monhoc và Sinhvien tồn tại mối quan hệ ketqua, trong đó mỗi sinh viên sẽ có một kết quả điểm thi duy nhất tương ứng với mỗi lần thi của từng môn học.

Khóa của mối kết hợp là tập hợp các khóa của các loại thực thể liên quan Ví dụ, thuộc tính MAGV là khóa của thực thể Giangvien, MALOP là khóa của thực thể Lop, và MAMH là khóa của thực thể Monhoc Do đó, mối kết hợp phân công giữa các loại thực thể Giangvien, Lop và Monhoc có khóa là {MAGV, MAMH, MALOP}, trong đó phân công là mối kết hợp ba ngôi.

Để thành lập mô hình thực thể kết hợp cho một ứng dụng tin học, cần thực hiện các bước sau: đầu tiên, xác định danh sách các loại thực thể; tiếp theo, xác định các mối kết hợp giữa các loại thực thể để phác thảo mô hình; cuối cùng, lập bản số của các mối kết hợp Chương này sẽ kết thúc bằng việc xây dựng mô hình thực thể kết hợp cho bài toán quản lý điểm của sinh viên, như đã trình bày trong ví dụ 1.1.

BÀI TẬP THỰC HÀNH CỦA HỌC VIÊN

Dựa trên các phân tích sơ bộ, chúng ta cần xây dựng một mô hình thực thể kết hợp cho bài toán quản lý, bao gồm các thành phần như loại thực thể, mối quan hệ giữa các thực thể, bản số, thuộc tính của từng loại thực thể và khóa chính của loại thực thể Mô hình này sẽ giúp tổ chức thông tin một cách hiệu quả và hỗ trợ quá trình quản lý.

Bài 1.1 QUẢN LÝ ĐẶT BÁO CỦA KHÁCH HÀNG

Tại một nơi phát hành báo cần phải quản lý thông tin đặt báo của khách hàng.

Có nhiều thể loại báo như nhật báo, nguyệt san, tạp chí và tham luận, mỗi thể loại cần ghi lại mã và tên thể loại Mỗi tờ báo cũng cần được lưu thông tin về mã báo, tên báo (ví dụ: Kiến thức Ngày Nay, Tuổi Trẻ Ngày, Tuổi Trẻ Tuần, Sài Gòn Giải Phóng), hình thức (quý, ngày, tuần) và đơn giá kỳ Một thể loại báo có thể bao gồm nhiều tờ báo khác nhau Khi khách hàng đặt báo, cần ghi lại thông tin như mã khách hàng, tên khách hàng và ngày đặt Một khách hàng có thể đặt nhiều tờ báo khác nhau, vì vậy cần lưu ý tờ báo mà khách muốn đặt, số kỳ và thành tiền.

Bài 1.1: b1.Xácđịnh danh sách các loại thực thể

-Thực thể BÁO: có các thuộc tính: mã báo (mabao) là thuộc tính định danh; tên báo (tenbao), hình thức (hinhthuc), đơn giá kỳ (dongiaky).

- Thực thể THỂ LOẠI: có các thuộc tính: mã thể loại (matheloai) là thuộc tính định danh, tên thể loại (tentheloai).

Thực thể KHÁCH HÀNG bao gồm các thuộc tính quan trọng như mã khách hàng (makhachhang) và tên khách hàng (tenkhachhang) Để xây dựng mô hình dữ liệu hiệu quả, cần xác định các mối quan hệ giữa các loại thực thể khác nhau.

- KHÁCH HÀNG đặt/mua BÁO: có các thuộc tính riêng phát sinh trong quá trình đặt.mua là: ngày đặt (ngaydat), số kỳ (soky), thành tiền (thanhtien).

Để xây dựng mô hình thực thể mối quan hệ, bước đầu tiên là lập bản số cho các mối kết hợp Bằng cách gắn các quan hệ vào mô hình phác thảo, chúng ta có thể tạo ra mô hình thực thể mối quan hệ sơ bộ cuối cùng.

- Quan hệ Đặt/mua giữa KHÁCH HÀNG và BÁO là quan hệ (1-n)-(1-n)

- Quan hệ Thuộc giữa BÁO và THỂ LOẠI là quan hệ (1-1)-(1-n).

(Các bài tập còn lại được phân tích và giải quyết tương tự bài 1).

Bài 1 2 QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN

MÔ HÌNH DỮ LIỆU QUAN HỆ

Thuộc tính

Thuộc tính là những đặc điểm riêng biệt của một đối tượng trong mô hình thực thể kết hợp Mỗi thuộc tính đều có tên gọi riêng và phải thuộc về một kiểu dữ liệu cụ thể.

Kiểu dữ liệu là các thuộc tính được xác định qua tên gọi và thuộc về một loại nhất định như số, chuỗi, ngày tháng, logic, hay hình ảnh Các kiểu dữ liệu này có thể chia thành hai loại: kiểu vô hướng và kiểu có cấu trúc Nếu thuộc tính có kiểu dữ liệu vô hướng, nó được gọi là thuộc tính đơn hoặc thuộc tính nguyên tố; ngược lại, nếu thuộc tính có kiểu dữ liệu có cấu trúc, nó không được xem là thuộc tính nguyên tố.

Sinh viên Nguyễn Văn Thành có các thuộc tính như họ và tên, mã số sinh viên được định dạng dưới dạng chuỗi; ngày sinh thuộc kiểu ngày tháng; hộ khẩu thường trú cũng là chuỗi; và thuộc tính hình ảnh được lưu trữ dưới dạng hình ảnh.

Miền giá trị (domain of values) là tập hợp con của kiểu dữ liệu mà mỗi thuộc tính chỉ chọn giá trị từ đó Ví dụ, thuộc tính NỮ có miền giá trị là {nam, nữ}; thuộc tính màu da có miền giá trị là {da trắng, da vàng, da đen, da đỏ}; và thuộc tính điểm thi bao gồm các số trong tập {0; 1; 2;…,10}.

Khi đặt tên cho các thuộc tính, cần chú ý đến ngữ nghĩa, thường được ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái Latin như A, B, C, D, v.v Các chữ cái in hoa như X, Y, Z, W thường đại diện cho một nhóm nhiều thuộc tính Đôi khi, các ký hiệu chữ cái còn được kết hợp với các chỉ số để thể hiện rõ hơn.

Trong việc đặt tên các thuộc tính A1, A2,…, An, cần chú ý đến tính gợi nhớ và độ dài của tên Tên thuộc tính nên ngắn gọn để dễ dàng viết câu lệnh truy vấn, nhưng cũng phải đủ rõ ràng để thể hiện ngữ nghĩa Đặc biệt, tránh đặt trùng tên giữa các thuộc tính có ngữ nghĩa khác nhau thuộc về hai đối tượng khác nhau.

Trong các hệ quản trị cơ sở dữ liệu, giá trị rỗng (NULL) được sử dụng để biểu thị một giá trị không xác định hoặc chưa được xác định tại thời điểm nhập dữ liệu Giá trị này có thể được làm rõ hơn trong các ngữ cảnh khác nhau và có khả năng được xác định sau đó.

Lược Đồ Quan Hệ (relation schema)

Lược đồ quan hệ là tập hợp tất cả các thuộc tính cần quản lý của một đối tượng cùng với các mối liên hệ giữa chúng Một lược đồ quan hệ Q với tập thuộc tính {A1, A2, , An} được biểu diễn dưới dạng Q(A1, A2, , An), trong đó ký hiệu Q+ = {A1, A2, , An}.

Chẳng hạn lược đồ quan hệ Sinhviên với các thuộc tính như đã được liệt kê trong ví dụ 1.1được viết như sau:

Sinhvien(MASV,HTENSV,NU,NGAYSINH,NOISINH,TINH,MALOP)

Khi thiết lập một lược đồ quan hệ, người thiết kế thường gán cho nó một ý nghĩa cụ thể, được gọi là tân từ của lược đồ Ví dụ, tân từ của lược đồ quan hệ Sinhvien là: “Mỗi sinh viên có một MASV duy nhất, và mỗi MASV này sẽ xác định các thuộc tính khác của sinh viên, bao gồm HOTENSV, NU, NGAYSINH, NOISINH, TINH và MALOP.”

Khi phát biểu tân từ cho lược đồ quan hệ, người thiết kế cần mô tả rõ ràng ý nghĩa để tránh hiểu nhầm Từ tân từ này, người dùng có thể xác định tập khoá và siêu khoá của lược đồ quan hệ, điều này sẽ được trình bày trong các mục tiếp theo.

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

Khái niệm lượcđồ quan hệ ứng với khái niệm loại thực thể ở mô hình thực thể kết hợp.

Quan Hệ (relation)

Sự thể hiện của lược đồ quan hệ tại một thời điểm nhất định được gọi là quan hệ, và một lược đồ quan hệ có thể xác định nhiều quan hệ khác nhau Thông thường, các ký hiệu như R, S, Q được sử dụng để chỉ các lược đồ quan hệ, trong khi các quan hệ thường được ký hiệu bằng các ký hiệu như r, s, q.

Về trực quan thì quan hệ (hay bảng quan hệ) như là một bảng hai chiều gồm các dòng và các cột.

Một quan hệ có n thuộc tínhđược gọi là quan hệ n ngôi. Để chỉ quan hệ r xácđịnh trên lượcđồ quan hệQ ta có thể viết r(Q).

Bộ (Tuple)

Mỗi bộ là những thông tin về một đối tượng thuộc một quan hệ, bộ cũng còn được gọi là mẫu tin.

Thường người ta dùng các chữ cái thường (như t,…) để biểu diễn bộ trong quan hệ.

Chuyển mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ

Mục tiêu: Áp dụng được các quy tắc chuyển đổi mô hình thực thể kết hợp ERD sang mô hìnhdữ liệu quan hệ (dạng lược đồ).

Quy tắc chuyển đổi đầu tiên yêu cầu biến mỗi loại thực thể thành một lược đồ quan hệ Các thuộc tính của loại thực thể sẽ được chuyển thành các thuộc tính của lược đồ quan hệ, trong đó thuộc tính khóa của loại thực thể cũng sẽ trở thành thuộc tính khóa của lược đồ này.

Chẳng hạn loại thực thể Sinhvien ở ví dụ 1.2 khi áp dụng quy tắc 1 thì sẽ được chuyển thànhlượcđồ quanhệ Sinhvien như sau:

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH,….)

Nếu một mối kết hợp có cả hai nhánh đều có bản số max là n, nó sẽ được chuyển thành một lược đồ quan hệ K’ với các thuộc tính của mối kết hợp K và các thuộc tính khoá của hai lược đồ quan hệ A và B tương ứng với hai thực thể tham gia Lược đồ quan hệ K’ sẽ bao gồm cả hai khoá của lược đồ quan hệ A và B.

Mối kết hợp Phancong giữa ba loại thực thể Giangvien, Monhoc và Lop được chuyển đổi thành lược đồ quan hệ Phancong, với tập khoá bao gồm {MAGV, MAMH, MALOP}.

Khi một mối kết hợp giữa nhánh B có bản số là n và nhánh A có bản số max là 1 xảy ra, cần loại bỏ mối kết hợp này khỏi mô hình thực thể kết hợp Các thuộc tính của lược đồ tương ứng với nhánh B sẽ được thêm vào lược đồ của nhánh A, trong đó khóa của nhánh B sẽ trở thành khóa ngoại của nhánh A Nếu mối kết hợp có các thuộc tính, những thuộc tính này cũng sẽ được chuyển vào lược đồ quan hệ của nhánh A.

Chẳng hạn mối kết hợp thu ộ c giữa hai loại thực thể Sinhvien và Lop nên lược đồ quan hệ Sinhvienđược sửa thành như sau:

Sinhvien(MASV,HOTENSV,NU,NGAYSINH, TINH,MALOP)

Nếu mối kết hợp mà cả hai nhánh đều có bản số max là 1 thì áp dụng quy tắc 3 chomột trong hai nhánh tuỳ chọn.

Sau đây là mô hình dữ liệu quan hệ được chuyển từ mô hình thực thể kết hợpở vídụ 1.2.

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Lop(MALOP,TENLOP,MAKHOA)

Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI,DIEMTHI)

Ngôn ngữ đại số quan hệ

Mục tiêu: Trình bày được cơ sở lý thuyết của mô hình dữ liệu quan hệ (các phép toán đại số áp dụng tính toán trên các quan hệ).

Hai lược đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1, A2, , An} được xem là tương thích nếu chúng được định nghĩa trên cùng một lược đồ hoặc trên hai lược đồ có cùng tập thuộc tính Các phép toán như hợp, giao và trừ chỉ được áp dụng cho các quan hệ tương thích này.

3.1 Phép Hợp 2 quan hệ(Union)

Cho hai quan hệ tương thích r1 và r2, hợp của chúng được ký hiệu là r1 + r2 Đây là một quan hệ trên lược đồ Q, bao gồm các phần tử thuộc r1 hoặc thuộc r2, tức là: r1 + r2 = {t | t ∈ r1 hoặc t ∈ r2}.

Khi đó, nội dung của quan hệ r 1 + r 2 là:

Do thứ tự trước/sau của các bộ trong các quan hệ là không quan trọng nên ta có: r 1 + r 2 = r 2 + r 1

Và r + r = r Một cách tổng quát có thể lấy hợp của n quan hệ tương thích: cho n quan hệ tương thích r 1 ,r 2 ,…,r n

Hợp của n quan hệ r 1 ,r 2 ,…,r n là một quan hệ r 1 + r 2 + …+ r n gồm các phần tử thuộc r 1 hoặc thuộc r 2 … hoặc thuộc r n

3.2 Phép Giao 2 quan hệ (Intersection)

Giao của hai quan hệ tương thích r 1 và r 2 ký hiệu là r 1 * r 2 là một quan hệ trên

Q gồm các phần tử vừa thuộc r 1 vừa thuộc r 2

Chẳng hạn với vídụ 2.2ở trên thì r 1 * r 2 là:

3.3.Phép Trừ 2 quan hệ (Minus)

Hiệu của hai quan hệ tương thích r 1 cho r 2 ký hiệu là r 1 – r 2 là một quan hệ trên Q gồm các phần tử chỉ thuộc r 1 mà không thuộc r 2 , nghĩa là r 1 - r 2 = {t∈ r 1 và t

∈ r 2 } Chẳng hạn với vídụ 2.2 thì r 1 - r 2 là:

3.4.Tích Decac của 2 quan hệ

Cho hai lược đồ quan hệ Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ) Giả sử r 1 , r 2 là hai quan hệ trên Q 1 , Q 2 tương ứng.

Tích Descartes (decac) của r 1 và r 2 ký hiệu là r 1 x r 2 là quanhệ trên lược đồ quan hệ có tập thuộc tính Q = Q 1 ∪ Q 2

Vậy quanhệ r 1 x r 2 là quanhệ trên lượcđồ: Q = Q 1 ∪ Q 2 {A 1 ,A 2 , ,A n ,B 1 ,B 2 , ,B m } với r 1 x r 2 = {(t 1 ,t 2 ) : t 1 ∈r 1 , t 2 ∈ r 2 }

Ví dụ 2.3 cho r 1 và r 2 là

Thì kết quả r 1 x r 2 như sau:

Cho 2 lược đồ quan Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ), r là quan hệ xác định trên Q 1 ; s là quan hệ xác định trên Q 2 (n>m và s khác rỗng), có m thuộc tính chung (giống nhau về mặt ngữ nghĩa, hoặc các thuộc tính có thể so sánh được) giữa r và s Phép chia 2 quanhệ r và s ký hiệu r ÷ s , là một quanhệ q có n - m thuộc tính đượcđịnh nghĩa như sau: q= r ÷ s={t/ ∀ u ∈ s, (t,u) ∈ r}

Cho lược đồ quan hệ

Q(A 1 ,A 2 , ,A n ), r là quan hệ trên Q và

Phép chiếu của r lên tập thuộc tính X, ký hiệu là r[X]

(hoặc r.X) sẽ tạo thành lược đồ quan hệ r’, trongđó tập thuộc tínhcủa r’ chính là X và quanhệ r’ được trích từ r bằng cách chỉ lấy các thuộc tính có trong X.

Phép chiếu chính là phép rút tríchdữ liệu theo cột Chẳng hạn với r 1 ở ví dụ 2.2 thì khiđó ta có quanhệ concủa r 1 chiếu lên X={A,C} là:

Cho lược đồ quan hệ Q(A 1 ,A 2 , ,A n ), r là một quan hệ trên lược đồ quan hệ

Q X là một tập con của Q+ và E là một mệnh đề logic được phát biểu trên tập X. Phần tử t ∈ r thoả mãnđiều kiện E ký hiệu là t(E) Phép chọn từ quan hệ r theo điều kiện E (ký hiệu là r : E) sẽ tạo thành một quan hệ mới ký hiệu là r(E), trong đó r(E) = {t: t∈ r và t(E)}

Phép chọn chính là phép rút trích dữ liệu theo dòng Chẳng hạn với r 2 ở ví dụ 2.3 vàđiều kiện E là: “F >= 6” thìkết quả r 2 (E) hay r2: “F >= 6” có nội dung là

Cho hai lược đồ quan hệ Q 1 và Q 2 như sau: Q 1 (A 1 ,A 2 , ,A n ), Q 2 (B 1 ,B 2 , ,B m ); r và s lần lượt là hai quanhệ trên Q 1 và Q 2

A i và B j lần lượt là thuộc tính của Q 1 , Q 2 sao cho MGT(A I )= MGT(B J ) θ là một trong các phép so sánh (=, , ≤ ,≥,≠ ) trên MGT(A I ).

Phép kết hợp θ giữa hai quan hệ r và s theo điều kiện A i θ B j, được ký hiệu là r |>=”, điều kiệnB>=F, tađược kết quả là quan hệ sau:

3.9 Phép Kết Tự Nhiên (natural join)

Nếu θ trong phép kết là phép so sánh bằng (=), thì đó được gọi là phép kết bằng Khi A i ≡ B j, phép kết bằng này được gọi là phép kết tự nhiên, và đây là loại phép kết thường được sử dụng nhất trong thực tế.

Ngôn ngữ với các phép toán trên gọi là ngôn ngữ đại số quan hệ Sau đây là một vídụ về ngôn ngữ đại số quan hệ.

Lược đồ cơ sở dữ liệu (CSDL) dùng để quản lý điểm sinh viên được trình bày trong ví dụ 2.1 Hãy thực hiện các yêu cầu sau bằng ngôn ngữ đại số quan hệ.

1 Lập danh sách các sinh viên lớp có mã lớp là CDTH2A, danh sách cần MASV,HOTENSV

2 Lập danh sách sinh viên nữ và có mã khoa là “CNTT”, danh sách cần MASV, HOTENSV.

3 Lập bảngđiểm thilần 1 của tất cả các môn cho sinh viên lớp CDTH2A, danh sách cần MASV, HOTENSV, TENMH, DIEMTHI.

4 Lập phiếu điểm thi lần 1 các môn cho sinh viên có MASV=”00CDTH189” danh sách cần MAMH,TENMH, DONVIHT, DIEMTHI.

BÀI TẬP THỰC HÀNH CỦA HỌC VIÊN

Bài 2.1 Hãy lập mô hình dữ liệu quan hệ cho các bài toán quản lý 1.1, 1.2, 1.3, 1.4, 1.5 Hãy xác định khoá cho từng lược đồ cho mỗi bài toán trên.

Bài 2.2 Cho lược đồ cơ sở dữ liệu

Sinhvien(MASV,HTENSV,NU,NGAYSINH,NOISINH,TINH,MALOP)

Khoa(MAKHOA,TENKHOA) Monhoc(MAMH,TENMH,DONVIHT)

Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA)

Ketqua(MASV,MAMH,LANTHI,DIEMTHI)

Để thực hiện các yêu cầu bằng ngôn ngữ đại số quan hệ, cần lập danh sách sinh viên có hộ khẩu thường trú ở tỉnh Long An, bao gồm các thông tin MASV, HOTENSV, NGAYSINH, TENLOP Tiếp theo, cần lập danh sách sinh viên của lớp MALOP CDTH2A với thông tin MASV, HOTENSV, NGAYSINH, TINH Danh sách giảng viên có học vị Thạc sĩ của khoa CNTT sẽ bao gồm MAGV, HOTENGV, CHUYENNGANH Bảng điểm thi lần 1 môn học “869” cho sinh viên thuộc lớp CĐTH2A và CĐTH2B cần thông tin MASV, HOTENSV, DIEMTHI Cần lập danh sách giảng viên đã dạy lớp CĐTH2A với MAGV, HOTENGV, TENKHOA, HOCVI, TENMH Danh sách các môn học lớp CDTH2A đã học sẽ bao gồm MAMH, TENMH, DONVIHT, HOTENGV Cuối cùng, cần lập danh sách giảng viên đã dạy sinh viên có MASV cụ thể.

“00CDTH189“, danh sách cần MAGV, HOTENGV, HOCVI, CHUYENNGANH, TENKHOA,TENMH h Lập danh sách các sinh viên có mã khoa “CNTT” có điểm thi lần 1 môn học

“869” lớn hơn hoặc bằng 8, danh sách cần MASV, HOTENSV, DIEMTHI, TENLOP.

Bài 2.1: gợi ý sau đây dựa trên mô hình E-R của bài tập 1.1 Áp dụng các quy tắc chuyển đổi từ E-R sang mô hình dữ liệu quan hệ, ta có:

- Chuyển đổi mỗi loại thực thể thành một lược đồ quan hệ (quy tắc 1) Ta có các lược đồ quan hệ sau:

R 2 : BÁO (mabao, tenbao, dongiaky, hinhthuc)

-Chuyển các quan hệ và bản số quan hệ:

+ Quan hệ Đặ t/mua là quan hệ nhiều-nhiều có thuộc tính riêng, áp dụng quy tắc 2, ta có được lược đồ quan hệ sau:

R 4 : ĐẶT BÁO (makhachhang, mabao, ngaydat, soky, thanhtien)

+ Quan hệ Thu ộ c là quan hệ một – nhiều (một cho nhánh THỂ LOẠI), áp dụng quy tắc 3, ta có lược đồ quan hệ sau:

R 5 : BÁO (mabao, tenbao, dongiaky, hinhthuc, matheloai)

Để xây dựng mô hình dữ liệu quan hệ cơ bản Q(R1, R3, R4, R5), cần loại bỏ các lược đồ có tên trùng lặp, đồng thời giữ lại lược đồ đã bổ sung thuộc tính Sau khi thực hiện việc loại bỏ, các lược đồ còn lại sẽ tạo thành mô hình dữ liệu cần thiết.

Bài 2.2: tham khảo ví dụ 2.6 để thực hiện.

NGÔN NGỮ TRUY VẤN DỮ LIỆU

Mở đầu

-Giới thiệu về lịch sử ngôn ngữ SQL, mục đích, lợi ích của ngôn ngữ SQL.

- Trình bày tóm tắc các kiểu dữ liệu cơ bản, các hàm xử lý dữ liệu cơ bản của SQL.

- Trình bày cú pháp tổng quát của câu lệnh Select – câu lệnh truy vấn dữ liệu chuẩn của SQL.

Vào những năm 1970, IBM đã phát triển SQL (Structured Query Language) như một phần của hệ quản trị cơ sở dữ liệu mô hình quan hệ gọi là SYSTEM.

R Sau đó vào các năm 1980 IBM tiếp tục phát triển SQL cho các hệ quản trị cơ sở dữ liệu nổi tiếng là SQL/DS trên nền hệ điều hành VM, DB2 trên nền hệ điều hành MVS,

Hệ quản trị cơ sở dữ liệu đã được mở rộng trên nền tảng hệ điều hành IBM OS/2 và cho hệ thống IBM AS/400 Năm 1986, ANSI (Viện tiêu chuẩn quốc gia Hoa Kỳ) và ISO (Tổ chức Tiêu chuẩn Quốc tế) đã công nhận SQL là ngôn ngữ chuẩn để xử lý dữ liệu Ngôn ngữ chuẩn ANSI SQL đã được cập nhật liên tục vào các năm 1989 và sau đó.

SQL được triển khai trên cả hệ thống máy tính lớn và máy tính cá nhân Ngoài các sản phẩm của IBM, còn có nhiều hệ quản trị cơ sở dữ liệu nổi tiếng khác như ORACLE của Oracle, SQL Server của Microsoft, SQLBase của Sybase và Ingres của Relational Technologies.

Mục đích của chuẩn SQL là

- Xác định cú pháp và ngữ nghĩa của ngôn ngữ SQL định nghĩa và thao tác dữ liệu.

- Định nghĩa các cấu trúc dữ liệu và phép toán cơ bản để thiết kế, truy cập, lưu trữ, kiểm soát và bảo vệ cơ sở dữ liệu SQL.

- Cung cấp công cụ đảm bảo tính tương thích của cấu trúc dữ liệu và các modul ứng dụng giữa các hệ quản trị cơ sở dữ liệu.

- Xác định chuẩn tối thiểu và chuẩn hoàn chỉnh, cho phép các cấp độ sử dụngSQL khác nhau trong các sản phẩm.

Cung cấp chuẩn ban đầu cho phép mở rộng chức năng xử lý các vấn đề như toàn vẹn tham chiếu, giao thức chuyển đổi, hàm người dùng, toán tử nối ngoài phép đẳng nối và hệ thống ký tự quốc gia.

Một ngôn ngữ quan hệ chuẩn như SQL sẽ mang lại các lợi ích sau đây:

Giảm thiểu chi phí đào tạo là một lợi ích quan trọng, khi các hệ quản trị cơ sở dữ liệu sử dụng ngôn ngữ chuẩn SQL giúp dễ dàng chuyển đổi giữa các hệ thống khác nhau.

Nâng cao hiệu suất công việc là điều quan trọng, và các chuyên gia hệ thống thông tin có kiến thức vững về SQL sẽ dễ dàng tiếp cận các ứng dụng của hệ quản trị cơ sở dữ liệu Sự quen thuộc với ngôn ngữ của các chương trình này giúp họ nhanh chóng làm chủ các công cụ cần thiết.

- Tính khả chuyển của các ứng dụng Các ứng dụng có thể dễ dàng sử dụng trên các hệ thống khác nhau, nhưng cùng sử dụng SQL.

- Tăng tuổi thọ của các ứng dụng Một ngôn ngữ chuẩn có xu hướng tồn tại thời gian dài, điều đó làm giảm áp lực viết lại chương trình.

Giảm thiểu sự phụ thuộc vào nhà cung cấp là một lợi ích quan trọng của SQL, vì nó là ngôn ngữ chung cho phép người dùng dễ dàng làm việc với nhiều sản phẩm từ các nhà cung cấp khác nhau Điều này không chỉ mang lại sự linh hoạt mà còn giúp người dùng tiếp cận được giá cả cạnh tranh hơn.

Khả năng giao tiếp giữa các hệ thống chéo cho phép các hệ quản trị cơ sở dữ liệu quan hệ và các chương trình ứng dụng khác nhau dễ dàng hợp tác, xử lý dữ liệu và thực hiện các chương trình người dùng một cách hiệu quả.

SQL là ngôn ngữ có cấu trúc

Trong câu lệnh của SQL có một số mệnh đề tuân theo những cú pháp riêng của nó Có 4 loại lệnh trong SQL:

- Các lệnh truy vấn dữ liệu.

- Các lệnh định nghĩa dữ liệu (DDL)

- Các lệnh xử lý cập nhật dữ liệu (DML)

- Các lệnh kiểm soát dữ liệu

SQL có các kiểu dữ liệu sau:

INTEGER : Kiểu số nguyên 2 byte -2 147 483 648→ 2 147 483 647

SMALLINT : Kiểu số nguyên 1 byte - 32 768→ 32 767.

DECIMAL(n,d) : Kiểu số thực độ dàin (kể cả dấu), số chữ số thập phând

FLOAT(n,d) : Kiểu số thực khoa học độ dàin, số chữ số thập phând

CHAR(n) : Kiểu chuỗi ký tự độ dài n

DATE : Kiểu ngày tháng (ngày/tháng/năm)

LOGICAL : Kiểu lôgic, nhận giá trịtrue hoặcfalse

VARCHAR(n) : Kiểu chuỗi ký tự độ dài thay đổi, tối đa n ký tự

LONGVARCHAR : Kiểu chuỗi ký tự độ dài thay đổi (chứa dữ liệu nhưghi chú, )

Và các kiểu khác như: Kiểu tiền tệ, Kiểu hình ảnh, Kiểu âm thanh…

SELECT [DISTINCT] [AS ] [, ] | *

[WHERE [AND | OR ]]

[ORDER BY [ASC | DESC] [, ]]

[UNION | INTERSECT | MINUS < câu truy vấn khác>]

Các thành ph ầ n c ơ b ả n c ủ a câu l ệ nh :

- Biểu thức sau SELECT có thể bao gồm:

Danh sách các cột và biểu thức liên quan từ các bảng hoặc khung nhìn được chỉ định sau từ khóa FROM, được phân tách bằng dấu phẩy (,) Các biểu thức này có thể được đổi tên thông qua tùy chọn AS .

+ * là ký tự đại diện tất cả các thuộc tính của bảng sau FROM

+ Các hàm tính toán : COUNT, SUM, AVG, MIN, MAX

- Biểu thức sau FROM gồm một hoặc danh sách các bảng quan hệ (có thể đặt bí danh).

- INTO : Lưu bảng kết quả vào đĩa.

- Biểu thức sau WHERE bao gồm :

+ Các thuộc tính của các bảng quan hệ sau FROM

+ Các toán tử số học : +, - , * , /

+ Các toán tử so sánh, có thể so sánh với ANY (giá trị nào đó trong 1 tập hợp) hoặc ALL (tất cả giá trị trong 1 tập hợp)

+ Các toán tử Boolean : AND, OR, NOT

+ Các toán tử tập hợp : UNION (hợp), INTERSECT (giao), MINUS (hiệu). + Các quan hệ bao hàm : IN (∈), NOT IN (∉), CONTAINS (chứa), DOES NOT CONTAIN (không chứa)

+ Điều kiện tồn tại : EXISTS (tồn tại), NOT EXIST (không tồn tại)

+ Câu vấn tin con kiểu SELECT FROM WHERE

Tìm thông tin từ các cột của bảng – Mệnh đề Select

Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Select

SELECT [DISTINCT] [AS ] [, ] | *

Xác định nội dung kết quả gồm các cột liệt kê sau SELECT hoặc tất cả các cột

Từ khoá DISTINCT dùng liệt kê những giá trị duy nhất tránh trùng lặp.

Từ khoá AS dùng đặt bí danh

Cho lược đồ cơ sở dữ liệu khách hàng

HOPDONG(SoHD, TenKH, Hang, SoLuong)

CUNGUNG(Ten, DiaChi, Hang, DonGia)

- Trả về các bản ghi gồm tất cả các cột của bảng CUNGUNG.

- Trả về các bản ghi gồm 2 cột Hang, DonGia của bảng CUNGUNG.

SELECT Hang, DonGia FROM CUNGUNG hoặc

SELECT DISTINCT Hang, DonGia FROM CUNGUNG

- Trả về các bản ghi gồm 1 cột Hang với giá trị duy nhất của bảng CUNGUNG.

SELECT DISTINCT Hang FROM CUNGUNG

- Có thể cho hiển thị giá trịhằng, chẳng hạn

SELECT “Mặt hàng”, Hang, “có đơn giá là”, DonGiaFROM CUNGUNG

Chọn các dòng của bảng – Mệnh đề Where

Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Where trong câu lệnh truy vấn Select.

SELECT [DISTINCT] [AS ] [, ] | *

Trả về các bản ghi gồm các cột liệt kê sau SELECT hoặc tất cả các cột lấy từ gồm các bộ thoả mãn .

Ghi chú : Sau WHERE có thể dùng các mệnh đề :

- BETWEEN AND : biểu diễn điều kiện

≤ ≤

- NOT BETWEEN AND : biểu diễn điều kiện < hoặc >

- IN (, , ) : biểu diễn điều kiện

bằng một trong các giá trị , ,

- NOT IN (, , ) : biểu diễn điều kiện

khác các giá trị , ,

- [NOT] LIKE : biểu diễn điều kiện

[không] giống

Trong có thể dùng dấu % (dấu phần trăm) đại diện cho chuỗi ký tự bất kỳ

- _ (dấu nối) đại diện cho một ký tự bất kỳ

- IS [NOT] NULL: biểu diễn điều kiện. giá trị là [khác] NULL

- Trả về các bản ghi gồm các cột Ten, DiaChi có giá trị duy nhất từ bảng CUNGUNG của các nhà cung ứng hoặc Đường hoặc Sữa.

WHERE (Hang = ‘Đường’) OR (Hang = ‘Sữa’) hoặc

WHERE Hang IN (‘Đường’, ‘Sữa’ )

- Trả về các bản ghi gồm các Ten, DiaChi của các khách hàng có SoDu không âm từ bảng KHACH

- Trả về các bản ghi gồm các hợp đồng có SoLuong từ 100 đến 200 từ bảng HOPDONG

- Trả về các bản ghi gồm các nhà cung ứng có tên bắt đầu bằng ‘Cty’ từ bảng CUNGUNG

- Trả về các bản ghi gồm các nhà cung ứng có mặt hàng ‘Bia’ từ bảng CUNGUNG

- Chọn những khách hàng chưa có địa chỉ

SELECT * FROM KHACH WHERE DiaChi IS NULL

- Chọn những khách hàng có số dư xác định :

WHERE SoDu IS NOT NULL

Sắp xếp các dòng của bảng – Mệnh đề Order by

Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Order by trong câu lệnh truy vấn Select

SELECT [DISTINCT] [AS ] [, ] | *

ORDER BY [ASC | DESC] [, ]

Trả về các bản ghi với các cột được chỉ định trong câu lệnh SELECT hoặc tất cả các cột bằng cách sử dụng dấu từ , và sắp xếp các bộ dữ liệu theo các biểu thức được chỉ định trong câu lệnh ORDER BY.

ASC : tăng dần (ngầm định)

- Cho biết danh sách khách hàng sắp xếp theo TEN tăng dần :

- Cho biết danh sách các nhà cung ứng ‘Sữa’ sắp xếp theo thứ tự DonGia giảm dần:

- Cho biết danh sách các nhà cung ứng sắp xếp theo thứ tự Ten và Hang :

Câu lệnh truy vấn lồng nhau

Mục tiêu:Trình bày cú pháp, chức năng của câu lệnh truy vấn Select lồng nhau.

SELECT [DISTINCT] [AS ] [, ] / *

[WHERE ]

[ORDER BY [ASC / DESC] [, ]]

Cho phép tạo ra các điều kiện chứa quan hệ tập hợp và số liệu tổng hợp.

Trong quan hệ tập hợp, câu truy vấn con đặt trong ngoặc đơn

Sử d ụ ng các toán t ử so sánh : =,

- Liệt kê các khách hàng có số dư lớn nhất:

WHERE Sodu (SELECT MAX(Sodu) FROM KHACH)

- Liệt kê hãng cung ứng gạo có DonGia

Ngày đăng: 29/12/2021, 09:58

HÌNH ẢNH LIÊN QUAN

Hình dữ liệu quan hệ - Giáo trình Cơ sở dữ liệu (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình d ữ liệu quan hệ (Trang 6)
1.2.3. Bảng tầm ảnh hưởng - Giáo trình Cơ sở dữ liệu (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
1.2.3. Bảng tầm ảnh hưởng (Trang 39)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN