본문 바로가기

# 03/RDBMS

Oracle 보호되어 있는 글입니다.
MVCC에 따른 MySQL의 특성 MySQL(InnoDB형 테이블)은 현재 DBMS의 주류가 된 'MVCC(Multi Versioning Concurrency Control)'기술을 사용한다. MVCC를 사용하기 때문에 다음 특성을 갖는다. 1. 읽기를 수행할 경우 갱신 중이라도 블록되지 않는다(읽기와 읽기도 서로 블록되지 않는다.) 2. 읽기 내용은 격리 수준에 따라 내용이 바뀌는 경우가 있다. 3. 갱신 시 배타적 잠금을 얻는다. 잠금은 기본적으로 행 단위로 얻으며 트랜잭션이 종료할 때까지 유지한다. 격리 수준이나 InnoDB의 설정에 따라 실제로 잠금 하는 행의 범위가 다른 경우가 있다. 4. 갱신과 갱신은 나중에 온 트랜잭션이 잠금을 획득하려고 하라 때 블록된다. 일정 시간을 기다리며 그 사이에 잠금을 획득할 수 없는 경우에는 '..
트랜잭션 트랜잭션(Transaction)복수 쿼리를 한 단위로 묶은 것. ACID 특성1. Atomicity (원자성)2. Consistency (일관성)3. Isolation (고립성 또는 격리성)4. Durability (지속성) - 원자성원자성이란 데이터의 변경을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하는 구조이다.하나의 트랜잭션을 처리하기 위해 4가지 단계가 있다고 하자. 이 4가지 단계를 모두 성공한 경우 'COMMIT'을 실행해 처리를 확정한다. 이 경우 각 데이터의 조작은 영구적으로 저장되어 결과가 손실되지 않는다. 단, 이 4가지 단계중 하나라도 오류가 발생하면 'ROLLBACK'을 실행해 첫번째 단계의 직전 상태까지 되돌아갈 수 있다. - 일관성데이터베이스에는 데이터베이..
뷰의 작성과 서브쿼리 및 결합 VIEW(SQL)뷰는 관계 데이터베이스의 데이터베이스 언어 SQL에서 하나 이상의 테이블 (또는 다른 뷰)에서 원하는 모든 데이터를 선택하여, 그들을 사용자 정의하여 나타낸 것이다. 뷰는 기본 테이블과 같이 행과 열로 구성되지만, 다른 테이블에 있는 데이터를 보여줄 뿐이며, 실제 테이블과 달리 데이터 자체를 포함하고 있는 것은 아니다. 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블인 것처럼 볼 수 있다. 뷰의 장점1. 복잡한 SELECT 문을 일일이 매번 기록할 필요가 없다.2. 필요한 열과 행만 사용자에게 보여줄 수 있고, 갱신 시에도 뷰 정의에 따른 갱신으로 한정할 수 있다.3. 데이터 저장없이(기억장치의 용량을 사용하지 않고) 실현할 수 있다. 또한, 뷰를 제거(DROP VIEW)해도 참조하는 ..
SQL문의 기본 mysql>show databases; // 등록된 데이터베이스를 볼 수 있다.mysql>use DBName; // '데이터베이스의 이름'을 입력하여 사용할 데이터베이스를 선택한다.mysql>show tables; // 해당 데이터베이스의 테이블 목록이 표시된다.mysql>select * from tableName; // '테이블 이름'을 입력하면 해당 테이블의 데이터 목록이 표시된다.mysql>select * from tableName where A = 'B'; // 해당 테이블 데이터 중 A의 값이 B가 성립하는 데이터만 표시된다.mysql>select Name,Age from tableName where A = 'B'; // 해당 테이블 데이터 중 A의 값이 B가 성립하는 데이터중 Name,Age ..
DBMS를 조작할 때 필요한 기본지식 프롬프트(Prompt)로그인하고 서버를 조작할 수 있게 된 상태가 되면 'mysql>' 문자열이 나타나는데 이를 프롬프트라고 한다. 커넥션로그인되어 프롬프트가 표시되어 MySQL과 연결된 상태 세션유저와 DBMS의 교환의 시작과 종료까지의 단위. 커넥션과 매우 유사한 개념으로 커넥션이 확립된 후에 세션이 만들어진다. 커넥션과 세션을 1:1로 대응되어서 커넥션이 성립되면 세션도 시작되고 세션을 끊으면 커넥션도 끊어지는 경우가 많다. 관리 명령DBMS는 SQL문 이외에도 '관리 명령'이 있다.관리 명령의 종류나 문법은 DBMS에 따라 다르다.SQL 문은 반드시 'SELECT, INSERT, DELETE, UPDATE' 중 하나의 단어로 시작한다.이 외의 단어로 시작하면 관리 명령이다. MySQL 관리명령 예..
데이터베이스 아키텍처 다중화 - DB 서버가 여러대로 나뉘어져 한대가 고장나도 다른 서버가 동작하여 서비스의 정지를 막는다.아키텍처 - 시스템을 만들기 위한 물리 레벨의 조합. 어떤 기능을 가진 서버를 준비하고 어떠한 저장소나 네트워크 기기와 조합해서 시스템 전체를 만들기 구상하는 것. 즉, 하드웨어와 미들웨어의 구성. > 이 구성을 시스템이 완수해야 할 목적과 비교하면서 결정하는 것이 '아키텍처 설계' 데이터베이스 아키텍처의 역사1. Stand-alone(~1980년대)2. 클라이언트/서버(1990년대~2000년대)3. Web 3계층(2000년~현재) Stand-alone데이터베이스가 동작하는 머신이 LAN이나 인터넷 등의 네트워크에 접속하지 않고 '독립되어' 동작하는 구성. DBMS와 애플리케이션의 소프트웨어는 같은 DB..
데이터베이스 비용 초기비용 - 최초에 지급하는 돈운영비용 - 서비스를 이용하는 기간에 계속해서 지급하는 돈 데이터베이스 초기비용 - 소프트웨어의 라이선스 요금1. 프로세서 라이선스(Processor License) - DB서버 하드웨어의 CPU 성능(코어수)에 따라 가격이 결정되는 라이선스 > 서버의 프로세서 수에 비례하는 라이선스로, 사용자 수가 많거나 불특정 다수가 이용해서 사용자 수를 셀 수 없는 경우 적용2. 사용자 라이선스(User License) - 이용하는 사용자 수에 따라 가격이 결정되는 라이선스 > 사용자 수에 비례하는 라이선스로, 일반적으로 사용자가 적은 경우에 유리대부분의 DBMS 제품은 다음 2가지의 에디션을 사용한다.1. 스탠다드 에디션(Standard Edition) - 중소규모 시스템용2. 엔터..