Tải bản đầy đủ (.pdf) (24 trang)

Quản lý Công Trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (697.29 KB, 24 trang )

Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 1

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU ------------------------------------------------------------- 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT -------------------------------------------------- 4
1. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ ------------------------------------- 4
2. NGÔN NGỮ SQL --------------------------------------------------------------- 7
2.1 Cú pháp ---------------------------------------------------------------------- 7
2.2 Các phép toán --------------------------------------------------------------- 7
CHƯƠNG 3: BÀI TẬP ĐSQH VÀ SQL ------------------------------------------- 14
1. LƯỢC ĐỒ CSDL QUAN HỆ ----------------------------------------------- 14
1.1 Lược đồ và Tân từ ------------------------------------------------------- 14
1.2 Các ràng buộc toàn vẹn ------------------------------------------------- 14
1.3 Scrip CSDL --------------------------------------------------------------- 15
2. BÀI TẬP ĐSQH --------------------------------------------------------------- 16
2.1 Câu 1: ---------------------------------------------------------------------- 16
2.2 Câu 2: ---------------------------------------------------------------------- 16
2.3 Câu 3: ---------------------------------------------------------------------- 16
2.4 Câu 4: ---------------------------------------------------------------------- 16
2.5 Câu 5: ---------------------------------------------------------------------- 16
2.6 Câu 6: --------------------------------------------------------------------- 117
2.7 Câu 7: --------------------------------------------------------------------- 117
2.8 Câu 8: --------------------------------------------------------------------- 117
2.9 Câu 9: --------------------------------------------------------------------- 117
2.10 Câu 10: ------------------------------------------------------------------- 117
2.11 Câu 11: ------------------------------------------------------------------- 117
2.12 Câu 12: ------------------------------------------------------------------- 117
2.13 Câu 13: ------------------------------------------------------------------- 117


2.14 Câu 14: ------------------------------------------------------------------- 117
2.15 Câu 15: -------------------------------------------------------------------- 18
2.16 Câu 16: -------------------------------------------------------------------- 18
3. BÀI TẬP SQL ---------------------------------------------------------------- 118
3.1 Câu 1: --------------------------------------------------------------------- 118
3.2 Câu 2: --------------------------------------------------------------------- 118
3.3 Câu 3: --------------------------------------------------------------------- 118
3.4 Câu 4: ---------------------------------------------------------------------- 18
3.5 Câu 5: ---------------------------------------------------------------------- 19
3.6 Câu 6: ---------------------------------------------------------------------- 19
3.7 Câu 7: ---------------------------------------------------------------------- 19
3.8 Câu 8: ---------------------------------------------------------------------- 19
3.9 Câu 9: ---------------------------------------------------------------------- 20
3.10 Câu 10: -------------------------------------------------------------------- 20
3.11 Câu 11: -------------------------------------------------------------------- 20
3.12 Câu 12: -------------------------------------------------------------------- 20
3.13 Câu 13: -------------------------------------------------------------------- 21
3.14 Câu 14: -------------------------------------------------------------------- 21
3.15 Câu 15: -------------------------------------------------------------------- 21
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 2

3.16 Câu 16: -------------------------------------------------------------------- 21
3.17 Câu 17: -------------------------------------------------------------------- 22
3.18 Câu 18: -------------------------------------------------------------------- 22
3.19 Câu 19: -------------------------------------------------------------------- 22
3.20 Câu 20: -------------------------------------------------------------------- 22
3.21 Câu 21: -------------------------------------------------------------------- 22
3.22 Câu 22: -------------------------------------------------------------------- 22

3.23 Câu 23: -------------------------------------------------------------------- 23
3.24 Câu 24: -------------------------------------------------------------------- 23
3.25 Câu 25: -------------------------------------------------------------------- 23
3.26 Câu 26: -------------------------------------------------------------------- 23
CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ NGHỊ ------------------------------------------ 24
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 3

