SQL

테이블 설계

peach_h 2022. 10. 9. 21:01
테이블이란 ?

관계형 데이터베이스에서 데이터를 관리 및 저장하는 장소

데이터의 효율적인 관리 및 적절한 조작이 매우 중요하다.

 

 

기본키(PRIMARY KEY)의 중요성

특정 집합에서 특정 행을 유일하게 식별할 수 있는 속성

기본키는 절대 중복되면 안된다.

반드시 기본키를 설정해야함 / 단, 업무상 이유로 기본키가 없는 테이블이 존재하는 곳도 있음

 

정규형 : 테이블을 정의하는 기본 형태

정규형을 제대로 지키지 않으면 정규화 위반임.

정규형의 목적은 제대로된 데이터 모델링을 설계하기 위함이다. 성능 향상이 아님.

 

1. 제 1정규형(1NF) 위반

테이블의 셀에 여러개의 값을 포함하지 않는다.

ex) 연락처 컬럼에 010-1222-2222,qwer@qwer.com 이렇게 두가지 값이 포함되면 안됨.

-> 해소 방법

 기존 회원 테이블에서 회원 연락처 테이블을 따로 추가한다.

 

 

테이블은 함수와 같기 때문에, 기본키 값을 입력하면 무조건 1개의 값이 출력되어야함.

함수 종속성을 가짐.

 

 

2. 제 2정규형(2NF) 위반

부분함수 종속성을 허용하지 않는다. -> 기본키를 구성하는 열의 일부에만 함수 종속이 존재하는 것

기본키가 고객아이디 + 주문번호 일 때, 고객명과 고객등급은 주문번호가 아닌, 고객ID에만 종속됨.

이러한 경우를 부분함수 종속이라고함. 제 2정규형에 위반.

-> 해소 방법

 고객 주문 테이블과 고객 테이블을 분리해서 관리

 

3. 제 3정규형(3NF) 위반 

기본키를 제외한 일반 함수끼리 종속이 발생한 경우. ( 이행적함수종속 )

기본키가 고객 ID인데, 컬럼에 직업코드와 직업명이 있는경우.

직업명이 직업코드에 종속되기 때문에 제 3정규형 위반이다.

-> 해소 방법

직업 테이블을 따로 생성해야함

 

 

ER 다이어그램 : 개체-관계 모델링(Entity-Relationship Modeling)의 산출물

데이터 모델링 과정은 데이터 모델을 그림으로 표현하기 위해 표시법을 필요로함.

 

Barker 표기법 ( 최근 많이 사용 )

Oracle에서 기본 표기법으로 채택함.

 

모델링 하는 방법 

https://peach-hzz.tistory.com/49

 

 

 

엔터티(테이블)

테이블과 유사함.

#으로 시작하는 것은 기본키

*로 시작하는 것은 Not null

0로 시작하는 것은 NULL

끝에 (FK)로 끝나는 것은 외래키임

 

 

Relationship : 엔터티(테이블)과 엔터티 사이의 관계

정의된 엔터티는 대부분 혼자서 존재 할 수 없다. 관계가 정의 되어야 그 역할을 할 수 있음.

FK인 컬럼은 부모 테이블의 기본키를 참고하고 있다.