설계란 ?
 내가 말하고싶은것을 그린것(디자인)

IT기술에만 국한해서 생각하지말것

 

 

개념설계 :

ER 다이어그램

 

논리설계 :

관계형 ,테이블형태 (공통분모형태)

 

물리설계: 

물리적으로 DBMS선택해야함

실질적으로 물리적 공간에 저장하기위해 각각에 대해 정의



키의 종류
1. 주키(primary key) : 식별키,일련번호, 아이디
2. 후보키 : 기본키 처럼 식별용으로 쓸 수 있는 키
3. 대체키 : 후보키에서 기본키 이외의 키

4. 슈퍼키 : 2개 이상의 컬럼이 모여 기본키로 사용

5. 외래키 : 두 테이블을 서로 연결하는 데 사용되는 키

 

키의 종류

- 실선(Identifying): 식별관계

-> 부모 테이블의 기본키를 자식 테이블이 가지고 있으며 이를 기본키로 사용하는 경우

-> 부모가 있어야 자식이 생기는 경우

ex) Issue 테이블과 IssueComment 테이블이 있을 경우, IssueComment는 Issue가 존재해야지만 있을 수 있음

 

- 점선(Non-Identifying): 비식별관계

-> 부모 테이블의 기본키를 자식테이블이 가지고 있지만 이를 기본키로 사용하지 않을 때 

-> 부모가 없어도 자식이 생기는 경우

ex) User 테이블과 Process가 있을 경우, User가 담당 프로세스가 있다고 하더라도, Process는 User없이도 존재할 수 있음

 

정규화 : 

normalization 표준화,정상화

무결성 -> 데이터 중복제거
중복이 발생하는 패턴에서 중복제거

1정규화 : 모든 도메인이 원자값으로만 이루어져야만 한다. 
    도메인 : (유효한) 값의 범위

              ex이메일 : 123 (X)
    원자값 : 하나의 값만 이루어져야만 한다. 

              ex기업고객의 아이디가 하나만

속성을 봤을때 1개가 만들어갈지 n개가 들어갈지 또는 n개까지인지 찾아보기.

1개만 받는다면 원자값 , 여러개면 원자값이 아니다.

(전화번호 여러개인지 ?, 설립일이 여러개인지 ? )

 

1정규화 위반되는것 찾기 (테이블로뽑을지, 구분자로 구분할지선택 )
*노하우 - 이미지
*일기- 키워드
*공지 - 파일

관계표현


3정규화

아까들어갔던 내용이 계속 들어가는것(ex 여고괴담처럼 자꾸 졸업앨범에나타남)

 

책임자이름,매니저이름,매니저연락처,매니저이메일  ->중복제거 (자식을만들어야함)

올드데이터 : 미리있어야하는것이므로 별도 테이블 생성 ->외래키가 늘어나게된다. 

3정규화

 

일정이 새로생겨도 분류는 기존것이 그대로 사용된다.

 

+ Recent posts