본문 바로가기

SQLP17

[SQLD/SQLP] 데이터 모델링의 이해 - 기출문제 정리 #2 데이터 모델링의 이해 [기출문제 정리] [핵심정리] * ERD 작성 순서 - 엔터티를 그린다. - 엔터티를 적절하게 배치한다. - 엔터티간 관계를 설정한다. - 관계명을 기술한다. - 관계의 참여도를 기술한다. - 관계의 필수여부를 기술한다. * 엔터티의 특징 - 반드시 해당 업무에서 필요하고 관리하고자하는 정보이어야 한다. - 유일한 식별자에 의해 식별이 가능해야 한다. - 영속적으로 존재하는 인스턴스의 집합이어야 한다. - 엔터티는 업무 프로세스에 의해 이용되어야 한다. - 엔터티는 반드시 속성이 있어야 한다. - 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. * 엔터티, 인스턴스, 속성, 속성값의 관계 - 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다. - 한 개의 엔.. 2021. 8. 23.
[J STORY] [SQLD/SQLP] 데이터 모델링의 이해 - 기출문제 정리 #1 데이터 모델링의 이해 [기출문제 정리] [핵심정리] * 발생시점에 따른 엔터티 분류 - 기본/키엔터티 - 중심엔터티 - 행위엔터티 * 데이터모델링이란 - 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 - 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 - 데이터베이스를 구축하기 위한 분석/설계의 과정 * 데이터 모델링 유의점 - 중복 - 비유연성 - 비일관성 * 개념적 데이터 모델링 - 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. - 전사적 데이터 모델링. - EA수립시 많이 이용 * 논리적 데이터 모델링 - 시스템으로 구축하고자하는 업무에 대해 Key, 속성 관계 등을 정확하게 표현 - 재사용성이 높음 * 물리적 데이터 모델링 - 실제로 데이터베이스에 이식할 .. 2021. 8. 21.
[J STORY] SQLP - 옵티마이저 1. 옵티마이저 옵티마이저란? SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. SQL 최적화 과정 사용자가 던진 쿼리 수행을 위해, 후보군이 될만한 실행계획을 찾는다. 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정한다. 각 실행계획을 비교해서 최저비용을 갖는 하나를 선택한다. 나. 옵티마이저 종류 1) 규칙기반 옵티마이저( = Heuristic 옵티마이저 ) 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택한다. 규칙? 액세스 경로별 우선순위로서, 인덱스 구조, 연산자, 조건절 형태가 순위를 절정짓는 주요인다. 2) 비용기반 옵티마이저 테이블과 인덱스에 대한 여러 통계정보를 기초로 각 오퍼레이션 단.. 2021. 4. 28.
SQLP - 동시성 제어 1. 동시성 제어 DBMS는 다수의 사용자를 가정하며, 동시에 작동하는 다중 트랜잭션의 상호 간섭 작용에서 데이터베이스를 보호 할 수 있어야 하며, 이를 동시성 제어(Concurrency Control)이라 한다. 동시성을 제어할 수 있도록 하기 위해 모든 DBMS가 공통적으로 Lock 기능을 제공. SET TRANSACTION 명령어를 이용해 트랜잭션 격리성 수준을 조정할 수 있는 기능도 제공. SQL Server의 경우, 기본 트랜잭션 격리성 수준인 Read committed 상태에선 레코드를 읽고 다음 레코드로 이동하자 마자 공유 Lock을 해제하지만, Repeatable Read로 올리면 트랜잭션을 커밋될 대까지 공유 Lock을 유지 동시성과 일관성의 상관관계 가. 비관적 동시성 제어 (Pessi.. 2021. 4. 28.
[J STORY] SQLP - 트랜잭션 트랜잭션(Transaction)은 업무 처리를 위한 논리적인 작업 단위이다. 1. 트랜잭션의 특징 원자성(Atomicity) 트랜잭션은 더 이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 함. 일관성(Consistency) 일관된 상태의 데이터베이스에서 하나의 트랜잭션을 성공적으로 완료하고 나면 그 데이터베이스는 여전히 일관된 상태여야 함. 격리성(Isolation) 실행 중인 트랜잭션의 중간 결과를 다른 트랜잭션이 접근할 수 없음 영속성(Durability) 트랜잭션이 일단 실행을 성공적으로 완료하면 그 결과는 데이터베이스에 영속적으로 저장. 2. 트랜잭션 격리성 가. 낮은 단계의 격리성 수준에서 발생할 수 있는 현상들 1) Dirty Read 다른 트랜잭션에 .. 2021. 4. 27.
[J STORY] SQLP - LOCK 1. LOCK 가. Lock이란? 같은 자원을 액세스하려는 다중 트랜잭션 환경에서 데이터베이스의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을보장할 수 있는 직렬화(Serialization) 장치이다. 나. 공유 Lock과 배타적 Lock 1) 공유 Lock 공유(Shared) Lock은 데이터를 읽고자 할 때 사용 다른 공유 Lock과는 호환되지만 배타적 lock과는 호환되지 않음 2) 배타적 Lock 배타적(Exclusive) Lock은 데이터를 변경하고자 할 대 사용되며, 트랜잭션이 완료될 때까지 유지 해당 Lock이 해제될 때까지 다른 트랜잭션은 해당 Resource에 접근할 수 없음 다. 블로킹과 교착상태 1) 블로킹 Lock경합이 발생해 특정 세션이 작업을 진행하지 못하고 멈춰 선 .. 2021. 4. 26.