관계(데이터베이스)

Relation (database)
관계, 튜플, 속성은 각각 테이블, 행, 열로 표현된다.

관계형 데이터베이스 이론에서 관계란 원래 E. F. Codd에 의해 정의된 대로 [1]튜플 집합(d1, d2, ..., dn)이며, 여기서 각 요소 d는j 데이터 영역인 D의j 구성원이다. Codd의 원래 정의에도 불구하고, 그리고 수학에서의 일반적인 정의와는 달리, 관계의 튜플 요소들에 대한 순서는 없다.[2][3] 대신, 각 요소는 속성 값이라고 불린다. 속성은 도메인과 쌍을 이루는 이름이다(요즘에는 더 일반적으로 유형 또는 데이터 유형으로 언급된다). 속성 값은 해당 속성의 도메인의 요소와 쌍을 이루는 속성 이름이며, 튜플은 두 개의 고유한 요소가 동일한 이름을 가지지 않는 속성 값의 집합이다. 따라서 일부 계정에서 튜플은 이름을 값에 매핑하는 함수로 설명된다.

서로 다른 두 요소가 동일한 이름을 가지지 않는 속성 집합을 제목이라고 한다. 이는 모든 튜플에 고유한 제목이 있으며, 튜플의 도메인 요소가 사용되는 도메인과 쌍을 이루는 튜플의 이름 집합이라는 것을 상기 정의에서 따른다. 모두 같은 표제에 해당하는 튜플 세트이라고 한다. 따라서 관계는 본체와 쌍을 이루는 머리글이며, 관계의 머리글은 본체의 각 튜플의 머리글이기도 하다. 표제를 구성하는 속성 수를 학위라고 하는데, 이 용어는 튜플과 관계에도 적용된다. n투플이라는 용어는 n (n 0)의 튜플을 가리킨다.

E.F. 커드는finitary 관계, tuples의 n세트 S1S2, 약간의 텔레비전은 세트의 수학적 의미에서.... ,Sn.[4]그러므로n-ary 관계, Closed-World 어섬션에서 일부n-adic 조건자의 확장으로:해석되는 용어"관계"을 사용했다 모든 가능하며 그 n-tuples의 가치관, 해당하는 자유 변수를 대체하다.건축e 술어, 참된 것을 유지하는 명제가 관계에 나타난다.

관계 스키마라는 용어는 그 머리글의 관점에서 정의된 제약조건 집합과 쌍을 이루는 머리글을 가리킨다. 따라서 관계가 스키마의 제목을 가지고 있고 적용 가능한 제약조건을 충족한다면 관계 스키마의 인스턴스화라고 볼 수 있다.

때때로 이름을 포함하기 위해 관계 스키마를 사용한다.[5][6] 따라서 관계형 데이터베이스 정의(데이터베이스 스키마, 때로는 관계형 스키마라고도 함)는 명명된 관계 스키마의 집합으로 생각할 수 있다.[7][8]

구현에서 각 속성의 도메인은 사실상 데이터 유형이고[9] 명명된 관계 스키마는 사실상 관계 변수(짧은 경우에는 relvar)이다.

관계형 데이터베이스의 데이터베이스 언어SQL에서 관계는 테이블로 표현되며, 테이블의 각 행은 단일 튜플을 나타내고, 각 속성의 값이 열을 형성한다.

아래는 세 가지 명명된 속성을 가진 관계의 예다.정수 도메인의 ID' 및 문자열 도메인의 '이름' 및 '주소':

