Computer Science/데이터베이스9 데이터베이스 튜닝(Database Tuning) 데이터베이스 튜닝 일반적으로 시스템 성능 저하 문제는 잘못된 APP 및 DB 설계에 의해 발생하기 때문에, 데이터베이스 튜닝을 통해 성능 저하 최소화가 가능하다. 데이터베이스 튜닝이란 데이터베이스 응용, 데이터베이스 자체, 운영체제의 조정 등을 통하여 최적의 자원으로 최적의 성능(응답속도)을 얻을 수 있도록 개선하는 작업을 말한다. 데이터베이스 튜닝의 3단계 데이터베이스 튜닝 영역 별 세부 기법 튜닝의 순서인 DB 설계 → DBMS → SQL 튜닝 순으로 효율성이 줄어듦에 따라 우선 처리 필요 SW 처리가 불가능 하거나 효율적이지 않는 경우 HW 방식의 시스템 데이터베이스 튜닝 필요 출처 더보기 http://blog.skby.net/데이터베이스-튜닝-db-tuning/ 2023. 6. 19. 데이터베이스 락(Lock) DataBase는 데이터를 영속적으로 저장하고 있는 시스템이다. 이런 시스템은 같은 자원(데이터)에 대해서 동시에 접근하는 경우가 생길 수 밖에 없다. 예를 들어 수강신청 시스템에서 1명만이 정원으로 남게 되었을 때, 두 사람이 거의 동시에 버튼을 누를 수 있다. 그렇지만 성공은 1명만 되어야 한다. 이런 상황에서 DBMS(DataBase Management System)가 사용하는 공통적인 방법이 Lock이다. 데이터베이스 락(Lock) 데이터베이스는 여러 사용자들이 같은 데이터를 동시에 접근하는 상황에서, 데이터의 무결성과 일관성을 지키기 위해 락을 사용한다. 락을 통해 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. 데이터베이스 락(Lock) 의 종류 공유락(LS, Shared Lock) Read.. 2023. 6. 18. 관계형 데이터베이스 설계 - 1:1, 1:N, 1:M 관계형 데이터베이스 먼저 관계형 모델은 여러 데이터 모델(데이터를 표현하는 개념의 집합) 중 하나로, 다음과 같은 특징을 만족하도록 고안되었다. 데이터베이스를 단순한 자료구조에 저장 high-level language로 데이터에 접근 물리적 저장소는 구현에 맡겨짐 관계형 모델에서는 데이터를 저장할 때 2차원 테이블 형태의 릴레이션(Relation)이라는 구조가 사용되는데, 이 릴레이션끼의 관계를 정의한 것이 관계형 모델이라고 할 수 있다. 관계를 가진다는 것은 두 릴레이션이 서로 관련이 있을 때를 말하는 것으로, 릴레이션끼리는 1:1, 1:n, n:m 관계를 맺을 수 있다. 1:1 관계 1:1 관계란 상대 엔티티와 반드시 하나의 관계를 가지는 것을 말한다. 예를 들어 우리나라의 결혼제도 상으로, 한 남자.. 2023. 3. 27. 트랜잭션의 개념과 고립 수준 트랜잭션의 개념 트랜잭션은 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다. 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산 기능들을 모아놓은 것이며 분리되지 않도록 하여 작업의 완전성을 보장한다. 트랜잭션을 통해서 데이터베이스의 회복과 병행 제어가 가능하다. 즉, 데이터베이스에서 오류가 발생하는 경우의 빠른 회복이나, 여러 사용자가 동시에 데이터베이스를 사용할 수 있도록 제어해주는 중요한 역할을 한다. 트랜잭션의 특징 트랜잭션이 성공적으로 처리되기 위해서는 ACID라는 네 가지 성질을 만족해야 한다. 원자성 (Atomicity) 트랜잭션을 구성하는 연산 전체가 모두 정상적으로 실행되거나, 모두 취소되어야 하는 성질 하나의 트랜잭션에서 일부 연산만 실행될 .. 2023. 3. 26. 데이터베이스 JOIN 데이터베이스 JOIN이란 둘 이상의 테이블을 연결해서 테이블을 검색하는 방법 두 릴레이션으로부터 관련된 튜플들을 결합하여 하나의 튜플로 만드는 가장 대표적인 데이터 연결 방법이다. jOIN의 종류는 INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN이 있다. 다음의 두 테이블을 예시로 조인에 대해 알아보겠다. INNER JOIN INNER JOIN은 위의 그림처럼 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인 방식으로, 공통 존재 컬럼의 값이 같은 경우를 추출하는 것을 말한다. 가장 일반적인 조인으로, 조인 사용시 명령어로 INNER JOIN 대신 JOIN 만을 입력해도 INNER JOIN이 사용된다. 기본적으로 SQL문은 다음의 형태를 띈다. SELECT A.컬럼.. 2023. 3. 26. 데이터베이스 인덱스 인덱스의 정의 데이터베이스 인덱스란 데이터 베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 하는 것이다. 테이블의 특정 컬럼에 대해 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 (key, value)의 쌍의 형태로 저장된다. 장점 테이블 검색 속도, 성능이 향상 되어 이에 따른 전반적인 부하를 줄일 수 있다. 인덱스에 의해 데이터들이 정렬된 형태를 가진다. ( = join, order by가 많은 경우 유리하다) 기존에는 where문으로 테이블의 전체를 조회하는 Full Table Scan 작업이 필.. 2023. 3. 25. 이전 1 2 다음