You are on page 1of 4

a) Keys and Foreign Keys:

STUDENT: StudentCode (K1), StudentName (K2).


ENROLL: StudentCode (FK), CourseCode (FK).
COURSE: CourseCode (K1), CourseName (K2).
BOOK_ADOPTION: CourseCode (FK), BookISBN (FK).
BOOK: BookISBN (K1), BookTitle (K2).

b) Dữ liệu mô phỏng của các relation:

STUDENT:
('A001', 'John Wick', 'SE', '2002-05-06', 'Male')
('A002', 'Lady Soe', 'SE', '2000-9-20', 'Female')
('A003', 'Jack Thompson', 'SE', '2001-10-25', 'Male')

ENROLL:
('A001', 'DBI201', 'Spring-2020', 3.0, 'Fail')
('A002', 'DBI202', 'Fall-2021', 7.0, 'Pass')
('A003', 'DBI203', 'Summer-2022', 6.0, 'Fail')

COURSE:
('DBI201', Database System, 'Computer Science')
('DBI202', 'Database Management', 'Computer Science')
('DBI203', 'Object Oriented Programming', 'Computer Science')

BOOK_ADOPTION:
('DBI201', 'Spring-2020', 'ISBN-201')
('DBI202', 'Fall-2021', 'ISBN-202')
('DBI203', 'Summer-2022', 'ISBN-203')

BOOK:
('ISBN-201', 'Computer Science: An Overview', 'McGraw Hill', 'John Doe')
('ISBN-202', 'Database Systems: Concepts, Design and Applications',
'Addison Wesley', 'Jane Doe')
('ISBN-203', 'Object Oriented Programming in Java', 'Pearson', 'Jack
Smith')

c) Relational algebra queries:

1. Cho biết mã số, tên của các nữ sinh viên học ngành IA :
π studentCode,studentName (σ major = “IA”and Gender=”F” (STUDENT))

2. Cho biết mã số, tên của các nam sinh viên học ngành SE có đăng ký học
vào học kỳ Summer-2019:

π studentCode,studentName (σ major = “SE”and Gender=”M”


(STUDENT))
3. Cho biết mã số, tên các khóa học có mở trong học kỳ Summer-2019

π courseCode,courseName (σ semester=”Summer-2019” (Enroll))

4. Cho biết số ISBN, tựa sách được dùng cho môn học có tên “Nhập môn
CSDL” trong học kỳ Summer-2019

R1 := π courseCode (σ courseName=”Nhap mon


CSDL”,semester=”Summer-2019”(Course))
R2 := R1 x Book_ADOPTION
R3:= π BookISBN (σ courseCode(course) = courseCode (R2))
R4:=R3 x BOOK Result=π BookTitle
(σBookISBN(Book_Adoption)=BookISBN (R4)
5. Cho biết mã số, tên của các sinh viên đậu môn học có tên “Lập trình
OOP” trong học kỳ Summer-2019
R1 := π courseCode (σ courseName=”lap trinh
OOP”,Semester=”Summer-2019”(Course))
R2 := R1 x Enroll
R3:=π StudentCode (σ courseCode(course) = courseCode(enroll) ,
status(enroll) = “pass” (R2))
R4:=R3 x Student Result=π StudentName,StudentCode (σ
courseCode(Student) = courseCode (R2))
6. Cho biết BookISBN nào được dùng cho nhiều hơn một khóa học (môn
học)
R1:=courseCode
Gcount(BookISBN)->numberOfPcs(R1)
7. Cho biết sinh viên nào (mã sinh viên) học môn học có mã DBI202 cao
điểm nhất :
R1:=StudentCode
Gmax(courseCode=”DBI202”)->numberOfPcs(R1)

d) Biểu diễn các ràng buộc sau bằng đại số quan hệ :

1. Sinh viên có điểm (GPA) nhỏ hơn 5 phải có trạng thái (status) là Fail
π Status ( σ GPA<5 ( Enroll)) = Fall

2. Nhà trường không tuyển nữ sinh viên vào ngành Marketing

R1 := π StudentCode (σ courseCode=Marketing , Gender=FStudent))

R2 := R1 x Enroll

π Status (σ StudentCode=StudentCode (R2))= ∅

3. Nhà trường không mở môn học có mã DBI202 vào học kỳ Spring-2005

R1 := π courseCode (σ semester=spring-2005 (Enroll))

R2 := R1 x Course

σ courseCode ( Enroll )= courseCode (Course)=DBI202 (R2))= ∅

4. Không có sinh viên ngành IA đăng ký học vào học kỳ Spring-2010

R1 := π StudentCode (σ semester= Spring−2010 , major=IA Student))

R2 := R1 x Enroll

π Status (σ StudentCode ( Enroll )=StudentCode (R2))= ∅

You might also like