ID(Integer) 이름(문자열 주소(문자열)
102 요네자와아키노리 오키나와 나하 시
202 닐레이 파텔 센다이 시, 미야기 시
104 무라타마코토 구마모토시 구마모토시
152 마츠모토유키히로 오키나와, 오키나와

자유 변수를 나타내기 위해 속성 이름을 사용하는 이 관계의 술어는 "직원 번호 ID주소에서 이름 및 수명"일 수 있다. 관계를 조사해 보면 술어가 진실로 간직하고 있는 튜플이 네 개에 불과하다는 것을 알 수 있다. 그래서 예를 들면 종업원 102는 요네자와 아키노리라는 그 이름으로만 알려져 있고, 오키나와 나하 이외에는 다른 곳에 살지 않는다. 또 표시된 직원 4명 외에 이름과 주소를 모두 갖고 있는 직원은 없다.

신체의 정의에 의하면, 신체의 튜플은 어떤 특정한 순서로 나타나지 않는다 - '무라타 마코토'의 튜플은 '마츠모토 유키히로'의 튜플 위에 있다', '요네자와 아키노리'의 튜플은 최초의 튜플이라고 말할 수 없다. 유사한 코멘트가 SQL 테이블의 행에 적용된다.

표제의 정의에 따르면, 요소의 속성은 특정한 순서로 나타나지 않으며, 따라서 튜플의 요소도 나타나지 않는다. 표의 열에 대한 순서를 정의하는 SQL에는 이와 유사한 설명이 적용되지 않는다.

관계 변수

관계형 데이터베이스는 실제 세계의 변화에 대응하여 데이터베이스를 업데이트할 목적으로 명명된 관계 변수(관계 변수)로 구성된다. 단일 리바를 업데이트하면 해당 변수에 할당된 관계의 본문이 다른 튜플 집합으로 대체된다. 리바(relvar)는 기본 관계 변수파생 관계 변수의 두 종류로 분류되며, 후자는 가상 리바(virtual revar)라고도 하지만 일반적으로 단기 관점에서 언급된다.

기준 관계 변수는 다른 관계 변수에서 파생되지 않은 관계 변수다. SQL에서 용어 베이스 테이블은 대략 베이스 관계 변수와 동일하다.

관점은 관계 대수 또는 관계 미적분의 연산자를 사용한 표현으로 정의할 수 있다. 그러한 표현은 하나 이상의 관계에서 작동하며 평가될 때 다른 관계를 산출한다. 피연산자가 데이터베이스 변수에 할당된 관계인 경우 그 결과를 "파생된" 관계라고 부르기도 한다. 뷰는 그러한 표현식에 이름을 부여함으로써 정의되며, 따라서 이름은 이후에 변수 이름으로 사용될 수 있다. (따라서 표현식에 하나 이상의 기준 관계 변수가 언급되어야 함을 유의하십시오.)

DDL(Data Definition Language)을 사용하여 기준 관계 변수를 정의할 수 있다. SQL에서는 CREATE TABLE 구문은 기본 테이블을 정의하는 데 사용된다. 다음은 예다.

만들다 테이블 List_of_peops (  아이디 정수,  이름 CHAR(40),  주소 CHAR(200),  1차  (아이디) ) 

DDL(데이터 정의 언어)은 파생 관계 변수를 정의하는 데도 사용된다. SQL에서는 CREATE VIEW 구문은 파생 관계 변수를 정의하는 데 사용된다. 다음은 예다.

만들다 보기 List_of_Okinawa_사람 AS (  선택 아이디, 이름, 주소   From. List_of_peops   어디에 주소 맘에 들다 '%, 오키나와' ) 

참고 항목

참조

  1. ^ E. F. Codd (Oct 1972). "Further normalization of the database relational model". Data Base Systems. Courant Institute: Prentice-Hall. ISBN 013196741X. R is a relation on these n domains if it is a set of elements of the form (d1, d2, ..., dn) where dj ∈ Dj for each j=1,2,...,n.
  2. ^ C.J. Date (May 2005). Database in Depth. O'Reilly. p. 42. ISBN 0-596-10012-4. ... tuples have no left-to-right ordering to their attributes ...
  3. ^ E.F. Codd (1990). The Relational Model for Database Management, Version 2. Addison-Wesley. p. 3. ISBN 0-201-14192-2. One reason for abandoning positional concepts altogether in the relations of the relational model is that it is not at all unusual to find database relations, each of which has as many as 50, 100, or even 150 columns.
  4. ^ Codd, Edgar F (June 1970). "A Relational Model of Data for Large Shared Data Banks" (PDF). Communications of the ACM. 13 (6): 377–87. doi:10.1145/362384.362685. The term relation is used here in its accepted mathematical sense
  5. ^ Jeffrey D. Ullman (1989). Principles of Database and Knowledge-Base Systems. Jeffrey Ullman. pp. 410–. Retrieved 28 November 2012.
  6. ^ Dennis Elliott Shasha; Philippe Bonnet (2003). Database Tuning: Principles, Experiments, and Troubleshooting Techniques. Morgan Kaufmann. p. 124. ISBN 978-1-55860-753-8.
  7. ^ Peter Rob; Carlos Coronel, Peter Rob (2009). Database Systems: Design, Implementation, and Management. Cengage Learning. pp. 190–. ISBN 978-1-4239-0201-0. Retrieved 28 November 2012.
  8. ^ T. A. Halpin; Antony J. Morgan (2008). Information Modeling and Relational Databases. Morgan Kaufmann. pp. 772–. ISBN 978-0-12-373568-3. Retrieved 28 November 2012.
  9. ^ Michael F. Worboys (1995). Gis: A Computing Perspective. Taylor & Francis. pp. 57–. ISBN 978-0-7484-0065-2. Retrieved 22 November 2012.