1. Trang chủ
  2. » Thể loại khác

Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế

129 2K 14
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Bài Giảng Tin Học Ứng Dụng Dành Cho Sinh Viên Các Ngành Kinh Tế
Trường học Trường Đại Học Nha Trang
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài giảng
Năm xuất bản 2011
Thành phố Nha Trang
Định dạng
Số trang 129
Dung lượng 3,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế

Trang 1

TRƯỜNG ĐẠI HỌC NHA TRANG

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN HỆ THỐNG THÔNG TIN

(Lưu hành nội bộ)

BÀI GIẢNG

TIN HỌC ỨNG DỤNG DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ

Trang 3

TRƯỜNG ĐẠI HỌC NHA TRANG

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN HỆ THỐNG THÔNG TIN

(Lưu hành nội bộ)

BÀI GIẢNG

TIN HỌC ỨNG DỤNG DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ

Trang 5

MỤC LỤC

LỜI MỞ ĐẦU v

Phần I NHẬP MÔN CƠ SỞ DỮ LIỆU

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

1.1 Các khái niệm

1.2 Ví dụ

1.3 Mô hình dữ liệu

1.4 Bài tập

CHƯƠNG 2 MÔ HÌNH DỮ LIỆU QUAN HỆ

2.1 Thuộc tính, bộ, lược đồ quan hệ và quan hệ

2.2 Lược đồ cơ sở dữ liệu và cơ sở dữ liệu

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

2.3.1 Ràng buộc Khóa của lược đồ quan hệ

Mối liên hệ giữa các quan hệ Ràng buộc Khóa ngoại

2.3.3 Các ràng buộc khác

2.4 Cập nhật dữ liệu và vi phạm ràng buộc toàn vẹn

2.4.1 Thêm (Insert, Append)

2.4.2 Xóa (Delete)

2.4.3 Sửa (Update)

2.5 Bài tập

CHƯƠNG ĐẠI SỐ QUAN HỆ

3.1 Biểu thức cơ bản

3.2 Phép chọn (SELECT) 2

3.3 Phép chiếu (PROJECT) 2

3.4 Phép tích Descartes (CARTESIAN PRODUCT) 22

3.5 Phép kết nối bằng (EQUI JOIN) 2

3.6 Phép nhóm dữ liệu (GROUP) 2

3.7 Bài tập 2

Phần II HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT ACCESS

CHƯƠNG 4 GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT ACCESS

4.1 Giới thiệu Microsoft Access

4.2 Khởi động MS Access

Trang 6

4.4 Mở một CSDL đã có trong máy tính

Các đối tượng chính của một CSDL Access

4.6 Các toán tử sử dụng trong MS Access

4.7 Một số hàm sử dụng trong MS Access

4.8 Bài tập

CHƯƠNG 5 BẢNG (TABLE)

5.1 Các khái niệm

5.1.1 Bảng

Trường dữ liệu (field)

5.1.3 Bản ghi (record)

5.1.4 Khóa chính (primary key)

5.1.5 Mối liên hệ giữa các bảng (relationship)

5.2 Xây dựng cấu trúc bảng

5.2.1 Sử dụng chế độ Design View để tạo bảng

5.2.2 Tạo khóa chính

Lưu bảng

5.2.4 Hiệu chỉnh bảng

5.3 Thiết lập mối quan hệ giữa các bảng

5.4 Cập nhật bảng

5.4.1 Xem và nhập dữ liệu

5.4.2 Nhập dữ liệu sử dụng Lookup

5.4.3 Một số lỗi có thể xảy ra khi nhập dữ liệu

5.4.4 Xóa bản ghi

5.4.5 Sắp xếp dữ liệu

.6 Lọc dữ liệu

CHƯƠNG 6 TRUY VẤN (QUERY) 5

6.1 Các khái niệm

2 Query truy vấn

6.2.1 Select Query (truy vấn với phép chọn, chiếu, kết nối)

6.2.2 Group by Select Query (truy vấn với phép nhóm)

6.2.3 Crosstab Query

6.3 Query thêm, xóa, sửa 2

6.3.1 Make – Table Query

6.3.2 Update Query

6.3.3 Delete Query

6.3.4 Append Query

6.4 Truy vấn có tham số

Trang 7

CHƯƠNG BIỂU MẪU (FORM) 6

7.1 Khái niệm Form

7.2 Sử dụng Form Wizard để tạo Form

7.3 Sử dụng Design View để tạo Form

7.4 Main-Sub Form

7.5 Sử dụng nút lệnh (Command Button)

CHƯƠNG BÁO CÁO (REPORT)

8.1 Khái niệm về Report

8.2 Sử dụng Report Wizard để tạo báo cáo

Tạo báo cáo có phân nhóm

CHƯƠNG BÀI TẬP THỰC HÀNH

9.1 Bài tập 1 – Quản lý Sinh viên

9.2 Bài tập 2 – Quản lý Bán hàng

9.3 Bài tập 3 – Quản lý Thư viện

9.4 Bài tập 4 – Quản lý Dự án

TÀI LIỆU THAM KHẢO

Trang 9

LỜI MỞ ĐẦU

Ngày nay các hệ thống thông tin đóng một vai trò quan trọng trong hoạt động của doanh nghiệp Các hệ thống thông tin như kế toán, khách hàng, thông tin về sản xuất, phân phối hàng hóa… giúp quản trị doanh nghiệp một cách hiệu quả, đưa ra các quyết định hợp lý Sự phát triển của công nghệ thông tin làm cho việc xây dựng

và vận hành các hệ thống cơ sở dữ liệu trên được dễ dàng, tiện lợi

Trong phạm vi của môn học Tin học ứng dụng dành cho sinh viên các ngành kinh tế, chúng tôi quyết định chọn chủ đề cơ sở dữ liệu để giảng dạy, nhằm cung cấp các kiến thức và kỹ năng căn bản, làm tiền đề cho người học tiếp cận với việc xây dựng hay sử dụng các hệ thống thông tin sau này Nội dung của môn học gồm hai phần chính:

Phần I: Nhập môn Cơ sở dữ liệu Phần này cung cấp các kiến thức lý thuyết

về cơ sở dữ liệu, cụ thể là mô hình tổ chức dữ liệu quan hệ và các phép toán xử lý

số liệu

Phần II: Hệ quản trị Cơ sở dữ liệu Microsoft Access.Trong phần này, người

