📑 Category
[DB] 정규화(Normalization)와 반정규화(De-Normalization)
정규화(Normalization) 릴레이션을 여러 개로 분리하는 과정 릴레이션 간 잘못된 함수 종속 관계로 발생하는 각종 삽입/갱신/삭제 이상 현상을 해결하기 위함 불필요한 데이터 제거를 통해 저장 공간을 효율적으로 사용 함수 종속 관계는 릴레이션 분리(정규화)의 기준이 됨 ※ 삽입/갱신/삭제 이상 현상에 관한 내용은 아래 포스트 참고 https://zu-techlog.tistory.com/141 [DB] 이상 현상(Anomaly) 개념, 종류 이상 현상(Anomaly) 중복이 발생하고 전체적인 무결성이 저하 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용 현실세계의 실제 값과 데이터베이스에 저장된 값이 일 zu-techlog.tistory.com 제 1정규화(1NF) 릴..
[DB] 이상 현상(Anomaly) 개념, 종류
이상 현상(Anomaly) 중복이 발생하고 전체적인 무결성이 저하 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용 현실세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생 정규화를 통해 해결 기본 테이블 예시) 학교 테이블 1. 삽입 이상(Insertion Anomaly) 특정 데이터가 존재하지 않아 중요한 데이터를 데이터베이스에 삽입할 수 없을 때 발생 내가 원하는 값만 테이블에 삽입하고 싶은데, 테이블에 필요하지 않은 필드들 때문에 원치 않는 필드의 값도 삽입해야 하는 경우 신설된 '수학과'에는 학생이 존재하지 않아 테이블에 '수학과' 데이터를 추가할 수 없음 정규화를 통해 학생 테이블과 학과 테이블로 분리하면 해결 가능 2. 삭제 이상((Deleti..
[DB] SQL 조인(Join) 개념, 종류
조인(Join) 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것\ 데이터베이스에는 서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되있어 조인을 통해 각 테이블을 연결하여 효과적으로 검색 두 테이블의 조인을 위해서는기본키(PRIMARY KEY, PK)와 외래키(FOREIGN KEY, FK) 관계로 맺어져야 함 조인의 종류 내부 조인(INNER JOIN): 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 함 외부 조인(OUTER JOIN): 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나옴 상호 조인(CROSS JOIN): 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능 자체 조인(SELF JOIN): 자신이 자..
[DB] 데이터베이스 기초 용어, 키(Key)의 개념과 종류
데이터베이스 기초 용어 릴레이션(Relation) 관계형 데이터 모델에서 하나의 개체에 관한 데이터를 저장하기 위한 구조 (= 테이블) 스키마와 인스턴스로 이루어짐 스키마(Schema) 릴레이션의 이름, 각 속성의 이름, 타입, 도메인 등을 정의하는 개념 인스턴스(Instance) 릴레이션에 저장되는 데이터(튜플)의 집합 속성(Attribute) 릴레이션의 열(Column) 서로 다른 이름을 가져야 함 튜플(Tuple) / 레코드(Record) 릴레이션의 행(Row) 중복 불가 차수(Degree) 하나의 릴레이션에서 속성의 전체 개수 카디널리티(Cardinality) 하나의 릴레이션에서 튜플의 전체 개수 도메인(Domain) 릴레이션의 속성이 가질 수 있는 원자값들의 집합 키(Key) 릴레이션의 튜플을 ..
[DB] 트랜잭션(Transaction) 개념, 특징, 연산, 상태
트랜잭션(Transaction) 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 한꺼번에 수행되어야할 일련의 연산 데이터베이스 일관성과 무경성 보장 데이터베이스의 하나의 작업이 수행되는 동안 다른 작업이 간섭하지 못하도록 함 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능 트랜잭션 연산 Commit 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성 있는 상태에 있음을 알려주기 위해 사용하는 연산 Rollback 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 보장..
[DB] RDBMS의 SQL과 NoSQL 차이
관계형 데이터베이스(RDBMS, SQL Database) 고정된 행(row)과 열(column)로 구성된 테이블에 데이터를 저장 테이블의 관계가 구조화된 데이터의 모음이기 때문에 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 다룸 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에 맞는 데이터가 저장 테이블의 구조와 데이터 타입 등을 사전에 정의한 후 그 형식을 유지하며 데이터 조작 테이블 간의 관계를 직관적으로 파악할 수 있음 장점 명확하게 정의된 스키마, 데이터 무결성 보장 관계는 각 데이터를 중복없이 한번만 저장 단점 데이터 스키마를 변경하기 어려워 유연성이 떨어짐 관계를 맺고 있어서 Join 문이 많은 복잡한 쿼리가 만들어질 수 있음 대체로 수직적 확장만 가능함 비관계형..
[DB] 인덱스(Index) 개념, 장단점, 전략, 구조
인덱스(Index) 책의 '색인'과 같이 데이터베이스 내 데이터 검색 성능을 높이기 위해 사용하는 자료 구조 특정 칼럼에 인덱스를 생성하면, 해당 칼럼의 데이터를 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 데이터를 검색하는 쿼리를 실행하면 옵티마이저는 인덱스에 저장되어 있는 데이터의 물리 주소를 참조하면서 검색 속도 향상 인덱스 생성 시 데이터를 오름차순으로 정렬 장점 검색 조건 WHERE 절에서의 효율성 인덱스를 설정하지 않으면 뒤죽박죽 섞여있는 데이터 중 검색을 하려면 풀 스캔(Full Scan)을 해야함 인덱스 테이블은 데이터들이 정렬되어 저장되어 있기 때문에 조건(WHERE절)에 맞는 데이터를 빠르게 찾을 수 있음 정렬 ORDER BY 절에서의 효율성 인덱스를 사용하면 이미 ..
[운영체제] 캐시 메모리(Cache Memory)와 지역성(Locality), 캐싱 라인(Caching Line)
캐시 메모리(Cache Memory) 메인 메모리(주기억장치)에서 자주 사용하는 프로그램과 데이터를 미리 저장해 둔 고속 메모리 속도가 빠른 장치(CPU 연산)와 느린 장치(메모리 접근) 간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 메인 메모리와 CPU 사이에 위치 캐시를 사용하면 메모리에 접근하는 횟수가 줄어 컴퓨터 처리 속도 향상 캐시가 효율적으로 동작하기 위해서는 CPU가 참조할 정보에 대해 잘 예측해야 함 캐시 적중률(Hit Rate)를 극대화 캐시의 지역성(Locality) 고려 캐시 지역성(Locality) 데이터에 대한 접근이 시간적/공간적으로 가깝게 발생하는 것 기억장치 내의 정보를 균등하게 엑세스하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성 캐시 적중..