데이터베이스

    M:N 관계

    M:N 관계 M:N 관계는 관계를 가진 양쪽 당사자 모두에서 1:M관계가 존재할 때 나타나는 모습이다. 학생과 과목의 관계를 예로 들 수 있다. 학생 입장에서는 여러 과목을 수강할 수 있고, 과목 입장에서 보면 여러 학생이 하나의 과목을 선택할 수 있다. 즉, 어느 쪽에서 봐도 다:다 관계가 성립된다. 이 관계는 선천적으로는 테이블과 테이블 사이에 특별한 관계가 없다. 각 테이블은 스스로 존재할 뿐이다. 그런데 이들 사이에 어떤 관계를 맺어 줌으로써 관계가 형성된다. 1. M:N 관계의 문제점 M:N 관계를 그림으로 그려보면 다음과 같다. 위 그림을 보면 각 테이블마다 PK가 존재하는 걸 볼 수 있다. 그러나 테이블 간의 관계가 성립되려면 PK 이외에도 FK가 존재해야 한다. FK를 생성한 테이블은 다음..

    1:M 재귀적 관계

    트리구조처럼 무한히 확장해나가는 모델을 데이터베이스로 어떻게 표현할까? 1:M 재귀적 관계 분류체계 또는 Directory 구조와 같이 1:M 관계가 끊임없이 나아가는 모델이 있다. 이럴 경우에 자식 테이블을 무한히 만들어주어야만 할까? 테이블 안에 PK와 FK를 같이 만들어 줌으로써 해결할 수 있다. 회사와 부서 관계를 예시로 들어보자. 회사에는 여러 부서가 있고, 부서 속에 또 여러 부서가 존재할 수 있다. (EX. 삼성전자 > 총무부 > 총무1팀 > 총무1과...) 이 경우 '상위부서ID'란 Column을 만든 뒤 PK인 부서 ID를 참조함으로써 무한히 확장해나가는 1:M 관계를 표현할 수 있다. 결국 하나의 테이블 안에 모든 부서 간의 1:M 관계를 표현할 수 있게 된다. 이렇게 설계된 테이블을 ..

    1:M 관계

    1:M 관계 1:M 관계는 한쪽이 관계를 맺은 쪽의 여러 객체를 갖는 것을 의미한다. 1:M 관계는 가장 흔하게 나타나는 매우 일반적인 형태이다. 대표적인 예로 부모와 자식 관계, 컴퓨터 Directory 구조가 있다. 테이블은 서로 선천적으로 관계를 갖고 있다.(RDBMS) 1:M 관계는 부모와 자식 관계와 같다. 부모는 자식이 없어도 되고, 자식이 1명 또는 여러명일 수도 있다. 그러나 자식은 부모가 단 한명이어야 하며, 부모없는 자식은 존재하지 않는다. 데이터베이스에서 1:M 관계를 설정하면 부모없는 자식이 생기는 것을 막아준다. 학년 테이블과 반 테이블을 예로 들어볼 수 있다. 여기서 학년 테이블이 부모, 반 테이블이 자식이 된다. 학년테이블의 PK인 학년번호가 반 테이블의 FK인 학년번호와 연결..