học ứng dụng các kiến thức trong phần I cho một phần mềm cụ thể là Microsoft Access, rèn luyện các kỹ năng về thiết lập cơ sở dữ liệu, thực hiện các câu truy vấn, xây dựng các biểu mẫu nhập liệu, các báo cáo…

Với thời lượng là 2 tín chỉ cho cả lý thuyết và thực hành, chúng tôi cố gắng cung cấp những kiến thức cơ bản nhất nên cũng không thể tránh những thiếu sót Chúng tôi mong nhận được những ý kiến đóng góp để môn học được hoàn thiện

hơn

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN HỆ THỐNG THÔNG TIN

Trang 11

Phần I NHẬP MÔN CƠ SỞ DỮ LIỆU

Trang 13

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

1.1 Các khái niệm

1) Dữ liệu (Data)

Dữ liệu là các sự kiện có thể ghi nhận lại được và có một ngữ nghĩa nào đó Ví dụ:

 Tên của một người: 'Nguyễn Văn Tuấn'

 Số điện thoại: ' 2 '

 Địa chỉ: '120 Ngô Gia Tự'

 Ngày sinh: 21/12/1990

2) Cơ sở dữ liệu (Database)

Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên các thiết bị trữ tin, thỏa mãn yêu cầu sử dụng cho nhiều người dùng khác nhau và cho những mục đích khác nhau

Ví dụ: Thông tin của sinh viên Trường Đại học Nha Trang như họ tên, địa chỉ, quê

quán, giới tính, ngày sinh được lưu trữ trong sổ sách (trước đây) hoặc trong hệ thống máy

tính (hiện nay) Các thông tin này hình thành nên một cơ sở dữ liệu về sinh viên và được

các phòng ban của trường sử dụng nhằm phục vụ cho các nhu cầu quản lý khác nhau Các tính chất của cơ sở dữ liệu:

 Một cơ sở dữ liệu đại diện cho một vấn đề nào đó trong thế giới thực Chẳng hạn như cơ sở dữ liệu về sinh viên của một trường đại học, cơ sở dữ liệu về hàng hóa

và khách hàng của một công ty… Những thay đổi trong thế giới thực sẽ được phản ánh lại trong cơ sở dữ liệu

 Các dữ liệu trong cơ sở dữ liệu phải liên quan với nhau theo một ý nghĩa logic nào

đó Tập hợp các dữ liệu ngẫu nhiên không thể được xem là một cơ sở dữ liệu

 Cơ sở dữ liệu đáp ứng được các yêu cầu khác nhau của nhiều người sử dụng

3) Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS)

Cơ sở dữ liệu có thể được tạo ra và quản lý thủ công trên sổ sách hoặc trên máy tính

Ở đây chỉ quan tâm đến cơ sở dữ liệu trên máy tính

Một hệ quản trị cơ sở dữ liệu là một hệ thống các phần mềm máy tính cho phép

người sử dụng có thể tạo và quản lý một cơ sở dữ liệu Hệ quản trị CSDL có các chức năng chính sau:

Định nghĩa dữ liệu: tạo cấu trúc để lưu trữ dữ liệu tùy theo mục đích của cơ sở dữ

liệu

Thao tác dữ liệu: cho phép người dùng có thể truy vấn các dữ liệu trong cơ sở dữ

liệu, hay cập nhật các thay đổi trong thế giới thực vào cơ sở dữ liệu

Chia sẻ: cho phép nhiều người dùng có thể khai thác dữ liệu một cách đồng thời

Trang 14

Bảo vệ hệ thống: nhằm bảo đảm cho cơ sở dữ liệu luôn an toàn trong trường hợp

xảy ra hỏng hóc phần cứng cũng như phần mềm máy tính Bảo vệ khỏi các hành

vi phá hoại từ bên ngoài

Hình I- Mô tả đơn giản một hệ thống cơ sở dữ liệu

Một số hệ quản trị cơ sở dữ liệu phổ biến hiện nay:

 Microsoft Access: thích hợp cho người dùng cá nhân, các doanh nghiệp nhỏ

 Oracle, DB2, SQL Server: dành cho các doanh nghiệp có các hệ thống thông tin lớn

1.2 Ví dụ

Chúng ta hãy xem xét một ví dụ về cơ sở dữ liệu BanHangnhằm quản lý các thông tin về khách hàng, các mặt hàng, các lần bán hàng cùng với số lượng hàng bán của một công ty Hình 1-2 bên dưới thể hiện cấu trúc và một vài dữ liệu ví dụ cho cơ sở dữ liệu trên Cơ sở dữ liệu được tổ chức thành ba hồ sơ Mỗi hồ sơ lưu trữ dữ liệu về các đối tượng

có kiểu giống nhau Hồ sơ KhachHang lưu trữ thông tin của các khách hàng của công ty

Hồ sơ MatHang lưu trữ thông tin về các mặt hàng mà công ty có bán Hồ sơ BanHang ghi nhận các lần bán hàng

Quá trình thiết lập cơ sở dữ liệu trên gồm hai bước Đầu tiên là định nghĩa cấu trúc

cho các hồ sơ Hồ sơ KhachHang được định nghĩa gồm có hai thông tin là tên khách hàng (HoTen) và địa chỉ (DiaChi) Hồ sơ MatHang có các thông tin là mã hàng, tên hàng, đơn vị tính và đơn giá Tương tự như vậy cho hồ sơ BanHang Chú ý rằng các hồ sơ có thể liên quan với nhau, chẳng hạn như trong hồ sơ BanHang có thông tin về HoTenKH, cho biết hóa đơn đó bán cho khách hàng nào, hoặc có thông tin về MaMH, cho biết mặt hàng nào được bán với số lượng bao nhiêu

Trang 15

Hình I- Cơ sở dữ liệu BanHang

Bước thứ hai là thao tác trên cơ sở dữ liệu, liên quan đến cập nhật và truy vấn Cập

nhật là phản ánh sự thay đổi trong thế giới thực vào cơ sở dữ liệu chẳng hạn như: ghi nhận thêm một mặt hàng mới là ‘Sô cô la sữa’ với đơn giá một ‘túi’ Hoặc: bán 50 hộp

‘Bánh Choco-Pie’ cho khách hàng ‘Lê Cường’ vào ngày 20/03/2011 Một ví dụ liên quan đến truy vấn là: tính doanh thu ngày ‘ 2/2 2 ’

1.3 Mô hình dữ liệu

