CS (30) 썸네일형 리스트형 Database와 RDBMS, NOSQL Database란?일반적인 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미DBMS(DataBase Management System)란?사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어 RDBMS(Relational Database Mangement System)R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미RDBMS에서의 저장 방식은 SQL에 의해 저장되고 있으며 정해진 스키마에 따라 데이터를 저장하여야 합니다.NoSQL (Not Only SQL)RDB형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미NoSQL에서는 RDBMS와는 달리 테이블 간 관.. JOIN이란? JOINRDB에서 2개 이상의 테이블 혹은 DB를 넘나들며 데이터를 검색하는 방법여러 테이블을 하나의 테이블 처럼 사용하기 위한 방법Primary key, foreign key를 활용한다.종류Inner Join조인 조건이 부합하는 결과만을 확인할 때 사용한다. Outer Join기준 테이블의 조회 결과와 함께 조인 조건에 부합하는 테이블 데이터를 확인할 때 사용한다.Cross Join기준 목록에 나열된 목록들의 모든 가능한 조합이 출력된다.따라서 조인 조건을 명시하지 않는다.Self Join자기 자신을 조인하는 방법 정규화(Normalization) 정규화(Normalization)이란?정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는 다는 것무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 제 1정규화제 1정규화란 테이블의 컬럼이 원자값(Atomic Value,하나의 값)을 갖도록 테이블을 분해하는 것제 2정규화제 2정규화란 제 1정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것완전 함수 종속이라는 것은 기본키의 부분집합이 결정자가 되어선 안된다는 것제 3정규화제 3정규화란 제 2정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이행적 종속이라는 것은 A ->B, B ->C 가 성립될 때 A -> C가 성립되는 것을 .. 트랜잭션 격리 수준(Transaction Isolation Levels) 트랜잭션의 격리 수준여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것SERIALIZABLEREPEATABLE READREAD COMMITTEDREAD UNCOMMITEDSERIALIZABLE가장 엄격한 격리 수준으로 트랜잭션을 순차적으로 진행한다.여러 트랜잭션이 동일한 레코드에 동시 접근할 수 없다.트랜잭션이 순차적으로 처리되어야 하므로 동시 처리 성능이 매우 떨어짐REPEATABLE READRDBMS는 변경 전의 레코드를 언두 공간에 백업해두기 때문에 변경전/ 후 데이터가 모두 존재 하므로, 여러버전의 데이터가 존재한다고 하여 이를 MVCC(Multi-Version Concurrency Control, 다중 버전 .. 트랜잭션(Transaction) 이란? 트랜잭션(Transaction)이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다. 데이터베이스의 상태 변화란?질의어(SQL)를 이용하여 데이터베이스를 접근하는 것을 의미SELECTINSERTDELETEUPDATE작업의 단위는 질의어 한문장이 아니고 질의어 명령문을 사람이 정하는 기준에 따라 정해진다.트랜잭션의 특징 (ACID)원자성 (Atomicity)트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야한다는 것일관성 (Consistency)트랜잭션의 작업 처리 결과가 항상 일관성 있어야 한다.독립성 (Isolation)둘 이상의 트랜잭션이 실행되고 있을 경우 어떤 하나의 트랜잭션이 다른 트랜잭션의 연산에 끼어들 수 없다지속성 (Durability)트랜잭션이 .. 데이터베이스 인덱스(Index) 인덱스(index)란?추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조책에서 원하는 내용을 찾기 위한 책의 색인(목차)와 데이터베이스의 index는 같다. 인덱스의 특징테이블을 조회하는 속도와 그에 따른 성능을 향상된다.전반적인 시스템의 부하를 줄어든다.인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 따로 필요하다.인덱스를 관리하기 위해 추가 작업이 필요하다.인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.CREATE,DELETE,UPDATE 등이 빈번한 속성에 인덱스를 걸면 오히려 성능이 저하된다.인덱스(index)를 사용하면 좋은 경우규모가 작지 않은 테이블INSERT, UPDATE, DELETE가 자주 발생.. 캐시 메모리와 캐시의 지역성(Cache Locality) 캐시 메모리(Cache Memory)주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 하는 메모리캐시 기억장치와 주기억장치 사이에서 정보를 옮기는 것을 매핑(Mapping) 이라고 한다.속도가 빠른 장치와 느른 장치간의 속도 차에 따른 병목현상을 줄이기 위한 범용 메모리이를 위해서는 CPU가 어떤 데이터를 원하는지 어느 정도 예측할 수 있어야한다.캐시 메모리에 CPU가 이후에 참조할, 필요 있는 정보의 양 에따라 캐시의 성능이 좌우되기 때문주기억장치와 CPU사이에 위치메모리계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU의 속도와 비슷할 정도의 속도를 가지고 있다.캐시메모리를 사용하면 주 기억장치를 접근하는 횟수가 줄어들어 컴퓨터의 처리속도가 향상된다.캐시의 크기는 보통 .. 뮤텍스와 세마포어 뮤텍스(Mutex)와 세마포어(Semaphore)프로세스 간 메시지를 전송하거나, 공유메모리를 통해 공유된 자원에 여러 개의 프로세스가 동시에 접근하면 Critical Section에 문제가 발생할 수 있다. 이를 해결하기 위해 데이터를 한번에 하나의 프로세스만을 접근할 수 있도록 제한을 두는 동기화 방식을 취해야 한다.동기화 도구에는 뮤텍스(Mutex)와 세마포어(Semaphore)가 있다. 이들은 공유된 여러 데이터를 여러 프로세스/스레드가 접근하는 것을 막는 역할을 한다.뮤텍스(Mutex)공유된 자원의 데이터 혹은 임계영역 (Critical Section)등에 하나의 Process혹은 Thread가 접근하는 것을 막는다.임계구역을 가진 스레들의 실행시간이 서로 겹치지 않고 단독으로 실행되도록 하는.. 이전 1 2 3 4 다음