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

cơ sở dữ liệu và cấu trúc dữ liệu

18 84 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 302,3 KB

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

Nội dung

Cho lượcđồ CSDL “Quảnlýcửahàngbánhngọt” nhưsau: - LOAI_BANH MA_LOAI, TEN_LOAI, MO_TA - BANH MA_BANH, TEN _BANH, DON_GIA, DON_VI_TINH, TRANG_THAI, MA_LOAI - KHACH_HANG MA_KHACH_HANG, TEN

Trang 1

1.1.CƠ SỞ DỮ LIỆU.

A. Cho lượcđồ CSDL “Quảnlýcửahàngbánhngọt” nhưsau:

- LOAI_BANH (MA_LOAI, TEN_LOAI, MO_TA)

- BANH (MA_BANH, TEN _BANH, DON_GIA,

DON_VI_TINH, TRANG_THAI, MA_LOAI)

- KHACH_HANG (MA_KHACH_HANG, TEN_KHACH_HANG,

DIEN_THOAI, EMAIL)

- HOA_DON (MA_HOA_DON, MA_KHACH_HANG,

NGAY_MUA)

- CHI_TIET_HOA_DON (MA_HOA_DON, MA_BANH, SO_LUONG)

Ghi chú: Trong bảng BANH: TRANG_THAI=1: còn hàng, TRANG_THAI=0: hết hàng.

1. Xác định KHÓA CHÍNH của các quan hệ:

 LOAI_BANH: MA_LOAI

 BANH: MA_BANH

 KHACH_HANG: MA_KHACH_HANG

 CHI_TIET_HOA_DON: MA_HOA_DON, MA_BANH

2. Xác định KHÓA NGOẠI trong lược đồ CSDL:

- LOAI_BANH: khôngcó

- BANH: MA_LOAI

- KHACH_HANG: khôngcó

- CHI_TIET_HOA_DON: MA_HOA_DON, MA_BANH

3. Sử dụng ngôn ngữ SQL thực hiện các yêu cầu sau:

a. Liệt kê tất cả các bánh gồm mã bánh, tên bánh, đơn giá của những bánh có đơn

vị tính là “kg” và thuộc loại bánh “Quy Bơ”

SELECT MA_BANH, TEN_BANH, DON_GIA

FROM BANH iner join LOAI_BANH on BANH.MA_LOAI =

LOAI_BANH.MA_LOAI

WHERE BANH.DON_VI_TINH = "kg" AND LOAI_BANH = " QuyBơ " VD: có sắp xếp thì thêm [ ORDER BY BANH.DON_GIA DESC ]

b. Liệtkêdanhsáchcácbánhhiệnđangcònhàngvàcóđơnvịtính “kg” hoặc “gói”

SELECT *

FROM BANH