Để đảm bảo tính đúng đắn, việc định nghĩa cấu trúc của một cơ sở dữ liệu phải tuân theo một mô hình dữ liệu nào đó Bên dưới là một số mô hình được sử dụng từ trước đến nay:

 Mô hình dữ liệu mạng (Network Data Model)

 Mô hình dữ liệu phân cấp (Hierachical Data Model)

 Mô hình dữ liệu quan hệ (Relational Data Model)

 Mô hình dữ liệu hướng đối tượng (Object-Oriented Model)

Việc đề cập chi tiết đến các mô hình trên nằm ngoài phạm vi của tài liệu này Ở đây

chỉ nhấn mạnh rằng Mô hình dữ liệu quan hệ là một mô hình đơn giản, có nền tảng toán

học chặt chẽ Do đó mô hình này được sử dụng phổ biến rộng rãi trên khắp thế giới trong các hệ quản trị cơ sở dữ liệu thương mại ngày nay như Access, Oracle, DB2, SQL Server… Đó cũng là mô hình được trình bày trong các chương tiếp theo

1.4 Bài tập

1) Một trung tâm Anh ngữ cần tổ chức một cơ sở dữ liệu nhằm quản lý hoạt động giảng dạy của trung tâm Các thông tin cần quản lý như sau:

 Danh sách các học viên đăng ký học

 Danh sách các lớp học cụ thể, môn học của lớp (TOEIC, IELTS, Headway…) ngày khai giảng lớp

 Học viên nào đăng ký lớp nào, cuối khóa thi đạt điểm bao nhiêu

Yêu cầu: Hãy định nghĩa cấu trúc cho cơ sở dữ liệu nói trên và cung cấp một số dữ

KhachHang HoTenKH DiaChi

Nguyễn Trang 12 Hồng Bàng

Lê Cường 60 Trần Phú Mai Hòa 22 Bạch Đằng

MatHang MaMH TenMH DonViTinh DonGia

Trang 16

2) Một công ty sản xuất bánh kẹo cần tổ chức một cơ sở dữ liệu nhằm quản lý nhân sự của công ty Các thông tin cần quản lý như sau:

 Danh sách các phòng ban và các nhân viên theo từng phòng ban Dữ liệu về nhân viên bao gồm họ tên, địa chỉ, năm sinh, hệ số lương của nhân viên đó

 Bảng lương chi trả hàng tháng cho từng nhân viên, biết rằng lương được tính theo ngày công làm việc của nhân viên trong tháng:

Lương = x Số ngày công x Hệ số lương

Yêu cầu: Hãy định nghĩa cấu trúc cho cơ sở dữ liệu nói trên và cung cấp một số dữ

liệu mẫu như trong ví dụ Hình I-

Trang 17

CHƯƠNG MÔ HÌNH DỮ LIỆU QUAN HỆ

Trong mô hình dữ liệu quan hệ, một cơ sở dữ liệu là một tập hợp các quan hệ Mỗi quan hệ có thể được xem là một bảng các giá trị

KhachHang MaKH HoTen DiaChi

A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng Mỗi dòng trong bảng thể hiện một đối tượng hay một sự kiện trong thế giới thực Mỗi dòng gồm nhiều giá trị có liên quan với nhau Tên cột giúp thể hiện ý nghĩa của các giá trị trong một dòng Ví dụ bảng trên được gọi là bảng KhachHang vì mỗi dòng cho biết thông tin về một đối tượng khách hàng cụ thể Các tên cột MaKH, HoTen, DiaChi cho biết

ý nghĩa của từng giá trị trong dòng đó

Theo thuật ngữ của mô hình quan hệ, mỗi dòng được gọi là một bộ, tiêu đề của các cột được gọi là thuộc tính, một bảng được gọi là một quan hệ Phần tiếp theo sẽ định nghĩa các khái niệm bộ, thuộc tính, quan hệ một cách chính xác hơn

2.1 Thuộc tính, bộ, lược đồ quan hệ và quan hệ

1) Thuộc tính và kiểu dữ liệu:

Thuộc tính thể hiện tính chất, đặc điểm của một đối tượng nào đó trong thực tế Ví

dụ đối tượng sinh viên có thể có các thuộc tính như họ tên, giới tính, ngày sinh, địa chỉ, quê quán… Đối tượng hàng hóa có thể có các thuộc tính tên hàng hóa, đơn vị tính, đơn giá…

Mỗi thuộc tính thuộc một kiểu dữ liệu Chẳng hạn tên và địa chỉ của một người gồm các ký tự nên được gọi là kiểu chuỗi (text) Ngày sinh thuộc khái niệm ngày tháng nên được gọi là kiểu ngày giờ (datetime) Đơn giá một mặt hàng có thể dùng để tính toán nên thuộc kiểu số (number) Một kiểu dữ liệu khác cũng được sử dụng phổ biến là kiểu logic

(yes/no – xem chương )

Thuộc tính Kiểu dữ liệu Ví dụ

HoTen Text ‘Nguyễn Thị Trang’

DiaChi Text ‘120 Ngô Gia Tự’

Lược đồ quan hệ được dùng để mô tả một quan hệ Ví dụ một lược đồ có năm thuộc

tính dùng để mô tả đối tượng sinh viên của trường đại học được thể hiện như sau:

SinhVien(MaSV, HoTen, SoCMND, NgaySinh, DiemTOEIC)

Trang 18

Trong đó SinhVien là tên quan hệ MaSV, HoTen, SoCMND, NgaySinh, DiemTOEIC là các thuộc tính Nếu trình bày đầy đủ kiểu dữ liệu của các thuộc tính thì có thể viết như sau:

SinhVien(MaSV: text, HoTen: text, SoCMND: text, NgaySinh: datetime,

DiemTOEIC: number)

SinhVien

MaSV HoTen SoCMND NgaySinh DiemTOEIC

3) Quan hệ

Một quan hệ r phát sinh từ lược đồ quan hệ R(A , A , …, An ) là một tập hợp m bộ r

= {t , t , …, tm }, trong đó mỗi bộ là một danh sách n giá trị t = {v ,v ,…, vn }, mỗi giá trị v i

là tương ứng với thuộc tính A i

Ví dụ: xét quan hệ sv phát sinh từ lược đồ quan hệ SinhVien(MaSV, Ho, Ten, SoCMND, NgaySinh, TOEIC) trên Quan hệ này có 4 bộ:

t = { ‘5202’ , ‘Cường’ , ‘333’ , 2 /5/ 99 , 500 }

