본문 바로가기

SQLD

(51)
[SQLD : Ⅲ. SQL 기본] 4. TCL * 트랜잭션 특성 - 원자성 : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남음 - 일관성 : 트랜잭션 실행 전에 내용이 잘못되지 않으면 트랜잭션 실행 후에도 내용이 잘못되면 안됨 - 고립성 : 트랜잭션 실행 중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안됨 - 지속성 : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스 내용은 영구적으로 저장 * COMMIT - 메모리 버퍼에만 영향을 받아서 데이터 변경 이전 상태로 복구 가능 [예제] PLAYER 테이블에 데이터를 입력하고 COMMIT을 실행한다. [예제] Oracle INSERT INTO PLAYER (PLAYER_ID, TEAM_ID, PLAYER_NAME, POSITION, H..
[SQLD : Ⅲ. SQL 기본] 3. DML * INSERT ▶ INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST에 넣을 VALUE_LIST); ▶ INSERT INTO 테이블명VALUES (전체 COLUMN에 넣을 VALUE_LIST); - 해당 컬럼명과 입력되어야 하는 값을 1:1로 매핑하여 입력 [예제] 선수 테이블에 박지성 선수의 데이터를 일부 칼럼만 입력한다. [예제] ▶ 테이블명 : PLAYER INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO) VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7); 1개의 행이 만들어졌다. [예제] 해당 테이블에 이청용 선..
[SQLD : Ⅲ. SQL 기본] 2. DDL * CREATE TABLE 한 번 생성된 테이블은 특별히 사용자가 구조를 변경하기 전까지 생성 당시 구조를 유지 1) ADD COLUMN - 기존 테이블에 필요한 컬럼을 추가하는 명령 ALTER TABLE 테이블명 ADD 추가할 칼럼명 데이터 유형; [예제] PLAYER 테이블에 ADDRESS(데이터 유형은 가변 문자로 자릿수 80자리로 설정한다.) 칼럼을 추가한다 [예제] Oracle ALTER TABLE PLAYER ADD (ADDRESS VARCHAR2(80)); 테이블이 변경되었다. [예제] SQL Server ALTER TABLE PLAYER ADD ADDRESS VARCHAR(80); 명령이 완료되었다. [실행 결과] Oracle DESC PLAYER; 칼럼 NULL 가능 데이터 유형 PLAY..
[SQLD : Ⅲ. SQL 기본] 1. 관계형 데이터베이스 개요 * 데이터베이스의 발전 - 60s : 플로우차트 중심의 개발 방법을 사용, 파일 구조를 통해 데이터를 저장하고 관리 - 70s : 데이터베이스 관리 기법이 처음 태동되던 시기, 계층형, 망형 데이터베이스 상용화 - 80s : 현재 대부분의 기업에서 사용되는 관계형 데이터베이스가 상용화 - 90s : oracle, sybase, informix, DB2, Teradata, SQL server외 많은 제품들이 보다 향상된 기능으로 정보시스템 솔루션 * 관계형 데이터베이스 - 현재 기업에서 사용하는 대부분의 데이터베이스는 기존 관계형 데이터베이스에서 객체 지원 기능을 추가 - 파일시스템 : 동시에 검색은 가능하지만 동시에 입력, 수정, 삭제 불가능 - 파일시스템은 분산된 데이터 간 정합성 보장이 힘듦 - 관계..
[SQLD : Ⅱ. 데이터 모델과 성능] 6-2. 분산데이터베이스와 성능 - 적용기법 - 테이블위치분산, 테이블분할분산, 테이블복제분산, 테이블요약분산 전략이 있음 - 가장 많이 사용하는 방식은 테이블 복제 분할 분산 방법 - 분산 환경으로 데이터베이스 설계 시 통합 데이터 모델링을 하고 각 테이블별 업무적인 특징에 따라 지역, 서버로 분산배치, 복제배치하는 형태로 설계 * 테이블 위치 분산 - 테이블의 구조는 변하지 않음 - 다른 데이터베이스에 중복되어 생성되지도 않음 - 설계된 테이블 위치를 각각 다르게 위치시키는 것 자재품목은 본사에서 관리하고, 지사별로 자재품목을 이용하여 생산 테이블이 각 지역별로 분산되어 생성되는 경우 테이블마다 위치가 다르게 지정되어야 하면 위치를 표기하여 테이블 생성 테이블의 위치가 위치별로 다르므로 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이..
[SQLD : Ⅱ. 데이터 모델과 성능] 6-1. 분산데이터베이스와 성능 - 개요 * 분산데이터베이스의 개요 - 데이터베이스를 분산하여 저장하고 이를 하나의 데이터베이스로 인식하여 사용하는 기술 - 클라우드 컴퓨팅, SOA를 인식하듯 분산 데이터베이스를 인식하고 연구 도입하려는 기업이 많아짐 - 분산데이터베이스의 정의 : 여러 곳으로 분산된 데이터베이스를 하나의 가상 시스템으로 사용하도록 한 데이터베이스 논리적으로 동일한 시스템에 속하지만 컴퓨터 네트워크를 통해 물리적으로 분산된 데이터들의 모임 물리적 SITE분산, 논리적 사용자 통합, 공유 - 분산데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스 * 투명성 1) 분할 투명성 (단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되..
[SQLD : Ⅱ. 데이터 모델과 성능] 5-2. 데이터베이스 구조와 성능 - PK/FK * PK/FK 컬럼 순서와 성능 개요 - 일반적으로 균형잡힌 트리구조의 B+Tree 구조를 많이 사용 - PK/FK 컬럼 순서 중요성을 인지 못하고 모델링되어 그 상태로 DDL 생성 시 데이터 처리 성능 문제 유발 가능 - 인덱스의 특징은 여러 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성 값이 비교자로 있어야 좋은 효율 - FK에 대해서는 반드시 인덱스를 생성하도록 하고, 인덱스 컬럼 순서도 조회 조건 고려해서 가장 효율적으로 순서 생성 * PK 컬럼 순서 미조정 시 성능 저하 이유 - 데이터 모델링에서 엔티티 설계 시 그에 따라 DDL이 생성되고 생성된 DDL에 따라 인덱스가 생성됨 인덱스의 정렬구조를 알아야 함 - 데이터모델의 PK 순서에 따라 DDL이 생성되고 주문번호, 주문일자, ..
[SQLD : Ⅱ. 데이터 모델과 성능] 5-1. 데이터베이스 구조와 성능 - 슈퍼타입/서브타입 모델 * 슈퍼타입/서브타입 모델의 성능 고려 방법 - 슈퍼/서브타입 데이터 모델 : Extended ER 이라고 부름, 논리 데이터 모델에서 이용되는 형태 공통의 부분을 슈퍼타입으로 모델링하고 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성에 대해 별도의 서브 엔티티로 구분하여 표현 물리적 데이터 모델 변환 시 선택의 폭을 넓힐 수 있음 - 물리 데이터 모델을 설계하는 단계에서는 슈퍼/서브타입 데이터 모델을 일정한 기준으로 변환해야 함 막연하게 아무 기준 없이 변환하면 성능 저하 위험 있음 * 슈퍼/서브타입 데이터 모델 변환 변환을 잘못하면 트랜잭션 특성을 고려하지 않고 테이블이 설계되어 성능이 저하 됨 1) 트랜잭션은 항상 일괄로 처리하는데 테이블은 별개로 유지되어 UNION연산에 의해 성능 저하 2)..