CHƯƠNG 1: GIỚI THIỆU
Cơ sở dữ liệu là một tập hợp các dữ liệu về các đối tượng cần quản lý, được
thiết kế để đáp ứng nhu cầu thông tin của một tổ chức, được lưu trữ trên các thiết bị
lưu trữ của máy tính và được quản lý theo một cơ chế thống nhất của hệ quản trị cơ
sở dữ liệu nhằm thực hiện ba chức năng: mô tả dữ liệu, cập nhật dữ liệu, tìm kiếm
dữ liệu. Cơ sở dữ liệu được ứng dụng rộng rãi trong cuộc sống như ngân hàng, hàng
không, đại học, các phương tiện giao thông, bán hàng, …
Hệ quản trị cơ sở dữ liệu là một hệ thống phần mềm (các chương trình) cho
phép người dùng định nghĩa, tạo và duy trì cơ sở dữ liệu đồng thời cung cấp dịch vụ
truy cấp đến cơ sở dữ liệu này một cách có quản lý.Một số hệ quản trị cơ sở dữ liệu
thông dụng: Microsofts Access, Visual Foxpro, Microsoft SQL Server, MySQL,
Oracle, …
Hệ cơ sở dữ liệu là môn học giúp cho sinh viên có kiến thức về ngôn ngữ SQL và
thực hiện truy vấn thành thạo các câu lệnh trên CSDL. Bài tập Hệ CSDL giúp chúng
ta tạo, xóa cơ sở dữ liệu tạo các ràng buộc toàn vẹn các khóa chính và sao lưu , phục
hồi cơ sở dữ liệu. Môn học này cũng giúp các sinh viên thành thạo các thao tác như:
tạo CSDL, tạo bảng, tạo các ràng buộc cho bảng, các câu lệnh, các phép toán SQL
giúp các sinh viên có cơ hội thực hành và hoàn thiện hơn về kiến thức quản lý cơ sở
dữ liệu trong môn hệ cơ sở dữ liệu.
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu


Đại học Tin Học 5 Trang 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
1.1 Định nghĩa Đại số quan hệ
- Đại số quan hệ là một bộ α = <M, P> trong đó:
M là tập các quan hệ cho trước.
P là tập các phép toán cơ bản sau đây:
1. Phép chọn (Selection) ( )
2. Phép chiếu (Projection) [ ]
3. Phép hợp (Union)

hay +
4. Phép giao (Intersection)

hay
5. Phép trừ (Subtraction) – hay \
6. Phép chia (Division) ÷ hay /
7. Phép kết nối tự nhiên (Natural Join) *
8. Phép tích Đề-các (Dacastersian) x
9. Phép θ kết nối (delta-join)
- Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :
SV (MASV, HOTEN_SV, NAMS_SV, DCHI_SV, TENLOP)
MON (MAMH, TENMON, SO_TC, LOAI_MON)
GV (MAGV, HOTEN_GV, NAMS_GV, HOCVI)
HOC (MASV, MAMH, STT_HK, NKHOA, LANTHI, K_QUA)
DAY (MA_GV, MAMH, STT_HK, NKHOA)
1.1.1 Phép chọn (Selection) kí hiệu ( )
- Mục đích của phép chọn là xây dựng một tập con gồm các bộ của quan hệ đã cho,
thỏa biểu thức logic cho trước. Biểu thức logic phát triển trên


gồm có:
 Các thuộc tính hoặc các hằng.
 Các phép toán so sánh số học: <, ≤, >, =, ≠
 Các phép toán logic:

,
,

 Các dấu ngoặc (và).
Định nghĩa:
Cho t là một bộ trong quan hệ R, và E là một biểu thức logic phát biểu trên
tập các thuộc tính của quan hệ R. Ta nói bộ t thỏa mãn biểu thức E, kí hiệu t(E), nếu
sau khi thay đổi mọi thuộc tính A trong E bằng giá trị t.A ta được một công thức
logic mệnh đề đúng.
Định nghĩa:
Cho quan hệ R(

) và biểu thức chọn E trên

. Phép chọn quan hệ R theo
điều kiện E cho ta quan hệ P với tập thuộc tính

và các bộ của R thỏa E.
P = R(E) = {t

R | t(E)}
- Ví dụ: Tìm các sinh viên lớp “TH5”
SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP

101 Tran Van An 1990 Can Tho TH5
102 Le Thanh Ha 1991 Vinh Long XD5
103 Phan Thi Mo 1992 Can Tho DL5
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 5

