데이터베이스

관계형 데이터베이스 관계

린예라 2024. 4. 7. 23:03

관계형 데이터 베이스란? 

데이터를 테이블 형식으로 저장하고 관리하며, 각 데이터간의 관계를 테이블 간의 관계로 표현하는 데이터베이스

 

기본적으로 SQL(Structured Query Language)언어로 데이터를 추가,수정 및 삭제 가능

 

이런 관계형 데이터 베이스에서 데이터간의 관계에 대해 알아보자.

여기서의 관계는 테이블간의 연결을 의미하고, 일반적으로 기본키와 외래키를 사용하여 정의된다.

 

여기서 다른 테이블의 기본키를 가져다가 외래키로 삼는다.

 

도서테이블의 author_id는 작가 테이블의 기본키인 author_id를 참조하는 외래키이다.

 

데이터 베이스에서 말하는 엔티티(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)

하나의 엔티티가 다수의 다른 엔티티와 관련되고, 그 반대도 가능 한 경우이다.

예를 들어, 학생과 과목의 경우 학생은 여러 과목을 수강 할 수 있고, 반대로 과목도 여러 학생을 가질 수 있다.