경기도미래기술학교 AI개발자 부트캠프 73일차 TIL- sqld 공부. 데이터베이스 모델링과 정규화

2023. 8. 21. 20:47자격증/SQLD

반응형

모델링이란?

데이터의 개념적 표현을 만들고, 데이터 엔터티가 서로 관련되는 방식을 설정하고, 데이터가 데이터베이스에 저장되는 방식에 대한 프레임워크를 설정하는 프로세스. 시스템에서 데이터베이스를 구현하기 위한 청사진 같은 역할이다.

 

추상화 : 시스템이 관리할 있는 방식으로 데이터를 나타내기 위해 현실의 필수 측면을 표현한다.

단순화 : 복잡한 시스템을 간단하고 관리하기 쉬운 구성 요소로 나누는 과정

명확화 : 사물을 명확하고 이해하기 쉽게 만드는 것.

 

유의점 :

 - 중복 : 여러 장소에 같은 정보를 중복 저장하지 않도록 중복성 최소화한다.

 - 비유연성 : 데이터의 정의를 데이터 사용 프로세스와 분리해서 유연성을 높인다. 비유연성(경직성)의 경우는 데이터베이스 시스템이 요구사항이나 어떤 구조를 바꾸려고 할 때 데이터베이스도 크게 변경을 해야 하는 상황.

 - 비일관성 : 데이터 간 상호 연관 관계를 확실하게 정의해야 한다. 비일관성은 데이터의 불일치, 모순의 존재가 있을 경우이다. 일반적으로 적절한 제약조건이 부족하거나 정규화를 잘못했을 때 발생한다.

 

데이터 모델링의 3요소

Thing : 엔티티, 인스턴스

Attributes : 속성, 속성값

Relationships : 관계

 

 

Entity : 특정 추상표현이나 사물 같은 것. (성적, 교수)

 

Attribute : 엔티티의 속성이나 특성을 나타낸 것. (교수의 이름, 학생의 특정 과목 성적 등)

 

 

정규화

 - 중복성을 최소화하고 데이터 무결성을 보장하기 위해 데이터를 구성하는 프로세스

 

1 정규형(1NF)
 - 각 열에 원자값이 포함되어 있는지?

 - 각 열의 항목이 같은 종류인지

 - 각 열의 이름이 고유한지

 - 순서는 중요하지 않음.

 

2 정규형(2NF)

- 키가 아닌 모든 속성이 기본키에 종속되어야 한다.

- 현재 테이블과 크게 상관 없는 속성들(partiial dependency)을 새 테이블을 만들어 분류하는 것.

 

3 정규형(3NF)

 -이행적 함수 종속관계를 갖지 않는 것.

 ex. 책 테이블에 "글쓴이의 생년월일" 대한 열이 포함된 경우 기본 키인 "BookID"에만 의존하지 않고 "글쓴이"에도 종속된다.

그래서  전이 종속성을 피하기 위해 별도의 "글쓴이" 테이블을 만들어야 한다.

728x90