데이터베이스/SQLD 13

3-2 DDL

1. 데이터 유형 1) CHARACTER - s는 기본 길이 1바이트 - 최대 길이 Oracle 2000바이트, SQL Server 8000바이트 - 고정 길이를 갖고 있음. 2) VARCHAR - 가변 길이 문자열 정보 - Oracle은 VARCHAR2, SQL Server는 VARCHAR - s는 최소 길이 1바이트, 최대 길이 Oracle 4000바이트, SQL Server 8000바이트 - 할당된 변수값의 바이트만 적용(Limit 개념) 3) NUMERIC - 정수, 실수 등의 숫자 정보 - Oracle은 NUMBER, SQL Server는 10가지 이상의 숫자 타입 보유 4) DATETIME - 날짜와 시각 정보 - Oracle은 DATE, SQL Server는 DATETIME CHAR 유형 '..

3-1 관계형 데이터베이스

1. 데이터베이스: 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것. DBMS: 많은 사용자들이 보다 효율적인 데이터의 관리 뿐만 아니라 데이터의 손상을 피하고 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어 관계형 데이터베이스: 정규화를 통한 합리적인 테이블 모델링을 통해 이상현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공 2. SQL: 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어 - 관계형 데이터베이스에 대한 전담 접속(다른 언어는 관계형 데이터베이스에 접속 x) 용도로 사용. 데이터를 집합으로써 취급(RDB가 ..

2-6 분산 데이터베이스와 성능

여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 분산 데이터베이스의 투명성 - 분할 투명성(단편화): 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장 - 위치 투명성: 데이터 저장 장소 명시 불필요. 위치정보가 System Catalog에 유지되어야 함 - 지역사상 투명성: 지역 DBMS와 물리적 DB사이의 Mapping 보장. 각 지역시스템 이름과 무관한 이름 사용 가능 - 중복 투명성: DB객체가 여러 site에 중복인지 알 필요 X - 장애 투명성: 구성요소의 장애에 무관한 트랜잭션의 원자성 유지 - 병행 투명성: 다수 트랜잭션 동시 수행시 결과의 일관성 유지 분산 데이터베이스의 적용 기법 1) 테이블 ..

2-5 데이터베이스 구조와 성능

1. 슈퍼/서브타입 모델의 성능고려 방법 Extended ER모델(슈퍼/서브타입 데이터 모델): 공통의 부분을 슈퍼타입으로 모델링하고 별도는 서브엔터티로 표현 - 최근에 자주 쓰이는 모델링 방법 - 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현 가능 - 물리적인 데이터 모델로 변환을 할 때 선택의 폭을 넓힐 수 있는 장점 - 논리적인 데이터 모델에 이용 - 분석 단계에서 많이 사용 슈퍼/서브타입 모델 변환 방법 - 1:1 타입 - 슈퍼+서브 타입 - All in One 타입 -> 데이터의 양과 트랜잭션의 유형에 따라 테이블을 설계하지 않으면 슈퍼/서브 타입 변환 잘못하면 성능 저하된다. - 트랜잭션은 일괄 처리지만 테이블은 개별로 유지되어 Union 연산에 의해 성능 저..

2-4 대량 데이터에 따른 성능

1. 대량 데이터발생에 따른 테이블 분할 개요 아무리 설계가 잘 되어 있는 데이터 모델도 대량의 데이터가 하나의 테이블이나 하나의 하드웨어 공간에 저장되어 있으면 성능 저하를 피하기 힘들다. -> 그래서 트랜잭션이 분산 처리될 수 있도록 테이블 단위에서 분할의 방법을 적용할 필요가 있다. 또한 한 테이블에 많은 수의 컬럼이 존재하게 되면 데이터가 디스크의 여러 블록에 존재하므로 인해 디스크에서 데이터를 읽는 I/O 량이 많아지게 되어 성능이 저하된다. 인덱스 크기가 커질 경우 조희의 성능에는 영향을 미치는 정도가 작지만 데이터를 입력/수정/삭제하는 트랜잭션의 경우 인덱스의 특성상 일량이 증가하여 더 많이 성능의 저하를 유발하게 된다. 또한 데이터에 대한 범위 조회시 더 많은 I/O를 유발할 수 있게 되어..

