이유's Programming/DBMS

    [ 3 -1 ] DBMS 내장 함수

    dbms 에서 사용할 수 있는 함수는 다양한 기준으로 분류할 수 있는데.. 오라클과 같은 벤더에서 제공하는 함수인 내장함수와 그리고 사용자가 정의할 수 있는 함수인 ( User Defined Function ) 이 있다. 요기서는 이제 벤더에서 제공하는 함수인 내장 함수에 대해 말해볼 것이다. 내장행 함수의 단일의 행으로 결과 값이 나오는 함수는 여러 종류가 있다. - 문자형 함수 문자형 함수 함수 설명 Lower ( 문자열) 문자열의 알파벳 문자를 소문자로 Upper ( 문자열 ) 문자열 알파벳 문자를 대문자로 ASCHII 문자나 숫자를 ASCHII 코드로 CHAR/CHAR (ASCHII 번호) ASCHII 번호를 문자나 숫자로 바꾼다. CONCAT ( 문자열 1, 문자열 2) 문자열 1과 문자열 2를..

    [ 식별자 ] 본질식별자와 인조식별자

    [ 식별자 ] 본질식별자와 인조식별자

    INSERT INTO 주문상세 VALUES ( 주문상세번호.SEQ.NEXTVAL, 110001, 1234, '귤 1 BOX', '우리집' ) DBMS 에서 중요한 식별자는 엔터티에서 데이터를 식별할 수 있는 속성이다. 이처럼, 식별자는 대체여부에 따라 본질식별자 그리고 인조 식별자로 나뉘어질 수 있다. * 본질 식별자 ; 업무에 의해 만들어진 식별자 * 인조 식별자 : 업무적으로는 만들어지진 않지만 본질식별자가 복잡한 구성을 갖고 있으므로 인위적으로 만든 식별자. 해당 주문 상세 테이블에 대한 식별자는 이제 주문상세 번호이다. 해당 주문 상세 번호는 이제 필요한 해당 단일 식별자로 구성된 키값이기 때문에 시퀀스 객체로 해결이 가능하다 다음은 시퀀스 객체로 구현된 SQL 이다. INSERT INTO 주문상..

    [ 2 -1 ] 관계와 조인의 이해

    [ 2 -1 ] 관계와 조인의 이해

    이제 정말 DBMS 에서 중요한 내용인 관계에 대해서 확인해보자~. 관계는 사전적으로 정의하면 ' 상호 연관성이 있는 상태' 즉 어떤 테이블과 어떤 테이블이 서로 관계가 있어 연결된 상태이다. 아까 살펴본 대로, 1:다 / 1:1 / 다:1 / 다:다 등 다양한 관계가 존재하였다. 이 관계를 현상적으로 본다면, 부모의 식별자를 자식에게 상속시키는 행위다. 부모의 식별자를 이제 자식의 일반속성으로 상속하면 비식별관계라고 우리가 칭하였다.! - 즉 관계를 맺는다는 건 식별자를 상속하고 상속된 속성을 매핑키로 사용하는 것 ! - 우리는 이 관계를 JOIN이라는 옵션을 통해서 수행될 수 있는 것이다. 위처럼 고객테이블이 부모테이블이 되고 주문테이블이 자식 테이블이 되어 해당 고객테이블의 고객번호가 주문테이블의 ..

    2-2. 정규화 ( 제 3 정규형, 반정규화와 성능 )

    2-2. 정규화 ( 제 3 정규형, 반정규화와 성능 )

    저번시간에 배워봤던 정규화에 대해서 알아봤고 이제는 제 3정규형에 대해 알아보자. 제 3정규형 : 엔터티의 일반속성 간에는 서로 종속적이지 않는다. 앞서 말씀 드린대로 정규형은 이제 조금씩 조금씩 다듬는 것이다. 여기서 제 3 정규형에 대한 말은 "이행적 종속" 과 연관이 있다. 예를 들면 요런 테이블이 있다고 가정해보자. 이럴 경우에 봤을 때 몇가지 문제가 생긴다. * 데이터 갱신 이상 문제 예를 들면, 고객이 이름을 바꿔 고객명을 바꿀 때 모든 주문 상세 테이블의 고객명을 따로따로 업뎃을 해주어야한다. 예를 들면, 에이미가 베이미로 바꾼다고 하면 -> 두 번의 작업을 해주어야하는 것이다. 요렇게 되면 주문과는 전혀 연관 없는 트랜잭션이므로 이를 확인해주어야한다. 이럴 경우 두번의 쓸데없는 작업이 생기..

    2-1. 정규화  ( 제 1 정규형, 제 2 정규형  )

    2-1. 정규화 ( 제 1 정규형, 제 2 정규형 )

    정규화가 왜 이루어져야 하는지 ? 왜 필요로 하는지 알아야한다..ㅎ 정규화가 우선 DB 를 어떻게 해야 효율적으로 설계할 수 있는지, 구현할 수 있는지에 대한 것이다. 1. 제 1정규형 : 모든 속성은 반드시 하나의 값을 가져야한다. - 예를 들면) 연락처 속성에서 다중 값이 들어가는 경우를 생각해보자 이럴 경우에는 1 고객 당 여러 연락처가 저장된 케이스이다. 하지만 이럴 경우에는 '정우진'이라는 고객에서 어떤 속성을 가져가야 하는지 해당 값을 추출하기가 매우 어렵다. 연락처 정보에서 집전화 번호와 또한 핸드폰 번호를 구별하기가 상당히 어렵다. 정규화 이후 이럴 경우에는 나누어서 해당 정규화를 나누어서 저장 할 수가 있다. 이런식으로 정규화를 나누어서 설정할 수 있다. 그런식으로 우선 연락처 테이블과 ..

    1-4. 관계, 식별자

    1-4. 관계, 식별자

    그 전에 알아볼 데이터 모델링 데이터 모델링의 중요한 세 가지 개념 1) 업무가 관여하는 어떤 것 ( Things ) --> 이는 엔터티 ERD 를 그릴 때.. -> 엔터티를 배치하는 것도 중요한데 가장 중요한 엔터티를 왼쪽 상단에 배치 2) 어떤 것이 가지는 성격 ( Attributes) -> 속성 / 세부적인 사항 등.. 3) 업무가 관여하는 어떤 것의 관계 ( Relationship) -> 관계 여기 안에서 중요한 것 먼저 고려해야 하는 사항은 먼저 엔터티, 속성, 관계로 인식되어야하는데 저희가 알아볼 부분은 여기서 관계입니다. 1. 관계의 개념 - 인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태 - e.x) 강사가 수강생을 가르친다. - 인스턴스는 각각은 자..

    1-2. 엔터티 entity

    엔터티 - 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 인스턴스 - 엔터티 내부에 있는 해당의 인스턴스 이렇다고 한다. 그래서 예를 들면, 해당 사원이라는 정보가 있으면 홍길동이 그 사원의 인스턴스가 되는 식! 속성의 분류 - 기본 속성 - 설계 속성 - 파생 속성 이런식으로 3가지의 속성들로 나누어진다. - 기본 속성 : 거의 대부분의 속성을 의미. 거의 대부분은 기본 속성으로 들어간다고 보면 될 거 같음 - 설계 속성 : 우리가 실제로 쓰는 데이터가 아니라 정말 DB 상으로 그리고 Back 단으로 쓰이는 데이터를 의미 - 파생 속성은 : 다른 속성에 영향을 받아 발생하는 속성을 의미함. 거의 대부분 다른 속성에 대해 끝난 다음에 계산 된 속성. 보통은 별로 안 쓰이는데 통계에서 ..