1. 저장 프로시저란? = 영구저장모듈 DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 더보기 저장 프로시저와 함수의 차이점 저장 프로시저: 일련의 작업을 처리한 절차. 리턴값이 없거나 많을 수도 있음. 서버에서 실행되기 때문에 속도가 빠름 함수: 여러 작업을 위한 기능. 리턴값이 필수. 클라이언트에서 실행되기 때문에 프로시저보다 느림 (데이터베이스 내의 함수. 예 - COUNT) 2. 일반 쿼리문 vs 저장프로시저 일반 쿼리문 작동 방식 일반적으로 쿼리문 한 줄을 실행하더라도 파싱 -> 최적화 -> 컴파일 및 실행계획 등록(실행계획 결과를 메모리에 등록) -> 실행하는 과정의 많은 절차를 거침 최적화 단계에서 해당 쿼리문이 가장 좋은 성능을 낼 수 있는 경로를 결..
Computer Science
스키마의 정의 : 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합 더보기 메타 데이터(meta data): 데이터에 대한 데이터. 어떤 목적을 가지고 만든 데이터 데이터베이스를 구성하는 Entity 개체, Attribute 속성, Relationship 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의함 더보기 스키마와 ERD의 차이점 ERD는 설계도. 스키마는 구현 데이터베이스를 생성하기 전에, 설계를 미리 생각을 해야 하는데 그때 작성하는 것이 ERD 그것을 통해서 데이터베이스를 생성하면 DBMS에서 생성하는 게 스키마임 스키마의 특징 데이터 사전(=메타데이터)에 저장됨 시간에 따라 불변인 특성을 가짐 데이터의 구조적 특성을 의미하며, ..
RDBMS를 설명하기에 앞서, 데이터 모델의 종류에는 계층형, 네트워크형, 관계형(RDB)이 있다. 계층형, 네트워크형은 잘 사용하지 않고, 관계형 데이터 모델을 주로 사용한다. 우리가 사용하는 대표적인 데이터베이스 관리 시스템도 대부분이 관계형이라고 보면 된다. 계층형, 네트워크형은 잘 사용하지 않고 관계형 데이터 모델만을 사용하는 이유가 뭘까? 계층형, 네트워크형은 데이터가 저장되어 있는 구성을 변경하면 그에 맞춰 프로그램도 보완해야 하기 때문에 불편하다. 반면, 관계형은 그러한 영향이 적고 프로그램과 데이터를 독립적으로 관리하기 쉽다. 따라서 이번 게시물에서는 RDBMS에 대해서 다뤄보도록 하겠다. RDB란? 정의: 키와 값들의 간단한 관계를 테이블화 시킨 데이터베이스 장점 여러 가지 표를 조합하여..
트랜잭션의 Isolation이 제대로 유지되려면 복수의 트랜잭션을 동시에 실행할 경우, 이상 현상이 일어나지 않도록 한다. 이것을 보장하기 위한 중요한 속성이 Serializability와 Recoverable이다. 즉, 이 두 가지 속성이 보장될 수 있도록 해야 한다. 하지만 이때 동시에 처리할 수 있는 트랜잭션의 수가 줄어들어서 DBMS의 성능이 하락한다는 단점이 있다. 이를 해결하기 위해 DBMS의 concurrency control은 여러 종류의 Isolation level을 제공해서 개발자가 데이터 정합성과 성능 사이에서 어느 정도 트레이드 할 수 있도록 한다. Serializabiliy 👉 여러 트랜잭션을 병렬로 동시에 처리하면서도 순차적으로 수행한 것과 같은 결과를 내는 것 Recoverab..
DBMS는 여러 사용자가 DB에 동시에 접근할 수 있다. 여러 사용자가 동시에 접근하면 트랜잭션도 동시에 여러 개가 실행되는데 DBMS는 여러 트랜잭션을 동시에 실행하기 위해 병행 수행을 지원한다. 그리고 이 병행 수행이 잘 이루어지도록 하기 위해서 병행 제어를 실시한다. 트랜잭션의 속성 ACID중 I에 해당하는 Isolation을 보장하기 위한 것이 병행 제어 Concurrency Control이다. (자세한 것은 위 글씨에 달아둔 링크 참고) 1. 병행 수행이란? 정의 : 여러 사용자가 DB에 접근할 때 여러 트랜잭션이 수행되는데 이 여러 트랜잭션들을 병행 수행시키는 방식 운영체제가 멀티 프로세스를 지원하는 것과 비슷한 모양 여러 트랜잭션을 수행하는 순서가 중요하므로 트랜잭션 스케줄에 따라 트랜잭션을..
1. 정의 사전적 의미: 거래 CS 분야에서의 의미: 더이상 분할이 불가능한 업무처리의 단위 👉 한꺼번에 수행되어야 할 일련의 연산 모음 만약, 계좌이체 시 인출에는 성공했는데 입금에 실패하면? 👉 경제적 손실이라는 치명적인 결과 👉 이 두 과정은 동시에 성공하든지 동시에 실패해야 함 👉 이 과정을 동시에 묶는 방법이 바로 트랜잭션 START TRANSACTION -- 이 사이의 명령어들은 하나의 명령어처럼 처리됨 -- 성공 or 실패 둘 중 하나 A의 계좌로부터 인출; B의 계좌로 입금; COMMIT 👉 데이터 거래에 있어서 안전성을 확보하기 위한 방법. 오류가 발생 시 결과 재반영 X, 모든 작업을 원상태로 복구 처리 과정이 모두 성공했을 때만 그 결과를 반영함 2. 특징 (ACID) Atomicit..
후보키와 대체키의 역할과 관계는? 👉 후보키는 유일성과 최소성을 모두 갖춘 속성들입니다. 기본키로 사용 가능한 후보들이 되는 키입니다. 대체키는 기본키가 되고 남은 속성들을 의미합니다. 후보키는 대체키를 포함한다고 볼 수 있을 것 같습니다. DB 설계에서 식별자로 자연키와 인조키 중 어떤 것을 선택하는 것이 바람직한지 말하고, 그 이유를 설명하세요. 👉 인조키를 선택하는 것이 바람직합니다. 그 이유를 말씀 드리겠습니다. 첫째, 자연키는 변경될 수 있습니다. 예를 들어, 회원 정보에서 전화번호 항목을 수집한다고 가정했을 때, 전화번호는 유일하지만 회원의 상황에 따라 변경될 수 있습니다. 둘째, 환경이 변할 수 있습니다. 예를 들어, 주민번호를 수집해 식별자로 사용하다가 국가에서 해당 속성을 수집하지 못하게..
1. ERD의 의미 Entity Relationship Diagram 요구 분석 사항에서 얻은 엔티티와 속성들의 관계를 그림으로 나타낸 개체-관계 모델 테이블과의 관계를 설명하는 다이어그램 이를 통해 프로젝트에서 사용하는 데이터베이스의 구조를 한눈에 파악할 수 있다. 데이터베이스를 구축 시 뼈대 역할을 하며, 서비스 구축 시 제일 먼저 신경써야 할 부분이다. 👉 API를 보다 효율적으로 뽑아낼 수 있다. 2. ERD 그리기 2-1. 엔티티 Entity 정의 가능한 사물 또는 개념 데이터베이스의 테이블이 엔티티로 표현된다. 2-2. 엔티티 속성 Entity Attribute 개체가 가지고 있는 속성 예) 학생 엔티티에는 학번, 이름, 주소, 전공 등 속성이 있다. 데이터베이스 테이블의 각 필드(컬럼)들 2..
0. Background 0-1. 데이터베이스 무결성 무결성이란? 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성 1) 개체 무결성 Entity Integrity 첫 번째 조건: 기본키를 구성하는 속성은 null 값을 가질 수 없다. 두 번째 조건: 기본키를 구성하는 속성은 다른 레코드와 중복될 수 없다. 예) 학생이라는 개체를 표현하기 위해 데이터베이스 표에서 학번, 이름, 학과 속성으로 표현을 할 수 있다. 학생을 표현할 때 학번을 그 기본키로 정했다면 학번에 null 값이 있어서는 안 된다. 2) 참조 무결성 Referential Integrity 외래키를 구성하는 조건은 참조 릴레이션(테이블)의 기본키 값과 동일해야 한다. 👉 릴레이션은 참조할 수 없는 외..