CS/데이터베이스

CS/데이터베이스

[데이터베이스] 트랜잭션, 동시성 제어

트랜잭션 DBMS가 데이터베이스를 다룰 때 사용하는 작업(프로그램)의 단위 트랜잭션은 일반 프로그램과 달리 데이터베이스의 데이터를 다루기 때문에 데이터베이스의 무결성을 유지해야한다. 트랜잭션은 ACID 성질을 갖는다. DBMS는 트랜잭션이 이러한 성질을 유지할 수 있도록 지원한다. 트랜잭션의 개념 트랜잭션 : DBMS에서 데이터를 다루는 논리적인 작업의 단위 보통 단일 sql문을 사용하여 데이터를 다루기도 하지만, 여러 개의 sql문을 순차적으로 수행하여 데이터를 다루기도 한다. 트랜잭션 정의하는 이유 데이터베이스에서 데이터를 다룰 때 장애가 발생할 경우, 트랜잭션은 장애 시 데이터를 복구하는 작업의 단위 데이터베이스에서 여러 작업이 동시에 데이터를 다룰 때, 트랜잭션은 이 작업을 서로 분리하는 단위 트..

CS/데이터베이스

[데이터베이스] 인덱스 + 심화 (커버링 인덱스, 실행 계획, 인덱스 스캔)

인덱스 인덱스란? 인덱스는 데이터베이스 테이블의 하나 이상의 컬럼을 기반으로 생성된다. 인덱스는 컬럼의 값과 레코드 주소를 key - value로 가지고 있는 정보이다. 인덱스를 통해 데이터베이스의 레코드를 빠르게 조회할 수 있다. 인덱스는 빠른 조회를 위해 내부적으로 트리 구조(B-Tree, B+Tree)를 사용하여 키 값을 정렬된 상태로 유지한다. 새로운 레코드가 삽입되거나 기존 레코드가 수정될 경우 인덱스도 그에 맞춰 업데이트되어야한다. 이 과정에서 추가적인 연산이 발생하므로, 이로 인해 레코드의 삽입, 수정, 삭제 성능이 저하될 수 있다. 인덱스 동작 방식 B-Tree 인덱스를 기준으로, 인덱스가 걸린 컬럼이 조건으로 들어왔을 경우를 가정한다. 루트 노드 -> 브랜치 노드(내부 노드) -> 리프 ..

CS/데이터베이스

[데이터베이스] SQL 고급 (내장함수, subquery, 뷰)

내장함수 SQL의 함수는 두가지로 나뉜다. DBMS가 제공하는 내장 함수와 사용자가 필요에 따라 직접 만드는 사용자 정의 함수다. SQL 내장 함수 SQL 내장 함수는 상수나 속성 이름을 입력 값으로 받아 단일 값을 결과로 반환한다. 모든 내장 함수는 최초에 선언될 때 유효한 입력값을 받아야한다. 만약 선언에 위배된 값이 입력되면 질의는 실행을 중지하고 에러 메세지를 출력한다. SQL 내장 함수는 SELECT, WHERE, UPDATE, SET 절 등에 모두 사용 가능하다. 수학 함수 예시 SELECT ROUND(4.875, 1) 답 4.900 문자 함수 날짜 함수 날짜형 데이터로 저장하면 날짜를 더하거나 차이를 구하는 등의 연산을 손쉽게 처리할 수 있다. NULL 값 처리 NULL값이란 아직 지정되지 ..

CS/데이터베이스

[데이터베이스] SQL 기초 이론

SQL(Structured Query Language) IBM이 Sequel이라는 이름으로 개발한 관계형 데이터베이스 언어 ANSI에 의해 관계형 데이터베이스 표준 언어로 승인되었다. DBMS는 SQL을 해석하고 프로그램으로 변환하여 실행하고 결과를 알려준다. 데이터 부속어: 데이터베이스의 데이터와 메타 데이터를 생성하고 처리하는 문법만 가진다. SQL 종류 SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL) 로 나뉜다. 데이터 정의어 : 테이블이나 관계의 구조를 생성하는데 사용 CREATE, ALTER, DROP 데이터 조작어: 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용 SELECT, INSERT, UPDATE, DELETE 데이터 제어어: 데이터..

CS/데이터베이스

[데이터베이스] 관계 데이터 모델(ERD)

관계 데이터 모델의 개념 수학의 집합이론에 근거하고 있어 타 모델에 비해 튼튼한 이론적 토대를 가지고 있다. 또한 관계 데이터 모델이 적용된 SQL 언어는 비절차적 언어로 원하는 데이터를 쉽게 표현하는 장점이 있다. 현재 많이 사용되는 관계 데이터 모델 DBMS로는 Oracle, SQL Server, MySQL, PostgreSQL과 모바일 용인 SQLite등이 있다. 릴레이션(relation) 수학의 집합에서 나온 개념으로, 테이블은 릴레이션의 시각적인 표현방법이다. relationship(관계)는 릴레이션 내에서 생성되는 관계와 릴레이션 간의 관계를 포함한다. 전자는 관련있는 실제 데이터의 집합, 후자는 릴레이션끼리 식별값을 이용하여 연결함을 뜻한다. 릴레이션과 테이블은 같은 의미로 사용된다. 릴레이..

CS/데이터베이스

[데이터베이스] 데이터베이스와 데이터베이스 시스템

데이터, 정보, 지식 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값 정보 : 데이터에 의미를 부여한 것 지식 : 사물이나 현상에 대한 이해 데이터베이스 데이터베이스 : 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템 : 데이터의 검색과 변경 작업 주로 수행 변경작업 : 시간에 따라 변하는 데이터값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업 데이터베이스의 개념 통합된 데이터 : 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터 저장된 데이터 : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터 운영 데이터 : 조직의 목적을 위해 사용되는 데이터 ex) 업무를..

mint*
'CS/데이터베이스' 카테고리의 글 목록