Skip to Content
Suffering builds character
아카이브14.데이터베이스SQL2.DDL1. 테이블 설계

1. 테이블 설계

설계 → 정제 → 테이블 작성 및 생성

1. 설계(Design)

사람에 대한 정보를 담을 테이블 정의

“한 사람을 간단하게 묘사”

이름 - name
눈동자 색 - eye_color
생일 - birth_date
주소 - address
좋아하는 음식 - favorite_foods

“열 이름과 자료형 지정”

열(column, field)자료형(data types)허용값
namevarchar(40)
eye_colorchar(2)BL, BR, GR
birth_datedate
addressvarchar(100)
favorite_foodsvarchar(200)

eye_color 열은 영문 2글자로 제한하고, BR, BL, GR 중 하나만 허용

2. 정제(Refinement)

name 열은 이름과 성으로 구성된 복합 객체임

여러 사람이 동일한 이름, 눈동자, 색, 생년월일 등을 가질 수 있기 때문에 Person 테이블에 고유성을 보장하는 열을 추가해야함

address 열은 거리, 도시, 국가 등으로 구성된 복합 객체

favorite_foods 열은 0개 혹은 1개 이상의 독립적인 항목을 포함하는 목록(enumeration) 형태임

특정 음식이 어떤 사람이 좋아하는 음식인지 구분시킬 수 있도록 이 열에 대한 별도의 테이블을 작성하는 것이 좋음

정규화 진행 후 테이블

자료형허용값
person_idsmallint(unsigned)
first_namevarchar(20)
last_namevarchar(20)
eye_colorchar(2)BR, BL, GR
birth_datedate
streetvarchar(30)
cityvarchar(20)
statevarchar(20)
countryvarchar(20)
postal_codevarchar(20)

고유성을 보장하는 기본 키 person_id 추가

favorite_food를 담을 별도의 테이블 생성

자료형
person_idsmallint(unsigned)
food_namevarchar(20)

person_id가 1인 사람 - 유정호
person_id = 1 food_name = 짜장면
person_id = 1 food_name = 탕수육

Last updated on