본문 바로가기

Database10

DB | DB Locking과 Optimistic Lock/Pessimistic Lock 락 락은 데이터의 일관성과 무결성을 유지하기 위해 DBMS가 사용하는 공통적인 방법이다. DB와 같은 시스템은 같은 데이터를 동시에 접근하는 경우가 생길 수밖에 없는데, 이럴 경우 데이터가 오염될 수 있다. 락의 크기 락의 크기는 어느 정도의 범위를 잠글 것인지 나타낸다. 로우 락(Row Lock), 페이지 락(Page Lock), 테이블 락(Table Lock)이 있다. 만약 락을 걸어야 하는 페이지가 너무 많다면, 차라리 테이블 전체에 락을 거는 것이 잠금 비용의 손실을 줄일 수 있다. 잠금 비용: 잠금을 거는 과정에서 발생하는 성능 손실을 말한다. 페이지 락 여러 개를 테이블 하나로 대체한다면 잠금 비용은 낮아지겠지만, 대신 동시성 비용은 높아질 것이다. 동시성 비용: 락을 걸면서 동시성이 낮아져서.. 2023. 9. 20.
DB | Join Join이란? 데이터베이스에서 두 개 이상의 테이블을 연결하여 하나의 결과의 테이블로 만드는 것을 의미 이를 통해 데이터를 효율적으로 검색하고 처리하는데 도움을 준다. Join을 사용하는 이유 데이터베이스에서 테이블을 분리하여 데이터 중복을 최소화하고 데이터의 일관성을 유지하기 위함 Join의 종류 INNER JOIN 조인하는 테이블의 ON 절의 조건이 일치하는 결과만 출력 SELECT u.userid, name FROM usertbl AS u INNER JOIN buytbl AS b ON u.userid=b.userid WHERE u.userid="111" -- join을 완료하고 그다음 조건을 따진다. inner join 함축 구문 단순히 from 절에 콤마 쓰면 inner join 으로 치부된다. .. 2023. 9. 20.
DB | 트랜잭션, 동시성 제어, 회복 Chapter 08 트랜잭션, 동시성 제어, 회복 트랜잭션 트랜잭션의 개념 DBMS에서 데이터를 다루는 논리적인 작업의 단위이다. 트랜잭션은 장애 발생 시 데이터를 복구하는 작업의 단위가 된다. 트랜잭션은 여러 작업이 동시에 같은 데이터를 다룰 때, 이를 서로 분리하는 단위가 된다. 중요한 점 데이터베이스의 데이터는 하드디스크에 저장되어 있다. 처리를 위해서는 반드시 주기억장치 버퍼로 사본을 읽어와야 한다는 점이다. 예) 계좌이체 트랜잭션 수행과정 START TRANSACTION /* 1. 박지성 계좌를 읽어온다. */ /* 2. 김연아 계좌를 읽어온다. */ /* 3. 예금인출 박지성 */ UPDATE Customer SET balance=balance-10000 WHERE name='박지성'; /* .. 2023. 8. 28.
DB | 정규화 Chapter 07 정규화 이상현상 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다. 이상현상의 개념 이상현상(anomaly): 테이블에 투플을 삽입할 때 부득이하게 NULL 값이 입력되거나, 삭제 시 연쇄삭제 현상이 발생하거나, 수정 시 데이터의 일관성이 훼손되는 현상을 말한다. 삭제이상 삭제이상이란 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상이다. -> 연쇄삭제(triggered deletion) 문제 발생 삽입이상 삽입이상이란 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 현상이다. -> NULL 값 문제 발생 수정이상 수정이상이란 튜플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현.. 2023. 8. 28.
DB | 데이터 모델링 Chapter 06 데이터 모델링 데이터 모델링의 개념 데이터베이스 생명주기 데터베이스는 최초 사용자의 요구에 의해 구축되어 사용되다가 필요에 따라 개선 또는 다시 구축되어 사용된다. 데이터베이스의 생성과 운영에 관련된 특징을 데이터베이스 생명주기라고 한다. 요구사항 수집 및 분석 사용자들의 요구사하을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계 설계 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마를 도출(물리적 설계)를 한다. 구현 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만든다. 운영 구현된 데이터베이스를 기반으로 소프트웨어를.. 2023. 8. 28.
DB | 데이터베이스 프로그래밍 Chapter 05 데이터베이스 프로그래밍 데이터베이스 프로그래밍의 개념 ‘데이터베이스 프로그래밍’이란 DBMS에 데이터를 정의하고 저장된 데이터를 읽어와 데이터를 변경하는 프로그램을 작성하는 과정 대표적인 데이터베이스 프로그래밍 SQL 전용 언어를 사용하는 방법 SQL 자체의 기능을 확장하여 변수, 제어, 입출력 등의 기능을 추가한 새로운 언어를 사용하는 방법 MySQL: 저장 프로그램, 오라클: PL/SQL, SQL Server: T-SQL이라는 용어 사용 장점: 데이터베이스를 다루는 능력이 뛰어나고 다루는 방법이 쉽다. 단점: 사용자 인터페이스(GUI)를 구축하는 기능이 없어 독립적으로 사용하기보다 프로시저나 함수 등으로 구현하여 다른 프로그램에서 호출해 사용한다. 일반 프로그래밍 언어에 SQL을 .. 2023. 8. 27.