You are on page 1of 13

Bài 1. Cho lược đồ quan hệ R=<U,F>.

Trong đó U=(A,B,C,D,E,G,H)
F={ f1:BA; f2:DACE; f3:DH; f4:GHC; f5:ACD}
Tìm bao đóng của tập Z=AC?
Hướng dẫn:
- Đặt X 0=Z ,
- Xét lần lượt các phụ thuộc hàm có vế trái là tập con của X 0, nếu có bổ sung vế phải vào X0.
- Chỉ có phụ thuộc hàm f5 thỏa mãn. Nên X 1 =X 0 ∪ D= ACD
- Xét lần lượt các các phụ thuộc hàm có vế trái là tập con của X 1 (không xét phụ thuộc hàm f5).
+ Phụ thuộc hàm f2 thỏa mãn. Nên X 2 =X 1 ∪ CE=ACDE
+ Phụ thuộc hàm f3 thỏa mãn. Nên X 3 =X 2 ∪H = ACDEH
- Tương tự, xét các phụ thuộc hàm có vế trái là tập con của X 3 (không xét các phụ thuộc hàm f2, f3, f5). Ta có,
X 4= X 3= ACDEH .
4
Vậy bao đóng: Z+¿= X =ACDEH ¿
Bài 2:
Tìm khóa của lược đồ quan hệ R=<U,F>. Trong đó U=(A,B,C), F={ ABC; CA}
Hướng dẫn:
Cách 1: Sử dụng thuật toán cơ bản tìm tất cả các khóa của lược đồ quan hệ:
* Tìm tất cả các tập con (khác rỗng) của U, ta được các tập Xi: A, B, C, AB, AC, BC, ABC
* Tìm các bao đóng của các tập Xi
X 1 =A có X +¿=
1
A¿
;

X 2 =B có X +¿=B
2
¿
;

X 3 =C có X +¿=
3
AC ¿

X 4= AB có X +¿=
4
A¿
BC

X 5 =AC có X +¿=
5
A¿
C

X 6 =BC có X +¿=
6
A¿
BC

X 7 = ABC có X +¿=
7
A¿
BC.

* Tìm các siêu khóa: ta có các siêu khóa là X4, X6, X7.
* Xác định các khóa từ siêu khóa
- Xét X 4= AB , ta có A+¿= A ≠U , B
+ ¿=B ≠U .¿
¿
Vậy AB là môt khóa.

- Xét X 6 =BC , ta có B+¿= B ≠U ,C


+ ¿=AC ≠ U .¿
¿
Vậy BClà một khóa.

- Xét X 7 = ABC , ta có tập con AB, BC của ABC đều là siêu khóa nên ABC không là khóa.
Kết luận: Khóa của lược đồ quan hệ là: AB, BC.
Cách 2: Sử dụng thuật toán cải tiến tìm tất cả các khóa của lược đồ quan hệ:
* Xác định các tập: Tập nguồn TN={B}; Tập trung gian TG={AC}.
* Vì tập nguồn khác trống nên lược đồ có nhiều hon một khóa.
- Xác định các tập con của tập TG (kể cả tập rỗng): ∅ , A ,C , AC
- Xác định các siêu khóa:
+¿=B ≠U ¿
+Với X 1 =∅ , ta có: ( X 1 ∪TN ) nên B không là siêu khóa.
+¿= ABC=U ¿
+ ¿=( AB ) ¿

+ Với X 2 =A , ta có: ( X 2 ∪TN ) ( 2 )


+¿= X ∪ B ¿
nên AB là siêu khóa.
+¿=ABC =U ¿
+¿= ( CB ) ¿
+ Với X 3 =C , ta có: ( X 3 ∪ TN ) nên BC là siêu khóa.
+ ¿=ABC=U ¿
+¿= ( ABC ) ¿
+ Với X 4= AC , ta có: ( X 4 ∪TN ) nên ABC là siêu khóa.

- Xác định các khóa từ siêu khóa:


