본문 바로가기
반응형

SQL/SQL 전문가 가이드(2020 개정판)13

SELECT문 1. SELECT 사용자가 입력한 데이터는 언제라도 조회할 수 있습니다. 입력한 자료들을 조회해 보는 SQL문은 다음과 같습니다. SELECT [ALL/DISTINCT] 출력 대상 칼럼명, 출력 대상 칼럼명, ... FROM 출력 대상 칼럼들이 있는 테이블명; - ALL: Default 옵션이므로 별도로 표시하지 않아도 됩니다. 중복된 데이터가 있어도 모두 출력합니다. - DISTINCT: 중복된 데이터가 있을 경우 1건으로 처리해 출력합니다. [예제] SELECT한 다음 조회하기를 원하는 칼럼명을 콤마 구분자(,)로 구분해 나열하고, FROM 다음에 해당 칼럼이 존재하는 테이블명을 입력해 실행합니다. SELECT PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT,.. 2023. 3. 9.
관계형 데이터베이스 개요 1. 데이터베이스 DBMS(Database Management System): 많은 사용자들은 더 효율적인 데이터 관리뿐 아니라 예기치 못한 사건으로 인한 데이터 손상을 피하고, 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었는데, 이 기본적인 요구사항을 만족시켜주는 시스템을 일컫습니다. ■ 데이터베이스의 발전 - 1960년대: 플로우차트 중심의 개발 방법을 사용했으며, 파일 구조로 데이터를 저장·관리했습니다. - 1970년대: 데이터베이스 관리 기법이 태동했던 시기였으며, 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품들이 상용화가 되었습니다. - 1980년대: 현재 대부분의 기업에서 사용되는 관계형 데이터베이스가 상용화되었습니다. .. 2023. 3. 8.
본질식별자 vs. 인조식별자 ○ 본질식별자: 업무에 의해 만들어진 식별자 ○ 인조식별자: 업무적으로 만들어지지 않지만 본질식별자가 복잡한 구성을 갖고 있으므로 인위적으로 만든 식별자 주문상품 모델의 식별자가 본질식별자입니다. 주문상품 모델은 주문 시 구매한 상품 정보를 관리합니다. 주문상품 주문번호 상품번호 주문수량 110001 1234 1 110001 1566 5 110001 234 2 하나의 주문에 3개의 상품을 구매한 것을 데이터로 표현한 자료입니다. 이러한 데이터로 개발을 진행하여 주문상품 모델에 값을 Insert 하는 경우를 SQL로 확인해 봅시다. INSERT INTO 주문상풍 VALUES(110001, 1234, 1); INSERT INTO 주문상품 VALUES(110001, 1566, 5); INSERT INTO 주문.. 2023. 3. 7.
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. 3. 6.
모델이 표현하는 트랜잭션의 이해 트랜잭션은 데이터베이스의 논리적 연산단위입니다. 하나의 업무 단위로 묶여서 처리돼야 한다는 것이고, 이러한 업무 단위를 트랜잭션이라고 합니다. 고객이 상품을 구매하면서 발생하는 것이 주문입니다. 하나의 주문은 여러 개의 상품을 구매할 수 있습니다. 주문과 주문 상세의 데이터가 태생적으로 동시에 발생된다면, 당연히 계좌이체의 경우처럼 하나의 트랜잭션을 묶어서 처리해야 합니다. All or nothing인 원자성이 보장되도록 개발을 해야 합니다. 커밋(Commit)의 단위를 하나로 묶어야만 트랜잭션은 전체가 실행되거나 혹은 전체가 취소될 수 있습니다. // A → B 계좌이체 Step1. 계좌이체API{잔고수정(고객번호=>A, 수정값=>현재잔고-이체금액); 잔고수정(고객번호=>B, 수정값=>현재잔고+이체금액.. 2023. 3. 5.
관계(Relationship)와 조인(Join)의 이해 관계(Relationship)는 사전적으로 정의하면 '상호 연관성이 있는 상태'이며, 조인(Join)은 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합하는 것을 의미합니다. 1. 조인 고객과 주문 엔터티가 관계를 맺고 있는 모습입니다. 고객 엔터티 입장에서는 '한 명의 고객은 여러 번 주문할 수 있다', 주문 엔터티 입장에서는 '각각의 주문은 반드시 한 명의 고객에 의해 발생된다' 정도로 이해할 수 있습니다. [고객] 고객번호 고객명 100 정우진 101 한형식 102 황영은 [주문] 주문번호 고객번호 주문상태코드 1100001 100 주문완료 1100002 101 주문완료 1100003 101 취소요청 1100004 102 환불요청 1100005 100 교환완료 1. 주문 데이터에서 .. 2023. 3. 4.
정규화(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. 3. 3.
식별자(Identifier) 1. 식별자 개념 식별자란 하나의 엔터티에 구성된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며, 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 합니다. 업무적으로 구분되는 정보로 생각할 수 있기에 논리 데이터 모델링 단계에서 사용하고, 키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용합니다. 2. 식별자의 특징 ■ 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 합니다. ■ 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 합니다. ■ 지정된 주식별자의 값은 자주 변하지 않는 것이어야 합니다. ■ 주식별자가 지정이 되면 반드시 값이 들어와야 합니다. 3. 식별자 분류 및 표기법 가. 식별자 분류 식별자의 종.. 2023. 3. 2.
관계(Relationship) 1. 관계의 개념 가. 관계의 정의 상호 연관성이 있는 상태로 데이터 모델에 대입하여 정의하면 '엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로써 서로에게 연관성이 부여된 상태'라고 할 수 있습니다. 나. 관계의 패어링 패어링을 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것이며, 이것의 집합을 관계로 표현하는 것입니다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 합니다. 2. 관계의 분류 관계가 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있는 것은 관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 분류하기 때문입니다. UML(Unified Modeling Langu.. 2023. 3. 1.
속성(Attribute) 1. 속성의 개념 속성(Attribute)이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있습니다. 데이터 모델링 관점에서 속성을 정의하면, '업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리할 수 없는 최소의 데이터 단위'로 정의할 수 있습니다. □ 업무에서 필요로 합니다. □ 의미상 더 이상 분리되지 않습니다. □ 엔터티를 설명하고, 인스턴스의 구성요소가 됩니다. 2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔터티, 인스턴스, 속성, 속성값의 관계 □ 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다. □ 한 개의 엔터티는 두 개 이상의 속성을 갖는다. □ 한 개의 속성은 한 개의.. 2023. 2. 28.
엔터티(Entity) 1. 엔터티의 개념 엔터티의 정의 □ 변별할 수 있는 사물 - Peter Chen(1976) □ 데이터베이스 내에서 변별 가능한 객차 - CJ Date(1986) □ 정보를 저장할 수 있는 어떤 것 - James Martin(1989) □ 정보가 저장될 수 있는 사람, 장소, 물건, 사건, 개념 등 - Thomas Bruce(1992) 공통점 □ 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당됩니다. □ 엔터티는 업무상 관리가 필요한 관심사에 해당됩니다. □ 엔터티는 저장이 되기 위한 어떤 것(Thing)입니다. 2. 엔터티와 인스턴스에 대한 내용과 표기법 엔터티를 표현하는 방법은 각각의 표기법에 따라 조금씩 차이는 있지만, 대부분 사각형으로 표현됩니다. 과목, 강사, 사건은 엔터티에 해당하.. 2023. 2. 27.
데이터 모델의 이해 1. 모델링의 이해 가. 모델링의 정의 모델은 다양한 현상에 대해서 일정한 표기법에 따라 표현해 놓은 모형. 사람이 살아가면서 접할 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생된다고 했을 때, 모델링은 이것을 표기법에 따라 표기하는 것 자체를 의미합니다. * 복잡한 현실세계를 일정한 표기법에 따라 표현하는 일 나. 모델링의 특징 1) 추상화(모형화, 가설적)는 현실세계를 일정한 형식에 맞추어 표현한다는 의미로 정리할 수 있습니다. 2) 단순화는 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념을 의미합니다. 3) 명확화는 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고, 정확하게 현상을 기술하는 것입니다. 다. 모델링.. 2023. 2. 26.
반응형