관계 논리
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
관계 논리는 관계 데이터베이스의 데이터베이스 언어로서, 관계 모델에 기반한다. 관계 모델은 튜플의 집합인 관계, 속성, 정의역 등의 개념으로 구성된다. 관계 논리는 관계 대수와 논리적 동치 관계에 있으며, 튜플 관계 논리와 도메인 관계 논리로 나뉜다. 튜플 관계 논리는 튜플 변수와 조건을 사용하여 질의를 표현하며, 도메인 관계 논리는 도메인 변수를 사용하여 쿼리를 구성한다. 관계 논리는 쿼리 최적화를 형식화하는 데 목적이 있으며, 관계 완전성을 만족한다.
관계 논리는 관계 모델에 기반한 관계 데이터베이스의 데이터베이스 언어(질의어)이므로, 먼저 관계 모델을 간단히 정의한다.
관계 대수와 도메인 독립적 관계 미적분은 논리적 동치이다. 즉, 모든 대수식에 대해 미적분에서 동등한 표현이 있으며, 그 반대도 성립한다. 이 결과는 코드의 정리로 알려져 있다.[1]
에드거 F. 코드는 관계형 모델의 구성 요소로 튜플 관계 논리(組關係論理)를 고안했다. 튜플 관계 논리는 ''{t | φ(t)}'' 형식으로 표시된다. 여기서 ''t''는 튜플 변수이고, φ는 조건을 나타내는 식이다. 데이터베이스 술어는 ''R(t)'' 또는 ''t∈R''로 기술된다.
도메인 관계 논리는 Michel Lacroix와 Alain Pirotte에 의해 고안되었다.[1]
관계 논리의 존재 이유는 쿼리 최적화를 형식화하는 데 있다. 쿼리 최적화는 쿼리로부터 쿼리를 실행하는 가장 효율적인 방식을 결정하는 것으로, 관계 논리 표현식을 동일한 답을 제공하는 효율적인 관계 대수 표현식으로 변환하는 것으로 형식화할 수 있다.[1]
관계 대수 표현식은 다음 단계를 통해 ''Some Sample Book''을 공급하는 서점의 전화번호와 이름을 검색하도록 지시할 수 있다.
2. 관계 모델
관계는 하나의 머리글과 0개 이상의 동일한 타입의 튜플의 순서가 없는 집합으로 이루어진 데이터 구조이다. 관계값은 값으로서의 관계를 의미한다. 변수 중 관계값을 값으로 갖는 변수를 관계 변수(relvar)라고 한다. 관계 변수가 값으로 갖는 관계값은 시간에 따라 변화한다. 관계 변수는 데이터 정의 언어(DDL)를 사용하여 정의할 수 있다. 머리글은 특정 속성의 순서가 없는 집합이다. 관계값을 구성하는 튜플의 집합을 본체라고 한다. 즉, 관계값은 머리글과 본체로 구성된다. 튜플은 0개 이상의 속성의 집합으로 구성된 데이터 구조이다. 속성은 속성 이름과 정의역의 이름 쌍이다. 정의역은 데이터 타입과 같은 의미로 생각해도 좋다. 속성은 해당 정의역에 적합한 어떤 속성값을 갖는다. 속성값은 스칼라 값 또는 더 복잡한 구조를 갖는 값이다. 관계값을 구성하는 각 튜플은 특정 하나 이상의 속성 집합으로 식별된다. 이 속성 집합을 후보키라고 한다. 이러한 관계 모델의 개념은 수학적으로 정의되지만, 기존 데이터베이스의 구현은 이러한 정의를 엄격하게 준수하지는 않는다. 테이블은 관계의 시각적 표현으로 받아들여진다. 튜플은 행의 개념과 유사하다.
3. 관계 대수와의 비교 및 관계 완전성
예를 들어, 관계 대수에서는, 서적 데이터베이스에서 다음 절차에 따라 특정 서명의 서적을 재고로 가진 서점의 점명과 전화번호를 문의할 수 있다.[1]
# 서적 관계와 서점 관계를 서점 ID로 결합한다.[1]
# 결합하여 생성된 관계를 지정된 서명으로 제한한다.[1]
# 제한하여 생성된 관계를 점명과 전화번호로 사영한다.[1]
이 예의 쿼리는 관계 논리에서는 다음과 같이 선언적으로 공식화할 수 있다.[1]
: 서적 데이터베이스에서, 서적 관계와 서점 관계의 각 서점 ID가 동일한 것으로 하고, 지정된 서명을 가진 점명과 전화번호를 얻는다.[1]
관계 대수와 관계 논리는 서로 등가이다. 관계 대수로 표현된 식은, 등가인 관계 논리의 식으로 표현할 수 있다. 반대로 관계 논리로 표현된 식도, 등가인 관계 대수의 식으로 표현할 수 있다.[1]
관계 모델을 고안한 에드거 F. 코드는, 관계 데이터베이스 언어의 표현 능력에 대해 '''관계 완전'''이라는 용어를 정의했다. 관계 완전이란, 코드가 제창한 한정 하에서, 일계 술어 논리에 관해 완전한 언어임을 의미한다. 관계 논리와 관계 대수는 관계 완전하다.[1]
4. 튜플 관계 논리
튜플 관계 논리에서 사용되는 연산자는 다음과 같다.
존재 기호와 전칭 기호는 변수를 묶을 수 있다. 튜플 관계 논리를 사용한 질의 예시는 다음과 같다.
튜플 관계 논리를 기반으로 데이터베이스 언어(질의어) QUEL과 SQL이 설계되었다. 그러나 SQL은 에드거 F. 코드의 관계형 모델과 관계 논리를 충실하게 따르지 않았다는 비판을 받기도 한다. 그럼에도 불구하고 SQL은 2008년 현재 거의 모든 관계형 데이터베이스 관리 시스템(RDBMS)에서 사용되고 있다.
5. 정의역 관계 논리
도메인 관계 논리에서 질의는 다음과 같은 형식을 갖는다.
:{
여기서 각 Xi는 도메인 변수 또는 상수이다. p(X1, X2, ...., Xn)는 관계 논리의 형식을 나타낸다. 질의의 결과는 Xi부터 Xn으로 구성된 튜플의 집합이며, 이 집합은 관계 논리의 형식이 참이 된다.
도메인 관계 논리의 언어는 튜플 관계 논리와 동일한 연산자를 사용한다.
A, B, C를 각각 직급, 이름, ID로 하고, D, E, F를 각각 이름, 부서명, ID로 한다.
항성선 USS 엔터프라이즈의 모든 선장을 조회하는 예시는 다음과 같다.
이 예에서 A, B, C는 결과 집합을 나타내며, 엔터프라이즈 관계에 포함된 집합을 나타낸다.
엔터프라이즈의 선원 중, 성도 작성 부서에 속하는 사람의 이름을 조회하는 예시는 다음과 같다.
이 예에서는 이름만 조회한다. 는 속성명이다. F = C는 요구 사항이다. 왜냐하면 여기서 필요한 것은 엔터프라이즈의 선원이며, 또한 성도 작성 부서에 속하는 사람의 이름이기 때문이다.
앞선 예의 다른 영역 관계 논리식에서의 표현 예는 다음과 같다.
이 예에서는 요구된 F 영역은 정식 내에 직접 위치하며, C 영역 변수는 부서의 존재를 조회할 때 다시 사용되고 있다. 왜냐하면 C 영역 변수는 이미 선원의 ID를 가지고 있기 때문이다.
6. 관계 논리의 목적 및 수학적 속성
예를 들어, 관계 대수에서 서적 데이터베이스에 특정 서명의 서적을 재고로 가진 서점의 점명과 전화번호를 문의하는 절차는 다음과 같다.[1]
# 서적 관계와 서점 관계를 서점 ID로 결합한다.[1]
# 결합된 관계를 지정된 서명으로 제한한다.[1]
# 제한된 관계를 점명과 전화번호로 사영한다.[1]
이 쿼리는 관계 논리에서 다음과 같이 선언적으로 공식화할 수 있다.[1]
: 서적 데이터베이스에서 서적 관계와 서점 관계의 각 서점 ID가 동일하고, 지정된 서명을 가진 점명과 전화번호를 얻는다.
관계 대수와 관계 논리는 서로 동치이다. 관계 대수로 표현된 식은 그와 동등한 관계 논리 식으로 표현할 수 있으며, 반대로 관계 논리 식으로 표현된 식도 그와 동등한 관계 대수 식으로 표현할 수 있다.[1]
관계 대수와 도메인 독립적 관계 미적분은 논리적 동치이다. 즉, 모든 대수식에 대해 미적분에서 동등한 표현이 있으며, 그 반대도 성립한다. 이 결과는 코드의 정리로 알려져 있다.[1]
관계 모델을 고안한 에드거 F. 코드는 관계 데이터베이스 언어의 표현 능력에 대해 '''관계 완전'''이라는 용어를 정의했다. 관계 완전이란, 코드가 제창한 한정 하에서 일계 술어 논리에 관해 완전한 언어임을 의미한다. 관계 논리와 관계 대수는 관계 완전이다.[1]
7. 예제
# BookstoreID를 기준으로 서점과 도서를 조인한다.
# 조인 결과에서 도서 ''Some Sample Book''에 해당하는 튜플만 제한한다.
# 제한된 결과에서 StoreName 및 StorePhone을 프로젝션한다.
관계 미적분 표현식은 이 쿼리를 다음과 같은 설명적 또는 선언적 방식으로 표현한다.
: BookstoreID 값이 같고 BookTitle 값이 ''Some Sample Book''인 도서 BK가 존재하는 서점의 StoreName 및 StorePhone을 가져온다.
관계 대수에서는, 서적 데이터베이스에서 다음 절차에 따라 특정 서명의 서적을 재고로 가진 서점의 점명과 전화번호를 문의할 수 있다.
# 서적 관계와 서점 관계를 서점 ID로 결합한다.
# 결합하여 생성된 관계를 지정된 서명으로 제한한다.
# 제한하여 생성된 관계를 점명과 전화번호로 사영한다.
이 예의 쿼리는 관계 논리에서는 다음과 같이 선언적으로 공식화할 수 있다.
: 서적 데이터베이스에서, 서적 관계와 서점 관계의 각 서점 ID가 동일한 것으로 하고, 지정된 서명을 가진 점명과 전화번호를 얻는다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com