+¿=B¿
+ Với tập thuộc tính AB: có A+¿= A ;B ¿
nên AB là khóa.
+¿=AC ¿
+ Với tập thuộc tính BC: B+¿= B ; C ¿
nên BC là khóa.

+ Với tập ABC: có AB +¿= ABC=U ¿ nên ABC không là khóa (vì tồn tại tập con lại là siêu khóa!).
Kết luận: Khóa của lược đồ quan hệ là: AB, BC.
Bài 3:
Cho lược đồ quan hệ R=<U,F>. Trong đó U=(ABCDEG)
F={ f1:ABC,f2:CA, f3:BCD, f4:ACDB, f5:DEG,
f6:BEC, f7:CGBD, f8: CEAG}
Tìm phủ tối thiểu của F.
Hướng dẫn:
Bước 1: Giữ nguyên các vế trái, tách lấy vế phải các phụ thuộc hàm chỉ có một thuộc tính, ta được:
F1={ABC, CA, BCD, ACDB, DE, DG, BEC, CGB, CGD, CEA, CEG}
Bước 2: Loại bỏ các thuộc tính dư thừa ở vế trái.
Lần lượt xét các phụ thuộc hàm của F1 với vế trái nhiều hơn một thuộc tính.
- Xét ABC: ta có A+=A, B+=B nên phụ thuộc hàm này không có thuộc tính dư thừa ở vế trái.
- Xét BCD: ta có B+=B, C+=CA nên phụ thuộc hàm này không có thuộc tính dư thừa ở vế trái.
- Xét ACDB: ta có (CD)+=ABCDEG lại chứa B (vế phải). Hay thuộc tính A ở vế trái của phụ thuộc hàm này là dư thừa,
nên thay ACDB bởi CDB. ????
Kiểm tra xem liệu có bỏ C hay D được ko?
-Tương tự xét cho các phụ thuộc hàm khác của F1, chỉ còn phụ thuộc hàm CEA, có C+=A nên thuộc tính E trong phụ
thuộc hàm CEA là dư thừa. Vậy ta được:
F2={ABC, CA, BCD, CDB, DE, DG, BEC, CGB, CGD, CEG}
Bước 3: Loại bỏ các phụ thuộc hàm dư thừa.
Đặt F0=F2.
Xét lần lượt các phụ thuộc hàm xem có được suy diễn từ các phụ thuộc hàm còn lại không.
+¿= AB ¿
- Xét ABC: ta có( AB) F0−{ AB →C } (không chứa C) nên phụ thuộc hàm ABC không thể suy diễn từ các phụ thuộc hàm
còn lại, tức phụ thuộc hàm này không dư thừa.
Vậy ta có:
F1=F0={ABC, CA, BCD, CDB, DE, DG, BEC, CGB, CGD, CEG}.
+¿=C ¿
- Phụ thuộc hàm CA không dư thừa vì (C) F1−{C → A }. Do đó, F2=F1
+¿= ABC ¿
- Phụ thuộc hàm BCD không dư thừa vì (BC )F 2−{BC→ D }. Do đó, F3=F2.
+¿= ABCDEG ¿
Phụ thuộc hàm CDB, ta có(CD) F3−{CD → B } có chứa B nên phụ thuộc hàm này dư thừa. Do đó:

F4=F3-{CDB}={ABC, CA, BCD, DE, DG, BEC, CGB, CGD, CEG}.