t 2 = { ‘5207’ , ‘Sơn’ , ‘456’ , 7/7/ 990 , 400 }

t 3 = { ‘5306’ , ‘Nga’ , ‘777’ , 22/3/ 992 , 200 }

t 4 = { ‘5308’ , ‘Trang’ , ‘ 23’ , 2/7/ 990 , 700 }

Trong quan hệ trên, mỗi bộ t , t , t , t đại diện cho một đối tượng sinh viên cụ thể

Trong bộ t giá trị v = ‘Cường’ tương ứng với thuộc tính A là HoTen cho biết HoTen của

sinh viên này là ‘Cường’ Để đơn giản và rõ ràng, quan hệ sv trên được trình bày lại theo

dạng bảng như hình bên dưới :

Hình I- Quan hệ thể hiện dưới dạng bảng

Từ lược đồ quan hệ SinhVien, cũng có thể xây dựng một quan hệ sv2 khác gồm 5 bộ ứng với 5 sinh viên, hoặc một quan hệ sv3 cũng có bộ nhưng có thông tin MaSV, HoTen

khác

Định nghĩa trên cho thấy ứng với một lượt đồ quan hệ, thì có thể có nhiều quan hệ

khác nhau Xét tại một thời điểm nào đó thì chỉ có một quan hệ phản ánh đúng thực tế trong thế giới thực Quan hệ đó được gọi quan hệ hiện hành Khi thế giới thực thay đổi,

quan hệ hiện hành cũng thay đổi theo bằng các thao tác thêm, xóa, sửa Chẳng hạn như tiếp nhận thêm một sinh viên mới vào học (thêm), thay đổi DiemTOEIC của một sinh viên

sv MaSV HoTen SoCMND NgaySinh DiemTOEIC

bộ

Trang 19

(sửa) Do đó khi nói đến tên của một lược đồ quan hệ, ví dụ R hay SinhVien, chúng ta ngầm hiểu rằng đó cũng là tên của quan hệ hiện hành của lược đồ đó Còn tên đi kèm với danh sách thuộc tính, R(A , A , …, An) hay SinhVien(MaSV, HoTen,…), thì chỉ có một ý nghĩa duy nhất là lược đồ quan hệ

Tính thứ tự của các bộ trong quan hệ: Thứ tự của các bộ trong một quan hệ là không

quan trọng: theo định nghĩa quan hệ là một tập hợp của các bộ, nên thứ tự các bộ là không

có ý nghĩa Theo lý thuyết tập hợp thì {A, B, C} = {C, B, A}

Giá trị NULL:

Trong một số trường hợp, trong một bộ giá trị của một thuộc tính là không có hoặc

có nhưng không được biết Giá trị NULL được sử dụng trong các trường hợp này Xét bộ

sau trong quan hệ SinhVien

t = { ‘5306’ , ‘Nga’ , ‘777’ , NULL , NULL }

Bộ trên có giá trị NULL tại thuộc tính ngày sinh và thuộc tính điểm TOEIC Đối với thuộc tính điểm TOEIC do sinh viên chưa thi nên chưa có điểm (không có) Đối với thuộc tính ngày sinh, do giấy tờ bị thất lạc và cha mẹ không nhớ, nên chưa xác định được ngày sinh chính xác cho sinh viên này (ngày sinh có nhưng không biết, có thể được bổ sung sau) Cả hai trường hợp đều dùng giá trị NULL

2.2 Lược đồ cơ sở dữ liệu và cơ sở dữ liệu

Một lược đồ cơ sở dữ liệu S là tập hợp các lược đồ quan hệ S = { R , R , … , Rp}

trong đó R i là các lược đồ quan hệ có liên quan với nhau

Một cơ sở dữ liệu DB phát sinh từ lược đồ cơ sở dữ liệu S là tập các quan hệ DB = {

r , r , …, r } trong đó r i là quan hệ phát sinh từ lược đồ R i

Ví dụ: với mục đích quản lý sinh viên trong trường đại học, Hình I- thể hiện một lược đồ cơ sở dữ liệu được gọi là DaiHoc gồm có năm quan hệ: DaiHoc = { Khoa, SinhVien, MonHoc, LopHoc, KetQua }

Hình I-5 thể hiện một cơ sở dữ liệu tương ứng với lược đồ DaiHoc Chúng ta sẽ sử dụng cơ sở dữ liệu này để minh họa cho các vấn đề khác về sau

Trang 20

Hình I- Lược đồ cơ sở dữ liệu quan hệ DaiHoc

Hình I-5 Một cơ sở dữ liệu phát sinh từ lược đồ cơ sở dữ liệu DaiHoc

Như vậy, khi nói đến một cơ sở dữ liệu, chúng ta ngầm hiểu là nói đến cả lược đồ của cơ sở dữ liệu đó cùng với trạng thái hiện hành phản ánh thực tế trong thế giới thực tương ứng

Khoa MaKhoa TenKhoa

CN Công nghệ Thông tin

KT Kinh tế

SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Trang 21

Trong thế giới thực, thuộc tính Diem chỉ có giá trị từ đến Do đó các giá trị -1 hay 11 là những tình trạng dữ liệu không mong muốn Có thể khắc phục tình trạng này bằng cách đưa ra quy định rằng Diem chỉ được phép nhận các giá trị từ đến Đây là

một ví dụ về ràng buộc toàn vẹn

Ràng buộc toàn vẹn là các quy tắc cho một cơ sở dữ liệu nhằm đảm bảo nó phản ánh đúng ngữ nghĩa của thế giới thực Sau đây là một số loại ràng buộc toàn vẹn phổ biến

2.3.1 Ràng buộc Khóa của lược đồ quan hệ

Theo định nghĩa, một quan hệ là một tập hợp của các bộ r = {t , t , …, t m }, do đó hai

bộ bất kỳ trong một quan hệ phải khác nhau Khóa (key) là một công cụ giúp phân biệt các

Lưu ý : K phải có tính ‘nhỏ nhất’, nghĩa là K’  K, thì K’ không có tính chất (*)

Ví dụ: cũng có thể chọn hai thuộc tính {MaSV, HoTen} để phân biệt hai bộ bất kỳ trong lược đồ quan hệ SinhVien Tuy nhiên chỉ cần MaSV là đủ Do đó {MaSV, HoTen} không được gọi là khóa (được gọi là siêu khóa)

Lưu ý : Một lược đồ có thể có nhiều khóa Ví dụ SoCMND cũng là khóa vì không

