맨위로가기

관계 (데이터베이스)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

관계 (데이터베이스)는 여러 속성(attribute)으로 구성되며, 각 속성은 특정 도메인 값을 갖는 데이터 구조를 의미한다. 관계형 데이터베이스에서 데이터를 저장하고 조작하는 데 사용되는 기본 구성 요소인 관계 변수는 기본 관계 변수와 파생 관계 변수로 분류된다. 기본 관계 변수는 다른 관계 변수에서 파생되지 않은 독립적인 변수이며, 파생 관계 변수는 하나 이상의 관계 변수에 관계 대수 또는 관계 논리 표현식을 적용하여 생성된다. SQL에서는 CREATE TABLE 문을 사용하여 기본 관계 변수를 정의하고, CREATE VIEW 문을 사용하여 파생 관계 변수를 정의한다.

더 읽어볼만한 페이지

  • 관계형 모델 - 관계 논리
    관계 논리는 관계 모델 기반 데이터베이스 언어로서 관계 대수와 논리적으로 동일하며, 튜플 관계 논리와 도메인 관계 논리로 나뉘어 쿼리 최적화에 사용된다.
  • 관계형 모델 - 관계형 데이터베이스
    관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하며, 1970년 E.F. 코드에 의해 정의되었고, RDBMS를 통해 ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용하여 다양한 분야에서 사용된다.
  • 데이터 모델링 - 빌딩 정보 모델링
    빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다.
  • 데이터 모델링 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
관계 (데이터베이스)
데이터베이스 관계 정보
설명데이터베이스 관계는 속성으로 인덱싱된 값의 튜플 집합이다.
정의관계는 수학적 의미로 사용된다.
특징튜플은 속성에 왼쪽에서 오른쪽으로 순서가 없다.
컬럼 수데이터베이스 관계는 50, 100, 심지어 150개의 컬럼을 가질 수 있다.

2. 예제

관계는 여러 개의 속성(attribute)으로 구성되며, 각 속성은 특정 도메인(domain)에서 정의된 값을 가진다. 예를 들어, 세 개의 속성으로 구성된 관계의 헤더(header)는 다음과 같이 표현할 수 있다.

3개의 속성으로 구성된 헤더의 예
속성명도메인명
ID정수
이름문자열
주소문자열



이 헤더에 따른 관계값, 즉 튜플(tuple)의 집합 예시는 다음과 같다. 이해를 돕기 위해 테이블 형태로 나타낸다.

같은 형의 튜플로 구성된 실제 관계값의 예
ID (정수)이름 (문자열)주소 (문자열)
102홍길동전라남도, 장성군
202임꺽정경기도, 양주시
104신사임당강원특별자치도, 원주시
152주논개전라남도, 장수군



관계 이론에서 중요한 점은 헤더를 구성하는 속성들이나 관계를 구성하는 튜플들 모두 정해진 순서를 가지지 않는다는 것이다. 따라서 위 예시에서 '이름' 속성이 'ID' 속성 다음에 위치한다거나 '주소' 속성이 세 번째 속성이라고 단정할 수 없다. 마찬가지로, 특정 튜플을 지칭할 때 '임꺽정의 튜플'이 두 번째라거나 '홍길동의 튜플'이 첫 번째라고 말하는 것은 관계 모델의 정의에 맞지 않다. 이는 특정 순서를 가정하는 SQL 테이블의 행(row)이나 열(column) 개념과는 차이가 있다.

3. 관계 변수

관계 변수(relvar)는 관계형 데이터베이스에서 데이터를 저장하고 조작하는 데 사용되는 기본적인 구성 요소이다. 데이터베이스는 현실 세계의 변화를 반영하기 위해 이러한 명명된 관계 변수들로 구성된다. 관계 변수는 크게 기본 관계 변수(base relation variable)와 파생 관계 변수(derived relation variable)의 두 가지 종류로 나뉜다.

기본 관계 변수는 다른 관계 변수로부터 파생되지 않은 원래의 데이터를 나타내는 변수이다. 반면, 파생 관계 변수는 하나 또는 여러 개의 기존 관계 변수에 관계대수나 관계논리 표현식을 적용하여 유도된 변수이다. 각 관계 변수의 구체적인 정의와 SQL에서의 사용 예시는 하위 섹션에서 자세히 설명한다.

3. 1. 기본 관계 변수

