우봉수
2023. 3. 17. 14:16
2023. 3. 17. 14:16
질의어
- 삽입, 삭제, 수정, 검색 등의 데이터 조작을 위한 연산을 표현하기 위한 언어
- 절차적 언어: 일련의 절차를 명시해야 하는 언어
- 비절차적 언어: 수행 절차를 기술하지 않아도 사용가가 원하는 결과만을 형식적으로 명시하는 언어 실질적인 수행절차는 시스템 내부에서 처리 (블랙박스)
관계형 데이터베이스에서의 대표적 질의어
- 관계 대수
- 비절차적 언어
- 관계 해석 보다는 더 절차적인 언어
- 수학에서의 수식구조와 유사
- 피연산자: 테이블
- 연산자: 단항, 이항 연산자
- 관계 해석
관계대수의 연산 종류
- 기본 연산
- 선택 연산: 하나의 테이블에서 주어진 조건을 만족하는 레코드들을 검색하는 기능
- 형식: σ조건식(테이블이름)
- 교환법칙이 성립한다.
- 추출 연산: 사용자가 원하는 필드만을 결과로 출력하는 연산
- 형식: π필드리스트(테이블이름)
- 교환법칙이 성립되지 않는다.
- 재명명 연산: 테이블에 이름을 부여하거나 변경하는 연산
- 집합 연산: 수학적 집합 이론에서 정의된 연산
- 조건: 집합 연산에 피연산자인 두개의 테이블은 서로 호환이 가능해야 함
- 두 피연산자의 차수와 필드 이름이 같아야함
- 같은 이름의 필드들이라 하더라도 도메인이 일치해야 함
- 합집합
- 차집합
- 카티션 프로덕트: 두 개의 테이블에서 각각의 레코드들을 서로 결합하여 하나의 레코드로 구성하면서 가능한 모든 조합의 레코드들로 테이블을 생성
- 형식: 테이블 x 테이블
- 두 개 이상의 테이블이 필요한 질의의 표현이 가능
- 교환법칙과 결합법칙이 성립함
- 교집합
- 추가연산
- 관계대수 연산의 결과는 임시 테이블의 형태로 보여진다. (결과가 저장되지는 않음) 따라서 연산의 중첩이 가능함
- null 처리: 조건식에서 배제
조인(join)
- 두 테이블로 부터 특정 조건을 만족하는 레코드들을 하나의 레코드로 결합하는 연산
- 카티션 프로덕트는 모든 가능한 조합에 의해 레코드들을 생성하지만 조인은 특정 조건을 만족하는 레코드만을 선택
- 세타 조인이라고 함
- 형식: <테이블이름1>⋈(조건식)<테이블이름2>
- 조인 조건은 필드간의 동등비교(=)가 대부분이며 이를 동등조인 이라 함
- 다음과 같이 카티션 프로덕트로 표현가능
- ex: 학교와 학과에 소속된 같은 이름의 정보 검색
자연 조인
- 서로 다른 테이블에서 같은 필드명을 가지는 두개의 필드가 같은 값을 같는 필드를 하나 제거하여 합쳐 단순히 표현한 연산
- 형식: <테이블이름1>⋈<테이블이름2>
- 만약 공통되는 필드가 없다면 카티션 프로덕트와 같다.
외부 조인
- 조인 조건에 만족되지 않는 레코드까지 검색 결과에 포함시키기 위한 방법(필드 안에 레코드 내용이 동일 하지 않은 경우를 대비)
- 서로 매치되지 않는 필드에 대해서는 NULL을 입력함
- 종류
- 왼쪽 외부조인 (왼쪽의 중복되지 않는 요소 포함)
- 오른쪽 외부조인 (오른쪽의 중복되지 않는 요소 포함)
- 완전 외부조인 (양쪽의 중복되지 않는 요소 포함)
지정 연산
- 복잡한 질의를 여러 개의 질의로 분리하거나 중간 결과에 이름을 부여
- 최종 질의를 결과에 이름을 부여
- 연산 기호로는 ←를 사용
- ex: student 테이블에서 3학년인 학생을 선택해서 그 결과 테이블을 junior이라는 이름으로 지정해라