관계형 데이터베이스 관계
관계형 데이터 베이스란?
데이터를 테이블 형식으로 저장하고 관리하며, 각 데이터간의 관계를 테이블 간의 관계로 표현하는 데이터베이스
기본적으로 SQL(Structured Query Language)언어로 데이터를 추가,수정 및 삭제 가능
이런 관계형 데이터 베이스에서 데이터간의 관계에 대해 알아보자.
여기서의 관계는 테이블간의 연결을 의미하고, 일반적으로 기본키와 외래키를 사용하여 정의된다.
여기서 다른 테이블의 기본키를 가져다가 외래키로 삼는다.
데이터 베이스에서 말하는 엔티티(Entity)는 자바에서 말하는 객체와 거의 유사하다.
자바의 객체는 생성자,속성(필드),메소드를 가질 수 있는데,
데이터베이스의 객체인 엔티티는 자바의 객체처럼 속성을 가질 수 있고, 다른 엔티티간의 관계를 가질 수도 있다.
예를 들어 학생 엔티티는 속성으로 학번, 나이, 학년 등을 가질 수 있다.
여기서 엔티티라는 말 대신에 데이터라는 말을 사용해도 맥락은 통용 된다.
관계의 유형
1. 일대일 관계(1:1 혹은 One-to-One)
하나의 엔티티가 다른 엔티티와 정확히 하나의 관계만 가지고 있는 경우.
예를 들어, 한 사람은 한개의 주민번호를 가질 수 있고, 한 주민번호는 한 명의 사람에게만 속할 수 있는 경우이다.
2. 일대다 관계(1:N 혹은 One-to-Many)
하나의 엔티티가 다른 여러 개의 관련된 엔티티를 가질 수 있다.
예를 들어, 부서와 직원의 경우, 부서에는 여러 직원이 포함 될 수 있지만, 보통 직원은 하나의 부서에만 포함되는 관계이다.
3.다대일 관계(N:1 혹은 Many-to-One)
다른 테이블의 여러 행이 한 테이블의 한 행과 관계를 가진다.
위의 2번 일대다 관계의 반대이다. 위에서 부서와 직원의 관계를 부서 입장에서 바라본 거라면, 직원과 부서의 관계를 직원 입장에서 바라보면, 여러 직원이 하나의 부서에 속할 수 있기 때문에 다대일 관계라고 볼 수 있다.
4.다대다 관계(N:M 혹은 Many-to-Many)
하나의 엔티티가 다수의 다른 엔티티와 관련되고, 그 반대도 가능 한 경우이다.
예를 들어, 학생과 과목의 경우 학생은 여러 과목을 수강 할 수 있고, 반대로 과목도 여러 학생을 가질 수 있다.