📝 Certificate
SQLD 3-3 ] DML (DATA MANIPULATION LANGUAGE)
SQLD 3-3 ] DML (DATA MANIPULATION LANGUAGE)
2016.02.22INSERT - 테이블에 데이터를 입력.INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST 에 넣을 VALUE_LIST);INSERT INTO 테이블명VALUES (전체 COLUMN에 넣을 VALUE_LIST);첫번째 꺼는 칼럼 하나 하나 선택해서 값을 넣는거두번째 꺼는 전체에 순서대로 값을 넣는거 정의되지 않은 컬럼은 디폴트로 NULL 이 지정된다.값에는 ' ' 로 문자를 써야하고, 숫자는 그냥 ' ' 없이 숫자만 쓴다. UPDATE - 칼럼 내용 수정.UPDATE 테이블명SET 칼럼명 = 바뀔 값;한 컬럼 세로로 쭉.. 다 수정된다 UPDATE PLAYERSET BACK_NO = 99; 하면. 플레이어 테이블에 있는 BACK_NO 칼럼의 전체의 값들이 99..
SQLD 3-2 ] DDL (DATA DEFINITION LANGUAGE)
SQLD 3-2 ] DDL (DATA DEFINITION LANGUAGE)
2016.02.18데이터 유형 대표적인 4가지 데이터 유형. 이 외에도 여러 다양한 유형이 있다. CHAR(4) 유형'AA' = 'AA ' VARCHAR2(4) 유형' AA' = 'AA' CREATE TABLE - 테이블 생성. CREATE TABLE 테이블이름 ( 칼럼명1 DATATYPE [DEFAULT 형식], 칼럼명2 DATATYPE [DEFAULT 형식]); 테이블 생성 시 유의사항 1. 객체를 의미할수 있는 이름. 2. 다른 테이블과 중복되면 안되고, 또 테이블 내에서 칼럼명이 서로 중복되면 안됨. 3. 테이블 이름을 지정하고 각 칼럼들은 괄호 () 로 묶어 지정한다 4. 각 칼럼들은 콤마(,) 로 구분되고, 테이블 생성문의 끝은 ; 으로 끝난다 5. 칼럼에 대해서는 다른테이블까지 고려해서 사용하자...
SQLD 3-1 ] 관계형 데이터베이스 개요
SQLD 3-1 ] 관계형 데이터베이스 개요
2016.02.18데이터베이스 - 일상적인 정보들을 모아 놓은 것 - 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 저장해놓은 것 데이터베이스의 발전 1960년대: 플로우차트 중심의 개발방법, 파일 구조의 데이터 저장, 관리 1970년대: 데이터베이스 관리 기법이 처음 태동되던 시기, 계층형 데이터베이스, 망형 데이터베이스 상용화 1980년대: 관계형 데이터베이스 상용화(Oracle, Sybase, DB2) 1990년대: 보다 향상된 기능으로 많은 관계형 데이터베이스들이 사용, 객체 관계형 데이터베이스로 발전 관계형 데이터베이스 - 기존 파일 시스템의 동시성 제한, 데이터 불일치성 문제 해결 - 정규화를 통한 합리적인 테이블 모델링을 통해 ANOMALY 현상을 제거하고 데이터 중복을 피한다. - ..
SQLD 2-6 ] 분산 데이터베이스와 성능
SQLD 2-6 ] 분산 데이터베이스와 성능
2016.02.15분산 데이터베이스 - 데이터베이스를 여러 군데로 위치시켜서 사용성/성능 등을 극대화 시킨 데이터베이스 - 논리적으로는 동일한 시스템에 속하지만, 물리적으로는 분산되어있는 데이터들의 모임. 분산 데이터베이스의 투명성 - 분산 데이터베이스 가 되려면 6가지 투명성 을 만족해야한다! 분할. 위치. 지역사상. 중복. 장애. 병행. 분산 데이터베이스의 적용 방법 및 장단점 1. 분산 데이터베이스 적용 방법 - 업무의 흐름을 보고 업무 구성에 따른 아키텍처 특징에 따라 구성. 단순히 분산환경에서 구축해보자! 라는게 목적이 아니라, 업무에 따라 이건 분산구조를 해야겠군. 설계하는 능력이.. 2. 분산 데이터베이스 장단점 * 데이터무결성 : 무결성 은 온전함 을 의미. 데이터 값..
SQLD 2-5 ] 데이터베이스 구조와 성능
SQLD 2-5 ] 데이터베이스 구조와 성능
2016.02.15슈퍼타입 / 서브타입 모델의 성능고려 방법 1. 슈퍼타입 / 서브타입 ? - 데이터의 특징을 공통점과 차이점의 특징을 고려하여 효과적으로 표현. 공통의 부분을 슈퍼타입, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성은 서브엔터티로 구분. ( 학생 은 학부생과 대학원생 으로 나뉜다. 여기서 학생은 슈퍼타입, 학부생과 대학원생은 서브타입이라고 한다..) 예로 다음과 같다. 1. 트랜잭션은 항상 일괄로 처리하는데, 테이블은 개별로 유지되어 Union 연산에 의해 성능이 저하될 수 있다. 2. 트랜잭션은 항상 서브타입 개별로 처리하는데. 테이블은 또 하나로 되있어서.. 불필요하게 많은 양의 데이터를 읽어와야되서 성능이 저하되는 경우가 있다. 3. 트랜잭..
SQLD 2-4 ] 대량 데이터에 따른 성능
SQLD 2-4 ] 대량 데이터에 따른 성능
2016.02.14대량 데이터발생에 따른 테이블 분할 개요 - 대량의 데이터가 처리되는데 테이블에 성능이 저하되는 이유는 SQL 문장에서 데이터를 처리하기 위한 I/O 의 양이 증가하기 때문. 인덱스를 적절하게 쓰면.. I/O 는 줄일 수 있지만, 대량의 데이터가 하나의 테이블에 존재하게 되면.. 성능저하를 유발할수 있다. 로우체이닝 : 로우 길이가 너무 길어 데이터 블록 하나에 다 저장못하고 두 개 이상의 블록에 걸쳐 하나의 데이터가 저장로우마이그레이션 : 블록에서의 수정이 발생되면 수정된 데이터를 그 블록에 저장못하고 다른 블록의 빈공간에 저장하는거 한 테이블에 많은 수의 칼럼을 가지고 있는 경우 저렇게 많은 칼럼들을 다 가져오려면... 디스크 I/O가 엄청많이 일어나겠지해결법으로는 1:1 관계로..
SQLD 2-3 ] 반정규화와 성능
SQLD 2-3 ] 반정규화와 성능
2016.02.14반정규화 - 비 정규화는 아예 정규화 수행을 안한거고, 반 정규화는 정규화 된 엔터티, 속성, 관계 에 대해 성능향상 하려고 하는 데이터모델링의 기법 데이터를 중복하여 성능을 향상시키는 기법? 왜 이렇게까지 할까. 데이터 조회할 때 디스크 I/O량이 많아서 성능이 좀 저하될꺼같고 또 경로가 너무 멀어서 성능저하가 될때를 예상해서 반정규화를 사용한단다. ( 반정규화가 정규화 안한건줄 알았는데 아니였음. )( 아니 왜 일부러 중복해서 쓰는걸까.. 정규화를 하면 성능 향상시키긴 하는데 엔터티들 너무 많아지니까.. 적절히 반정규화 좀 섞어서 쓰라고 한다. 단 반정규화를 잘 못쓰면.. 오히려 성능이 저하되고, 노력비용이 많이든다!) 반정규화의 적용방법 - 난이도 높은 데이터 모델링의..
SQLD 2-2 ] 정규화와 성능
SQLD 2-2 ] 정규화와 성능
2016.02.14정규화를 통한 성능 향상 전략 - 정규화를 하면.. 중복성을 제거하고, 데이터가 관심사별로 나뉘어지기 때문에 성능이 향상된다. 좀 많이 나뉘어지니까.. 엔터티가 그만큼 많아질꺼고. SQL 문장에서 조인 할께 많아지니. 성능이 오히려 안좋아질수도..!! 반정규화된 테이블의 성능저하 사례반정규화(다음장에서 설명) 를 정규화를 해서 2개의 테이블로 만들었는데 예를들어 관서등록일자 가 2010년 이후를 조회하면. 왼쪽 반정규화 테이블에서는 납부자번호 만큼 누적된 데이터를 다 읽어야되고.. 오른쪽은 관서 수만큼만 존재하는 데이터를 읽기때문에.. 정규화를 하면 조회 성능이 저하된다는 고정관념은 틀렸다고 볼 수 있다. 다른 사례도 몇가지 있지만, 정규화를 하면 좋아진다는 설명들이다. 함수적 종..
SQLD 2-1 ] 성능 데이터 모델링의 개요
SQLD 2-1 ] 성능 데이터 모델링의 개요
2016.02.14성능 데이터 모델링의 정의 - 데이터베이스 성능향상이 목적이다! 설계단계의 모델링할때부터 정규화, 반정규화, 등등.. 이런 성능과 관련된 사항들이 제대로 모델링에 반영할 수 있도록 하는것 성능 데이터 모델링 수행시점 - 그럼 언제 해야될까. 분석/설계 단계에서 데이터베이스 처리능력을 향상시킬 수 있도록 해야한다. 성능 데이터 모델링 고려사항 1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다. - 정규화 하면 주요 관심사별로 데이터를 분산시킨다. 2. 데이터베이스 용량산정을 수행한다. - 어떤 엔터티에 데이터가 집중되는지 볼수 있다. 3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. - 그에 따라 성능을 고려한 데이터 모델을 설계할 수 있다. 4. ..
SQLD 1-5 ] 식별자
SQLD 1-5 ] 식별자
2016.02.14식별자 → 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자 식별자의 특징 1. 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다. 2. 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다. 3. 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다. 4. 주식별자가 지정이 되면 반드시 값이 돌아와야 한다. 식별자의 분류 1. 엔터티 내에서 대표성을 가지는가 에 따라 "주식별자" 와 "보조식별자" 로 구분한다. 2. 엔터티 내에서 스스로 생성되었는지 에 따라 "내부식별자" 와 "외부식별자"로 구분한다. 3. 앤터티 내에서 단일 속성으로 식별이 되는가 에 따라 "단일식별자" 와 "복합식별자"로 구분한다. 4. 원래 있는 식별자 속성을 대체..
SQLD 1-4 ] 관계
SQLD 1-4 ] 관계
2016.02.12관계 : 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 현태로서나 행위로서 서로에게 연관성이 부여된 상태 ( 강사 ------------ (가르친다) ------------- 수강생 ) 가르치는 관계. 페어링 → 엔터티 내에 인스턴스와 인스턴스 사이에 관계가 설정되어 있는 것. 엔터티와 엔터티가 아니라 인스턴스와 인스턴스! 강사 엔터티의 정성철 이 수강생 엔터티의 이춘식, 황종하 에게 강의를 하는 관계. 관계의 분류 "존재에 의한 관계" 와 "행위에 의한 관계" 로 구분될 수 있다. 어떤 목적으로 연결되었느냐에 따라.. 관계의 표기법 1. 관계명 : 관계의 이름 2. 관계차수 : 1:1, 1:M, M:N 3. 관계선택사양 : 필수관계, 선택관계 1. 관계명 ..
SQLD 1-3 ] 속성
SQLD 1-3 ] 속성
2016.02.12속성 → 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 ??? ... (그냥 간단하게 강사의 엔터티 안에 속성들은 이름, 주소, 생년월일, 계약일자 가 될수 있다.) 엔터티, 인스턴스, 속성, 속성값 에 대한 관계 → 한 개의 엔터티는 두개 이상의 인스턴스의 집합이여야 한다. → 한 개의 엔터티는 두 개 이상의 속성을 갖는다. → 한 개의 속성은 한 개의 속성값을 갖는다. 쉽게 사람(엔터티) 안에 속성들은 이름, 주소, 생년월일 이고, 홍길동, 서울, 1991년 은 속성값이 된다. 인스턴스는 홍길동, 서울, 1991년 이 한줄(한 세트)가 인스턴스. 속성의 특징 1. 엔터티와 마찬가지로 반드시 꼭 필요한 정보인지.. 2. 정해진 ..