2-3 반정규화와 성능

1. 반정규화를 통한 성능향상 전략 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 데이터 무결성 깨질 수 있는 위험이 있는데도 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많거나, 경로가 너무 멀어서 발생하는 조인으로 인하거나, 칼럼 계산하여 읽을 때 성능 저하가 예상되는 경우 반정규화를 수행한다. 프로젝트 설계 단계에서 반정규화를 기술적으로 수행하지 않으면 - 성능이 저하된 데이터베이스가 생성될 수 있다. - 구축단계나 시험단계에서 반정규화를 적용할 때 수정에 따른 노력비용이 많이 들게 된다. 반정규화 적용 방법 1) 반정규화 대상조사 - 범위처리빈도수 조사 - 대량의 범..

2-2 정규화와 성능

정규화를 통한 성능 향상 전략 - 정규화를 수행하는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것 -> 한 테이블의 데이터 용량이 최소화되는 효과 *정규화: 데이터의 일관성, 최소한의 데이터 중복, 최소한의 데이터 유연성을 위한 방법, 데이터를 분해하는 과정 (제1정규화(중복값 제거, 원자성 확보), 제2정규화(부분 함수 종속성 제거, PK 2개 이상일 때 종속되는 관계 분리), 제3정규화(이진적 함수 종속 관계, PK에 의존하지 않고 일반 컬럼에 의존하는 컬럼 제거), BCNF, 제4정규화, 제5정규화) *반정규화: 데이터의 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법(조회 속도 향상 but 모델 유연성 저하)..

2-1 성능 데이터 모델링

1. 성능 데이터 모델링의 개요 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 고나련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의 3. 성능 데이터 모델링 고려사항 1) 데이터 모델링 시, 정규화 정확하게 수행 2) 데이터베이스 용량산정을 수행 -> 가장 좋은 방법이 엔터티에 대한 용량산정 3) 발생되는 트랜잭션의 유형 파악 -> CRUD 매트릭스를 보거나 시퀀스 다이어그램(객체지향 모델링 적용하면) 보면 유형 파악 용이 4) 용량과 트랜잭션 유형에 따라 반정규화 수행 -> 테이블, 속성, 관계에 대해 포괄적인 반정규화 방법을 적용 5) 이력모델의 조정, PK/FK 조정, 슈퍼타입..

1-5 식별자

식별자 - 엔터티내에서 인스턴스들을 구분할 수 있는 구분자 대표성 여부 - 주식별자,보조식별자 스스로 생성여부 - 내부식별자, 외부식별자 속성의 수 - 단일식별자, 복합식별자 대체여부 - 본질식별자, 인조식별자 - 유일성: 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분(사원번호 개인별로 고유하게 부여) - 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수(사원번호만으로도 고유한데 사원분류코드+사원번호로 식별자 구성되면 부적절한 구조) - 불변성: 주식별자 한 번 지정되면 식별자의 값 변하면 안됨 - 존재성: 주식별자 지정되면 반드시 데이터 값 존재(null 값 안됨) 주식별자 도출 기준 - 해당 업무에서 자주 이용되는 속성을 주식별자로 지정 - 명칭, 내역 등과 같이 이름..

1-4 관계

1. 관계 - 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태(데이터 모델 관점) 인스턴스가 개별적으로 관계를 가지는 것(페어링) 이것의 집합을 관게로 표현 관계는 이항 관계, 삼항 관계, n항 관계가 존재할 수 있지만 삼항 관계 이상은 잘 나타나지 않음. 연관관계는 실선(->)으로 표현, 의존관계는 점선(-->)으로 표현 관계차수 - 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것(1:1, 1:M, N:M) 관계선택사양 - 필수관계 - 선택관계