첫번째 프로젝트가 시작되었다
사람인원수가 지금까지 경험해본 프로젝트보다 적어서 내 손을 조금 많이 타는 프로젝트가 될 것 같다.
SQLD 자격증도 있는 사람이지만.. ERD 설계를 많이 해보지않아 오늘 팀원의 도움을 많이 받았다. 공부하자
그 중에서 식별, 비식별 관계와 매핑 종류에 대해 알아본다.
RDBS, 즉 관계형 DB를 사용하면 다른테이블의 키를 또 다른 테이블의 외례키로 공유해서 사용하는 경우가 있는데, 여기서 식별, 비식별이 나온다.
파란선이 식별관계, 빨간선이 비식별관계를 뜻한다.
그래서 식별 비식별이 뭐냐?
식별 비식별을 이해하기 전 먼저 알아야 할 부분이 있다.
부모테이블과 자식테이블이다.
부모테이블의 기본키
가 자식테이블에서 외래키
로 참조된다.
반대로 자식테이블은 부모테이블에서 제공한 데이터를 외래키를 통해 참조한다.
쉽게말해 부모테이블은 중요한 데이터!
를 기본키
로 가지고 있는 테이블이고, 자식테이블은 그 중요한 데이터를 쓰고싶어하는 테이블이다!
쓰는 방법이 바로 외래키로 참조하는 방법이다.
식별 비식별은 바로 이 부모, 자식 테이블에서 발생한다.
식별관계는 아까말한 부모테이블의 기본키를 자식테이블이 자신의 기본키를 만들때 사용하는 관계이다.
Order 테이블의 기본키가 order_id 이고, OrderItem 테이블의 기본키가 order_id와 item_id로 구성된다면 이는 식별관계이다.
부모테이블과 자식테이블이 식별관계일 경우 이 관계는 강한 의존성
을 띈다고 말할 수 있다.
서로 강하게 의존하고 있기때문에 부모테이블이 삭제되면 자식테이블의 관련 레코드도 삭제를 받거나 다른 영향을 받을 수 있다.
비식별 관계는 반대로 약한 의존성
을 띄는 관계다.
자식테이블이 부모테이블의 기본키를 참조는 하고있지만 자신의 기본키에 포함하지는 않고 오로지 참조만 하는 관계다.
Employee이 Department 테이블의 기본키인 dept_id를 참조하고있지만 Employee 테이블의 기본키는 dept_id가 포함되지 않고 그냥 emp_id 일때 이는 비식별 관계이다.
ERD 표기법이다. ERDCloud 안에 여러 매핑을 설정할 수 있는 관계선들이 존재했지만 뭔지 다 까먹었다..
위 그림을 예시를 들어 정리했다! 더 잘 이해된다. 👍
1. 가장 위에 있는 관계는 1대1 관계이다. A와 B가 각각 1대1로 연결되어있어야한다는 의미이다.
각각 사람마다 각기다른 주민등록번호가 주어진다. 한 번호에 두 사람이있지도 않고, 한 사람이 두 번호를 가지고 있지도 않는다.
2. 두번째는 1대다 관계이다. A는 여러 B와 연결될 수 있다.
나는 왕지초등학교를 졸업했다. 6학년때 1반이였는데 1반이라는 한 반 안에 30명이라는 학생들이 소속되어있었다. 이런 관계가 반과 학생의 1대다 관계이다.
3. 세번째는 선택적 1대1관계이다. 관계가 맺어진다면 오직 하나만 있고 아예없을 수 있다.
한국에서 한 사람은 주민등록증을 하나만 가질 수 있다. 미성년자의 경우 주민등록증이 없는 경우가 생길 수 있다.
4. 네번째는 선택적 1대다관계이다. 아예 없거나 1개이상의 데이터가 연결될 수 있다.
나는 대학시절 농구부, 코딩동아리, 밴드부에서 활동했지만 내 동기는 동아리가 하나도 없었다!
프로젝트하면서 어렵더라도 처음해보는것도 많이 도전해보고 모르는 부분을 확실히 인지하고 공부하고 싶다 ! 화이팅 !