본문 바로가기

DB

(9)
[DB] 인덱스란? 인덱스란? - 데이터 레코드를 빠르게 접근하기 위해 쌍으로 구성되는 데이터 구조이다. - 데이터가 저장된 물리적 구조와 밀접한 관계 - 인덱스를 통해 파일의 레코드에 대한 액세스를 빠르게 수행 - 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수 최소화 - 인덱스가 없으면 특정한 값을 찾기 위해 모든 데이터 페이지를 확인하는 TABLE SCAN 발생 EX) 예를 들어 하나의 책을 샀는데 인덱스에 대한 설명이있는 페이지를 찾고싶다. 인덱스란 설명은 555페이지에 있다고 가정하면 시작 페이지부터 끝페이지 까지 찾아야되는 번거로움이 있다. 여기서 해당 책의 목차가 인덱스라고 생각하면 된다. 책 = A테이블 목차 = A테이블의 검색 속도를 향상시키기 위한 인덱스 목차는 해당 내용별로 몇페이지 인지 ..
[DB] 분산 데이터베이스란? 분산 데이터베이스란? - 논리적으로 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산 되어 있는 데이터 베이스 분산 데이터베이스 구성요소 - 분산 처리기 - 분산 데이터베이스 - 통신 네트워크 분산 데이터베이스의 목표 목표 설며 위치 투명성 액세스하려는 데이터베이스의 실제 위치를 알 필요없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 중복 투명성 동일데이터가 여러곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업 수행 병행 투명성 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않습니다. 장애 투명성 트랜잭션, DBMS, 네트워크, 컴퓨터..
[DB] 관계대수와 관계해석 관계대수란? - 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. - 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다. - 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. - 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다. 1) 순수관계 연산자 - 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계연산자 순수 관계 연산자 설명 Select 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만듭니다. 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평연산이라고도 합니다 Project 주어..
[DB] 정규화의 정의 및 법칙(1, 2, 3, BCNF) 정규화란? - 데이터베이스 정규화란 데이터베이스의 설계를 재구성하는 테크닉입니다. 정규화를 통해 불필요한 데이터(redundancy)를 없앨 수 있고, 삽입/갱신/삭제 시 발생할 수 있는 각종 이상현상(Anamolies)들을 방지할 수 있습니다. 정규화가 왜 필요한가? - 정규화의 법칙을 따르지 않고 삽입/갱신/삭제가 이루어 진다면 데이터 불일치, NULL값 등 테이블의 구성이 논리적이지 못하게 됩니다. 정규화의 법칙 정규화 법칙 설명 1차 정규화 각 로우마다 컬럼의 값이 1개씩만 있어야 합니다. 이를 컬럼이 원자값(Atomic Value)를 갖는다고 합니다. 2차 정규화 2차 정규형은 테이블의 모든 컬럼이 완전 함수적 종속을 만족하는 것입니다. 완전 함수적 종속이란 기본키중에 특정 컬럼에만 종속된 컬럼..
[DB] 트랜잭션 정의 및 성질 트랜잭션 - 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 및 한꺼번에 모두 수행되어야 할 일련의 연산 트랜잭션의 성질 성질 설명 원자성 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야한다. 일관성 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다. 독립성, 격리성 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들수 없다. 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행결과를 참조할 수 없다. 영속성, 지속성 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야한다. EX) 예를 들어서 간단히 ..
[DB] 데이터베이스 용어 정리 데이터베이스 용어 정리 - 하나의 테이블 구조를 보면서 설명하겠습니다. JOB 테이블 NO JOB NAME 1 LG 밍크스1 2 SAMSUNG 밍크스2 3 NIKE 밍크스3 1. 릴레이션 - 릴레이션 = 테이블 즉 JOB테이블이 하나의 릴레이션이라고 할 수 있습니다. 2. 속성(attribute) - 속성은 JOB테이블에 NO, JOB, NAME 세개의 컬럼이 있는데 속성 = 컬럼이라고 할 수 있습니다. 3. 차수(degree) - 차수는 속성의 수를 차수라고합니다. JOB테이블에 새개의 컬럼이 있으므로 차수는 3이 됩니다. 4. 튜플(레코드) - 릴레이션의 각 행을 레코드라고 합니다. 즉 JOB테이블에 첫번째 행을 보면 NO는 1 JOB은 LG NAME은 밍크스1 이 세개의 값들의 모임이 하나의 튜플이..
[DB] View 와 Index 1) View - 하나 이상의 테이블로부터 유도되어 만들어진 가상테이블 1. View의 생성 CREATE VIEW 뷰1 AS SELECT * FROM 테이블1; 2. View의 삭제 DROP VIEW 뷰1; 3. VIEW의 조회와 JOIN을 활용한 View의 생성 - 조회 SELECT * FROM 뷰1 - JOIN을 활용한 View 생성 CREATE VIEW 뷰1 AS SELECT * FROM 테이블1 a, 테이블2 b WHERE a.컬럼1 = b.컬럼2 2) Index - Index는 쉽게 말하면 우리가 원하는 데이터를 찾을때 손쉽게 찾게해주는 색인이라고 생각하면됩니다. - Index로 인해 풀 스캔을 하지 않게하여 검색 성능을 향상시킵니다. - Index는 기본키를 생성할때 기본키로 잡힌 컬럼에대해서..
[DB] DDL, DML, DCL, TCL에 속하는 명령어 명령어종류 명령어 데이터 정의어(DDL) CREATE, ALTER, DROP, RENAME, TRUNCATE 데이터 조작어(DML) SELECT, UPDATE, INSERT, DELETE 데이터 제어어(DCL) GRANT, REVOKE 트랜잭션 제어어(TCL) COMMIT, CHECKPOINT, ROLLBACK