2013-02-26 2 views
0

У меня есть эти таблицыреляционной алгебры конкретных операции

Employee(ssn, name, sex, address, salary, bdate, dno, superssn) 
fk:superssn is ssn in Employee 
fk:dno is dnumber in Department 

Department(dnumber, dname, mgrssn, mgrstartdate) 
fk:mgrssn is ssn in Employee 

Dept_locations(dnumber, dlocation) 
fk:dnumber is dnumber in Department 

Project(pnumber, pname, plocation, dnum) 
fk:dnum is dnumber in Department 

Dependent(essn, dependent_name, sex, bdate, relationship) 
fk: essn is ssn in Employee 

Works_on(essn,pno,hours) 
fk: essn is ssn in Employee; pno is pnumber in Project 

Я хотел бы получить список мест для финансового отдела, используя только следующую реляционную алгебру операции {σ, π, ∪, ρ, -, × }.

до сих пор у меня есть: л dlocation (отдел сг (Dname = «исследования»))

я действительно застрял, и путать ... я не знаю, если его можно сделать без операция equijoin.

ответ

0

Начинал писать комментарий, затем передумал. :)

Если посмотреть на Wikipedia, вы найдете эту эквивалентность:

R ⋈_φ S = σ_φ(R × S) 

И особенно там, где ограничение является то, что равенства, это эквисоединения. Это означает, что равноценность эквивалентна ограничению на декартово произведение двух таблиц на равенство двух полей.

Итак ...

π_{dlocation}(
    σ_{dnumber = loc_dnumber}(
    σ_{dname = "finance"}(department) 
    × 
    ρ_{loc_dnumber/dnumber}(dept_locations))) 

(Мы должны использовать переименование, чтобы мы не попали в вздорную dnumber = dnumber места.)

Смежные вопросы