Day89 Final Project(DB모델링)
DB모델링
1. DB모델링의 정의
- 정의 : 시스템을 분석하고 구조화시켜 글과 그림으로 표현(추상화)한는 것을 말한다.
- 목적 : 데이터가 중복되지 않도록 데이터를 테이블로 구조화 하는 것이 목표이다.
2. DB모델리의 사용 용어
- table : relation, entity, file
- intension(schema, header) : 데이터 구조 설계도
- extension(instance, data) : 데이터
- row(tuple, record) : 여러 컬럼으로 이루어진 데이터
- column(attribute, feild) : 데이터의 한 항목
IE표기법 : 다이어그램을 약속한 기호로 사용해서 표기
3. DB모델링 절차
1) Entity 식별
2) Entity의 속성 식별
3) key식별
- 데이터를 구분 할 수 있는 한개 이상의 컬럼들의 집합을 선별한다.
- super key라고 부른다.
4) 후보 선정
- super key 들 중에서 선별된 최소의 키를 가르킨다.
- 컬럼을 구분 할 수 있는
최소키
를 의미한다.
5) 기본키 선정
- primary key라고 부르며 후보키 중에서 데이터 식별자로 사용하기 위해 선정된 키를 의미한다.
후보키 중 primary key가 아닌 키를 대안 키(alternate key)라고 부른다.
6) 제 1 정규화
- 데이터 중복을 찾아내어 별도의 테이블로 데이터를 분리시키는 것
- 중복 데이터 또는 중복컬럼을 별도의 테이블로 분리하여 부모-자식의 관계를 맺는다.
- 참조하는 테이블이 자식테이블이고 참조당하는(데이터를 가지고 있는) 테이블이 부모 테이블이다.
주어진
수강신청
엔티티를 정규화 하기- 중복되는 데이터를 분리하여 새로운 테이블을 만든다.
새로운 테이블의 기본키 혹은 대리키를 정의한다.
대리키(surrogate key)
- 인공키(artificial key)라고 불린다.
- 주 키의 컬럼의 개수가 많거나 주키로 사용할 컬럼이 없는 경우 고유번호로 PK를 생성한다.
- 주 키로 선정된 컬럼의 값은 변경될 수 없기 때문에, 일련번호와 같은 임의의 컬럼을 pk로 사용한다.
기존의 테이블에는 외래키 또는 기본키로 대체 한다.
외래키(foreign key)
- 다른 릴레이션(테이블)의 PK나 UK 컬럼ㄱ밧을 저장하는 컬럼
FK가 있는 테이블을 자식 테이블이라고 하며, FK가 가르키는 PK컬럼을 포함한는 테이블을 부모 테이블이라 한다.
두 테이블간의 자식-부모 관계를 정의한다.
식별/비식별 관계 설정
1. 식별 관계 (Identifying Relationship)
- 정의: 부모 엔티티의 기본 키(Primary Key)가 자식 엔티티의 기본 키에도 포함되는 경우를 말한다.
- 특징:
- 부모 엔티티의 기본 키가 자식 엔티티의 기본 키로 사용되기 때문에 자식 엔티티는 부모 엔티티 없이는 존재할 수 없다. 즉, 자식 엔티티가 부모 엔티티에 강하게 의존한다.
- 일반적으로 강한 종속성 관계가 있을 때 사용된다.
2. 비식별 관계 (Non-Identifying Relationship)
- 정의: 부모 엔티티의 기본 키가 자식 엔티티의 기본 키에 포함되지 않고, 자식 엔티티에서 부모 엔티티와의 관계를 외래 키(Foreign Key)로만 유지하는 경우를 말한다.
- 특징:
- 부모 엔티티의 기본 키가 자식 엔티티의 기본 키에 포함되지 않으므로, 자식 엔티티는 독립적으로 식별될 수 있다. 자식 엔티티의 식별자는 자체적으로 고유하다.
- 부모 엔티티와 자식 엔티티 간의 약한 종속성 관계일 때 사용된다.
비교 요약
구분 식별 관계 (Identifying) 비식별 관계 (Non-Identifying) 부모 키 포함 여부 부모 키가 자식의 기본 키에 포함된다 부모 키가 자식의 기본 키에 포함되지 않는다 관계 강도 강한 종속성 (부모 없이는 자식 존재 불가) 약한 종속성 (자식은 독립적으로 존재 가능) 키 구성 부모 키 + 자식 고유 속성으로 기본 키 구성 자식의 고유 속성만으로 기본 키 구성 사용 사례 주문과 주문 상세 부서와 직원
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.