- Tương tự như trên, xét phụ thuộc hàm DE: ta có F5=F4.
- Phụ thuộc hàm DG, ta có F6=F5.
- Phụ thuộc hàm BEC, ta có F7=F6.
- Phụ thuộc hàm CGB, ta có F8=F7.
+¿= ABCDEG ¿
- Phụ thuộc hàm CGD, ta có (CG) F8−{CG→ D } (có chứa D) nên phụ thuộc hàm này dư thừa. Nên F 9=F8-
{CGD}={ABC, CA, BCD, DE, DG, BEC, CGB, CEG}
+¿= ACE ¿
- Phụ thuộc hàm CEG, (CE)F 9−{CE →G } (không chứa G) nên phụ thuộc hàm này không dư thừa nên không bị loại. Vậy
F10=F9.
Đặt F3=F10={CGD}={ABC, CA, BCD, DE, DG, BEC, CGB, CEG} là phủ tối thiểu của F.
Bài 4.
Cho lược đồ CSDL CÔNG TY bao gồm các bảng:
NHANVIEN(HoDem, Ten, MaSoNhanVien, NgaySinh, DiaChi, GioiTinh, Luong, MaSoNGS, MaSoDonvi)
DONVI(TenDonVi, MaSoDonVi, MaSoNQL,NgayBatDau)
DONVIDIADIEM(MaSoDonVi, DiaDiemDonVi)
DUAN(TenDuAn, MaSoDuAn, DiaDiemDA, MaSoDonVi)
NHANVIENDUAN(MaSoNhanVien, MaSoDuAn , SoGio)
CON(MaSoNhanVien,TenCon,GioiTinh,NgaySinh)
Yêu cầu các truy vấn:
1) Hiển thị ngày sinh và địa chỉ của tất cả các nhân viên có tên là ‘Nguyen An’
SELECT NgaySinh, DiaChi
FROM NHANVIEN
WHERE HoDem=’Nguyen’ AND Tên=’An’;
2) Hiển thị ngày sinh và địa chỉ của tất cả các nhân viên làm việc trong đơn vị ‘Dự Án’
Cách 1:
SELECT HoDem, Ten, DiaChi
FROM NHANVIEN, DONVI
WHERE TenDonVi=’Nghiên Cứu’ AND NHANVIEN.MaSoDonVi=DONVI. MaSoDonVi;
Cách 2:
SELECT HoDem, Ten, DiaChi
FROM NHANVIEN AS NV, DONVI AS DV
WHERE TenDonVi=’Nghiên Cứu’ AND NV.MaSoDonVi=DV. MaSoDonVi;

