728x90
반응형
관계형 데이터 모델
- 릴레이션(Relation): 행+열로 구성된 테이블
- 튜플(Tuple): 릴레이션의 행(row)에 해당하는 요소
- 카디널리티(Cardinality): 튜플의 수 = 행의 수, 한 릴레이션에 포함된 튜플은 모두 상이하고 튜플 사이에는 순서X
- 속성(Attribute): 릴레이션의 열(column)에 해당하는 요소
- 차수(Degree): 속성의 수 = 열의 수, 한 릴레이션을 구성하는 속성 사이에는 순서X, 모든 속성값은 원자값을 갖는다
- 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담는 기본 구조
- 인스턴스(Instance): 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터들의 집합
관계 대수 vs 관계 해석
- 관계 대수: 릴레이션을 처리하기 위한 연산의 집합으로 피연산자와 결과 모두 릴레이션임, 원하는 정보와 그 정보를 어떻게 유도하는지 기술하는 절차적 특징을 가짐, 질의에 대한 해를 구하기 위해 수행해야 할 연산 순서를 명시, 일반 집합 연산자과 순수 관계 연산자
- 일반 집합 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트(Cartesian Product
- 카티션 프로덕트: 모든 튜플을 연결해 새로운 튜플로 릴레이션을 구성. 차수=각 릴레이션 차수(열의 수)의 합, 카디널리티=각 릴레이션 카디널리티(행의 수)의 곱
- 순수 관계 연산자 - 셀 프 조 디
- 셀렉트(σ) : 조건을 만족하는 튜플 반환, 수평적 부분 집합
- 프로젝트(π): 주어진 속성들의 값으로만 구성된 튜플 반환 => 일부 속성만 추출해 중복 튜플 제거 후 새 릴레이션
- 조인(⋈): 공통 속성을 이용해 두 튜플을 연결해 만든 튜플 반환
- 디비전(÷): (R ÷ S) 릴레이션 S의 모든 튜플과 관련 있는 릴레이션 R의 튜플 반환
- 일반 집합 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트(Cartesian Product
- 관계 해석: 원하는 정보가 무엇인지라는 것만 정의하는 비절차적 방법, 튜플 해석과 도메인 관계해석, 관계 데이터 모델의 제안자인 코드(Codd)가 수학의 프레디킷 해석(Predicate Calculus)에 기반을 두고 관계 데이터베이스를 위해 제안함
- 기본적으로 관계 대수와 관계 해석은 관계 데이터베이스를 처리하는 기능이나 능력에서 동등함
데이터 모델 구성요소 - 구 연 제
- 논리적 데이터 구조(Structure): 데이터베이스에 논리적으로 표현될 대상으로서 개체 타입 + 개체 타입 간의 관계. 데이터베이스 구조 및 정적 성질을 표현
- 연산(Operation): 데이터베이스에 실제 데이터를 처리하는 작업에 대한 명세, 릴레이션의 조작을 위한 관계연산
- 제약조건(Constraint): 데이터 무결성 유지를 위한 데이터베이스의 보편적 방법
- 데이터베이스 설계: 요구조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계
- 요구조건 분석: 도출된 요구사항 간 상충 해결, 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석
- 개념적 설계: 트랜잭션 모델링, view 통합 방법 및 attribute 합성 고려, 개념적 데이터 모델은 데이터베이스 종류와 관계X
- 논리적 설계: 데이터 모델링, DBMS에 맞는 논리적 스키마를 설계, 트랜잭션 인터페이스를 설계, 관계형 DB에선 테이블 설계 단계
- 물리적 설계: 데이터 구조화, 저장 레코드 양식 설계, 레코드 집중 분석 및 설계, 접근 경로 설계
- 물리적 설계 시 고려사항: 응답시간, 트랜잭션 처리량, 디스크 용량, 저장공간의 효율화
E-R 모델(개체-관계 모델)
- 개체 ☐(사각형)
- 속성 ⃝(타원), 다중값 속성 ◎(이중 타원)
- 연결 ⎯(선)
- 관계 ♢(마름모)
이상(Anomaly) 현상
릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
- 삽입 이상, 삭제 이상, 갱신 이상 - 삽 상 개
정규화(Normalization)
- 정규화를 거치지 않으면 이상(Anomaly) 발생
- 논리적 설계 단계에서 정규화 수행함
- 정규화 목적: 중복 데이터를 최소화 => 테이블 불일치 위험 최소화, 수정/삭제 시 이상 현상을 최소화해 데이터 구조 안정성 최대화
- 데이터베이스 정규화 단계 - 원 부 이 결 다 조
- 제1정규형(1NF), 원자화: 어떤 릴레이션 R에 속한 모든 도메인이 원자값만으로 되어있음
- 제2정규형(2NF), 부분 함수 종속 제거: 키가 아닌 모든 속성이 기본키에 완전 함수적 종속돼야 함
- 제3정규형(3NF), 이행 함수 종속 제거: 이행 함수 종속을 제거하는 단계
- 이행 함수 종속성 관계란? A->B, B->C일 때 A->C인 관계
- 보이스코드정규형(BCNF), 결정자 함수 종속 제거: 결정자이면서 후보키가 아닌 함수 종속 제거(결정자인데 후보키가 아닌 것) => 모든 결정자가 후보키가 됨
- 제4정규형(4NF), 다치 종속성 제거
- 제5정규형(5NF), 조인 종속성 제거: 후보키를 통하지 않는 조인종속(Join Dependency)을 제거 => 모든 조인 종속성의 만족이 후보키를 통해서만 만족
반정규화(Denormalization)
- 정규화된 엔티티, 속성, 관계를 시스템 성능 향상과 개발운영의 단순화를 위해 중복・통합・분리 등을 수행하는 데이터 모델링 기법
- 반정규화를 통해 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
- 유형: 중복 테이블 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만 포함하는 테이블 추가), 중복 속성 추가, 테이블 통합, 테이블 분할 등
분산 데이터베이스(Distributed Database)
- 분산 데이터베이스 구성요소: 분산 처리기, 분산 데이터베이스, 통신 네트워크
- 논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스
- 장점: 지역 자치성이 높음, 분산 제어 가능, 시스템 성능 향상, 점진적 시스템 용량 확장 용이, 자료 공유성 향상, 물리적 위치 알 필요X, 중앙컴퓨터의 장애가 전체 시스템에 영향X
- 단점: 구현 및 설계가 복잡하고 개발・처리 비용 증가, DBMS가 수행할 기능이 복잡
- 분산 데이터베이스의 투명성
- 위치(Location) 투명성: 데이터가 물리적으로 여러 곳에 복제되어 있는지 알 필요X
- 복제(Replication) 투명성: 데이터가 물리적으로 여러 곳에 복제되어 있는지 알 필요X
- 병행(Concurrency) 투명성: 여러 사용자가 동시에 트랜잭션 수행해도 결과에 이상X, 로킹(Locking)과 타임스탬프(Time Stamp) 순서 기법 이용
- 로킹 단위가 클수록 로크의 수가 적어지고 병행성 수준이 단순해짐, 로킹 단위가 작을수록 병행 제어 기법이 복잡해지고 로크의 수가 많아짐
- 분할(Fragmentaion) 투명성: 한 릴레이션의 각 단편의 사본이 여러 장소에 저장되어 있음을 알 필요X
- 장애(Failure) 투명성: 데이터베이스가 분산되어 있는 각 지역의 시스템 또는 통신망에 이상이 생겨도 데이터의 무결성을 보존 가능, 2PC(Phase Commit)
파티셔닝(Partitioning)
- 물리적 파티셔닝으로 인해 전체 데이터 훼손 가능성은 줄고 데이터 가용성 향상, 데이터베이스를 작은 단위로 관리해 편리, 부하 분산해 성능 향상
- 병렬 데이터베이스 환경 중 수평분할에 활용되는 분할 기법
- 범위 분할(Range Partitioning): 지정한 열값 기준으로 범위 지정해 분할 ex)월별
- 해시 분할(Hash Partitioning): 해시 함수를 적용한 결괏값에 따라 분할, 특정 파티션에 데이터가 집중되는 범위 분할 단점을 보완함
- 조합 분할(Composite Partitioning): 범위 분할 후 해시 함수 적용해 다시 분할함, 범위 분할한 파티션이 너무 커 관리 어려울 때 유용함
- 목록 분할(List Partitioning): 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할 ex)국가->아시아
- 라운드 로빈 분할(Round Robin Partitioning): 레코드를 균일하게 분배, 각 레코드가 순차적으로 분배되며 기본키 필요X
데이터베이스의 무결성 vs 보안
- 보안: 권한 없는 사용자가 데이터 조작하는 것을 방지
- 무결성: 권한이 있는(Insert, Update, Delete) 사용자로부터 데이터베이스 보호 -> 저장된 데이터값과 실제값이 일치하는 정확성 유지
- 개체 무결성: 한 엔티티에서 동일한 기본키(PK)를 가질 수 없거나, 기본키의 속성이 NULL을 허용할 수 없음
- 참조 무결성: 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키 값이나 NULL이어야 하는 제약조건
- 키 무결성: 한 릴레이션에 같은 키값을 가진 튜플들을 허용할 수 없는 제약 조건
- 속성 무결성: 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 하는 제약조건
- 사용자 무결성: 사용자의 의미적 요구사항을 준수해야 하는 제약조건
키(Key)
- 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
- 기본키(Primary Key): 테이블의 각 튜플을 고유하게 식별, NOT NULL, 유일성O, 최소성O
- 후보키(Candidate Key): 테이블에서 각 튜플을 구별할 때 기준키, 유일성O, 최소성O
- 대체키(Alternate Key): 후보 키 중에서 기본키로 선택하지 않은 키, 유일성O, 최소성O
- 슈퍼키(Super Key): 모든 튜플에 대해 유일성O, 최소성X
- 외래키(Foreign Key): 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 키
제가 모르거나 헷갈리는 부분만 정리했답니다
의미보다는 기출에 잘 나오는 키워드 위주로 볼드 표시 했어요
728x90
반응형
'Back-end' 카테고리의 다른 글
nohup이 뭘까요 (0) | 2025.03.06 |
---|---|
[Cloudflare] AWS EC2 서버를 Cloudflare Tunnel로 우회 (0) | 2025.03.05 |
네이버 로그인 애플리케이션 사전 검수 - 서비스 적용 형태 확인 캡처 방법 (0) | 2024.12.19 |
네이버 로그인 API 에러 중 '서비스 설정에 오류가 있어 네이버 아이디로 로그인할 수 없습니다' 해결방법 (0) | 2024.12.13 |
[AWS] 서버에 스프링부트 프로젝트 배포하기 (0) | 2024.12.05 |