2

관련 테이블은 다음과 같습니다관계 대수 어떻게 두 조건을 선택할 수 있습니까?

열차 (기차 코드, 기차 형, 출발 스테이션, 목적지 스테이션) 런던에서 출발하고 KENT 향하는 열차

목록의 세부 사항.

질문은 매우 간단하며 기본 답변을 찾기 위해 어디에서나 찾아 보았지만 찾을 수는 없습니다.

이것은 내가 지금까지 함께 온 것입니다,하지만 난 그게 올바른 경우, 또는 심지어 관계 대수에서 사용할 수 있는지 모르겠어요

SELECT TRAIN WHERE departure-station = 'LONDON' AND destination-station = 'KENT' 

는 것이 맞습니까? 나는 이것을 위해 AND를 사용할 수 있는지에 대한 정보를 온라인에서 찾을 수 없습니다. 그것은 나에게 너무 긴 것, 어쨌든 잘못 될 수 있습니다처럼

SELECT TRAIN WHERE departure-station = 'LONDON' GIVING TABLE1 
SELECT TRAIN WHERE destination-station = 'KENT' GIVING TABLE2 
PROJECT TABLE1 OVER train-code GIVING TABLE3 
PROJECT TABLE2 OVER train-code GIVING TABLE4 
TABLE1 INTERSECT TABLE2 GIVING TABLE3 
PROJECT TABLE3 OVER train-code, train-type, departure-station, destination-station GIVING RESULT 

이 보인다 : 문제가 해결되지 않은 경우, 나는 내 대답은 이런 식으로 뭔가해야한다 생각하고 있어요. 어쩌면 대신 JOIN 명령을 사용해야합니까? 비록 그것이 정말 간단한 질문 임에도 불구하고 나는 정말로 모른다. 누구든지 나를 도울 수 있습니까?

+1

실제 데이터베이스에서 작동하지만 관계형 대수 테스트를 위해이 질문에 대한 답변을 종이에 적어 두어야합니다. 이것은 대수적 인 것처럼 보일지라도 SQL 코드와는 다른 관계형 대수학에서 사용할 수 있는지는 알 수 없습니다. – JadstaSeven

+0

'σ (departure-station ='LONDON '요지 - 역 = KENT'(TRAIN)) '와 같은 것으로 보이지 않으며'SELECT * FROM TRAIN WHERE departure-station = 'LONDON' 및 목적지 - 역 = 'KENT'' ?? – Carlton

+0

아마도 정확할 것입니다. 그러나 저는 영국에 있습니다. 불행히도 우리는이 방법을 다른 방식으로 가르칩니다. 즉, 시그마 표기법이나 그와 같은 것을 사용하지 말고, 선택, 프로젝트, 나누기 등을 사용합니다. 실제로 SELECT를 작성하지 마십시오. RESTRICT는 동일하지만 SELECT와 다른 표기법을 사용하는 미국의 경우 다른 사람들에게 혼란을 야기합니다. 그래서 당신이 영국 출신이 아니라면 내 질문이 좀 더 혼란 스럽습니다./ – JadstaSeven

답변

1

우리가 0123와 같은 사소한 문법 차이를 무시하는 경우에도, 관계 대수의 단일 버전이 없습니다대 PROJECT OVER. 그들은 모두 관계의 동일한 개념을 가지고 있지 않습니다. 의 정의가 인 경우 SELECT/RESTRICT일까요? 우리는 말할 수 없습니다, 우리에게 말해야합니다.

귀하의 AND은 사용할 관계형 대수 버전이 임의로 중첩 된 조건을 SELECT에 허용하는 경우 유효합니다. 최초의 관계형 대수학은 단 하나의 평등 또는 불평등만을 허용했습니다. 자신의 과제에 대해 "관계 대수"& "SELECT"이 무엇인지 찾아야합니다. 그러나 어느 쪽이든 당신은 쓸 수 :

SELECT (SELECT TRAIN WHERE departure-station = 'LONDON') 
WHERE destination-station = 'KENT' 