3) Hiển thị mã số dự án, tên đơn vị, tên, địa chỉ, ngày sinh của người quản lí đơn vị, quản lí dj án của tất cả các
dự án được thực hiện tại Hà Nội
SELECT MaSoDA, TenDonVi, Ten, DiaChi, NgaySinh
FROM NHANVIEN, DONVI, DUAN
WHERE DUAN.MaSoDonVi= DONVI. MaSoDonVi AND
MaSoNQL=MaSONhanVien AND DiaDiemDA=’Hà Nội’;
4) Với mọi nhân viên, hiển thị thông tin về họ đệm, tên nhân viên và họ đệm, tên của người giám sát tương ứng.
SELECT NV.HoDem, NV.Ten, NV1.HoDem, NV1.Ten
FROM NHANVIEN AS NV, NHANVIEN AS NV1
WHERE NV. MaSoNGS=NV1. MaSoNhanVien;
5) Hiển thị tất cả các MaSoNhanVien của các nhân viên trong bảng NHANVIEN
SELECT MaSoNhanVien
FROM NHANVIEN;
6) Hiển thị tất cả các trường trong bảng NHANVIEN mà có MaSoDonVi=5
SELECT *
FROM NHANVIEN
WHERE MaSoDonVi=5;
7) Hiển thị tất cả các trường của hai bảng NHANVIEN và DONVI mà TenDonVi=’Nghiên Cứu’
SELECT *
FROM NHANVIEN AS NV, DONVI AS DV
WHERE TenDonVi=’Nghiên Cứu’ AND NV.MaSoDonVi=DV.MaSoDonVi;
8) Hiển thị:
a) Lương của tất cả các nhân viên
SELECT ALL Luong
FROM NHANVIEN;
b) Lương của tất cả các nhân viên khác nhau (nếu trùng chỉ giữ lại một giá trị lương)
SELECT DISINCT Luong
FROM NHANVIEN;
9) Hiển thị tất cả các MaSoDuAn có liên quan tói nhân viên có tên là ‘Anh’ với vai trò là nhân viên làm việc cho
dự án hoặc là người quản lí của đơn vị điều hành dự án.
SELECT DISTINCT MaSoDuAn
FROM DUAN, DON VI, NHANVIEN
WHERE DUAN.MaSoDuAn=DONVI.MaSoDuAn
AND MaSoNQL=MaSoNhaanVien AND Ten=’Anh’
UNION
(SELECT DISTINCT MaSoDuAn
FROM DUAN, NHANVIENDUAN, NHANVIEN
WHERE DUAN.MaSoDuAn=NHANVIENDUAN.MaSoDuAn
AND NHANVIENDUAN.MaSoNhanVien=NHANVIEN.MaSoNhanVien
AND Ten=’Anh’);
Lưu ý: Mệnh đề SELECT đầu lấy tất cả các mã dự án liên quan người có tên là ‘Anh’ đóng vai trò là người quản
lí đơn vị điều hành.
Mệnh đề SELECT thứ hai lấy tất cả các mã số dự án được thực hiện bởi nhân viên có tên là ‘Nam’
UNION là phép toán hợp
10) Hiển thị các nhân viên có địa chỉ Hà Nội
SELECT HoDem, Ten
FROM NHANVIEN
WHERE DiaChi LIKE ‘%Hà Nội%’;
Lưu ý: kí tự phần trăm (%) thay cho chuỗi kí tự bất kì, kí tự gạch dưới (_) thay thế cho một kí tự bất kì.
11) Hiển thị những nhân viên sinh trong những năm 90
SELECT HoDem, Ten
FROM NHANVIEN
WHERE NgaySinh LIKE ‘_ _ _ _ _ _ 9_;
12) Hiển thị họ, tên, lương các nhân viên sau khi tăng 10% nếu như họ làm việc cho dự án có tên dự án là
‘DA12’
SELECT HoDem, Ten, 1.1*Luong
FROM NHANVIEN, NHANVIENDUAN, DUAN
WHERE NHANVIEN.MaSoNhanVien=NHANVIENDUAN.MaSoNhanVien
AND DUAN.MaSoDuAn=NHANVIENDUAN.MaSoDuAn
AND TenDuAn=’DA12’;
13) Hiển thị các nhân viên trong đơn vị có mã đơn vị là 16 và có mức lương trong khoảng 6000 đến 9000
SELECT *
FROM NHANVIEN
WHERE (Luong BETWEEN 6000 AND 9000) AND MaSoDonVi=16;
14) Hiển thị danh sách các nhân viên và các dự án mà họ tham gia. Đồng thười sắp xếp tăng dần theo tên đơn vị
và trong mỗi đơn vị sắp xếp tăng dần theo tên nhân viên.
SELECT TenDonVi, HoDem, Ten, TenDuAn
FROM DONVI, NHANVIEN, NHANVIENDUAN, DUAN
WHERE DONVI.MaSoDonVi=NHANVIEN.MaSoDonVi
AND NHANVIEN.MaSoNhanVien=NHANVIENDUAN.MaSoNhanVien
AND DUAN.MaSoDuAn=NHANVIENDUAN.MaSoDuAn
ORDER BY tenDonVi, Ten;
15) Hiển thị họ, tên nhân viên có lương lớn hơn lương của các nhân viên trong đơn vị mà có mã đơn vị là 6.
SELECT HoDem, Ten,
FROM NHANVIEN
WHERE Luong >ALL (SELECT Luong
FROM NHANVIEN
WHERE MaSoDonVi=6);
16) Hiển thị tên các nhân viên không có con
SELECT HoDem, Ten
FROM NHANVIEN
WHERE NOT EXISTS (SELECT *
FROM CON
WHERE NHANVIEN.MaSoNhanVien=MaSoNhanVien);
17) Hiển thị tên của các người quản lí có ít nhất một người con