có hai sinh viên nào giống nhau về SoCMND Thuộc tính này cũng có thể dùng để phân biệt hai sinh viên với nhau Tuy nhiên đối với một lược đồ, chỉ chọn một khóa làm đại diện

và được gọi là khóa chính (primary key) Trong ngữ nghĩa của cơ sở dữ liệu DaiHoc,

thuộc tính MaSV có ý nghĩa hơn là SoCMND Do đó MaSV được chọn làm khóa chính

cho lược đồ quan hệ SinhVien

Như vậy, khóa chính cho các lược đồ quan hệ trong lược đồ cơ sở dữ liệu DaiHoc là như sau:

Trang 22

 MaKhoa : dùng để phân biệt các bộ trong quan hệ Khoa

 MaSV : dùng để phân biệt các bộ trong quan hệ SinhVien

 MaMH : dùng để phân biệt các bộ trong quan hệ MonHoc

 MaLop : dùng để phân biệt các bộ trong quan hệ LopHoc

 {MaSV, MaLop}: trong lược đồ KetQua, khóa có hai thuộc tính là MaSV và MaLop Nếu chỉ chọn MaSV để làm khóa thì không đủ vì một sinh viên có thể theo học nhiều lớp, do đó có nhiều bộ có cùng MaSV Tương tự, nếu chỉ chọn MaLop để làm khóa cũng không đủ vì một lớp có nhiều sinh viên theo học, nên có nhiều bộ có cùng MaLop Việc chọn {MaSV, MaLop} làm khóa là phù hợp vì theo ngữ nghĩa thực tế một sinh viên chỉ theo học một lớp một lần và chỉ có một điểm số

2.3.2 Mối liên hệ giữa các quan hệ Ràng buộc Khóa ngoại

Xét hai quan hệ SinhVien và Khoa trong cơ sở dữ liệu DaiHoc

Trong thực tế, giữa hai đối tượng Khoa và SinhVien có mối liên hệ là một Khoa thì

có nhiều sinh viên và một sinh viên thì trực thuộc một Khoa nào đó Ta gọi đây là mối liên

hệ một – nhiều (Khoa -1, SinhVien - ∞ ) Hay nói cách khác Khoa là quan hệ cha, SinhVien

Khoa MaKhoa TenKhoa

CN Công nghệ Thông tin

KT Kinh tế

SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Trang 23

là quan hệ con Vì vậy trong lược đồ quan hệ SinhVien có thuộc tính MaKH để biểu diễn mối liên hệ này

Lúc này thuộc tính MaKH được gọi là khóa ngoại của quan hệ SinhVien (quan hệ

con) vì nó tham chiếu đến khóa chính MaKhoa của quan hệ Khoa (quan hệ cha)

Ràng buộc toàn vẹn về khóa ngoại phát biểu rằng: với một giá trị tại thuộc tính khóa

ngoại trong quan hệ con, thì giá trị đó phải tồn tại trước trong quan hệ cha

Xét ví dụ :

Đây là một trạng thái không hợp lệ vì tại bộ thứ của quan hệ SinhVien, MaKH

‘NN’ chưa tồn tại tại thuộc tính MaKhoa ở bất cứ bộ nào trong quan hệ Khoa Trạng thái sau đây mới được gọi là hợp lệ

Như vậy, có thể thiết lập các mối quan hệ và ràng buộc toàn vẹn về khóa ngoại cho lượt đồ cơ sở dữ liệu DaiHoc như sau:

Khoa

SinhVien

Khoa MaKhoa TenKhoa

CN Công nghệ Thông tin

KT Kinh tế

SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Khoa MaKhoa TenKhoa

CN Công nghệ Thông tin

KT Kinh tế

NN Ngoại ngữ

SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Trang 24

Hình I- Mối liên hệ và ràng buộc khóa ngoại giữa các lượt đồ quan hệ trong

CSDL DaiHoc

2.3.3 Các ràng buộc khác

1) Ràng buộc về miền giá trị

Quy định Diem chỉ nhận các giá trị từ đến 10 là một ràng buộc miền giá trị

2) Ràng buộc giá trị NULL

Ràng buộc này cho phép một thuộc tính có được nhận giá trị NULL hay không (NULL hay NOT NULL) Ví dụ thuộc tính SoTinChi của lược đồ quan hệ MonHoc phải là NOT NULL vì mỗi môn học phải có số tín chỉ cụ thể

3) Ràng buộc liên thuộc tính:

Ràng buộc này ảnh hưởng đến nhiều thuộc tính trong một quan hệ Xét quan hệ đặt phòng khách sạn sau đây :

DatPhong(TenKhachHang, TenPhong, TuNgay, DenNgay, DonGia)

Thì có ràng buộc liên thuộc tính: TuNgay <= DenNgay

2.4 Cập nhật dữ liệu và vi phạm ràng buộc toàn vẹn

Có ba thao tác liên quan đến cập nhật cơ sở dữ liệu: thêm, xóa, sửa Thêm nghĩa là

bổ sung thêm một bộ (hay nhiều bộ) vào một quan hệ Xóa được dùng để loại bỏ một bộ (hay nhiều bộ) ra khỏi quan hệ Sửa là thay đổi giá trị một số thuộc tính của một số bộ đã

tồn tại Một thao tác cập nhật phải không được vi phạm các ràng buộc toàn vẹn, nếu không thao tác đó sẽ bị từ chối Trong phần này sẽ trình bày một số ví dụ về thêm, xóa, sửa, sử dụng cơ sở dữ liệu DaiHoc trong Hình I- và dựa trên các ràng buộc toàn vẹn chỉ định trong Hình I-

Trang 25

2.4.1 Thêm (Insert, Append)

