오늘의 학습 계획
_django 스파르타 강의 ㄷㄷ... 도저히 끝나지를 않는다. 다 볼 수가 없어! 흑흑
_이제는 일단 만들어야 한다 ㅠㅠ django 모듈을 사용한 로그인 회원가입까지만이라도 구현해서 제출하고 싶다.
기록하고 싶은 학습내용
_erd...너 도대체 뭐니?
Entity Relationship Diagram: 개체 관계 모델.
구조화된 데이터에 대한 일련의 표현....?
데이터 베이스의 구조를 한 눈에 알아보기 위해 쓴다..?
정보 시스템을 디자인 해 나가는 데 쓰는 모델.
DB를 개발하기 전에 보다 많은 아이디어를 도출 하고 설계에 대한 이해를 높이기 위해 하는 거구나
쿼리문 작성 시 그림을 보면서 하면 일 하기가 좋구나
다양한 데이터의 특징들을 알 수 있구난...
ERD를 이해하려면 E와 R의 의미를 숙지하는 게 중요한 거 같다.
1. Entity(개체) + Attribute(속성)
엔터티는 둥근 사각형으로 표현되는 아이들로, erd 그림의 주인공들이다. 이 엔터티들 사이의 관계를 나타내기 위해 마름모와 각종 화살표들이 들어간다. 마름모는 엔터티 사이의 관계를 나타내고, 선은 관계의 방향과 참여도를 나타냄.
속성. Attribute라는 것은, Entity 가지는 특성을 의미함. 예를 들어 학생 엔터티는 학번, 이름, 학점, 등록일자, 생일, 주소, 전화번호, 전공 등의 속성을 가질 수 있음.
Key Attribute는 다른 엔터티들과 중복되지 않는 고유한 값을 가지는 Attribute. 엔터티들을 식별할 때 사용 함.
Composit Attribute : 독립적인 어트리뷰트들이 모여 생성된 복합 어트리뷰트. 예시로 00시+00동+00아파트 라는 주소.
Multi-Valued Attribute: 하나의 Attribute 안에 여러개의 값을 가지는 Attribute. 하나의 영화가 속성으로 가진 장르가 로맨스,SF,호러 등 여러 장르를 포함할 수 있음. 하나의 포켓몬이 페어리, 고스트, 드래곤 타입일 수 있음.
Derived Attribute: 다른 어트리뷰트가 갖고 있는 값으로부터 유도된 속성. 전체 상품의 가격인 total 이라는 속성은 개별 상품의 가격 price * 수량 quantity 을 곱해서 계산된 값임.
2. Relationship
선에는 점선, 실선, 일반이 있음. 학생이라는 엔터티와 학생의 주소라는 엔터티가 있을 때, 학생 엔터티에서는 테이블에 있는 '학번'이 primary key 되고, 학생의 주소 엔터티에서는 '학번'이 Foreign key가 됨. Foreign key로 쓰인다는 것은, 학생의 주소 엔터티 입장에서, 학번이라는 fk를 가지고 연결해서 학생 엔터티의 다른 데이터들도 참조할 수 있다는 의미임.
삼지창 모양은 하나 이상을 의미.
단선은 하나를 의미.
점선은 선택적인 사항. 얘 입장에서는 쟤가 있어도 되고 없어도 되고.
실선은 필수적인 사항. 쟤 입장에선 얘가 꼭 있어야 함.
관계의 형태인 Cardinality
1:1 일대일 관계: 엔터티 간에 양 쪽 모두 단 하나씩 존재하는 경우
스토어 (store_id, address_id) ----------------------주소 (address_id, locatioin)
1:N 일대다 관계: 하나의 원소가 두 개 이상의 원소와 관계 맺는 것
ONE 엔터티의 Primary 키를 가져다가 가져온 Foreign key를 Many엔터티에서 Attribute로 사용하여 관계 맺게 됨. 부서 번호를 가져다가 사원의 정보에 추가.
N:M 다대다 관계: 양쪽 모두 하나 이상과 연관될 수 있는 경우. 대학공부에서 하나의 강좌가 여러명의 학생과 연결될 수 있고, 한 명의 학생이 여러 개의 강좌를 수강할 수 있는 경우.
이럴 때 두 엔터티 사이에 마름모를 추가해서 관계를 한 칸 더 정의해주면 됨.
이를테면 학생과 강좌 사이에 수강신청 이라는 사건을 만들어
자신이 수강신청하는 강좌좌에만 관계를 맺고 있으면 됨.
글구 강좌 입장에서, 자신의 강좌를 듣는 학생에만 관계를 맺고 있으면 됨.
'About coding > Today I learned' 카테고리의 다른 글
2023년 04월 11일 TIL [#Django 입문_팀프로젝트_day2 #실수로 venv없이 pip install 했을 때 대처법] (1) | 2023.04.11 |
---|---|
2023년 04월 10일 TIL [#Django 입문_팀프로젝트 시작] (0) | 2023.04.10 |
2023년 04월 06일 TIL [#Django 입문_4] (0) | 2023.04.06 |
2023년 04월 05일 TIL [#Django 입문_3] (1) | 2023.04.06 |
2023년 04월 04일 TIL [#Django 입문_2] (0) | 2023.04.05 |