SELECT HoDem, Ten


FROM NHANVIEN AS NV
WHERE EXISTS (SELECT *
FROM CON
WHERE NV.MaSoNhanVien=MaSoNhanVien)
AND EXISTS (SELECT *
FROM DONVI
WHERE NV.MaSoNhanVien=MaSoNQL);
18) Hiển thị mã số nhân viên của các nhân viên làm việc cho các dj án 1, 2, 3.

SELECT DISTINCT MaSoNhanVien


FROM NHANVIENDUAN
WHERE MaSoDonVi IN (1,2,3);
18) Hiển thị họ, tên nhân viên của các nhân viên không có người giám sát.

SELECT HoDem, ten


FROM NHANVIEN
WHERE MaSoNGS IS NULL;
19) Tính tổng lương, lương cao nhất, thấp nhất và giá trị trung lương cảu các nhân viên trong công ty.

SELECT SUM(Luong), MAX(Luong), MIN(Luong), AVG(Luong)


FROM NHANVIEN;
20) Tính tổng lương, lương cao nhất, thấp nhất và giá trị trung lương cảu các nhân viên trong đơn vị ‘Nghiên
cứu’

SELECT SUM(Luong), MAX(Luong), MIN(Luong), AVG(Luong)


FROM NHANVIEN AS NV, DONVI AS DV
WHERE NV.MaSODonVi=DV.MaSoDonVi AND TenDonVi=’Nghiên Cứu’

21) Hiển thị số lượng nhân viên làm việc trong công ty

SELECT COUNT(*)
FROM NHANVIEN;
22) Hiển thị số lượng nhân viên của đơn vị ‘Nghiên Cứu’
SELECT COUNT(*)
FROM NHANVIEN AS NV, DONVI AS DV
WHERE NV.MaSODonVi=DV.MaSoDonVi AND TenDonVi=’Nghiên Cứu’

23) Đếm mức lương khác nhau của công ty

SELECT COUNT(DISTINT Luong)


FROM NHANVIEN;
24) Hiển thị mã số đơn vị, số lượng nhân viên ở trong từng đơn vị và lương trung bình của đơn vị
SELECT MaSoDonVi, COUNT(*), AVG(Luong)
FROM NHANVIEN
GROUP BY MaSoDonVi;
25) Mỗi đơn vị có từ hai người làm việc trở lên, hãy hiển thị số hiệu, tên dự án và số người làm việc cho dự án
đó
SELECT MaSoDuAn, TenDuAn, COUNT(*)
FROM DUAN AS DA, NHANVIENDUAN AS NVDA
WHERE DA.MaSoDuAn=NVDA. MaSoDuAn
GROUP BY MaSoDuAn, TenDuAn
HAVING COUNT(*)>2;

