데이터 처리에 있어 원천저장소를 제공하는 데이터베이스의 설계 기법인 데이터 모델의 기본적인 개념을 이해해보도록 하자.
두 번째 시간으로 데이터 모델을 이해할 때 가장 명확하게 이해야 하는 개념 중에 하나인 엔터티(Entity)에 대해 알아보도록 하자. 엔터티의 개념 >데이터 모델과 데이터베이스에 권위자가 정의한 사항 변별할 수 있는 사물 -Peter Chen 데이터베이스 내에서 변
세 번째로 속성에 대해 알아보자 속성의 개념 > - 사전적 의미 : 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있다. >- 데이터 모델링 관점에서의 의미 : 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상
사전적 정의: 상호 연관성이 있는 상태데이터 모델에 대입하여 정의: 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태관계는 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성
하나의 엔터티에 구성된 여러 개의 속성중에 엔터티를 대표할 수 있는 속성하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다.식별자는 업무적으로 구분되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용키는 데이터베이스 테이블에 접근을 위한 매개체로서
데이터 모델링에서 정규화는 가장 기초적이지만 필수적으로 이뤄져야 하는 작업이다. 성능을 통해 반정규화를 하기도 하지만, 그 이전에 정규화가 왜 필요한지를 반드시 알아야 한다.몇가지 사례를 통해 정규화가 무엇인지와 그 필요성을 알아보자.<사진>제 1정규형은 하나의
조인(Join):관계를 맺는다는 건 식별자를 상속하고, 상속된 속성을 매핑키로 활용하여 데이터를 결합해 볼 수 있다는 의미다. <사진> 위의 모델은 고객과 주문엔터티가 관계를 맺고 있는 모습이다. 관계를 맺음으로 생기는 현상은 고객 엔터티의 식별자인 고객번호를
트랜잭션은 데이터베이스의 논리적 연산단위이다.
DBMS를 사용하다 보면 Null값으로 인한 많은 특이사항들을 접하게 된다. Null값이 가지는 특성을 이해하지 못한다면 데이터 오류를 경험할 수 있으므로 반드시 숙지해야 할 부분중 하나이다. 다음 모델을 보고 사례별로 Null값에 대해 알아보자.<사진>위의 주문
식별자: 데이터를 식별할 수 있는 속성대체여부에 따라 분류가능본질식별자 : 업무에 의해 만들어진 식별자인조식별자 : 업무적으로 만들어지지는 않았지만 본질식별자가 복잡한 구성을 갖고있으므로 인위적으로 만든 식별자<사진 -2-21>위 모델의 주문상품 모델의 식별자가
넓은 의미에서의 데이터베이스는 일상적인 정보를 모아 놓은 것 자체를 의미일반적으로 데이터베이스라고 말할 때는 특정 기업이나 조직, 개인이 필요에 따라 데이터를 일정한 형태로 저장해 놓은 것을 의미DBMS (Database Management System): 효율적인 데
기본 문법DISTINCT중복된 데이터가 있을 경우 1건으로 처리해 출력애스터리스크(\*)해당테이블의 모든 컬럼 정보를 출력ALIAS조회된 결과에 일종의 별명을 부여해 컬럼레이블을 변경가능산술 연산자: NUMBER와 DATE자료형에 대해 적용된다. 수학에서와 같이 ()
문자데이터를 매개변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수문자형 함수LOWER(문자열) : 문자열의 알파벳 문자를 소문자로 변환UPPER(문자열) : 문자열의 알파벳 문자를 대문자로 변환ASCII(문자) : 문자나 숫자를 ASCII 코드 번호로 변환CHR
case 표현은 if-then-else 논리와 유사한 방식으로 표현식을 작성해 SQL의 비교 연산 기능을 보완하는 역할을 한다.: SIMPLE_CASE_EXPRESSION 조건이 맞으면 SIMPLE_CASE_EXPRESSION 조건 내의 THEN 절을 수행하고, 조건이
자신이 원하는 자료만을 검색하기 위해 SQL문장에 WHERE절을 이용해 자료를 제한할 수 있다.WHERE절에는 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수도 있다.WHERE 절은 FROM 절 다음에 위치하며, 조건식은 아래
여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다.GROUP BY절은 행들을 소그룹화한다.SELECT, HAVING, ORDER BY절에 사용할 수 있다.입력✏️출력🖥️입력✏️출력🖥️입력✏️출력🖥️입력✏️출력🖥️입력✏️출력🖥️입력✏️출력🖥
ORDER BY절은 SQL문장으로 조회한 데이터들을 다양한 목적에 맞게 특정 컬럼을 기준으로 정렬,출력하는데 사용한다.ORDER BY절에 컬럼명 대신에 SELECT절에서 사용한 ALIAS명이나 컬럼순서를 나타내는 정수도 사용 가능하다.별도로 정렬방식을 지정하지 않으면
조인 두 개 이상의 테이블들을 연결해 데이터를 출력하는 것두 개의 테이블 간에 컬럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법으로대부분 PK <-> FK의 관계를 기반으로 한다.이 기능은 계층형이나 망형 데이터베이스와 비교해서 관계형 데이터베이스의 큰 장
ANSI/ISO SQL에서 표시하는 FROM절의 조인형태는 다음과 같다.INNER JOINNATURAL JOINUSING 조건절ON 조건절CROSS JOINOUTER JOININNER JOIN은 OUTER조인과 대비해 내부 조인이라고 하며 조인조건을 만족하는 행들만 반
: 하나의 SQL문안에 포함돼 있는 또 다른 SQL문을 말한다.
집합연산자를 사용하면 조인을 사용하지 않고도 연관된 데이터를 조회할 수 있다.집합연산자는 여러개의 결과 집합 간의 연산을 통해 결합하는 방식을 사용한다. 즉 집합연산자는 2개이상의 질의 결과를 하나의 결과로 만들어준다.튜닝 관점에서 실행계획을 분리하고자 하는 목적으로도
ANSI/ISO SQL 표준은 데이터 분석을 위해서 다음의 세가지 함수를 정의하고 있다.AGGREGATE FUNCTIONGROUP FUNCTIONWINDOW FUNCTION: GROUP AGGREGATE FUNCTION이라고도 부르며 ,그룹함수의 한 부분으로 분류할 수
복잡한 SQL문을 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수가 바로 윈도우함수이다.윈도우 함수는 기존에 사용하던 집계함수도 있고, 새로이 윈도우 함수 전용으로 만들어진 기능도 있다. 그리고 윈도우 함수는 다른 함수와는 달리 중첩해
: Oracle의 ROWNUM은 컬럼과 비슷한 성격의 Pseudo column으로서 SQLㅊ처리 결과 집합의 각 행에 대해 임시로 부여되는 일련번호이다.테이블이나 집합에서 원하는 만큼의 행만 가져오고 싶을때 WHERE절에서 행의 개수를 제한하는 목적으로 사용한다.순위가
: 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의를 사용한다.계층형 데이터란?: 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말한다.엔터티를 순환관계데이터모델로 설계할 경우 계층형 데이터가 발생한다.순환관계데이터모델의 예
: 행을 열로 전환한다.aggregate_function은 집계할 열을 지정한다.FOR 절은 PIVOT할 열을 지정한다.IN 절은 PIVOT할 열 값을 지정한다.PIVOT 절은 집계함수와 FOR절에 지정되지 않은 열을 기준으로 집계되기 때문에 인라인 뷰를 통해 사용할
정규표현식(regular expression)은 문자열의 규칙을 표현하는 검색패턴으로 주로 문자열 검색과 치환에 사용된다.정규표현식의 기본 연산자이다.입력✏️출력💻앵커(anchor)는 검색패턴의 시작과 끝을 지정한다.^ (carrot) : 문자열의 시작$ (dolla
DML(Data Manipulation Language): values절을 포함하며, 한 번에 한 행만 입력된다.기본형태INTO절의 컬럼명과 VALUES절의 값을 서로 1:1로 매핑해 기술한다.컬럼명의 기술순서는 테이블에 정의된 컬럼순서와 동일할 필요는 없다.INTO절
트랜잭션은 데이터베이스의 논리적 연산단위이다. 트랜잭션이란 밀접히 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.트랜잭션은 전부 적용하거나 전부 취소한다. ALL OR NOTHING의 개념이다.
: 테이블은 데이터베이스의 가장 기본적인 객체로, 행과 열의 구조로 데이터를 저장한다. 테이블 생성을 위해서는 해당 테이블에 입력될 데이터를 정의하고, 정의한 데이터를 어떠한 데이터 유형으로 선언할 것인지를 결정해야 한다.테이블에 존재하는 모든 데이터를 고유하게 식별할
DCL (Data Control Language) : 유저를 생성하고 권한을 제어할 수 있는 명령어. - 유저와 권한을 관리하는 이유 : 데이터보호와 보안을 위해 관리한다. - Oracle은 유저를 통해 데이터베이스에 접속하는 형태이다. 즉 아이디와 비밀번호 방식
: DBMS마다 데이터베이스에 대한 정의가 조금씩 다르다. Oracle에서는 디스크에 저장된 데이터 집합을 데이터베이스라고 부른다. 그리고 SGA공유메모리영역과 이를 액세스하는 프로세스 집합을 합쳐서 인스턴스라고 부른다.<사진>기본적으로 하나의 인스턴스가 하나의
SQL은 Structured Query Language의 줄임말이다. 말 그래도 구조적 질의 언어다.원하는 결과집합을 구조적,집합적으로 선언하지만 그 결과 집합을 만드는 과정은 절차적일 수 밖에 없다. 즉 프로시저가 필요한데 그런 프로시저를 만들어내는 DBMS내부엔진이
데이터베이스 I/O 효율화 및 버퍼캐시 최적화 방법을 이해하는데 필요한 기본 개념과 원리를 알아보도록 하자.Oracle을 포함한 모든 DBMS에서 I/O는 블록단위로 이뤄진다. 즉 하나의 레코드를 읽더라도 레코드가 속한 블록 전체를 읽는다.SQL성능을 좌우하는 가장 중