R: Danh sách lớp:

S: Danh sách môn học:

( ' 5')
()
TENLOP TH
SV



1.1.2 Phép chiếu (Projection) kí hiệu [ ]
Định nghĩa:
Cho quan hệ R(

) và tập thuộc tính X



. Phép chiếu quan hệ R trên X
cho ta quan hệ P có tập thuộc tính là X và các bộ và các bộ là hạn chế trên X của
các bộ trong R.
P = R[X] = {t.X | t


R }
Ví dụ: Tìm mã số, họ tên sinh viên có địa chỉ ‘Can Tho’.

SV
MASV HOTEN_SV NAMS_SV DCHI_SV TENLOP
101 Tran Van An 1990 Can Tho TH5
102 Le Thanh Ha 1991 Vinh Long XD5
103 Phan Thi Mo 1992 Can Tho DL5
, _ ( _ ' ')
()
MASV HOTEN SV DCHI SV Can Tho
SV



1.1.3 Tích Đề-các: kí hiệu x
Định nghĩa:
Cho hai quan hệ R(U) và S(V), trong đó U

V = Ø. Tích Đề-các của R và S
một quan hệ P, với tập thuộc tính là U

V được định nghĩa như sau:
P = R x S = { <u, v> | u

R(U)

v


S(V)}
- Nếu
UV
Ø thì phải đổi tên các thuộc tính trùng nhau.
Ví dụ: Cho hai quan hệ R(U) và S(V):













1.1.4 Phép θ - kết nối: kí hiệu 
Định nghĩa:
Cho hai quan hệ R(U) và S(V). Gọi θ là một phép toán logic liên quan tới các
thuộc tính của U và V (thường thuộc trong các phép so sánh <, ≤, >, =, ≠). Phép
θ kết nối giữa quan hệ R với quan hệ S, là một quan hệ P với tập thuộc tính U


V, được định nghĩa như sau:
P = R  S = { <u, v> | u

R


v

S

u [U] θ v [V] }
Chú ý:
MAMH
TH333
TH555
MASV
101
102
MASV MAMH
101 TH333
101 TH555
102 TH333
102 TH555
R x S: Danh sách sinh viên để theo dõi:

Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 6

GV.NAMS_GV < SV.MANS_SV
Phép kết nối này chỉ thực hiện được khi θ thực hiện được giữa các thuộc tính của
U và V. Nếu không dựa trên θ và U

V = Ø, thì R  S trở thành tích Đề-các
của R và S. Nếu θ là phép so sánh “=”, thì gọi là kết nối bằng. Nếu kết nối bằng
được thực hiện tại tất cả các thuộc tính cùng tên của hai quan hệ R và S thì đây

là phép kết nối tự nhiên.
Ví dụ: Tìm thông tin giáo viên nhỏ tuổi hơn một sinh viên nào đó.
MAGV HOTEN_GV NAMS_GV
CTU123 Trần Thành Nhân 1985
CTU345 Lê Văn Lịnh 1988
CTU554 Huỳnh Thị Thùy Linh 1989





GV SV



1.1.5 Phép kết nối tự nhiên(Natural Join): kí hiệu *
Định nghĩa:
Cho hai quan hệ R(U) và S(*V), đặt X=U

V. Kết nối tự nhiên giữa R và S là
quan hệ P với tập thuộc tính U

V, được định nghĩa như sau:
P = R *S ={<u,v\X> | u

R v

S

u.X = v.X}

Ví dụ: Tìm tên các môn học có học trong học kỳ 1 năm học 2012 – 2013.

_ 1 '2012 2013'
: ( )
MAMH STT HK NKHOA
A HOC

   

,
: ( )
MAMH TENMON
B MON


P = A*B
1.1.6 Phép chia ( Division): kí hiệu /
Định nghĩa:
Cho hai quan hệ R(U) và S(V) với U

V, và S


.Đặt X= U – V. Thương của
phép chia quan hệ R cho quan hệ S là quan hệ P với tập thuộc tính X, được định
nghĩa như sau:
P = R / S = R÷ S = {u.X |u

R


(

v

S), (<u.X,v >

R)}
Ví dụ: Tìm mã số của các giáo viên có dạy ở tất cả các môn.

