CS 지식/데이터베이스

1. 분산데이터베이스(Distributed Database) - 1 분산 데이터베이스 데이터가 다른 physical location에 저장되는 데이터베이스 분산 데이터베이스의 장점 Fault tolerance High performance Low cost 해결해야 할 이슈들 data 분산 분산 데이터를 활용한 병렬처리 Distributed Transaction / Distributed Locking Semi join Distributed Database 분산 데이터베이스의 종류 Homogeneous distributed database 각 distributed node에 같은 종류의 DBMS 가 실행 Heterogeneous distributed database 각 distributed node에 다른 ..
1. DBMS의 쿼리프로세싱 Query processing Query processing in DBMS Parser SQL 문장을 분석해서 syntax 체크 및 catalog을 이용해서 sematic check등을 하여 annotated AST 생성 Optimizer AST를 분석하여 execution plan을 생성 AST에 따라 가능한 execution plan리스트를 만들고 그 중에서 최저 비용을 가지는 execution plan 을 선택 Rule-Based Optimizer 미리 정해 놓은 rule에 따라 logical access 경로를 비교하며 최적의 plan을 생성 Cost-based Optimizer Plan의 각 실행 operator의 cost를 미리 정해놓고 예상 비용을 계산하여 최적의..
1. 스토리지와 파일구조 DBMS Storage DBMS Storage DBMS는 데이터를 “hard” disk에 저장 Disk access가 DBMS의 성능에 중요한 문제 READ : disk -> main memory 데이터 전송 WRITE : memory -> disk 데이터 전송 higher cost than memory access Main memory에 모두 저장 못 하는 이유 비용문제 메모리에 저장된 데이터는 volatile 효과적인 memory – disk 데이터 전송을 위한 Buffer management 가 필요 DBMS Storage Disk space management DBMS에서 가장 낮은 layer에서 disk의 space를 관리 상위 component에서 다음과 같은 requ..
1. 트랜잭션 데이터 무결성 데이터 무결성 데이터 무결성을 유지하기 위해 해결해야 할 문제들 Atomic operation Concurrency control (병행 제어) 장애 후 Recovery (회복) Consistent database state 데이터 무결성이 유지되어 데이터베이스안의 데이터간의 모순점이 없는 상태 일시적으로 inconsistency가 발생할 수 있으나 결국은 일관된 값으로 유지되어야 함 예) 은행 계좌 이제 트랜잭션 데이터 무결성을 지킴으로써 데이터베이스를 일관된 상태 (consistent state)을 유지하기 위한 핵심 개념 Transaction Transaction 트랜잭션(Transaction)은 다음의 data processing의 집합을 포함한 atomic opera..
1. 정규화의 개념 정규화의 개념 정규화의 개념 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다 조금 더 이론적으로 접근해 보면 함수적 종속성을 이용해서 연관성 있는 속성들을 분류하고, 각 릴레이션들에서 이상현상이 생기지 않도록 하는 과정을 말한다. 정규화의 목적 불필요한 데이터를 제거, 데이터 중복을 최소화 데이터베이스 구조 확장 시 재 디자인을 최소화 무결성 제약조건의 시행을 간단하게 하기 위해 이상 (Anomaly) 현상 을 방지하기 위해 테이블 구성을 논리적이고 직관적으로 만들기 위해 이상 (Anomaly) 현상 삽입 이상 (insertion anomaly) : 데이터를 저장할 때 원하지 않는 정보가 함께 삽입되는 경우 갱신 이상 (update ano..
1. 데이터베이스 설계 데이터베이스 설계 데이터베이스 설계란? 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정 이미 구축된 데이터베이스는 구조를 변경하기 어려우므로 체계적인 설계 과정을 통해 데이터베이스가 올바르게 구축되어야 함 대표적인 설계 방법 E-R 모델과 Relation 변환 규칙을 이용한 설계 정규화를 이용한 설계 데이터베이스 설계 단계 요구 사항 분석 실제 세계에서 어떤 요구사항의 시스템을 구출할 것인지 대한 데이터베이스의 용도 파악 요구 사항에 대해 어떤 데이터들이 필요한지, 어떤 기능들이 필요한지 분석 결과물 : 요구 사항 명세서 개념적 설계 (Conceptual Model) 요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현 요구 사항 명세서를 E-..
1. View에 대한 개념 및 활용 Views View의 목적은? 어떤 경우에 모든 사용자가 전체 논리적 모델 (데이터베이스에 저장된 모든 실제 테이블)을 보는 건 문제가 될 수 있음 필요한 데이터만 특정 사용자들에게 유출할 필요가 있을 때 사용 employ 테이블에서 아이디, 이름, 부서 조회 가능하게 하지만 salary 정보를 숨기고 싶을 때 질의문 작성을 쉽게 만들어 준다. Group by나 aggregation function 등을 미리 정의 데이터 종속성 제거 응용프로그램은 뷰를 통해 접근함으로써 테이블 스키마 변화에 신경 쓸 필요가 없다. View 정의 CREATE VIEW [() as 다른 view을 이용한 query로 view 생성 가능 Column list가 생략된 경우 query문의 결..
1. SQL 소개 SEQUEL (Structured English QUEry Language) 1974년 IBM San Jose Research Lab에서 연구용 DBMS 인 SYSTEM R 를 위한 언어로 개발된 언어 연산자로 하나 또는 두 개의 릴레이션 (Unary and binary operations) Paper : https://researcher.watson.ibm.com/researcher/files/us-dchamber/sequel-1974.pdf SQL (Structured Query Language) : SEQUEL에서 이름이 바뀜 ANSI/ISO 가 표준 standard SQL 를 지정 SQL-86 : 1986년도 만들어진 첫번째 표준 SQL, SQL1이라고도 불림 SQL-92 : S..
관계형 데이터 모델 1. 데이터 모델링 데이터 모델링 (data modeling) 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정 데이터베이스 설계의 핵심 과정 데이터 모델링 3단계 개념적 데이터 모델링 현실세계를 추상화하여 중요 데이터를 개념 세계로 추출해 가는 과정 결과물로 개념적 데이터 모델 (객체 – 관계 (E-R) 모델) 논리적 데이터 모델링 개념 세계의 데이터를 데이터베이스가 저장할 구조로 변환하는 과정 결과물로 관계 데이터 모델 물리적 데이터 모델링 논리 데이터 모델이 실제 데이터베이스 저장소에 저장되는 저장 구조 (테이블, 컬럼)로 변경 데이터 모델링 예제 2. 관계형 데이터 모델 관계 데이터 모델 개체에 대한 데이터를 저장하는 논리적 구조 – 릴레이션 (2차원의 테..
LIKE PARK으로 시작하는 데이터 검색 select * from tbl_board where title like 'PARK%'; PARK으로 끝나는 데이터 검색 select * from tbl_board where title like '%PARK'; PARK이 들어가는 데이터 검색 select * from tbl_board where title like '%PARK%'; LEFT LEFT 함수는 받은 문자열에 대해 원하는 길이만큼 자르는 함수이다. 주민등록번호만으로 생년월일을 구해내거나 이름에서 성을 제외한 이름을 *문자로 처리하는 등 다양한 방법으로 활용 가능하다. 사용법 -- 문법 -- LEFT(문자열, 길이) -- 사용 예시 -- LEFT(NAME, 2) 예제 --테이블(MY_TABLE)에서 이..
cdragon
'CS 지식/데이터베이스' 카테고리의 글 목록