1 Thêm bộ { NULL, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien

 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa chính phải khác NULL Vì vậy thêm không thành công

2 Thêm bộ { ‘5202’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien

 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa chính vì giá trị khóa

‘ 2 2’ đã tồn tại Thêm không thành công

3 Thêm bộ { ‘5205’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien

 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa ngoại MaKH vì trong quan hệ Khoa không có bộ nào có MaKhoa là ‘CB’ Thêm không thành công

4 Thêm bộ { ‘5205’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘KT’ } vào quan hệ SinhVien

 Thao tác này thỏa mãn các ràng buộc Thêm thành công

2.4.2 Xóa (Delete)

1 Xóa môn học có TenMH là ‘Quản trị học’

 Xóa thành công

2 Xóa môn học có TenMH là ‘Tin học cơ sở’

 Thao tác này không thành công vì trong quan hệ LopHoc (bảng con) có lớp

‘ ’ và lớp ‘ ’ tham chiếu đến môn học này Nếu xóa bộ này trong bảng MonHoc (bảng cha) thì vi phạm ràng buộc toàn vẹn

Để tránh vi phạm ràng buộc toàn vẹn khóa ngoại khi xóa một bộ trong bảng cha, một phương án xử lý khác là xóa luôn các bộ có liên quan trong bảng con (CASCADE DELETE)

2.4.3 Sửa (Update)

1 Trong quan hệ SinhVien sửa HocBong của bộ có MaSV = ‘ ’ thành

 Thao tác sửa này thành công

2 Sửa MaKH của sinh viên ‘Trang’ thành ‘CK’

 Vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ Khoa không có bộ

MonHoc MaMH TenMH SoTinChi

Trang 26

3 Sửa MaKhoa của khoa ‘Công nghệ Thông tin’ thành ‘IT’

 Thao tác sửa này vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ SinhVien có 3 có sinh viên có MaKH là ‘CN’ Thao tác này bị từ chối Một phương án xử lý khác để tránh vi phạm ràng buộc toàn vẹn là sửa luôn MaKH của các sinh viên này thành ‘IT’ (CASCADE UPDATE)

2.5 Bài tập

1) Một công ty du lịch cần tổ chức một cơ sở dữ liệu nhằm quản lý hoạt động kinh doanh du lịch của công ty Các thông tin cần quản lý như sau:

 Danh sách các khách hàng của công ty

 Danh sách các điểm du lịch công ty có mở tour, số ngày đến điểm du lịch đó,

và đơn giá cho một người

 Danh sách các tour du lịch cụ thể, mỗi tour có một điểm đến và xuất phát vào một ngày nào đó

 Khách hàng nào đăng ký tour du lịch nào, với số lượng bao nhiêu

Yêu cầu:

a) Hãy định nghĩa lược đồ cơ sở dữ liệu quan hệ cho mô hình trên và thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại tương tự như trong Hình I- b) Tạo một số dữ liệu mẫu cho cơ sở dữ liệu trên như trong Hình I-5

Khoa MaKhoa TenKhoa

IT Công nghệ Thông tin

KT Kinh tế

SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Trang 27

2) Xét cơ sở dữ liệu BanHang như sau:

a) Hãy thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại

b) Cho biết các thao tác sau có vi phạm ràng buộc toàn vẹn hay không, nêu lý do:

 Thêm bộ { ‘A00 ’, ‘Sơn Hà’, ’33 Hồng Lĩnh’ } vào quan hệ KhachHang

 Thêm bộ { ‘S02, ‘Sữa chua Yomost’, ’Lốc’, 4500 } vào quan hệ MatHang

 Thêm bộ { ‘005’, ‘ 2/2/20 0’, ‘A004’ } vào quan hệ HoaDon

 Xóa khách hàng có tên ‘Lê Cường’ trong quan hệ KhachHang

 Xóa mặt hàng có tên ‘Kem Monte-Rosa’ trong quan hệ MatHang

 Xóa hóa đơn ‘ ’ trong quan hệ HoaDon (có CASCADE DELETE)

 Xóa mặt hàng bán ‘S ’ của hóa đơn ‘ 2’ trong quan hệ MatHangBan

 Trong quan hệ KhachHang, sửa MaKH ‘A ’ thành ‘A 2’

 Trong quan hệ KhachHang, sửa MaKH ‘B 2’ thành ‘B ’ (có CASCADE UPDATE)

 Trong quan hệ MatHang sửa đơn giá của mặt hàng ‘S ’ thành

 Trong quan hệ HoaDon, sửa MaKH của hóa đơn thành ‘D ’

KhachHang MaKH HoTen DiaChi

A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng

MatHang MaMH TenMH DonViTinh DonGia

Trang 29

CHƯƠNG ĐẠI SỐ QUAN HỆ

Các thao tác trên cơ sở dữ liệu có thể được chia thành hai loại Loại thứ nhất là cập

nhật dữ liệu vào các quan hệ, đó là các thao tác thêm, xóa, sửa đã được trình bày trong

chương 2 Loại thứ hai là truy xuất dữ liệu từ các quan hệ, hay còn gọi là truy vấn (query)

Sau đây là một ví dụ về truy vấn trong cơ sở dữ liệu DaiHoc:

Hãy cho biết bảng điểm (gồm tên các môn học và điểm số tương ứng) của sinh viên

có mã số ‘ ’ Kết quả của truy vấn này cũng có dạng quan hệ như sau:

MaSV HoTen MaMH TenMH SoTinChi Diem

Mô hình dữ liệu quan hệ định nghĩa các phép toán dùng để truy vấn Tập hợp các

phép toán này được gọi là đại số quan hệ Một dãy các phép toán tạo thành một biểu thức

đại số quan hệ Trước khi đi vào các phép toán đại số quan hệ, phần 3.1 trình bày lại một

số khái niệm về các biểu thức cơ bản

'Nguyen' + 'Son' 'NguyenSon'

Ho + Ten 'LeMai' (nếu Ho='Le' và Ten='Mai')

Ho + ' ' + Ten 'Le Mai'

5 (nếu Ten = 'Nguyen')

Trang 30

Sai (nếu HocBong = 100) Ten like 'N*' Đúng nếu TenSV bắt đầu bằng chữ N như: Nam, Nga,

Nhân…

NgaySinh < 1/2/1 1 Đúng, nếu sinh viên sinh trước ngày 2/1/1991 Ngoài các phép so sánh, chúng ta còn có các phép AND, OR, XOR Mục đích là để kết hợp hai biểu thức logic thành một biểu thức logic khác theo bảng bên dưới :

Ví dụ 1: Cho biết các môn học có số tín chỉ từ 3 trở lên

MaMH TenMH SoTinChi

Trang 31

Ví dụ 2: Liệt kê các sinh viên sinh năm và có học bổng trên

(Year(NgaySinh) = 1990 AND DiemTOEIC > 300) (SinhVien)

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Cú pháp:  (danh-sách-thuộc-tính) (TenQuanHe)

Ví dụ : Liệt kê các sinh viên với MaSV, HoSV, TenSV

Phép chiếu cũng có thể tạo ra một thuộc tính mới cho quan hệ kết quả:

