반응형



| 비정규화(정규화 이전 단계) 1. 인사기록카드에 있는 모든 데이터들을 상자 안에 다 적는다 알아야할 사항 1. 상자에 내용을 적을 때 인사기록카드에 적힌 내용 그대로(왼쪽->오른쪽 순서) 내용을 적어야 한다 * 데이터를 적을 때 반드시 내용 그대로 적는다 |

| 2. 정규화 1단계(반복되는 그룹을 분리함) 1. 인사기록카드를 보면 한 명의 사원에 대해 여러 줄(보증인, 면허자격, 가족, 학력, 경력, 교육훈련, 상벌)로 입력 되는 중복 그룹이 있다. 이를 별도의 엔티티로 분리한다 * 여기서 중복이란 한 사람의 데이터 안에 똑같은 성격의 칸이 여러 줄 있는 것을 말한다 2. 공통 데이터를 가지고 있는 학력, 경력, 교육, 상벌 상자를 하나의 상자만 두고 구분으로 묶는다 3. 기호(Notation) 확인 1. 부모 쪽 (인사기록카드): 모두 강제선(|) 표시. (부모가 없으면 데이터 성립 안 됨) 2. 자식 쪽 (나머지): 모두 까마귀발 + O 표시. (데이터가 여러 개이거나 없을 수도 있음) 단, [학력]은 최소 하나는 있어야 하므로 O 없이 까마귀발만 있어도 무방함 |
| 알아야할 사항 1. 상자 제목을 [인사기록카드]라고 쓰는 이유 데이터베이스에서 상자 이름(Entity Name)은 그 안에 담긴 데이터 전체를 대표하는 이름이어야 한다 1) 데이터의 정의: 이 테이블에 들어가는 모든 정보(성명, 본적, 병역 등)는 결국 '한 사람의 인사 기록'을 구성하는 요소들이다 2) 식별의 용이성: 나중에 수십 개의 상자가 생겼을 때, 제목이 명확해야 개발자가 "아, 여기엔 인사 정보가 들어있구나"라고 바로 찾아낼 수 있다 2. 인사기록카드번호가 자식 상자에서 FK인 이유 1) 데이터의 출처: 자식 상자(보증인, 가족 등)에 적힌 정보가 **'누구의 것'**인지 알려주는 연결고리가 필요하다 2) 상속의 법칙: 부모 상자의 핵심 열쇠(PK)를 자식 상자가 그대로 물려받아 사용하기 때문에, 자식 입장에서는 외부에서 온 열쇠라는 뜻의 **외래키(FK, Foreign Key)**가 된다 * 순번을 함께 사용하는 이유 1) 데이터 중복 차단: 한 명의 사원(번호 101번)에게 가족이 3명일 때, 카드번호만 쓰면 '101'이라는 번호가 3번 겹쳐서 에러가 난다 2) 유일성 확보: 이때 순번(1, 2, 3)을 추가하여 **[101-1], [101-2], [101-3]**이라는 세상에 하나뿐인 번호 조합을 만들어 데이터를 구분한다 * 순번이 반드시 인사기록카드번호 밑으로 가야 하는 이유 데이터에는 계급과 순서가 있기 때문임 1) 소속이 먼저: "누구의 데이터인가(카드번호)"가 결정되어야, 그 안에서 "몇 번째 데이터인가(순번)"를 따질 수 있다 2) 논리적 위계: 부모로부터 물려받은 번호가 뿌리라면, 순번은 그 뿌리에서 뻗어 나온 가지입니다. 뿌리가 있어야 가지가 존재할 수 있으므로, 설계 시 반드시 번호가 위, 순번이 그 아래에 위치해야 한다 3) 결합키(Composite Key)의 원칙: 두 번호를 합쳐서 하나의 열쇠를 만들 때, 큰 단위(사원번호)를 앞에 두고 작은 단위(순번)를 뒤에 두는 것이 데이터 관리의 정석이다 |
| 수정 사항 1. 년월일 -> 일시 2. 각 상자들(학력, 경력, 교육훈련, 상벌) 들을 학력 하나의 상자로 임시 묶어두었다 |
'Infra & Security Eng > Database Engineering' 카테고리의 다른 글
| 모델링(판매전표 정규화 3단계 과정 실습, 각 단계별 해석과 개념설명) 실습_0326_2 (0) | 2026.03.26 |
|---|---|
| [모델링] 관계 실습_0326_1 (0) | 2026.03.26 |
| 정규화의 근본 목적, 영수증 단계별 정규화 과정, PK와 FK의 기계적 원리, 까치발, 세로선, 동그라미 기호 의미 (0) | 2026.03.24 |
| PK와 FK 개념, PK, FK 설정 원리, 테이블 분리와 부모-자식 관계 (1:N), 까마귀 발(Crow's Foot) 기호의 해석 (0) | 2026.03.24 |
| PHP-Oracle 연동을 통한 데이터 관리 시스템 구축 및 입출력 프로세스 분석 (0) | 2026.03.23 |