WHERE TRANG_THAI = 1 AND ( DON _VI_TINH = "kg" OR

DON_VI_TINH = "goi"

c. Cho biếtthông tin kháchhàngmuagầnđâynhất (tên KH, ngàymua)

( SECLECT MAX ( NGAY_MUA) " Ngay Gan Nhat "

Trang 2

FROM HOA_DON

SELECT TEN_KHAC_HANG, NGAY_MUA

FROM KHACH_HANG iner join HOA_DON on

KHACH_HANG.MA_KHACH_HANG =

HOA_DON.MA_KHACH_HANG

WHERE HOA_DON.NGAY_MUA = ( SELECT MAX ( NGAY_MUA) FROM HOA_DON )

d. Liệtkêcáchóađơncóngàymuatrongkhoảngtừngày ‘01/02/2014’ đến ‘10/03/2014’

SECLECT *

FROM HOA_DON

c1.WHERE NGAY_MUA >= " 2014 - 02 - 10 " AND NGAY_MUA <=

" 2014 - 03 - 01 "

C2 WHERE NGAY_MUA BETWEEN " 2014 - 02 - 01 " AND " 2014 -

03 - 10 "

e. Hãychobiếtmỗiloạibánhcóbaonhiêubánh (mãloại, tênloại, sốbánh)

(*) Truy vấn con viết để phục vụ cho truy vấn lớn

(*) Sau khi nhóm xong, có kèm điều kiện gì không " nếu có thì dùng " HAVING

SELECT -> trừ những cột thông kê ra, những cột còn lại thì SELECT

gì thì GROUP BY đó

SELECT LOAI_BANH.MA_LOAI, LOAI_BANH.TEN_LOAI, COUNT ( BANH.MA_BANH )

FROM LOAI_BANH iner join BANH on LOAI_BANH.MA_LOAI = BANH.MA_LOAI

GROUP BY LOAI_BANH.MA_LOAI, LOAI_BANH.TEN_LOAI

f. Hãyliệtkênhữngbánhđượcmuavàongày ‘08/03/2014’

SELECT BANH.TEN_BANH [ hoặc BANH * ]

FROM CHI_TIET_HOA_DON iner join HOA_DON on

CHI_TIET_HOA_DON.MA_HOA_DON = HOA_DON.MA_HOA_DON iner join BANH on BANH.MA _BANH =

CHI_TIET_HOA_DON.MA_BANH

WHERE HOA_DON.NGAY_MUA = " 2014 - 03 - 08 "

B. Cho lược đồ CSDL “Quản lý sinh viên” như sau:

KHOA (MA_KHOA, TEN_KHOA, VI_TRI)

Trang 3

SINH_VIEN (MA_SV, HO_SV, TEN_SV, NGAY_SINH, NOI_SINH,

MON_HOC (MA_MON, TEN_MON, SO_TIET)

KET_QUA (MA_SV, MA_MON, DIEM)

SINH_VIEN: MA_SV

KET_QUA: MA_SV, MA_MON

SINH_VIEN: MA_KHOA

MON_HOC: khôngcó

KET_QUA: MA_SV, MA_MON

3. Sử dụng ngôn ngữ SQL thực hiện các yêu cầu sau:

a. Liệt kê danh sách các SV (mã sv, họ tên, ngày sinh) có năm sinh trong khoảng

từ năm 1988 ->1990

SELECT MA_SV, HO_SV + " " + TEN_SV as HO_VA_TEN, NGAY_SINH FROM SINH_VIEN

WHERE NGAY_SINH >= “1998-01-01” AND <= “1990-12-30”

b. Cho biết kết quả thi các môn (mã môn, tên môn, điểm) của SV ‘Nguyễn Thị Thanh’

SELECT MA_MON, TEN_MON, DIEM

FROM MON_HOC inner join KET_QUA

on MON_HOC MA_MON = KET_QUA.MA_MON iner join

SINH_VIEN on KET_QUA.MA_SV= SINH_VIEN.MA_SV

WHERE SINH_VIEN.HO_SV = “NGUYỄN” AND SINH_VIEN.TEN_SV=

“THỊ THANH”

c. Cho biết danh sách môn học (mã môn, tên môn, số tiết) các môn không có SV nào thi

SELECT *

FROM MON_HOC

WHERE MA_MON NOT IN (SELECT MA_MON FROM KET_QUA)

d. Cho biết họ tên, ngày sinh của SV lớn tuổi nhất

SELECT SINH_VIEN.HO_SV + " " + TEN_SV as Ho Va Ten,

SINH_VIEN.NGAY_SINH

FOM SINH_VIEN

WHERE SINH_VIEN.NGAY_SINH (SELECT MIN (NGAY_SINH)

FOM SINH_VIEN)

Trang 4

e. Cho biết tên khoa và tổng số học viên đang học tại khoa, chỉ hiển thị các khoa

có số sinh viên >100

SELEC KHOA.MA_KHOA, KHOA.TEN_KHOA, COUNT ( MA_SV )

FROM SINH_VIEN inner join KHOA

SINH_VIEN.MA_KHOA = KHOA.MA_KHOA

GOUP BY KHOA.MA_KHOA, KHOA.TEN_KHOA

HAVING COUNT ( SINH_VIEN.MA_SV ) >= 100

1.2.CẤU TRÚC DỮ LIỆU.

Câu 1.Hãy điền thông tin cho cột “ Nội dung của hàng đợi Queue ” vàcột “ Kết quả trả về ”.

Hành động Nội dung của hàng

đợi Queue

Kết quả trả về

Khoi_tao_Q (pfirst,

plast)

Empty

EnQueue (pfirst,

plast, “10”)

0 10 EnQueue (pfirst,

plast, “12”)

01

EnQueue (pfirst,

plast, “14”)

01 2

DeQueue (pfirst,

plast)

0 1

0

10 DeQueue (pfirst,

plast)

0

14

0 1

EnQueue (pfirst,

plast, “16”)

0 1

EnQueue (pfirst,

plast, “18”)

01 2

0 1

DeQueue (pfirst,

plast)

0 1

0 1 2

EnQueue (pfirst,

plast, “20”)

0 1 2

0 1 2

DeQueue (pfirst, 0 1 0 1 2 3

Trang 5

plast) 18 20 10 12 14 DeQueue (pfirst,

plast)

0 20

0 1 2 3 4

EnQueue (pfirst,

plast, “22”)

0 1

0 1 2 3 4

EnQueue (pfirst,

plast, “24”)

0 1 2

0 1 2 3 4

DeQueue (pfirst,

plast)

0 1

0 1 2 3 4 5

EnQueue (pfirst,

plast, “26”)

0 1 2

0 1 2 3 4 5

DeQueue (pfirst,

plast)

0 1

0 1 2 3 4 5 6

DeQueue (pfirst,

plast)

0 24

0 1 2 3 4 5

6 7

DeQueue (pfirst,

0 1 2 3 4 5 6

Câu 2.Cho biết STACK có thể chứa tối đa 5 phần tử Hãy cho biết kết quả của STACK vàmảng chứa kết quả sau khi lấy STACK ra, lần lượt thực hiện sau từng thao tác sau:

1

PUSH

(“Mai”)

Ma

i

isFull

( ):

FALSE

2

La

n

PUSH

(“Lan”)

Ma

i

isFull

( ):

FALSE

3

c

Trang 6

n

PUSH

(“Cúc”)

Ma

i

isFull

( ):

FALSE

4

Trú

c

c

La

n

PUSH

(“Trúc”

)

Ma

i

isFull

( ):

FALSE

5

POP ( ) Cú

c isEmpty (

): FALSE

La n

arra

y

0

Trúc

M ai

6

POP ( )

isEmpty

( ): FALSE

La n

arr

ay

0

1

Trú

c

Cú c

M ai

7

POP ( )

isEmpty ( ):

FALSE

ar

ra

y

0 1

2

Trú

c

c

La n

M ai

8

PUSH

Trang 7

(“Tùng” )

isEmpty ( ):

FALSE

T ùn g

ar

ra

y

0 1

2

Trú

c

c

La n

M ai

9

PUSH

(“Bách” )

B ác h isEmpty ( ):

FALSE

T ùn g

ar

ra

y

0 1

2

Trú

c

c

La n

M ai

10

Th ôn g PUSH

(“Thông” )

Bá ch isEmpty ( ):

FALSE

Tù ng

ar

ra

y

0

1 2

Trú

c

c

La n

Ma i

11

Li m Th ôn g PUSH

(“Lim” )

Bá ch isEmpty ( ):

FALSE

Tù ng

Trang 8

ra

y

0

1 2

Trú

c

c

La n

Ma i

12

Lim Thôn g PUSH (“Tre”

)

Bách Tùng

Khôngthểthêm

“Tre” vào Stack

Mai

13

Thô ng

h isEmpty ( ):

FALSE

Tùn g

arr

ay

0 1

2 3

Trú

c

c

La n

Li m

Mai

14

ch isEmpty ( ): FALSE Tù

ng

arr

ay

0 1 2

3 4

Tr

úc

C

úc

L an

Li m

thô ng

Ma i

15

POP ( )

isEmpty ( ): FALSE Tù

ng

arr

ay

0 1 2 3

4 5

Tr

úc

C

úc

L an

Li m

Thô ng

Bá ch

Ma i

Trang 9

POP ( )

isEmpty ( ): FALSE

arr

ay

0 1 2 3

4 5 6

Tr

úc

C

úc

L an

Li m

Thô ng

Bá ch

Tù ng

M ai

17

POP ( )

isEmpty ( ): FALSE

arr

ay

0 1 2 3 4

5 6 7

Tr

úc

C

úc

L an

Li m

Thô ng

Bá ch

Tù ng

M ai

Satckr ỗng

Câu 3: CÂY NHỊ PHÂN

a.Biểu diễn cây nhịp hân theo các Node sau: 11.-11, 6, 3, 27, -15, 8, 5, 15, -20, -1,

12, -7, -24, -3, 25

b.Biểu diễn cây nhị phân theo các Node sau: 43, 11, 887, 3, 33, 46, 0, 8, 32, 45, 78,

6, 76, 334

Trang 10

c.Biểu diễn cây nhị phân theo các Node sau: 50, 17, 72, 12, 23, 54, 76, 9, 14, 19, 67

Duyệt cây nhị phân:

Duyệt NLR:

Node

A

Nodes Left

BDE

Node Right

CFG

Duyệt LNR:

Nodes

Left

DBE

Node

A

Node Right

FCG

Duyệt LRN:

Nodes

Left

DEB

Node Right

FGC

Nod e

A

Cây nhị phân tìm kiếm:

1.Duyệt cây:

• Duyệt tiền thứ tự (NLR):

Nod

e

22

Nodes Left

17,15,13,16,21,

18

Node Right

29,31,3

Trang 11

• Duyệt trung thứ tự (NLR):

Nodes Left

13,15,16,17,1

8,21

Node

22

Node Right

29,30,3 1

• Duyệt hậu thứ tự (NLR):

Nodes Left

13,16,15,18,2

1,17

Node Right

30,21,2 9

No de

22

2.Thêm vào cây các Node sau: 14,33,19

3.Vẽ lại cây sau khi xóa Node:13,16,31

ÔnThi TN- 2014

1.1.Cơ sở dữ liệu:

Cho lượcđồ CSDL Quản lý phần mềm sau:

- LOAI_PHAN_MEM (MA_LOAI, TEN_LOAI, DAC_DIEM_CHUNG)

- NHOM_THUC_HIEN (MA_NHOM, TEN_NHOM, SO_LUONG)

- PHAN_MEM (MA_PHAN_MEM, TEN_PHAN_MEM, NGAY_BAT_DAU, NGAY_KET_THUC, MO_TA, MA_LOAI, MA_NHOM)

- KHACH_HANG (MA_KHACH_HANG, TEN_KHACH_HANG, DIA_CHI, DIEN_THOAI, EMAIL)

Trang 12

- HOP_DONG(MA_HOP_DONG, MA_KHACH_HANG, MA_PHAN_MEM, GIA_TRI_HOP_DONG, NGAY_KY, NGAY_NGHIEM_THU)

1) Xác định Khóa chính:

LOAI_PHAN_MEM: MA_LOAI

NHOM_THUC_HIEN: MA_NHOM

2) XácđịnhKhóangoại:

LOAI_PHAN_MEM: khôngcó

NHOM_THUC_HIEN: khôngcó

HOP_DONG: MA_KHACH_HANG, MA_PHAN_MEM

3) Sử dụng ngôn ngữ SQL thực hiện các yêu cầu sau:

a. Liệt kê tất cả phần mềm do nhóm có tên “Number 1” thực hiện và có ngày thực hiện bắt đầu trong tháng 6/2013.

SELECT *

FROM PHAN_MEM inner join

NHOM_THUC_HIEN ON

PHAN_MEM.MA_NHOM = NHOM_THUC_HIEN.MA_NHOM

WHERE NHOM_THUC_HIEN.TEN_NHOM= “Number 1”

(c1) PHAN_MEM.NGAY_BAT_DAU >= “ 2013-06-01 ” AND

NGAY_BAT_DAU <= “ 2013-06-31 ”

(c2) Month ( NGAY_BAT_DAU ) = 6 AND YEAR ( NGAY_BAT_DAU ) = 2013

b. Li t kê các phần mềm có tên “ Website ASP.Net ”.

SELECT *

FROM LOAI_PHAN_MEM inner join PHAN_MEM

ON LOAI_PHAN_MEM.MA_LOAI = PHAN_MEM.MA_LOAI

WHERE LOAI_PHAN_MEM.TEN_LOAI = “ Website ASP.Net ”

c.Liệt kê danh sách nhóm thực hiện từ 5 phần mềm trở lên.

SELECT NHOM_THUC_HIEN.MA_NHOM,

NHOM_THUC_HIEN.TEN_NHOM, COUNT (PHAN_MEM.MA_PHAN_MEM) FROM NHOM_THUC_HIEN inner join PHAN_MEM

ON NHOM_THUC_HIEN.MA_NHOM = PHAN_MEM.MA_NHOM

d. Cho biết hợp đồng có giá trị hợp đồng lớn nhất.

SELECT *

FROM HOP_DONG

Trang 13

WHERE GIA_TRI_HOP_DONG = ( SELECT MAX GIA_TRI_HOP_DONG FROM HOP_DONG)

e.Liệt kê các loại phần mềm chưa có phần mềm nào thực hiện.

SELEC MA_LOAI

FROM PHAN_MEM

WHERE MA_LOAI Not In (SELECT MA_LOAI

FROM PHAN_MEM)

f Liệt kê những nhóm có số lượng thành viên từ 5 đến 10 người.

SELECT *

FROM NHOM_THUC_HIEN

WHERE SO_LUONG Between 5 AND 10

(C2) SO_LUONG >= 5 AND SO_LUONG <=10

1.2.Cấutrúcdữliệu:

Câu 1: Hãyđiềnthông tin chocột “Nội dung hàngđợi Queue” vàcột

“Kếtquảtrảvề”.

Hànhđộng Nội dung củahàngđợi

Queue

Kếtquảtrảvề

Khoi_tao_Q (pfirst,

plast)

Empty

EnQueue (pfirst, plast,

“A”)

0 A EnQueue (pfirst, plast,

“B”)

0 1

EnQueue (pfirst, plast,

“C”)

0 1 2

DeQueue (pfirst, plast) 0 1

0

A DeQueue (pfirst, plast) 0

C

0 1

EnQueue (pfirst, plast,

“D”)

0 1

EnQueue (pfirst, plast,

“E”)

0 1 2

0 1

Trang 14

DeQueue (pfirst, plast) 0 1

0 1 2

EnQueue (pfirst, plast,

“F”)

0 1 2

0 1 2

DeQueue (pfirst, plast) 0 1

0 1 2 3

DeQueue (pfirst, plast) 0

F

0 1 2 3 4

EnQueue (pfirst, plast,

“G”)

0 1

0 1 2 3 4

EnQueue (pfirst, plast,

“H”)

0 1 2

0 1 2 3 4

DeQueue (pfirst, plast) 0 1

0 1 2 3 4 5

EnQueue (pfirst, plast,

“I”)

0 1 2

0 1 2 3 4 5

DeQueue (pfirst, plast) 0 1

0 1 2 3 4 5 6

DeQueue (pfirst, plast) 0

H

0 1 2 3 4 5

6 7

A B C D E F H I DeQueue (pfirst, plast)

Empty

0 1 2 3 4 56

Câu 2: Cho biết STACK cóthểchứatốiđa 5 phầntử Hãychobiếtkếtquảcủa

STACK vàmảngchứakếtquảsaukhilấytừ STACK ra,

saukhithựchiệnlầnlượtsautừngthaotácsau:

1

PUSH (“ a

”)

isFull ( ):

FALSE

2

b PUSH (“ b

”)

a isFull ( ):

FALSE

Trang 15

c

b PUSH (“ c

”)

a isFull ( ):

FALSE

4

d

c

b PUSH (“ d

”)

a isFull ( ):

FALSE

5

POP ( ) c isEmpty

( ):

FALSE

b

arra

y

0

d

a

6

POP ( )

isEmpty

( ):

FALSE

b

arra

y

0 1

d c

a

7

POP ( )

isEmpty

( ):

FALSE

arra

y

0 1

2

a

8

PUSH (“

e ” )

isEmpty e

Trang 16

( ):

FALSE

arra

y

0 1

2

a

9

PUSH (“ f

” )

f

isEmpty

( ):

FALSE

e

arra

y

0 1 2

a

10

g PUSH (“

g ” )

f

isEmpty

( ):

FALSE

e

arra

y

0 1

2

a

11

h g PUSH (“

h ” )

f

isEmpty

( ):

FALSE

e

arra

y

0 1 2

a

12

h g PUSH (“ i

” )

f e

Trang 17

Khôngthểthêm “ i

” vào Stack

a

13

g

isEmpty ( ):

FALSE

e

arra

y

0 1 2

3

d c b h

a

14

isEmpty ( ):

FALSE

e

arra

y

0 1 2

3 4

d c b h g

a

15

POP ( )

isEmpty ( ):

FALSE

e

arra

y

0 1 2 3

4 5

d c b h g f

a

16

POP ( )

isEmpty ( ): FALSE

arra

y

0 1 2 3

4 5 6

d c b h g f

a

17

POP ( )

isEmpty ( ): FALSE

arra

y

0 1 2 3 4

5 6 7

d c b h g f e a

Satckrỗng

Trang 18

Câu 3: Cây nhị phân tìm kiếm:

a. Vẽ cây: 16, 17, 23, 25, 20, 5, 7, 9, 6, 3, 4, 2, 21, 8, 27.

b. Xóa các Node sau: 4, 7, 25, 21.

c. Duyệt cây theo tiền thứtự ( NLR ):

Node

16

Nodes Left

5, 3, 2, 6, 9,

8

Node Right

23, 20, 27

Ngày đăng: 22/11/2017, 20:50

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

TÀI LIỆU LIÊN QUAN

w