본문 바로가기

SQL31

제1정규형 (First Normal Form) 제1정규형을 간단히 설명하면 모든 속성은 반드시 하나의 값을 가져야 한다는 것이다. 실무에서 한 속성에 여러값을 가지는 릴레이션은 매우 드물다. 하지만 한 속성에 물리적으로 하나의 값을 가지고 있을 뿐, 논리적으로 자세히 살펴보면 여러 값을 가진 것과 마찬가지인 경우가 존재한다. 같은 성격의 데이터를 여러 속성으로 나열해 관리하는 것도 이에 해당한다. 제1정규형과 관련된 속성은 다가 속성(Multivalued Attributes)과 복합 속성(Composite Attributes)이 있다. 1. 다가 속성다가 속성은 같은 종류의 값을 여러 개 가지는 속성을 의미한다. 예를 들어 어떤 사람이 전화번호가 여러개 있고 그것을 관리를 하고 싶다고 했을 때 한 속성에 여러개의 전화번호를 저장하면 제1정규형을 위반.. 2025. 2. 20.
정규화(Normalization), 정규형(Normal Form) 1. 정규화와 정규형정규화는 이상현상(아노말리)이 발생하지 않는 릴레이션을 만들어가는 과정이고, 정규형은 정규화의 결과물이다. 2. 정규형 종류제1정규형 (원소값)제2정규형 (함수 종속)제3정규형 (함수 종속)BC정규형 (함수 종속)제4정규형 (다가 종속)제5정규형 (조인 종속) 제1~3 정규형이 정규화 대상의 대부분을 차지하지만 나머지 정규형도 중요하다. 몇 정규형을 구분하는 것은 중요하지 않다. 몇 정규형이냐를 알려고 정규화를 하지는 않는다. 중요한 것은 중복이 발생하지 않고 아노말리(이상현상)가 발생하지 않도록 함수 종속에 근거해서 모델링을 수행하는 것이다. 제2정규형, 제3정규형, BC정규형은 함수 종속 개념을 기반으로 수행되며 제4정규형은 다가 종속 개념을 기반으로 한다. 조인 종속이 존재하면 .. 2025. 2. 19.
함수 종속 함수 종속은 릴레이션 내에 존재하는 속성 간의 종속성을 의미한다.정규화를 이해하려면 함수 종속을 이해해야 한다. 함수 종속은 관계형 모델을 설계할 때 가장 중요한 데이터 종속성(Data Dependency) 이다. 어떤 집합 데이터이든 그 집합을 대표할 수 있는 속성은 존재한다. 대표 속성(식별자)과 나머지 속성 사이의 연관 관계가 함수 종속이다. 릴레이션에서 A속성의 값이 B속성의 값을 유일하게 식별할 수 있다면 B속성은 A속성에 함수적으로 종속됐다고 한다. 함수 종속은 밀접한 속성을 모아 하나의 릴레이션으로 만드는 체계적인 방법이다. 정규화가 잘 됐는지, 즉 함수 종속에 의해 집합이 잘 분해됐는지는 좋은 모델을 구별하는 기준이되고 함수 종속은 좋은 모델을 만드는 도구가 된다. 속성 간의 종속성을 규명.. 2025. 2. 18.
서브타입의 물리모델 변환 - (2) 1. 슈퍼타입 엔터티가 상위 엔터티인 서브타입 모델 2. 서브타입 엔터티가 상위 엔터티인 서브타입 모델 2-1 배타 관계를 가지는 서브타입 모델고객 엔터티는 개인고객과 법인고객의 공통속성을 포함하는 슈퍼타입이다. 개인고객의 주민등록번호와 법인고객의 법인등록번호의 의미를 통합한 고객고유번호라는 속성을 사용한다.자연키인 주민등록번호, 법인등록번호는 가능한 식별자로 사용하지 않는 것이 좋다.고객유형코드, 고객고유번호가 업무 식별자이다. 다른 엔터티가 참조할 가능성이 크므로 참조를 편하게 하기 위해 고객번호라는 인조 식별자를 사용한다.CREATE TABLE 개인고객( 주민등록번호 VARCHAR(14) PRIMARY KEY , 생년월일 DATE , 성별 VARCHAR(1) CHECK (성별 IN ('F', .. 2025. 2. 11.
서브타입의 물리모델 변환 - (1) 1. 타입- 분할- 통합- 혼합2. 모델링 조건- 모든 속성은 필수- 교육과정은 과정명 정보를 저장- 부서는 부서명 정보를 저장- 정규직 사원은 사원번호, 사원명, 입사일자, 부서, 월급여, 연차휴가 정보를 저장- 계약직 사원은 사원번호, 사원명, 입사일자, 부서, 시급여, 계약종료일 정보를 저장- 정규직 사원은 반드시 하나의 교육과정을 이수 (여러 과정 이수 불가)- 정규직 사원은 여러명의 가족 정보를 저장- 가족은 주민등록번호, 이름 정보를 저장3. 분할타입 모델링정규직사원, 계약직사원 사원번호가 중복되지 않도록 하는 장치가 필요 (트리거, 로직) 4. 통합타입 모델링사원 테이블의 사원구분코드는 ‘정규직’, ‘계약직’을 의미한다. 정규직사원 정보를 저장할 때는 시급여, 추가수당, 계약기간 속성이 nu.. 2025. 2. 11.
Supertypes & Subtypes 슈퍼타입과 서브타입 유사한 엔터티를 일반화하면 슈퍼타입과 서브타입 엔터티가 생긴다. 공통 속성은 슈퍼타입에 속하게 되고 고유한 속성은 서브타입으로 남게 된다. 1. 서브타입서브타입에 대한 일반적인 정의는 서브타입은 서로 배타적이어야 하며 모든 서브타입의 합집합이 전체 집합이 돼야 한다. 2. 서브타입의 종류이건 슈퍼 타입의 하나의 인스턴스가 여러 서브타입에 동시에 속할 수 있는지 없는지에 대한 구분이다. 즉, 서브타입에 최소 1개 이상의 인스턴스가 존재해야 한다. - Exclusive 배타 서브타입- Inclusive 중복 서브타입2-1 Exclusive 배타 서브타입서브타입 부분 집합 간에 공통부분을 갖지 않는 서브타입을 말한다. 슈퍼 타입의 하나의 인스턴스는 하나의 서브타입과 관계가 존재하므로 고객은 개인고객이거나 .. 2025. 2. 11.