ScholarGate
어시스턴트

SQL 및 관계형 대수

관계형 대수는 관계형 모델에 형식적 의미론을 부여하는 관계에 대한 연산자의 절차적 언어인 반면, SQL은 데이터베이스 시스템이 대수와 유사한 실행 계획으로 컴파일하는 표준 선언적 언어입니다.

PaperMind(으)로 주제 찾기곧 제공Find papers & topics
Tools & resources
슬라이드 다운로드
Learn & explore
동영상곧 제공

Definition

관계형 대수는 관계를 입력으로 받아 관계를 출력으로 생성하는 연산자 집합이며, SQL(Structured Query Language)은 관계형 데이터베이스를 정의, 쿼리 및 업데이트하기 위한 ISO 표준 선언적 언어입니다. SQL의 쿼리 의미론은 그룹화, 집계 및 백(bag) 의미론으로 확장된 관계형 대수와 밀접하게 일치합니다.

Scope

이 주제는 관계형 대수의 연산자(선택, 투영, 데카르트 곱, 조인, 합집합, 차집합, 이름 변경)와 쿼리 및 쿼리 최적화를 위한 형식적 기반으로서의 사용법을 다룹니다. SQL의 핵심인 SELECT-FROM-WHERE 쿼리, 조인, 그룹화 및 집계, 서브쿼리, 집합 연산, 데이터 정의 및 데이터 조작 문과 함께 SQL의 다중 집합 의미론 및 널(null) 값에 대한 3치 논리를 다룹니다. 쿼리가 물리적으로 실행되고 최적화되는 방식(쿼리 처리 및 최적화에서 다룸)은 제외합니다.

Core questions

  • 관계형 대수의 기본 및 파생 연산자는 무엇입니까?
  • SQL SELECT-FROM-WHERE 쿼리는 관계형 대수 연산에 어떻게 매핑됩니까?
  • 그룹화 및 집계는 기본 대수를 어떻게 확장합니까?
  • 널(null) 값과 3치 논리는 쿼리 결과에 어떻게 영향을 미칩니까?
  • SQL은 왜 집합 의미론 대신 다중 집합(백) 의미론을 사용합니까?

Key concepts

  • 선택, 투영, 조인
  • 합집합, 차집합, 데카르트 곱
  • SELECT-FROM-WHERE
  • 그룹화 및 집계
  • 서브쿼리 및 상관관계
  • 집합 및 다중 집합 연산
  • 3치 논리 및 널(null) 값
  • 데이터 정의 및 조작 언어

Key theories

관계형 대수 연산자
선택, 투영, 합집합, 집합 차집합, 데카르트 곱 및 이름 변경은 조인, 교집합 및 나눗셈이 파생되는 완전한 집합을 형성합니다. 이들 간의 대수적 항등식은 쿼리 재작성 최적화를 정당화합니다.
선언적 쿼리 및 관계적 완전성
SQL은 사용자에게 데이터를 가져오는 방법이 아니라 원하는 데이터를 명시하도록 합니다. 모든 관계형 대수 쿼리(및 그 이상)를 표현할 수 있기 때문에 관계적으로 완전하며, 시스템은 효율적인 실행 전략을 자유롭게 선택할 수 있습니다.
널(null) 값에 대한 3치 논리
SQL은 널(null) 값을 처리하기 위해 참, 거짓, 알 수 없음(unknown)에 대한 조건을 평가합니다. 이는 비교, WHERE 필터링 및 집계에 영향을 미치며, 미묘한 쿼리 오류의 일반적인 원인입니다.

Clinical relevance

SQL은 컴퓨팅에서 가장 널리 사용되는 언어 중 하나입니다. 비즈니스 애플리케이션, 분석 및 웹 서비스를 지원하는 거의 모든 관계형 데이터베이스의 인터페이스이며, 관계형 대수는 쿼리 최적화 프로그램이 SQL 쿼리를 효율적으로 재작성하고 계획하는 데 사용하는 이론적 도구입니다.

History

코드(Codd)의 1970년 논문은 관계형 대수와 계산을 소개했습니다. IBM의 System R 프로젝트에서 챔벌린(Chamberlin)과 보이스(Boyce)는 SEQUEL(1974)을 설계했으며, 이는 나중에 SQL로 이름이 변경되어 더 접근하기 쉬운 선언적 언어가 되었습니다. SQL은 1986년부터 ANSI와 ISO에 의해 표준화되었으며, 관계형 대수에 기반을 두면서도 연속적인 표준을 통해 확장되었습니다.

Key figures

  • Edgar F. Codd
  • Donald D. Chamberlin
  • Raymond F. Boyce

Related topics

Seminal works

  • codd1970
  • chamberlin1974
  • garciamolina2008

Frequently asked questions

SQL은 관계형 대수와 정확히 같습니까?
아닙니다. SQL은 관계형 대수 및 계산에 기반을 두지만, 주요 방식에서 차이가 있습니다. SQL은 다중 집합(백) 의미론을 사용하여 중복이 나타날 수 있고, 그룹화 및 집계를 추가하며, 3치 논리로 널(null) 값을 지원하고, 순수 대수에는 없는 절차적 및 데이터 정의 기능을 포함합니다.
실제로 SQL이 사용된다면 관계형 대수를 왜 배워야 합니까?
관계형 대수는 쿼리 최적화의 형식적 모델입니다. 데이터베이스 시스템은 SQL을 대수와 유사한 표현식으로 변환하고 동등성 규칙을 적용하여 효율적인 계획을 찾습니다. 대수를 이해하면 특정 쿼리 재작성이 유효한 이유를 설명하고 쿼리 동등성 및 비용에 대해 추론하는 데 도움이 됩니다.

Methods for this concept

Related concepts