230406(목) 모각코 제5회 디비술사의 디비디비딥
장수미2023. 4. 6. 16:45
안녕하세요 DB술사입니다.
개강한지 벌써 한달이 지났군요...
4월부터
새 마음 새 뜻으로 공부해볼까요?
DB술사의 DB를 Deep하게 공부해봅시다.
그래서 디비디비딥ㅋㅋ
0. 개요
오늘은 개념적 설계에 대해 공부해볼게요.
(매우 중요)
먼저 개념적 설계에 주요한 개념에는
6가지가 있습니다.
하나하나 알아보도록 합시다.
1. 속성을 갖는 관계 타입
어떤 직원이 어떤 프로젝트에 참여한다
를 개념적으로 설계하면 다음과 같이 그릴 수 있습니다.
하지만 모 직원이 프로젝트에 참여한 시간은?
직원에도, 프로젝트에도 넣기 애매합니다.
그럴때 참여 릴레이션에 시간 속성을 넣어주면 됩니다.
릴레이션도 속성을 가질 수 있군요.
안가져도 상관 없답니다.
벤다이어그램은 로지컬 레벨에서의 테이블인데요
위의 개념적 설계를 아래와 같이 그릴 수 있다는 뜻입니다.
근데 다 직원이랑 가 직원은 30시간씩 똑같이 일했는데
이렇게 하나로 묶어주면
한번만 적으면 되고
더 좋은거 아님?
ㅎㅎ
실제로 교수님께 했던 질문인데
극대노하셨습니다.
절대 안됩니다.
본래 의미가 사라지기 때문이죠.
7, 30, 가 인지
7, 30, 다 인지
알 수가 없지요?
2. 존재 종속 관계 타입
존재 종속...!
이름에서부터 느낌이 옵니다.
존재 종속 관계에는
주 개체(dominant entity)와
종속 개체(subordinate entity)가
존재합니다.
종속 개체는 주 개체의 존재에 좌우됩니다.
즉
주 개체가 삭제되면
종속 개체도 따라서 모두 사라져야합니다!
.
.
.
교수님: 부모가 죽으면 자식도 죽어야 되나?
??? : ??내??
교수님: 부모가 죽으면 자식도 죽냐니까?
??? : 어.. 죽...죽나?요?
ㅋㅋ
안죽지요? 이 멍청아
부모와 자식은
존재 종속 관계가 아닌것이지요.
왕이 죽으면 그 아래 딸린 사람들도
같이 순장되었지요?
그건 존재 종속 관계입니다.
덧붙여서!
정규 개체 타입(strong entity type)은
주 개체가 속한 개체 타입이고
키가 있습니다.
약한 개체 타입(weak entity type)은
종속 개체가 속한 개체 타입이고
키가 없고 부분키만 있습니다.
(부분키는 키가 아닙니다. 알고계시지요?)
부분키라는 개념이 나오는데요
축구 선수의 등번호를 생각하면 됩니다.
우리 팀 1번! 하면 홍길동! 하고 나오겠지요?
하지만 모든 팀에다가 대고 1번 나와!
하면 팀 수만큼 결과가 나오겠지요?
즉
한 개의 주 개체(팀)와 관련된
종속개체(선수)를
유일하게 식별할 수 있는 속성!
그게 바로 부분키(등번호)
입니다.
그림을 보며 좀 더 자세하게 알아봅시다.
어느 회사는 직원의 부양가족의 정보를 가지고 있습니다.
직원은 주개체 - 강한 객체 타입입니다.
직원 가족은 종속 개체 - 약한 개체 타입입니다.
직원 가족은 당연히 직원과 연결되어 있어야하겠지요?
따라서 전체참여이고
(그림에서의 1:n),
직원이 삭제되었다면(퇴사했다면)
직원 가족도 같이 삭제됩니다.
직원가족의 부분키는 이름입니다.
(뒤 내용을 더 배우면 여러 개를 합해서
키로 설정하는데 일단 여기선 아닙니다.)
위의 그림을 보며
직원 2의 김지수라고 하면
누군지 바로 알 수 있습니다.
3. 순환 관계 타입
이름에서 느낌이 옵니다... Recursive...
사수와 부사수 관계 예시를 보며
배워봅시다!
저도 한때 소소기업을 다닐때
제가 사수였던 적이 있습니다.
사실 그런 거창한 개념은 없었는데
하도 그 날 아침에 관둔다 하고 단톡방을 나가는
어린 대학생들이 진짜많다보니
제가 말단 중에서는
연차가 꽤나 있는 편이 된거죠...
(이게... 엠제트? 인건가?)
참고로 제 사수는
대표님(...)이었습니다.
저랑 같은 업무를 맡은 사람은
대표님 뿐이었거든요...
ㅋ
어쨌든 살펴봅시다
1은 2의 사수
2는 3의 사수
입니다.
3은 신입인가 보군요.
1->2->3
순으로 짬이 찼다고 할 수 있습니다.
저로 치면
대표 -> 저 -> 귀요미 신입조교
로 볼 수 있겠군요
위와같이
동일한 개체 타입은 한번만 표현해서
할일을 줄여보아요.
4. 다원 관계 타입
매우 간단합니다.
근무에 딸려있는게
부서, 직원, 장소 세개죠?
이때까지 본 것과 달리
두 개 이상도 가능하다는 말입니다.
세개 이상의 개체 타입이
하나의 관계에 차지한다.
라고 말할 수 있습니다.
예시로는
디자인 부서의 장 모 직원이 대표님 방(...)에서 일한다.
라고 말할 수 있습니다.
5. 다중 관계 타입
두 개체 타입 사이에
둘 이상의 관계 타입이 존재할 수 있습니다.
예시를 보면 쉽습니다.
디자인 부서에는 대표와 장모씨(즉 여러명)가 존재할 수 있고 - 1:n
관리자는 대표님 1명입니다. - 1:1
6. IS-A 관계 타입
이즈 어....
어디서 많이 들어봤지요?
EER, Extented E-R model로
확장된 개체-관계 모델에는
객체 지향 개념이 추가 되었습니다.
이미 알고 계시는 개념과 같습니다.
상위 개념(supertype)과
하위 개념(subtype)이 존재합니다.
종류는 일반화와 세분화가 있는데 살펴봅시다.
6-1. 일반화, bottom-up
우리 서비스에는
개인회원과 법인회원만이 존재합니다.
어떻게 아냐면!
개인회원 + 법인회원은
20000+500 = 20500
입니다.
딱 맞습니다.
(빨간색으로 표시된)
겹선은
전체참여를 의미합니다.
세분화도 보고
마저 설명해볼게요.
6-2. 세분화, top-down
우리 서비스에는
개인회원과 법인회원 외에 다른 회원도 존재합니다.
어떻게 아냐면!
20000 + 500 = 20500 < 21500
둘이 더해도 전체 회원수보다 적습니다.
그래서 알 수 있었어요 호호
(빨간색으로 표시된)
선은 부분 참여를 의미합니다.
이게 대체 무슨 의미일까요?
6-3. 세분화와 일반화
문제를 하나 내겠습니다.
세분화와 일반화중 더 큰 개념은 무엇일까요?
저는 아직도 헷갈리는데요...
세분화가 더 큰 개념입니다.
왜일까요?
모든 토끼는 동물이지만
모든 동물이 토끼인 것은 아닌 것처럼
이와 비슷한 개념입니다.
계속해서 설명을 해보겠습니다.
세분화는 쉽게 말해서
'여지'를 준다.
입니다.
20000 + 500 = 20500 < 21500
여기엔 1000명의 여지가 있습니다.
개인회원과 법인회원 외에도
외국인회원, 외계인회원, 강아지회원, 고양이회원
원한다면
다 들어올 수 있습니다.
저는 토끼 회원이 좋을 것 같습니다.
일반화는 더이상의 여지가 없습니다.
20000+500+1000=21500
꽉 차버렸읍니다.
여기에는
토끼회원이 들어올 수 있는
여지가 없습니다...
ㅠㅠ
동물 - 다른 동물이 될 여지가 있음
토끼 - 이미 토끼임
비유가 별로긴 한데
더 큰 개념인게
부디 이해가 되셨길 바랍니다.
.
.
.
참고로
그럼 세분화에서
여지는 왜 주는 걸까요?
= 무슨 회원이 있는지
다 적으면 안되나요?
됩니다
다 적어도 되는데
굳이 적기 싫은데
적을 필요 없는 것입니다.
아하!
그러면 회원 수를 딱맞게 바꾸면
겹선(전체참여)로 적어도 되는 것일까요?
ㅋㅋ 전 천재인듯
실제로 교수님께 했던 질문인데
극대노하셨습니다2.
안됩니다.
세분화의 꽃은
'여지를 준다'입니다.
마음대로 바꾸시면 안됩니다.
세분화는 언제든지
개인회원이거나
법인회원이거나
어느 회원인지 (우리는) 알 수 없는
회원이 들어올 수 있다.
를 염두해두어야 됩니다.
토끼회원이 들어온다면
언제든지 20,501명이 될 수 있습니다.
처음으로
스킵없이 개념을 다 정리했는데요...
그래서 크나큰 스압이 예상됩니다.
.
.
.
이 글은
교수님의 피피티 내용을 바탕으로
작성되었습니다.
혹시라도 문제가 되면
내리도록 하겠습니다.
.
.
.
저는 요즘 1분반 답변 담당입니다.
저한테 자꾸 질문을 하세요.
아무래도 교수님께서
제가 디비술사인걸 알아보신걸까요?
열심히 수련해야겠습니다.
감사합니다.
'장수미' 카테고리의 다른 글
230504(목) 모각코 제7회 부상투혼(負傷鬪魂) 그리고 MySQL WordBench unconnected 이슈 해결 (5) | 2023.05.07 |
---|---|
230413(목) 모각코 제6회 이번 퀴즈의 최종 점수는 4.00/10.00입니다. (2) | 2023.04.14 |
230330(목) 모각코 제4회 DB술사의 OS 숏퀴즈 점수 공개 (2) | 2023.03.31 |
[번외] 육회비빔밥, 그 깊은 감동에 대하여 (feat. 과사의 축복) (15) | 2023.03.29 |
230323(목) 모각코 제3회 DB술사의 진지한 DB 리뷰 (9) | 2023.03.22 |