Bài 5. Cho lược đồ CSDL quản lý điểm của sinh viên bao gồm 3 bảng: SINHVIEN, LOPHOCPHAN,
KETQUATHI sau:
SINHVIEN(MaSV, TenSV, MalopHP, MaLopHC, LopHC, KhoaDaoTao)
LOPHP(MaLopHP, TenHP, SoTC,CauTrucHocPhan)
KETQUATHI(MaSV, MaLopHP, DiemThi,DiemBangChu)
Hãy dùng ngôn ngữ SQL để thực hiện những yêu cầu sau:
a) Đưa ra danh sách tên sinh viên thuộc khoa đào tạo là ‘Kinh Tế’
SELECT TenSV
FROM SINHVIEN
WHERE KhoaDaoTao=’Kinh Tế’;
b) Thống kê điểm thi trung bình của lớp có mã lớp học phần là ‘1911AT222’
SELECT AVG(DiemThi) AS DTTB
FROM KETQUATHI
WHERE MaLopHocPhan=’1911AT222’;
c) Đưa ra thông tin những sinh viên thuộc lớp học phần ‘1911AT222’ và có điểm thi>=8.5
SELECT TenSV
FROM SINH VIEN AS SV, KETQUATHI AS KQT
WHERE (SV.MaSV=KQT.MaSV) AND (MaLopHocPhan=’1911AT222’)
AND (DiemThi>=8.5);
d) Đưa ra thông tin những sinh viên thuộc lớp học phần ‘1911AT222’ và có điểm thi>=7.0 và điểm thi <9.5
SELECT TenSV
FROM SINH VIEN AS SV, KETQUATHI AS KQT
WHERE (SV.MaSV=KQT.MaSV) AND (MaLopHocPhan=’1911AT222’)
AND (DiemThi BETWEEN 7.0 AND 9.5);
e) Đưa ra thông tin các sinh viên thuộc khoa ‘TMQT’ và có mã sinh viên tận cùng là ‘8’
SELECT TenSV
FROM SINHVIEN
WHERE KhoaDaoTao=’TMQT’ AND MaSV LIKE ‘%8’;
f) Đưa ra thông tin các sinh viên thuộc khoa ‘TMQT’ và có mã sinh viên có hai kí tự l nhau ‘89’
SELECT TenSV
FROM SINHVIEN
WHERE KhoaDaoTao=’TMQT’ AND MaSV LIKE ‘%89%’;
Bài 6. Hãy dùng ngôn ngữ đại số quan hệ để thực hiện những yêu cầu sau:
a) Đưa ra danh sách mã, tên sinh viên thuộc LopHC = ‘K52S1’
Dùng phép chọn, sau đó dùng phép chiếu:
Π MASV ,TENSV (σ MALOPHP ¿ K 52 S 1 ( SINHVIEN ) )
' '

b) Đưa ra danh sách tên các học phần có SoTC = 3


Π TENHP ,SOTC ¿
c) Đưa ra một danh sách bao gồm: MaSV, TenSV, MaLopHP,TenHP, SoTC, DiemThi
- Trước hết ta phải kết nối 3 bảng để được bảng trung giang (TG)
TG  SINHVIEN LOPHP KETQUATHI

DK1 DK2

Trong đó: điều kiện DK1 là SINHVIEN.MaLopHP=LOPHP. MaLopHP


điều kiện DK2 là SINHVIEN.MaSV=KETQUATHI. MaSV
- Tiếp theo dùng phép chiếu quan hệ TG trên các thuộc tính:
Π MaSV ,TenSV , MaLopHP ,TenHP , SoTC , DiemThi (TG )
e) Thống kê số sinh viên, trung bình cộng cột điểm thi theo từng MaLopHP
MaLopHP I COUNT ( MaLopHP ) , AVG (DiemThi )(TG )
HL06, đổi P và Q
Bài 1.1. Cho lược đồ quan hệ R=<U,F>. U là tập các thuộc tính, F tập các phụ thuộc hàm. U={KMNOPT}
F ={N  T, P  MN, O T, K  OT, P  T}
a) Tìm bao đóng của KT, OM
b) Tìm một khóa của lược đồ quna hệ
c) Tìm phủ tối thiểu của F.
Bài 1.2. Cho lược đồ CSFL quản lí điểm của sinh viên có 3 bảng: SINHVIEN, DANGKI, LOPTINCHI, có cấu
trúc như sau:
SINHVIEN(MaSinhVien, TenSinhVien,KhoaQuanli,HocBong)
DANGKI(MaSinhVien, MaLop, ThoiGian)
LOPTINCHI(MaLop, TenHocPhan, SoTinChi)
a) Dùng ngôn ngữ SQL (ngôn ngữ đại số quan hệ) để thực hiện các yêu cầu:
- Đưa ra danh sách các học phần có số tín chỉ=2 và ở khoa FP
- Đưa ra thông tin các sinh viên đăng kí ít nhất 3 học phần
b) Dùng ngôn ngữ đại số quan hệ (ngôn ngữ SQL) để thực hiện các yêu cầu:
- Đưa ra các thông tin sinh viên thuộc khoa AK và có học bổng
- Đưa ra danh sách bao gồm: MaSinhvien, TenSinhVien, MaLop, TenHocPhan,, SoTinChi
- Thống kê số sinh viên theo mỗi khoa và có tổng học bổng là bao nhiêu