관계 변수에는 '''기본 관계 변수'''(base relation variable)와 파생 관계 변수(derived relation variable)의 두 가지 종류가 있다.

'''기본 관계 변수'''는 다른 관계 변수로부터 파생되지 않은, 원래가 되는 관계 변수를 의미한다. 관계 데이터베이스의 데이터베이스 언어SQL에서는 기본 관계 변수와 거의 같은 의미로 '''기본 테이블'''(base table)이라는 용어를 사용한다.

기본 관계 변수는 데이터 정의 언어(DDL)를 사용하여 정의할 수 있다. SQL에서는 CREATE TABLE 구문을 사용하여 기본 관계 변수(기본 테이블)를 다음과 같이 정의한다.



CREATE TABLE 인명록 (

ID INTEGER,

성명 CHAR(40),

주소 CHAR(200),

PRIMARY KEY (ID)

)


3. 2. 파생 관계 변수

관계 변수는 '''기본 관계 변수'''와 '''파생 관계 변수''' 두 가지로 나눌 수 있다.[1] 파생 관계 변수는 하나 또는 여러 개의 기존 관계 변수(relvar)에 관계대수나 관계논리 표현식을 적용하여 새로운 관계 변수 값을 파생시킨 것이다.[1][2][3] 이는 다른 관계 변수로부터 유도된 관계 변수를 의미한다.[3]

파생 관계 변수는 '가상 관계 변수(virtual relvar)'라고도 불리지만,[2] SQL에서는 일반적으로 '''뷰(view)'''라는 용어로 더 잘 알려져 있다.[1][2][3] 뷰는 관계 대수 또는 관계적 미적분 연산자를 사용한 표현식으로 정의되는데, 이 표현식은 하나 이상의 관계를 기반으로 평가될 때 새로운 관계를 생성한다.[2]

파생 관계 변수는 데이터 정의 언어(DDL)를 사용하여 정의할 수 있다.[1][3] SQL에서는 CREATE VIEW 구문을 사용하여 파생 관계 변수, 즉 뷰를 정의한다.[1][2][3] 예를 들어, 'List_of_people'이라는 기본 테이블(기본 관계 변수)이 있을 때, 이 테이블에서 특정 조건(예: 주소가 '전라남도'로 끝나는 사람)을 만족하는 데이터만 보여주는 파생 관계 변수(뷰)를 다음과 같이 정의할 수 있다.



CREATE VIEW List_of_Jellanamdo_people AS (

SELECT ID, Name, Address

FROM List_of_people

WHERE Address LIKE '%, 전라남도'

)

[1]

이처럼 파생 관계 변수(뷰)는 기본 데이터를 직접 저장하지 않고, 정의된 표현식에 따라 기본 관계 변수로부터 데이터를 유도하여 보여주는 역할을 한다.

참조

[1] 간행물 Further normalization of the database relational model Prentice-Hall 1972-10
[2] 간행물 Database in Depth O'Reilly 2005-05
[3] 간행물 The Relational Model for Database Management, Version 2 Addison-Wesley
[4] 학술지 A Relational Model of Data for Large Shared Data Banks http://www.seas.upen[...] 1970-06
[5] 서적 Principles of Database and Knowledge-Base Systems https://books.google[...] Jeffrey Ullman 2012-11-28
[6] 서적 Database Tuning: Principles, Experiments, and Troubleshooting Techniques https://books.google[...] Morgan Kaufmann
[7] 서적 Database Systems: Design, Implementation, and Management https://books.google[...] Cengage Learning 2012-11-28
[8] 서적 Information Modeling and Relational Databases https://books.google[...] Morgan Kaufmann 2012-11-28
[9] 서적 Gis: A Computing Perspective https://books.google[...] Taylor & Francis 2012-11-22
[10] 서적 Principles of Database and Knowledge-Base Systems http://books.google.[...] Jeffrey Ullman 2012-11-28
[11] 서적 Database Tuning: Priciples, Experiments, and Troubleshooting Techniques http://books.google.[...] Morgan Kaufmann
[12] 서적 Introduction to Databases With Web Applications http://books.google.[...] Pearson Education
[13] 서적 Information Modeling and Relational Databases http://books.google.[...] Morgan Kaufmann
[14] 서적 Gis: A Computing Perspective http://books.google.[...] Taylor & Francis 2012-11-22



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com