데이터 모델링
관계형 데이터 모델링 - 2. 전체 흐름
movie 관계형 데이터 모델링 3.1 업무파악:인트로 컴퓨터공학이 해결하는 문제는 크게 두 가지 하나는 컴퓨터 자체의 문제를 해결하는 것. 하나는 현실의 문제를 해결하는 것. '컴퓨터'라는 강력하고, 안똑똑한 기계에게 설명할 수 있을 정도로 업무를 이해해야 함. 그러기 위해서 실무자들과 정확한 소통이 필요. 이해를 했다면 설명할 수 있어야함. 일은 ...
movie 관계형 데이터 모델링 - 3.2. 기획 만들고자 하는 서비스에서 필요로하는 기능을 글로 혹은 간단한 UI로 표현하는 단계. 생각하고 있는 것에 대해 동기화 하는 과정. 앞으로 수업에서 사용하게 될 예제에 대한 설명 글 목록(제목), 글 읽기(작성일자, 제목, 내용, 저자(호버 상태에서 저자의 설명 보여주기)), 글 작성(제목, 내용), 댓글 읽기...
movie 관계형 데이터 모델링 - 4.1. 개념적 데이터 모델링 소개 개념적 모델링: 파악한 업무에서 개념을 뽑아내는 것. 논리적, 물리적 모델링을 경험해본 적 없는 사람이 개념적 모델링을 할 수는 없다. 개념적 모델링은 관계형 데이터 모델링 전체 프로세스를 통틀어 극치. 논리적, 물리적 모델링은 비교적 기계적인 일. 개념적 모...
movie 관계형 데이터 모델링 - 4.2. 관계형 데이터베이스 다운 개념의 구조 먼저 연관된 정보를 묶어주는 큰 덩어리를 찾아야 함. 설명이 가능하고, 모순이 없다면 타당한 그룹핑이라 할 수 있음. 관계형 데이터 모델링에 적합한 모델을 선택해야 함. 어떤 것이 관계형 데이터 모델링에 적합한 모델인지 큰 흐름 정도만 파...
movie 관계형 데이터 모델링 - 4.3. ERD의 구성요소 찾아낸 개념은 개념적 모델링 혹은 ERD 에서는 Entity라고 한다. 후에 테이블로 전환됨. '글' 이라는 entity는 실제 데이터는 아니다. 제목, 본문, 생성일을 그룹핑한 것이 글 이라는 entity가 되는 것이다. 이런 구체적인 데이터는 attribute라 하고, 테이블에서...
moive 관계형 데이터 모델링 - 4.4. 엔티티 정의 애플리케이션을 하나의 건물이라고 가정했을 때, UI = 옥상, DB = 지하 UI가 원인이 되어 DB 데이터 변경되는 결과가 된다. DB가 원인이 되어 UI라는 결과를 만든다. 서로 원인과 결과의 관계에 있다. 서로 번갈아 가며 순차적으로 점검하지 않는다면 좋은 모델링이 되기 어렵다. ...
movie 관계형 데이터 모델링 - 4.5. 속성 정의 다음로 할 작업은 속성 정의하기. 속성을 정의하는 것은 UI를 보면 쉽게 찾아낼 수 있다. 각 entity에 소속이 되는 데이터가 속성이 된다. ERD에서 속성은 동그라미로 표현 '글'이라는 entity에는 '제목', '작성일', '내용', '저자'가 속성이 될 수 있다. 여기서 '저자'...
movie 관계형 데이터 모델링 - 4.6. 식별자 지정 속성 중 대표자(식별자)를 뽑아야함 식별자는 원하는 것을 정확하게 타겟팅 하기에 그 대상을 제외한 다른 누구도 같은 값을 가지고 있지 않아야함 식별자는 ERD에서 기본키가 됨. ERD에서는 기본키를 밑줄로 표현 인조키(artificial key): 자연스럽게 테이블에서 찾아낸 키가 아닌...
movie 관계형 데이터 모델링 - 4.7. 엔티티간의 연결 외래키(foreign key): 외래에 있는 테이블과 연결할 때 사용하는 키 관계형 데이터베이스의 Relationship은 기본키와 외래키의 연결을 통해서 구현 ERD에서 관계는 마름모 모양으로 표현
movie 관계형 데이터 모델링 - 4.8. Cardinality cardinality: 한국말로 기수, 수를 나타내는 기초가 되는 수. 십진법에서는 1에서 9까지의 정수를 말함. 기본수. 1:1(일대일) 관계, 예시) 담임은 한 반을 맡아 지도하고, 한 반에는 한 분의 담임만 존재한다. 1:N(일대다) 관계, 예시) 저자는 여러 개의 댓글을 작성할 수 ...
movie 관계형 데이터 모델링 - 4.9. Optionality 옵션이라는 것은 있을 수도 있고, 없을 수도 있다는 것을 의미. ERD에서는 이러한 entity 관계를 옵션(optional)이라고 한다. 아래의 그림과 같이 표현한다. 하지만 반대로 해당 entity가 존재한다면 필수로 존재해야 하는 entity가 있어야 한다면, 이 관계를 필수(manda...
movie 관계형 데이터 모델링 - 4.10. ERD 완성 ERD를 직접 그리는 시간을 가져봤다. '저자'는 '글'을 여러 개 가질 수도, 하나도 가지지 않을 수도 있다. '글'은 '저자'를 하나만 가질 수도, 여러 개 가질 수도 있다. '저자'는 '댓글'을 여러 개 가질 수도, 하나도 가지지 않을 수도 있다. '댓글'은 '저자'를 필수로 하나만 ...
movie 관계형 데이터 모델링 - 5.1. 논리적 데이터 모델링 개념적 데이터 모델링의 경우 상대적으로 어려운 작업이다. 개념적 모델링이 잘 되어 있다면, 논리적 모델링은 기계적인 작업만 수행하면 된다. 논리적 데이터 모델링: 개념적 모델링을 통해 추출한 개념을 관계형 데이터베이스 패러다임에 어울리게 데이터 형식을 정리정돈 하는 ...
movie 관계형 데이터 모델링 - 5.2. 테이블과 컬럼 생성 영상에서는 ER Master 라는 툴을 사용했는데, 나는 Sequel Pro 라는 툴을 이용하여 SQL문을 작성하여 테이블을 설계해봤다. 저자 테이블 글 테이블 댓글 테이블 ![](https://velog.velcdn.com/images/shin_jaean/pos...
movie 관계형 데이터 모델링 - 5.3. 1:1 관계의 처리 관계를 기본키와 외래키의 연결을 통해 RDB 모델에 맞게 변환하는 작업을 진행 가장 중요한 부분은 카디널리티(cardinality), 즉 몇대몇 인지 따져 보는것 1:1 관계를 만들기 위해, 휴면자 엔티티를 추가 휴면자 테이블은 저자 테이블과 관계를 갖는다. 저자는 휴면 상태일 수도 있고...
movie 댓글은 글, 저자 테이블과 1:N 관계를 갖는다. 댓글과 글 글은 댓글을 여러 개 가질 수도, 가지지 않을 수도 있다. 댓글은 어떤 글에 달린 댓글인지 알 수 있어야 하기 때문에, 글에 대한 정보를 필수로 가져야 한다. 하지만 여러 개일 수는 없다. 글(필수) 1:N 댓글(옵션) 댓글과 저자 저자는 댓글을 여러 개 작성할 수도, 작...
movie 관계형 데이터 모델링 - 5.5.1. N:M 관계의 처리 N:M 관계에 있는 테이블은 '저자'와 '글'. 한 명의 '저자'가 여러 '글'을 작성할 수 있고, 하나의 '글'을 여러 '저자'가 작성할 수 있다. N:M 관계를 테이블로 표현하기 애매하다. '저자'와 '글' 엔티티의 중재자가 필요하다. 이 중재자를 mapping table 매핑 테...
movie 관계형 데이터 모델링 - 5.5.2. N:M 관계의 처리 - 내용 정정 '저자'는 '글'을 '작성'을 할 수도 안할 수도 있다. 하지만 '글'을 '작성'했다면, '저자'는 반드시 존재한다. => (저자-1:N-작성), (저자-mandatory:optional-작성) 하나의 '글'은 여러 '작가'가 '작성'할 수 있다. '글'이 있다면 반드시 '작...
movie 관계형 데이터 모델링 - 6.1. 정규화 소개 Edgar Frank "Ted" Codd 박사. 평범한 사람도 그가 제안하는 방법을 적용하기만 하면 천제적인 표를 만들 수 있는 레시피를 개발했다. 그것을 정규화, Normalization 이라고 한다. 정규화란 정제되지 않은 데이터 즉, 표를 관계형 데이터베이스에 어울리는 표로 만들어 주...
movie 관계형 데이터 모델링 - 6.2. 제1 정규화 제 1정규화의 원칙은 Atomic columns. 각 행과 열의 데이터가 atomic(원자적) 해야 한다. 원자적이어야 한다 = 각 culumn은 데이터를 하나만 가진다. 각 컬럼의 데이터가 atomic 하지 않다면, 여러 문제가 발생할 수 있다. 이러한 문제가 발생하지 않는 상태를 제 1...
관계형 데이터 모델링 - 6.3. 제2 정규화 제 2 정규화: no partial dependencies, 부분 종속성을 없앤다. 부분 종속성이란, 한 컬럼의 데이터가 다른 컬럼의 데이터에 의해 결정되는 것을 의미한다. 부분 종속성을 없앤다는 것은 테이블에서 각 컬럼의 데이터가 기본키 컬럼을 제외한 특정 컬럼에 의해 결정되지 않는 다는 것을 의미...
video 관계형 데이터 모델링 - 6.4. 제3 정규화 제 3 정규형의 조건: no transitive dependencies -> 이행적 종속성이 없어야 한다. => 위 표에서 모든 행(row)은 title 이라는 컬럼에 종속적이다. = title이 컬럼의 내용을 결정한다. => 또 authorname과 authorprofile 컬럼은 aut...