Bài 2. HL07, đổi C và D

Bài 2.1. Cho lược đồ quan hệ R=<U,F>. U là tập các thuộc tính, F tập các phụ thuộc hàm. U={CDEGINPQS}
F ={IN  D, ID  C, C EG, Q  P, EG  S}
a) Tìm bao đóng của IP, IQ
b) Tìm một khóa của lược đồ quan hệ
c) Tìm phủ tối thiểu của F.
Bài 2.2. Cho lược đồ CSDL quản lí điểm nhà đất có 3 bảng: KHACHHANG, NHADAT, SOHUU có cấu trúc
như sau:

KHACHHANG(MaKhachHang,TenKhachHang, DiaChi)
NHADAT(MaNhaDat, LoaiNhaDat,DienTich, GiaNhaDat, ThanhTien)
SOHUU(MaKhachHang,MaNhaDat, QuyenHanSuDung)
a) Dùng ngôn ngữ SQL (ngôn ngữ đại số quan hệ) để thực hiện các yêu cầu:
- Đưa ra thông tin khách hàng có DiaChi tại TPHCM và có mã khách hàng tận cùng là 99.
- Đưa ra thông tin về các căn hộ có LoaiNhaDat là Chung cư và có diện tích >100 (mét vuông).
b) Dùng ngôn ngữ đại số quan hệ (ngôn ngữ SQL) để thực hiện các yêu cầu:
- Đưa ra thông tin về các căn hộ có LoaiNhaDat là Thổ Cư và có diện tích từ 100 đến 200 (mét vuông) và có
GaNhaDat trên 10 (tỉ VNĐ).
- Đưa ra danh sách bao gồm: MaKhachHang, MaNhaDat, DienTich, GiaNhaDat, ThanhTien.
- Thống kê số lượng các căn hộ và tổng ThanhTien theo MaNhaDat.
1) Một tập hợp có n phần tử có tất cả bao nhiêu tập con. Cho ví dụ minh họa.
2) Để mã hóa 1 bảng chữ cái có 29 phần tử bởi mã nhị phân có độ dài như nhau thì độ dài tối thiểu của mã nhị
phân là bao nhiêu? Cho ví dụ minh họa.
3) Cho bảng dữ liệu:

Giỏ hàng Mặt hàng


1 Kẹo, sữa, Bim bim
2 Kẹo, bánh qui
3 Kẹo, sữa, bánh mì
4 Kẹo, bánh mì, bim bim
5 Bánh, bánh mì
6 Kẹo, Bánh mì, Sữa
7 Bánh qui
8 Bim bim, sữa chua
Xây dựng các bước (thuật toán) để xem các mặt hàng, nhóm mặt hàng nào xuất hiện nhiều hơn 3 lần???

Ko định vị: giá trị ko phụ thuộc vị trí kí hiệu


La Mã:
I1
III  3  cách tính giá trị

Định vị: giá trị phụ thuộc vị trí kí hiệu


Cơ số 10 (thập phân):
0, 1, 2, …, 9
Ví dụ: 1  đơn vị
11  1+1=2 (ko phải)
111
11  hệ 2, hệ 8, hệ 16
ÁNH XẠ  SONG ÁNH  duy nhất ánh xạ ngược
Mã hóa:
f(x)=x
mỗi x có 1 giá trị f(x)=x
f(x)=x^2  2 ánh xạ ngược
00000000  byte
Các phép toán số học cơ bản: +, -, *, /

Các phép toán logic cơ bản: NOT, AND, OR,


1  1 đơn vị
11  mười một đơn vị
1 hệ đếm khác nhau  giá trị khác nhau.

1 petabyte có tất cả 2 lũy thừa 53 chữ số 0 và 1.

You might also like