Ví dụ 4: MaSV, HoTen: HoSV+ ' ' + TenSV(SinhVien)

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Trang 32

Sau đây là một ví dụ minh họa phép chiếu kết hợp với phép chọn:

Ví dụ : Liệt kê các sinh viên sinh năm và có điểm HocBong trên , chỉ liệt

kê các cột MaSV, Ho, Ten, NgaySinh

MaSV, HoSV, TenSV, NgaySinh[Year(NgaySinh)=1990 AND HocBong > 300(SinhVien)]

MaSV HoSV TenSV NgaySinh

5207 Nguyễn Sơn 17/7/1 0

5308 Phạm Trang 12/7/1 0 Tuy nhiên nếu thực hiện phép chiếu trước sẽ gây ra lỗi vì sau khi thực hiện phép chiếu thì không còn thuộc tính HocBong để thực hiện phép chọn Biểu thức sau đây là biểu thức sai:

Year(NgaySinh) = 1990 AND HocBong > 300[MaSV, HoSV, TenSV, NgaySinh (SinhVien)]

3.4 Phép tích Descartes (CARTESIAN PRODUCT)

Trong lý thuyết tập hợp, phép tích Descartes dùng để nhân hai tập hợp với nhau Ví

dụ: cho tập A = { a , a }, tập B = { b , b , b } thì tích Descartes của A và B là:

A × B = { a b , a b , a b , a b , a b , a b }

Tập kết quả có 6 phần tử, bằng số lượng của tập A nhân số lượng tập B

Từ đó phép tích Descartes cho hai quan hệ được định nghĩa như sau:

Cho hai quan hệ r và s phát sinh từ hai lượt đồ R(A , A ,…, An) và S(B , B , …, Bm)

trong đó r có n R bộ và s có n S bộ Tích Descartes của r và s là một quan hệ có lượt đồ

Q(A , A ,…, An , B , B , …, Bm ) Quan hệ này có n R * n S bộ Những bộ này hình thành bằng

cách kết hợp một bộ trong r và một bộ trong s

Trang 33

Ví dụ: SinhVien × Khoa

Hình I- Phép tích Descartes

Bản thân phép tích Descartes ít có ý nghĩa thực tế Tuy nhiên phép tích Descartes là

cơ sở cho phép kết nối được trình bày trong phần tiếp theo

3.5 Phép kết nối bằng (EQUI JOIN)

Ví dụ Xét truy vấn sau đây: hãy cho biết tên khoa ứng với từng sinh viên

Truy vấn trên có thể thực hiện được dùng phép tích Descartes, sau đó áp dụng thêm một một phép chọn dựa vào điều kiện MaKH = MaKhoa

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa

5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin

5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế

520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế

5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin

5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế

Trang 34

Cách thực hiện một tích Descartes và sau đó là một phép chọn có điều kiện bằng như vậy được gọi là phép kết nối bằng

Cú pháp:

QuanHe1 ⋈điều-kiện-bằng QuanHe2

Ví dụ trên được viết lại là:

SinhVien ⋈MaKH = MaKhoa Khoa Trong trường hợp các thuộc tính để kết nối bằng ở cả hai quan hệ giống tên nhau thì phép kết nối bằng được gọi là phép kết nối tự nhiên Lúc này chỉ cần viết phép toán kết nối

mà không cần viết danh sách điều-kiện-bằng đi kèm

Ví dụ Hãy cho biết tên môn học ứng với các lớp học

LopHoc ⋈ MonHoc (ngầm hiểu điều kiện bằng là thuộc tính MaMH ở cả hai quan hệ) Kết quả:

Trong quan hệ kết quả, do có 2 thuộc tính MaMH nên có hai cách xử lý:

 Chỉ giữ lại một thuộc tính MaMH

 Dùng tên quan hệ để phân biệt: LopHoc.MaMH và MonHoc.MaMH

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa

5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin

5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế

520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế

5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin

5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa

5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế

520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin

5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin

MaLop MaMH HocKy NamHoc GiaoVien MaMH TenMH SoTinChi

(MaKH=MaKhoa) (SinhVien × Khoa)

Trang 35

Ví dụ Hãy cho biết MaSV, HoSV, TenSV các sinh viên có theo học những lớp do

giáo viên ‘Tuấn’ giảng dạy:

MaSV, HoSV, TenSV(GiaoVien=’Tuấn’[(LopHoc ⋈ KetQua) ⋈ SinhVien])

Hoặc:

 MaSV, HoSV, TenSV (GiaoVien=’Tuấn’[LopHoc ⋈ (KetQua ⋈ SinhVien)])

Hoặc:

MaSV, HoSV, TenSV([ GiaoVien=’Tuấn’(LopHoc)] ⋈ KetQua ⋈ SinhVien)

Tuy nhiên, viết như bên dưới là không hợp lệ:

MaSV, HoSV, TenSV (GiaoVien=’Tuấn’ [LopHoc ⋈ SinhVien⋈ KetQua])

vì giữa LopHoc và SinhVien không có thuộc tính kết nối

Ví dụ Hãy cho biết TenMH, SoTinChi, Diem của các môn học mà sinh viên có

MaSV = ‘ 2 2’ đã học:

