Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

개발자입니다

[비트캠프] 66일차(14주차3일) - SQL(ER Diagram, JOIN) 본문

네이버클라우드 AIaaS 개발자 양성과정 1기/DBMS, SQL, JDBC, Servlet

[비트캠프] 66일차(14주차3일) - SQL(ER Diagram, JOIN)

끈기JK 2023. 2. 8. 08:32

 

테이블 조인 : 테이블 ERD

 

 

stnt 와 lect 는 n : n (다 대 다) 관계이다. 이는 데이터베이스로 표현할 수 없다. 이를 1:다 로 변환하기 위해 lect_appl 을 생성한다.

 

 

 

테이블 관계 : addr  I····OI〈  memb

 

식별(identifying) 관계는 실선 : FK = PK

비식별(non-idenfitying) 관계는 점선 : FK ≠ PK

 

1:多 일 경우 1 이 부모이다. 부모가 多가 되는 경우는 없다.

 

 

 

테이블 관계 : stnt  IO    I  memb

 

stnt 의 mno 를 pk 및 fk 로 설정한다.

stnt 는 자식테이블, memb 는 부모테이블이다.

 

 

 

테이블 관계 : stnt  〉IO    OI〈  lect 

 

stnt 와 lect 는 다 대 다 관계이다. 이때 관계 테이블인 lect_appl을 생성한다.

관계 테이블 : 두 테이블의 관계를 저장한다. 보통 다대다 관계를 해소하기 위해 만든다.

 

 

 

DB 모델링

 

DB 모델링 → 데이터를 잘게 쪼갠다. 데이터 간의 관계를 정의한다. → 데이터 중복 제거

데이터 중복의 문제

① 데이터 관리가 힘들다.

     - 여러 곳에 같은 데이터가 저장

     - 변경하려면 여러 곳을 변경해야 한다.

② 변경 누락 발생 → 데이터 결함 발생

 

 

 

JOIN

 

① cross join(= cartesian join)

좌변과 우변 결합의 모든 경우의 수를 결과로 리턴한다.

 

② natural join

같은 이름을 가진 컬럼의 값을 기준으로 두 테이블의 데이터를 합친다.

 

③ join ~ on

두 테이블의 데이터를 조인하는 기준 컬럼의 이름이 다를 경우 사용하는 문법 (pk 컬럼명 ≠ fk 컬럼명)

 

 

 


 

조언

 

*함수 따로 공부하지 마라. 현업 선배가 사용한 함수가 새로운거 나오면 그때 찾아보고 공부하라. 5년차 쯤 되면 함수만 따로 공부하라.

*비즈니스 로직(업무 관련 로직)은 자바에서 다루고 join 정도만 SQL 에서 다루라.

*SI 10년차 됐을때 네카라쿠배 자회사로 옮기면 괜찮다.

 

 


 

과제

 

/