귀하의 긴 형식은 무의미한를 사용하지 않습니다, TABLE3을 설정 한 다음 다시 설정합니다. INTERSECT은 동일한 속성 세트가있는 두 개의 관계가 필요하기 때문에 긴 양식도 유효하지 않습니다. 하지만 맞아요. INTERSECT 평행 AND. NATURAL JOIN도 마찬가지입니다. 모든 테이블 (주어진 또는 쿼리)은 술어을가집니다. 즉, 애트리뷰트에 의해 매개 변수화 된 문 템플릿은 튜플 멤버쉽 조건을 제공합니다.예 TRAIN는 튜플 (뭔가 같은) 기차 기차 코드목적지 스테이션출발 스테이션에서 이동 유형 기차 형의. INTERSECT & NATURAL JOIN 다른 하나의 관계에있는 반환 튜플 , 즉 하나의 관계의 술어 을 만족하는 다른 튜플을 반환합니다. 마찬가지로 UNION은 OR에 대해 계산하고 MINUS은 AND NOT을 계산하고 ... WHEREcondition 계산 ... AND 상태는입니다. 예는 ANDSELECT 유형 기차 형의 기차 기차 코드목적지 스테이션출발 스테이션 = '런던'과 목적지 역에 출발 스테이션에서 진행 튜플 당신의 = '켄트'. PROJECTrelationOVERattributes kept 일부 (값) 미국 속성, 술어 떨어 대해 계산한다. 예 TABLE4는 일부 기차 형, 출발 스테이션 & 목적지 스테이션 입력 기차 형의 기차 코드위한출발 역에서목적지 스테이션로 이동 튜플이다 및 대상 스테이션 = '켄트'.

AND을 사용하지 않는 또 다른 대답은 TABLE1 INTERSECT TABLE2입니다. 왜 다른 모든 일을하고 있니? 예를 들어 몇 가지 예상을 가져 와서 원본과 결합했는데 항상 그게 무엇입니까?

this answer을 참조하십시오.

+0

잘 설명해 주신 답변 해 주셔서 감사합니다! 이것은 많은 도움이됩니다. 저는 오랫동안 제공 한 오답에 대해 확신이 없었습니다. 잘못 입력했을 가능성이 있다고 생각했지만 실제로 보여준 것처럼 간단하게 처리 할 수 ​​있다는 것을 깨닫지 못했습니다. 관계형 대수학의 버전에 관해서는, 나는 우리가 말하지 않은 그대로 그것이 어떤 버전인지를 정말로 확신하지 못한다. 우리는 방금 그것이 관계형 algeba라고 말하고 일반적으로 다른 것들 중에서 RESTRICT 함수를 사용합니다 (그것이 버전을 나타내는 것을 도울 수 있다면 SELECT가 아닙니다). 어쩌면 당신이 설명하고 사용할 수없는 원래 버전 일 수 있습니다.이 경우 끝에있는 대답이 특히 유용합니다. – JadstaSeven

+0

* 아무 래도 * 당신에게 할당 한 사람은 누구든지 "제한"이라고 할 때 그들이 의미하는 바를 정의했습니다. 강의? 슬라이드? 노트? 교과서? 참고 문헌 그리고 그들은 모범을 보였습니다. (나는 Avison & Fitzgerald를 예측한다.) – philipxy

+0

그냥 내 대답에 어디서 AND가 두 곳으로 쓸 수 있는지 추가했다. – philipxy

1

저는 Oracle SQL에 익숙하지 않지만 MySQL에 익숙합니다. 기본 구문은 동일하다고 생각합니다. 귀하의 AND 사용법은 정확하지만 귀하의 검색어에 FROM 키워드가 누락 된 것처럼 보입니다. 테이블이 기차를 호출하면 일을 시도 :

SELECT * FROM TRAIN WHERE departure-station = 'LONDON' AND destination-station = 'KENT' 
+0

질문은 관계형 대수 표현식에 대해 묻고 있습니다. 그들은 상징보다는 알파벳 이름을 사용하고 있습니다. – philipxy

1

"그리고"관계 대수에서 확실히 유효, 다음과 같이 쓸 수있다 :

σ departure-station = 'LONDON' AND destination-station = 'KENT' (TRAIN) 

이 기본 튜토리얼이지만이 대부분을 정의 RA 개념 :

https://www.tutorialspoint.com/dbms/relational_algebra.htm

+0

아, 감사합니다, 그게 내가 바라는 것이고 그 대답은 생각했지만 지금까지는 확실하지 않았습니다! – JadstaSeven

+0

@philipxy, 고마워, 지금 편집 – Jayvee