,
( )/ ( )
MAGV MAMH MAMH
DAY MAMH


1.1.7 Phép hợp (Union): kí hiệu


Định nghĩa:
Hợp của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ thuộc một trong hai quan hệ cho trước.
P = R

S = R + S = {t|t

R

t

S}

MASV HOTEN_SV NAMS_SV
101 Trần Thu Thảo 1988
102 Nguyễn Thị Thu 1990
103 Phan Pham Chuc 1988
MAGV HOTEN_GV NAMS_GV MASV HOTEN_SV NAMS_SV
CTU554 Huỳnh Thị Thùy Linh 1989 101 Trần Thu Thảo 1988
CTU554 Huỳnh Thị Thùy Linh 1989 103 Phan Pham Chuc 1988
GV
SV
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 7

Ví dụ: Liệt kê danh sách mã sinh viên và mã môn học.
( ) ( )
MASV MAMH
SV MON



1.1.8 Phép giao (Intersection): kí hiệu


Định nghĩa:
Giao của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ đồng thời có mặt trong hai quan hệ cho trước
P = P

S = P . S = { t | t


R

t

S}
Ví dụ: Tìm mã số của sinh viên vừa có học lớp TH5 vừa có học lớp DL5.

' 5' ' 5'
( ) ( )
MASV TENLOP TH MASV TENLOP DL
SV SV
   



1.1.9 Phép trừ (Subtraction): kí hiệu \
Định nghĩa:
Hiệu của hai quan hệ tương thích R(U) và S(V) là quan hệ P với tập thuộc tính U
và các bộ đồng thời có trong R nhưng không có trong S.
P = P \ S = P - S = { t | t

R

t

S}
Ví dụ: Tìm mã môn học có học ở học kỳ 1 năm học 2011 – 2012 nhưng không có
học ở học kỳ 1 năm học 2012 – 2013.
_ 1 2011 2012
()

MAMH STT HK NKHOA
HOC

   


_ 1 2012 2013
()
MAMH STT HK NKHOA
HOC

   

2. NGÔN NGỮ SQL
2.1 Cú pháp
Cú pháp của lệnh SQL được giới thiệu theo dạng mở rộng của ký hiệu BNF:
- Chữ hoa đại diện cho từ khóa.
- Chữ thường đại diện cho các từ của người dùng định nghĩa.
- Dấu | chỉ sự lựa chọn.
- Dấu { chỉ phần tử bắt buộc phải có.
- Dấu [ chỉ phần tử tùy chọn (không bắt buộc).
- Dấu … chỉ thành phần có thể lặp lại từ 0 đến nhiều lần.
2.2 Các phép toán
Ví dụ : Cho lược đồ cơ sở dữ liệu như sau :
KTRUCSU(MA_KTS, HOTEN_KTS, NAMS_KTS, PHAI, NOI_TN,
DCHI_LL_KTS)
CHUTHAU(ID_THAU, TEN_THAU, TEL, DCHI_THAU)
CHUNHAN(ID_CHU, TEN_CHU, DCHI_CHU)
CONGNHAN(MA_CN, HOTEN_CN, NAMS_CN, NAM_VAO_N, CH_MON)
CGTRINH(STT_CTR, TEN_CTR, DCHI_CTR, TINH_THANH, KINH_PHI,

ID_CHU, ID_THAU, NGAY_BD)
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 8

THAMGIA(MA_CN, STT_CTR, NGAY_TGIA, SO_NGAY)
THIETKE(MA_KTS, STT_CTR, THU_LAO)
2.2.1 Truy vấn đơn giản:
- Truy vấn dữ liệu từ một bảng, có thể định thứ tự xuất hiện các cột:
SELECT [DISTINC | ALL]
{* | <tên cột 1> [,<tên cột 2>[, …] ] }
FROM <tên bảng>
Ví dụ: Tìm họ tên công nhân trong bảng công nhân:
SELECT HOTEN_CN
FROM CONGNHAN
2.2.2 Sắp xếp kết quả:
- Sắp xếp kết quả theo một hay nhiều cột:
+) Sử dụng mệnh đề ORDER BY ở cuối lệnh SELECT
ORDER BY <tên cột | STT cột> [ASC | DESC]
[,<tên cột | STT cột> [ASC | DESC], …]
Ví dụ: Sắp xếp kết quả theo cột kinh phí công trình:
SELECT KINH_PHI
FROM CGTRINH
ORDER BY KINH_PHI
2.2.3 Chọn các dòng trong bảng:
- Sử dụng mệnh đề WHERE sau mệnh đề FROM để chọn các dòng thỏa điều kiện:
WHERE <điều kiện chọn 1> [AND | OR <điều kiện chọn 2> […] ]
+) Dạng 1: So sánh giá trị thuộc tính với một giá trị cụ thể:
<Cột 1> so sánh <giá trị>
Ví dụ: Hiện thị mã và năm sinh của kiến trúc sư Lê Thanh Tùng:

