SQLD(10)
-
Null 속성의 이해
DBMS를 사용하다 보면 Null 값으로 인한 많은 특이사항들을 접하게 됩니다. Null 값이 가지는 특성을 이해하지 못한다면 데이터 오류를 경험할 수 있으므로 반드시 숙지해야 할 부분 중 하나입니다. 1. Null 값의 연산은 언제나 Null이다 Null 값은 '공백이나 숫자 0'과는 전혀 다른 의미입니다. '아직 정의되지 않은 미지의 값' 또는 '현재 데이터를 입력하지 못하는 경우', Null 값이 존재하지 않음을 의미합니다. 주문번호 주문금액 주문취소금액 1100001 100,000 20,000 1100002 15,000 SELECT 주문금액 - 주문취소금액 COL1 , NVL(주문금액-주문취소금액, 0) COL2 , NVL(주문금액, 0) - NVL(주문취소금액, 0) COL3 FROM 주문 CO..
2023.03.06 -
모델이 표현하는 트랜잭션의 이해
트랜잭션은 데이터베이스의 논리적 연산단위입니다. 하나의 업무 단위로 묶여서 처리돼야 한다는 것이고, 이러한 업무 단위를 트랜잭션이라고 합니다. 고객이 상품을 구매하면서 발생하는 것이 주문입니다. 하나의 주문은 여러 개의 상품을 구매할 수 있습니다. 주문과 주문 상세의 데이터가 태생적으로 동시에 발생된다면, 당연히 계좌이체의 경우처럼 하나의 트랜잭션을 묶어서 처리해야 합니다. All or nothing인 원자성이 보장되도록 개발을 해야 합니다. 커밋(Commit)의 단위를 하나로 묶어야만 트랜잭션은 전체가 실행되거나 혹은 전체가 취소될 수 있습니다. // A → B 계좌이체 Step1. 계좌이체API{잔고수정(고객번호=>A, 수정값=>현재잔고-이체금액); 잔고수정(고객번호=>B, 수정값=>현재잔고+이체금액..
2023.03.05 -
관계(Relationship)와 조인(Join)의 이해
관계(Relationship)는 사전적으로 정의하면 '상호 연관성이 있는 상태'이며, 조인(Join)은 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것을 의미합니다. 1. 조인 고객과 주문 엔터티가 관계를 맺고 있는 모습입니다. 고객 엔터티 입장에서는 '한 명의 고객은 여러 번 주문할 수 있다', 주문 엔터티 입장에서는 '각각의 주문은 반드시 한 명의 고객에 의해 발생된다' 정도로 이해할 수 있습니다. [고객] 고객번호 고객명 100 정우진 101 한형식 102 황영은 [주문] 주문번호 고객번호 주문상태코드 1100001 100 주문완료 1100002 101 주문완료 1100003 101 취소요청 1100004 102 환불요청 1100005 100 교환완료 1. 주문 데이터에서 ..
2023.03.04 -
정규화(Normalization)
데이터 모델링에서 정규화(Normalization)는 가장 기초적이지만 필수적으로 이뤄져야 하는 작업입니다. 성능을 위해 반정규화를 하기도 하지만, 그 이전에 정규화가 왜 필요한지를 반드시 알아야 합니다. 1. 제1 정규형: 모든 속성은 반드시 하나의 값을 가져야 한다 제1정규형은 하나의 속성에는 하나의 값을 가져야 합니다. 연락처 속성에 다중값(multivalued)이 들어가는 경우를 생각해 봅시다. 고객연락처 데이터 고객번호 고객명 연락처 10000 정우진 02-123-4567, 010-1234-5678 10001 한형식 010-5678-2345 10002 황영은 02-345-3456, 010-4567-7890 다음 표와 같이 데이터가 생성된다면 어떤 문제가 발생할 수 있는지 생각해 봅시다. ● 연락..
2023.03.03 -
식별자(Identifier)
1. 식별자 개념 식별자란 하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며, 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 합니다. 업무적으로 구분되는 정보로 생각할 수 있기에 논리 데이터 모델링 단계에서 사용하고, 키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용합니다. 2. 식별자의 특징 ■ 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 합니다. ■ 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 합니다. ■ 지정된 주식별자의 값은 자주 변하지 않는 것이어야 합니다. ■ 주식별자가 지정이 되면 반드시 값이 들어와야 합니다. 3. 식별자 분류 및 표기법 가. 식별자 분류 식별자의 종..
2023.03.02 -
관계(Relationship)
1. 관계의 개념 가. 관계의 정의 상호 연관성이 있는 상태로 데이터 모델에 대입하여 정의하면 '엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로써 서로에게 연관성이 부여된 상태'라고 할 수 있습니다. 나. 관계의 패어링 패어링을 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것이며, 이것의 집합을 관계로 표현하는 것입니다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 합니다. 2. 관계의 분류 관계가 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있는 것은 관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 분류하기 때문입니다. UML(Unified Modeling Langu..
2023.03.01