TenMH, SoTinChi, Diem ([MaSV=’5202’ (KetQua ⋈ LopHoc ⋈ MonHoc))

3.6 Phép nhóm dữ liệu (GROUP)

Ví dụ 10: Giả sử có truy vấn sau: Dựa vào bảng SinhVien, tính số lượng sinh viên và

tổng học bổng của từng khoa Kết quả như ở bảng dưới:

Cách thức thực hiện như trên được gọi là phép nhóm

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

Đếm số SV trong nhóm

Trang 36

Ví dụ 11: Tính học bổng cao nhất, thấp nhất, và trung bình của các sinh viên theo

từng khoa

MaKH G Max(HocBong), Min(HocBong), Avg(HocBong) (SinhVien)

MaKhoa Max Min Avg

Ví dụ 12: mở rộng ví dụ , tính số sinh viên của từng Khoa, liệt kê các thuộc tính:

MaKhoa, TenKhoa, SoSV

Để có thêm cột TenKhoa, cần thực hiện phép kết giữa bảng SinhVien và bảng Khoa, sau đó thực hiện phép nhóm như bình thường, tuy nhiên cột TenKhoa phải được đưa vào làm thuộc tính nhóm chung với MaKhoa

MaKhoa, TenKhoa G SoSV: Count(MaSV) (SinhVien ⋈ MaKH = MaKhoa Khoa)

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa

5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế

5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế

520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin

5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin

5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin

MaKhoa TenKhoa SoSV

CN Công nghệ Thông tin 3

Thuộc tính nhóm gồm MaKhoa và TenKhoa

Trang 37

Ví dụ 1 : Cho biết sĩ số của từng lớp học Liệt kê: MaLop, TenMH, SiSo

MaLop, TenMHG SiSo: Count(MaSV) (LopHoc ⋈ MonHoc ⋈ KetQua)

MaLop TenMH SiSo

Ví dụ 14: Dựa vào bảng KetQua và bảng MonHoc, tính điểm trung bình học kỳ 1

năm 2 của các sinh viên theo quy tắc

∑ tam  NamHoc=2010 AND HocKy= 1(KetQua ⋈ LopHoc ⋈ MonHoc)

Kết quả của tam:

MaSV MaLop Diem MaMH HocKy NamHoc GiaoVien TenMH SoTinChi

MaSVG DiemTB: Sum(Diem*SoTinChi)/Sum(SoTinChi)(tam)

Kết quả:

MaSV DiemTB

Trang 38

3.7 Bài tập

1) Cho cơ sở dữ liệu về BanHang như bên dưới:

Hãy cho biết biểu thức đại số quan hệ để thực hiện các câu truy vấn sau và cho biết nội dung kết quả của từng câu truy vấn:

a) Liệt kê tên các mặt hàng có đơn giá lớn hơn 10.000 (MaMH, TenMH, DonGia) b) Cho biết tên khách hàng ứng với từng hóa đơn (MaHD, NgayHD, TenKH) c) Hãy cho biết tên các khách hàng đã mua mặt hàng ‘Sữa chua Vinamilk’

d) Liệt kê tên các mặt hàng bán được trong ngày 12/2/2010

e) Tính thành tiền của từng hóa đơn (MaHD, NgayHD, TenKH, ThanhTien)

f) Cho biết tên các mặt hàng mà khách hàng ‘Nguyễn Trang’ đã mua, với tổng số lượng và trị giá là bao nhiêu

g) Tính doanh thu bán hàng theo từng ngày (NgayHD, DoanhThu)

h) Tính doanh thu bán hàng theo từng ngày của từng mặt hàng (NgayHD, TenMatHang, DoanhThu)

KhachHang MaKH HoTen DiaChi

A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng

MatHang MaMH TenMH DonViTinh DonGia

Trang 39

2) Cho cơ sở dữ liệu về quản lý các dự án của một công ty như sau:

 Hãy cho biết khóa chính, mối liên hệ và ràng buộc khóa ngoại giữa các quan hệ trong

cơ sở dữ liệu trên

 Thực hiện các câu truy vấn sau bằng biểu thức đại số quan hệ và cho biết nội dung kết quả của từng câu truy vấn:

a) Liệt kê các phòng ban và tên trưởng phòng của từng phòng ban (họ tên đầy đủ) b) Tìm các nhân viên lương ít hơn ở ‘Phòng Kinh doanh’ hoặc ít hơn ở ‘Phòng Kế toán’

c) Liệt kê các nhân viên và cho biết tên trưởng phòng của từng nhân viên đó

d) Hãy cho biết các phòng ban nào có thực hiện dự án tại ‘Nha Trang’

e) Tính mức lương trung bình của từng phòng ban

f) Trong các dự án thực hiện tại Nha Trang, tính tổng số giờ nhân viên của từng dự

án

g) Với mỗi giờ làm việc cho dự án, một nhân viên sẽ được thưởng 1% tiền lương Tính số tiền thưởng của từng nhân viên

h) Tính số tiền thưởng của từng nhân viên theo từng dự án

PhongBan MaPB TenPB TruongPhong

DuAn MaDA TenDA DiaDiem NgayBD MaPB

D2 Chùa Tây Phương Hà Nội 10/6/2012 KD D3 Chùa Linh Sơn Nha Trang 16/8/2011 KD D4 Dinh Bảo Đại Nha Trang 22/1/2010 KT

PhanCong MaDA MaNV SoGio

Ngày đăng: 24/01/2013, 16:22

HÌNH ẢNH LIÊN QUAN

Hình I- . Mô tả đơn giản một hệ thống cơ sở dữ liệu - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Mô tả đơn giản một hệ thống cơ sở dữ liệu (Trang 14)
Hình I- . Cơ sở dữ liệu BanHang - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Cơ sở dữ liệu BanHang (Trang 15)
Hình I- . Quan hệ thể hiện dưới dạng bảng - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Quan hệ thể hiện dưới dạng bảng (Trang 18)
Hình  I-5   thể  hiện  một  cơ  sở  dữ  liệu  tương  ứng  với  lược  đồ  DaiHoc. Chúng  ta  sẽ  sử  dụng cơ sở dữ liệu này để minh họa cho các vấn đề khác về sau - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I-5 thể hiện một cơ sở dữ liệu tương ứng với lược đồ DaiHoc. Chúng ta sẽ sử dụng cơ sở dữ liệu này để minh họa cho các vấn đề khác về sau (Trang 19)
Hình I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc (Trang 20)
Hình I-5. Một cơ sở dữ liệu phát sinh từ lược đồ cơ sở dữ liệu DaiHoc - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I-5. Một cơ sở dữ liệu phát sinh từ lược đồ cơ sở dữ liệu DaiHoc (Trang 20)
Hình I- . Mối liên hệ và ràng buộc khóa ngoại giữa các lượt đồ quan hệ trong           CSDL DaiHoc - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Mối liên hệ và ràng buộc khóa ngoại giữa các lượt đồ quan hệ trong CSDL DaiHoc (Trang 24)
Hình I- . Phép tích Descartes - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
nh I- . Phép tích Descartes (Trang 33)
CHƯƠNG 5. BẢNG (TABLE)  5.1. Các khái niệm - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
5. BẢNG (TABLE) 5.1. Các khái niệm (Trang 47)
Bảng được tham chiếu  (bảng có quan hệ  ) - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
ng được tham chiếu (bảng có quan hệ ) (Trang 59)
Bảng có  quan hệ  nhiều (∞) - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
Bảng c ó quan hệ nhiều (∞) (Trang 59)
Bảng NhanVien. - Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế
ng NhanVien (Trang 115)

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

🧩 Sản phẩm bạn có thể quan tâm

w