본문 바로가기

데이터베이스(Database)/Data Modeling

(10)
[DB] 데이터 모델링(10) - 분산 데이터베이스 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 분산 데이터베이스 분산 데이터베이스 물리적으로 분산된 데이터베이스를 하나의 논리적 시스템으로 사용할 수 있도록 한 데이터베이스 - 논리적으로 동일한 시스템이지만, 네트워크를 통해 물리적으로는 분산되어 있는 데이터들의 모임 - 빠른 네트워크 환경을 이용해 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성과 성능을 높인 데이터베이스 장단점 분산 데이터베이스의 적용 기법 테이블 위치 분산 테이블을 각각 다른 장소에 위치 테이블 분할 분산 각 테이블을 분할해 분산 테이블 복제 분산 동일 테이블의 복사본을 여러 서버에서 동시 관리 - 부분 복제 본사는 통합 테이블을, 지사는 지사에 해당된 로..
[DB] 데이터 모델링(9) - 반정규화(Denormalization) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 반정규화(Denormalization) 정규화된 엔티티, 속성, 관계에 대해 성능 향상을 위해 중복, 통합, 분리를 수행하는 데이터 모델링 기법 정규화를 수행하지 않은 것(비정규화)이 아님. 특징 테이블, 칼럼, 관계의 반정규화를 종합적으로 고려 - 일반적으로 Column의 중복을 통해 수행 과도한 반정규화는 데이터의 무결성을 침해 반정규화 절차 반정규화 대상조사 - 전체 데이터의 양을 조사하고 그 데이터가 해당 프로세스를 처리할 때 성능저하가 나타나는지 검증 다른 방법 유도 검토 - 데이터를 중복해 데이터 무결성을 깨뜨릴 위험을 제어하기 위해 먼저 다른 방법을 모색 - 뷰 테이블 : ..
[DB] 데이터 모델링(8) - 정규화(Normalization) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 이상현상(Anomaly) 데이터베이스를 잘못 설계해서 발생하는 현상 삭제 이상(Deletion Anomaly) - 특정 데이터를 제거하면 원치 않은 정보도 삭제되는 이상현상 - ex) 학번이 '1102'인 학생이 'A01'을 수강한 기록을 삭제하는 경우 삽입 이상(Insertion Anomaly) - 새 데이터를 삽입하려면 불필요한 정보도 함께 삽입해야 하는 이상현상 - ex) 학번이 1104, 이름이 유관순, 연락처가 010-1234-5678인 학생을 추가하는 경우 갱신 이상(Update Anomaly) - 특정 정보를 변경했지만 일부만 변경되어 데이터가 불일치하게 되는 이상현상 - ..
[DB] 데이터 모델링(7) - 성능 데이터 모델링과 관계형 모델 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 성능 데이터 모델링 정의 DB 성능을 고려해 데이터 모델링을 수행하는 것 - 정규화, 반정규화, 테이블 통합 및 분할, 조인 구조, PK, FK 등 여러 성능과 관련된 사항을 모델링에 반영 - 분석/설계 → 구현 → 테스트 → 운영의 과정을 거친 후 Backtracking 과정을 안 밟기 위해 수행 수행시점 빠를수록 좋음 - 분석/설계 단계부터 수행 시 성능개선 비용 최소화 가능 - 일반적으로 설계 → 성능 저하 발생 → 해당 SQL 튜닝 순으로 진행하는데, 바람직하지 않음 성능 데이터 모델링 진행 순서 정규화를 정확히 수행 - 주요 관심사별로 테이블 분산 DB 용량 산정 - 각 엔티티..
[DB] 데이터 모델링(6) - 식별자(Identifier) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 식별자의 정의 식별자 엔티티내에서 인스턴스들을 구분할 수 있는 구분자 하나의 엔티티에 구성되어 있는 여러 개의 속성 중 엔티티를 대표할 수 있는 속성 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 함 식별자와 키 - 식별자는 논리 데이터 모델링 단계에서 사용 - 키는 물리 데이터 모델링 단계에서 사용 식별자의 분류 대표성에 따른 분류 주식별자(PK) vs 보조식별자(CK) 목적(또는 스스로 생성되었는지)에 따른 분류 내부식별자 vs 외부식별자(FK) 속성 수에 따른 분류 단일식별자 vs 복합식별자 본질(또는 대체 여부)에 따른 분류 본질식별자 vs 인조식별자 식별자의 특징 유일..
[DB] 데이터 모델링(5) - 속성(Attribute) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 속성의 정의 속성(Relationship) 사전적 정의 - 사물의 특징이나 본질적인 성질 - 속성이 없다면 실체를 생각할 수 없음 그렇다면, DB에서? - 업무에서 필요로 하는 인스턴스에 대해 의미상 더 이상 분리되지 않는 최소의 데이터 단위 - 엔티티에 속한 인스턴스들의 성격을 구체적으로 나타냄 - 인스턴스 각각을 구분할 수 있는 기준을 파악해 이름을 부여하여 속성화 시킴 엔티티 - 인스턴스 - 속성 - 속성값의 관계 각 엔티티는 둘 이상의 인스턴스를 가짐 각 엔티티는 둘 이상의 속성을 가짐 각 속성은 하나의 속성값을 가짐 속성의 특징 해당 업무에서 필요하고 관리해야 하는 정보이어야 ..
[DB] 데이터 모델링(4) - 관계(Relationship) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 관계의 정의 관계(Relationship) 엔티티 간의 논리적 연관성 페어링(Paring) 엔티티 내 인스턴스 간의 개별적 연관성 - 즉, 관계는 페어링의 집합 - 최초의 ERD 모델인 Chen 모델에서는 관계는 속성을 가질 수 없었음 - 최근 주로 사용하는 ERD 모델인 IE 모델에서는 관계는 속성을 가질 수 있음. 관계의 분류 존재에 의한 관계 - 단순히 소속되어 있기 때문에 나타나는 관계 행위에 의한 관계 - 인스턴스가 한 행위를 함으로써 나타나는 관계 관계의 표기법 관계명(Membership) 각 관계는 두 방향의 관계명을 가짐 - 애매한 동사를 피해야 함 - 현재형으로 표기 관..
[DB] 데이터 모델링(3) - 엔티티(Entity) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 엔티티의 정의 Peter Chen(1976) : 변별할 수 있는 사물 C.J Date(1986) : 데이터베이스 내에서 변별 가능한 객체 James Martin(1989) : 정보를 저장할 수 있는 어떤 것 Thomas Bruce(1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 - 업무에 필요한 정보를 저장하고 관리하기 위한 집합적인 어떤 것(Thing) - 유형 혹은 무형 정보의 대상 - 인스턴스의 집합 엔티티의 분류 유형(Tangible) 엔티티 - 물리적인 형태가 있고 안정적이며 지속적으로 활용됨 개념(Conceptual) 엔티티 - 물리적인 형태는..