● 식별자 구분(대체 여부에 따른) 1) 본질식별자 - 업무에 의해 만들어지는 식별자(꼭 필요한 식별자) 2) 인조식별자 - 인위적으로 만들어지는 식별자(꼭 필요하지 않지만 관리의 편의성 등의 이유로 인위적으로 만들어지는 식별자) - 본질식별자가 복잡한 구성을 가질때 인위적으로 생성 - 주로 각 행을 구분하기 위한 기본키로 사용되며 자동으로 증가하는 일련번호 같은 형태임 예제) 주문과 주문상세에 대한 엔터티 설계 과정을 예를 들어보자. 주문이 들어오면 주문 엔터티에는 (주문번호 + 고객번호)를 저장, 이 때 PK는 주문번호이다. 주문상세에는 각 주문별로 어떤 상품이, 언제, 몇 개 주문됐는지 등을 기록한다.※ 주문상세 테이블 설계 시 다음과 같은 식별자를 고려할 수..
● NULL 이란 - DBMS 에서 아직 정해지지 않은 값을 의미 - 0과 빈문자열('')과는 다른 개념 - 모델 설계 시 각 컬럼별로 NULL 을 허용할 지를 결정(Nullable Column) ● NULL 의 특성 1. NULL 을 포함한 연산 결과는 항상 NULL ☞ COMM 컬럼에 공백으로 보이는것들이 NULL 이다(물론 빈문자열일 수 있지만 해당 데이터에서는 NULL임) 이 때, NULL을 포함한 COMM 과 SAL 과의 연산결과는 NULL 이 리턴된다. -> NULL을 사건에 치환한 후 연산 필 2. 집계함수는 NULL 을 제외한 연산 결과 리턴 ※ sum,avg,min,max 등의 함수는 항상 NULL 을 무시한다. 예)NULL 을 포함한 ..
● 트랜잭션이란 - 하나의 연속적인 업무 단위를 말함 - 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐 - 하나의 트랜잭션에는 여러 SELECT,INSERT,DELETE,UPDATE 등이 포함될 수 있음 ※ 계좌이체를 예를 들면)A 고객이 B 고객에게 100만원을 이체하려고 한다고 가정하자. STEP1) A 고객의 잔액이 100만원 이상인지 확인 STEP2) 이상이면, A 고객 잔액을 -100 UPDATE STEP3) B 고객 잔액에 +100 UPDATE 이 때,2번과 3번 과정이 동시에 수행되어야 한다. 즉 모두 성공하거나 모두 취소돼야 함(All or Nothing) ☞ 이런 특성을 갖는 연속적인 업무 단위를 트랜잭션이라고 한다. ※ 주의1. A 고객 잔액 차감과 B 고객..
● 관계(Relationship)의 개념 - 엔터티의 인스턴스 사이의 논리적인 연관성 - 엔터티의 정의, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있음 - 관계를 맺는다는 의미는 부모의 식별자를 자식에 상속하고, 상속된 속성을 매핑키(조인키)로 활용 -> 부모, 자식을 연결함 ● 관계의 분류 - 관계는 존재에 의한 관계와 행위에 의한 관계로 분류 - 존재 관계는 엔터티 간의 상태를 의미 ex) 사원 엔터티는 부서 엔터티에 소속 - 행위 관계는 엔터티 간의 어떤 행위가 있는 것을 의미 ex) 주문은 고객이 주문할 때 발생 ● 조인의 의미 - 결국 데이터의 중복을 피하기 위해 테이블은 정규화에 의해 분리된다. 분리되면서 두 테이블은 서로 관계 ..