SQLD/데이터 모델과 SQL

관계와 조인의 이해

조찬국 2024. 3. 25. 18:15
728x90

1. 조인

- 식별자를 상속해 이를 이용해 데이터를 결합해 여러 엔티티에서 필요한 데이터를 한번에 가져오는 것

 

회원 엔티티

회원 ID 이름
A0001 조찬국
A0002 박창기
A0003 하이늘

 

회원 연락처 엔티티

회원 ID 구분코드 연락처
A0001 휴대폰 010-1234-5678
A0001 집전화 062-111-2222
A0002 휴대폰 010-3333-4444
A0003 휴대폰 010-3333-4444

 

회원과 회원연락처 두 엔티티는 1:N 관계라고 하자. 

만약, 회원 ID가 ` A0001 `인 회원의 이름과 휴대폰 번호는 어떻게 알까?

사람이라면 그냥 회원 엔티티에서 회원ID보고 회원 연락처 엔티티의 id와 구분코드에 휴대폰이 있는 행을 찾은 후 그 행에서 연락처 번호를 찾을 것이다. 이러한 과정을 컴퓨터에서도 시행 하는데 이때 사용하는 것이 조인이다.

SELECT A.회원ID, A.이름, B.구분코드, B.연락처

FROM 회원 as A, 회원역락처 as B,

WHERE A.회원ID = B.회원ID  --두 엔티티를 연결
	AND A.회원ID = 'A0001A
   	AND B.구분코드 = '휴대폰'

 

위의 코드는 두 엔티티를 식별자를 이용해 엔티티를 연결한 후 필요한 데이터를 한번에 가져왔다.

 

이해를 돕기 위해, 심부름을 한다 가정하자.

 

어머니가 대파를 사오라고 심부름을 시키고, 마트에 갔다왔다. 갔다오자마자 마늘을 마트에 사오라고 하셨다. 또 도착하자 두부를 마트에서 사오라고 하셨다. 이렇게 총 3번의 심부름을 하게 되는데 조인을 사용하면, 대파,마늘,두부를 한번만 마트에 들르게 된다. 

 

위의 예시를 통해 조인의 중요성을 알게 된다. 조인은 성능을 높이는 중요한 역할을 하게된다.

 

 2. 모델이 표현하는 트랜잭션의 이해

트랜잭션: 데이터베이스의 논리적인 연산 단위 혹은 논리적인 업무 단위

 

트랜잭션 예시

 

 

3. SQL 기본

데이터 베이스: 데이터를 일정한 형태로 저장해 놓은 것 (ex: 엑셀)

데이터 베이스 관리 시스템 (DBMS): 기존 데이터베이스 기능에 추가로 데이터 손상 방지 및 복구, 인증된 사용자만 접근 등 추가기능을 지원하는 관리 시스템

관계형 DBMS(Relational DBMS, RDBMS): 테이블로 데이터를 관리하고 테이블간 관계를 이용해 데이터를 정의하는 방식으로 대부분의 기업이 사용한다.(Oracle,mysql, h2 등)

테이블: RDBMS에서 실제 데이터가 저장되고 조회되는 2차원 배열 형태의 저장소 공간

 

 

엔티티,속성,인스턴스 => 테이블, 컬럼,튜플

 

개념적       =>     논리적       =>      물리적 

(엔티티)            (릴레이션)            (테이블)

 

SQL(Structured Query Language)

: RDBMS에서 데이터 정의,조작,조회,제어 등을 하기 위해 사용하는 언어

728x90