SELECT MA_KTS, NAMS_KTS
FROM KTRUCSU
WHERE HOTEN_KTS = ‘LE THANH TUNG’
+) Dạng 2: so sánh giá trị của các thuộc tính với nhau <cột 1> so sánh <cột 2>
+) Dạng 3: so sánh giá trị thuộc tính với hằng có kiểu tương thích <cột> so sánh
<hằng>
+) Dạng 4: so sánh cột với 1 tập gồm nhiều giá trị <cột> [NOT] IN (<DS các giá
trị>)
+) Dạng 5: tìm kiếm theo phạm vi <cột> [NOT] BETWEEN <giá trị đầu> AND
<GT cuối>
Nhóm 12 Bài tập lớn môn Hệ Cơ Sở Dữ Liệu

Đại học Tin Học 5 Trang 9

+) Dạng 6: tìm kiếm theo mẫu dạng chuỗi <cột> [NOT] LIKE <chuỗi>
+) Dạng 7: tìm kiếm theo trị thống NULL <cột> IS [NOT] NULL
2.2.4 Kết nối ngoại (outer join)
- Cho phép giữ lại những dòng không thỏa điều kiện kết nối.
- Có 3 loại kết nối:
FROM <bảng 1> LEFT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> RIGHT JOIN <bảng 2> ON <điều kiện kết nối>
FROM <bảng 1> FULL JOIN <bảng 2> ON <điều kiện kết nối>
Ví dụ: Hãy liệt kê tên thầu, tên công trình, tỉnh thành kể cả những tên thầu có
tỉnh thành trùng với nhau:
SELECT TEN_THAU, TEN_CTR, TINH_THANH
FROM CHUTHAU A LEFT JOIN CGTRINH B
ON A.ID_THAU = B.ID_THAU
2.2.5 Các phép toán tập hợp
Phép hợp (UNION), giao (INTERSECT), trừ (DIFFERENCE hay EXPERT)
Định dạng chung của phép toán tập hợp:

<toán tử> [ALL] [CORRESPONDING [BY {cột 1 […] } ] ]
2.2.6 ĐỊNH NGHĨA BẢNG
2.2.6.1 Tạo bảng
Bước đầu tiên để tạo một CSDL là tạo bảng. Lệnh CREATE TABLE
dùng tạo bảng với cú pháp như sao:
CREATE TABLE<tên bảng>
(<tên cột 1><loại dữ liệu>[NOT NULL],
(<tên cột 2><loại dữ liệu>[NOT NULL],
...
(<tên cột n><loại dữ liệu>[NOT NULL])
Từ khóa NOT NULL co nghĩa là bắt buộc phải có giá trị trong cột này.
Ví dụ: Tạo bảng có tên là chủ nhân:
CREATE TABLE CHUNHAN(
ID_CHU INT NOT NULL,
TEN_CHU CHAR(20),
DCHI_CHU CHAR(30))
2.2.6.2 Thêm dòng vào bảng
Bảng nhân viên đã được tạo nhưng chưa có dữ liệu,chúng ta có thể thêm dữ
liệu vào bảng bắng lệnh INSERT, có cú pháp như sau:
INSERT INTO<tên bảng>
(<tên cột 1>,<tên cột 2>,...)
VALUES(<giá trị 1>,<giá trị 2,...>)

Ví dụ: Thêm một dòng dữ liệu mới vào bảng kiến trúc sư:

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×