목록콤퓨타 왕기초/SQLD/JDBC/Oracle DB (42)
파게로그
중앙 집중형 데이터베이스 한 대의 물리적 시스템에 DBMS를 설치하고 여러 명의 사용자가 DBMS에 접속하여 데이터베이스를 사용하는 구조 분산 데이터베이스 물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고 분산된 작업 처리를 수행하는 데이터베이스 분산 데이터베이스를 사용하는 고객은 시스템이 네트워크로 분산되어 있는지의 여부를 인식하지 못하면서, 자신만의 데이터베이스를 사용하는 것처럼 사용할 수 있음 (투명성) 분산 데이터베이스에서 투명성의 종류 분할 투명성 - 하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을, 고객은 인식할 필요가 없음 위치 투명성 - 고객이 사용하려는 데이터의 저장 장소를 명시할 필요 없음 - 데이터가..
반정규화(de-normalization) 데이터베이스의 성능 향상을 목적으로 함 데이터 중복을 허용 join을 줄임 조회(SELECT) 속도를 향상시키지만, 데이터 모델의 유연성은 낮아짐 반정규화를 수행하는 경우 정규화 결과 종속성, 활용성은 향상되나 성능이 저하되는 경우 다량의 범위를 자주 처리하는 경우 특정 범위의 데이터만 자주 처리하는 경우 요약, 집계 정보 등이 자주 요구되는 경우 반정규화 절차 대상 조사 및 검토 - 데이터 처리 범위, 통계성 등을 확인 다른 방법 검토 - 반정규화 외 대안이 있는지 검토 - 예시: 클러스터링, 뷰, 인덱스 튜닝, 응용 프로그램, 파티션 반정규화 수행 - 테이블, 속성, 관계 등을 반정규화 반정규화 기법 계산된 칼럼 추가 - 배치 프로그램으로 필요한 항목을 미리 ..
정규화의 문제점 정규화는 테이블 조회(SELECT) 시에 join을 유발하여 CPU, 메모리의 사용량을 높인다. 예시 - 직원(PK: 사원번호 / 이름), 부서(PK: 부서코드 / 부서명) - SELECT 사원코드, 부서코드, 부서명, 이름 FROM 직원, 부서 WHERE 직원.부서코드 = 부서.부서코드; - SELECT 사원코드, 부서코드, 부서명, 이름 FROM 직원 INNER JOIN 부서 ON 직원.부서코드 = 부서.부서코드; 이론상 부서 테이블의 건수 M * 직원 테이블의 건수 N의 시간복잡도 실제로는 인덱스와 옵티마이저 덕분에 위와 같은 비효율이 발생하지는 않음 반정규화(de-normarlization)을 통해 하나의 테이블에 저장함으로써 성능 저하 해결 정규화를 사용한 성능 튜닝 반정규화는 ..
www.youtube.com/watch?v=RXQ1kZ_JHqg 1정규화에 대한 설명이 제각각 달라서 찾아보다가 접하게 되었는데, 내가 애매하다고 생각했던 부분이 실제로도 논란이 되었다는 사실을 소개해주어서 좋았다. 정규화(normalization) 결과적으로는, 테이블 분해의 과정 정규화의 목적 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성 확보 데이터 모델의 독립성 확보 삽입, 수정, 삭제 이상 등 이상현상(anomaly)의 해결 정규화의 절차 제1정규화 - 함수적 종속성을 근거로 함 - PK를 잡는 것 - attribute의 원자성(atomicity)이란, 실로 single-value로 해석하는 편이 적절함 제2정규화 - 부분 함수 종속성 제거 - 기본키가 단일 식별자라면(하나의 ..
엔티티 식별자 엔티티를 대표할 수 잇는 유일성을 만족하는 속성 키의 종류 기본키(primary key) - 후보키 중에서 엔티티를 대표할 수 있는 키 - 최소성, 대표성, 유일성, 불변성을 만족하는 키 후보키(candidate key) - 유일성과 최소성을 만족하는 키 슈퍼키(super key) - 유일성은 만족하지만 최소성은 만족하지 않는 키 대체키(alternate key) - 여러 개의 후보키 중에서 기본키를 선정하고 남은 키 외래키(foreign key) - 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성(referential integrity)을 확인하기 위해서 사용되는 키 - 허용된 데이터 값만 데이터베이스에 저장하기 위해서 사용 식별자의 종류(대표성) 주식별자 -..
관계(relationship) 엔티티 간의 관련성 관계의 종류 존재 관계 - 엔티티 간의 상태 - 예시: '고객'은 '지점'에 소속된다. 행위 관계 - 엔티티 간에 어떤 행위가 있음 - 예시: '계좌'는 '일자별주문이력'에 대해서, 주문을 발주한다. 관계 차수(relation cardinality) 두 개의 엔티티 사이의 관계에 참여하는 수 최대 기수성: 1:1, 1:M, M:N 최소 기수성: 필수(0 불가), 선택(0 가능) M:N 관계의 join은 카테시안 곱이 발생함. 1:N, N:1로 해소되어야 함 예시: 과목과 학생의 관계에서 수강이라는 엔티티를 추가적으로 도출하여 해소할 수 있음 식별 관계(identification relationship)와 비식별 관계(non-identification re..
속성(attribute) 업무에서 필요한 정보인 엔티티가 가지는 항목 의미적으로 더 이상 분리되지 않는 단위 인스턴스의 구성요소 속성의 특징 주식별자에 함수적으로 종속됨. 즉 기본키가 변경되면 속성의 값도 변경됨 업무에서 관리되는 정보임 하나의 값만 가짐 속성의 종류(분해 여부) 단일 속성 - 하나의 의미로 구성됨 - 예시: ID, 이름, 주민등록번호 복합 속성 - 여러 개의 의미로 구성됨 - 예시: 주소(시, 구, 동으로 분해됨) 다중값 속성 - 여러 개의 값을 가질 수 있음 - 엔티티로 분해됨 - 예시: 상품 리스트 속성의 종류(특성) 기본 속성 - 비즈니스 프로세스에서 도출되는 본래의 속성 - 예시: ID, 이름, 주민등록번호 설계 속성 - 데이터 모델링 과정에서 발생되는 속성 - 유일한 값을 부여..
엔티티(entity) 업무에서 관리해야 하는 데이터의 집합으로서, 저장되고 관리되어야 하는 데이터 개념, 사건, 장소 등의 명사 엔티티의 특징 식별자 - entity는 유일한 식별자를 가져야 한다. 인스턴스 집합 - 2개 이상의 인스턴스가 있어야 한다. 속성 - entity는 반드시 속성을 가져야 한다. 관계 - entity는 다른 entity와 최소한 한 개 이상의 관계를 가져야 한다. 업무 - entity는 업무에서 관리되어야 하는 집합이다. 엔티티의 종류(유무형에 따른 종류) 유형 엔티티 - 물리적 형태가 있음 - 업무에서 도출되며 지속적으로 사용되는 엔티티 - 예시: 학생, 계좌, 사원 개념 엔티티 - 물리적 형태가 없음 - 개념적으로 사용되는 엔티티 - 예시: 인터넷 강좌, 코스피 종목, 운전자..