구조화된 데이터는 하나의 테이블로 표현할 수 있다.
사전에 정의된 테이블을 relation
이라고도 부르기 때문에, 테이블을 사용하는 데이터베이스를 관계형 데이터베이스(Relational database)
라고 한다.
데이터(data)
: 각 항목에 저장되는 값.테이블(table; 또는 relation)
: 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적된다.칼럼(column; 또는 field)
: 테이블의 한 열.레코드(record; 또는 tuple)
: 테이블의 한 행에 저장된 데이터.키(key)
: 테이블의 각 레코드를 구분할 수 있는 값.관계형 데이터베이스
는 엔티티끼리 관계를 맺을 수 있어서 관계형 DB
라고 말한다.
엔티티 Entity
관계
는 두 엔티티가 서로 관련이 있을 때를 말한다.
테이블과 테이블 사이의 관계는 다음과 같다.
하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우.
(반드시 단 하나의 관계를 갖는다.)
1:1 관계는 자주 사용하지 않는다.
하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우.
1:N(일대다) 관계는 관계형 데이터베이스에서 가장 많이 사용한다.
1:N 관계는 N:M관계처럼 새로운 테이블(조인 테이블)을 만들지 않는다.
여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우.
N:N(다대다) 관계
를 위해 스키마를 디자인할 때에는, Join 테이블을 만들어 관리한다.
1:N(일대다) 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있습니다.
서로의 PK
를 자신의 외래키 컬럼으로 갖고 있어야 한다.
일반적으로, N:M
관계는 두 테이블의 대표키를 컬럼으로 갖는 또다른 테이블을 생성해서 관리한다(조인 테이블).