목록데이터베이스 (8)
철학과 학생의 개발자 도전기
1. 프로시저란 데이터베이스에 대한 일련의 작업을 저장한 것 여러 쿼리문을 하나의 명령으로 수행 가능 2. 장점 하나의 요청으로 여러 쿼리를 실행시키므로, 네트워크 부하를 줄일 수 있다. API처럼 여러 애플리케이션과 공유가 가능하다 기능 변경이 편리하다. 3. 단점 문자나 숫자열 연산에 사용하면 C나 Java보다 느린 성능을 보일 수 있다. 프로 시저의 사용 위치를 알 수 없어서 유지보수가 힘들다. 4. 프로시저 생성 예시 CREATE OR REPLACE PROCEDURE 프로시져명 (파라미터1 IN | OUT | IN OUT, 파라미터2 IN | OUT | IN OUT...); IS[AS] 변수, 상수 등을 선언 BEGIN 로직을 실행할 쿼리문 [EXCEPTION 예외처리] END 프로시져 명;

1. NoSQL NoSQL이란 Not Only SQL의 약자 관계형 데이터베이스와 다른 형태의 데이터 저장 기술 즉, 테이블이 존재하지 않고 고정된 스키마가 없다. 특징 빅데이터 처리에 유용하다. (수평확장 / 고가용성) 정형 데이터뿐만 아니라 반정형, 비정형 데이터도 처리 가능 스키마가 없기 때문에 확장성이 좋음 분산형 구조로, 데이터를 상호 복제하여 안정성을 높이고 서비스 중지에 대비한다. RDB에 비해 읽기, 쓰기의 속도가 빠르다. 읽기보다 쓰기가 더 빠르다. 유형 Key-Value 형태 (Redis) 문서 형태 (MongoDB) 그래프 형태 (Amazon Neptune) 2. Redis Redis란 Remote Dictionary Server의 약자 오픈 소스 기반, 인메모리 데이터베이스 Key-..
1. 옵티마이저란 최적의 쿼리 실행 계획을 세워주는 엔진 쿼리 실행의 4단계 중 2단계 Parsing: SQL 구문을 분석하고 문법 오류를 검사 Optimization: 최적의 SQL 실행 계획 도출 Generation: 실행 계획을 실행 가능한 코드로 변경 Execution: 실행 2. 규칙 기반 옵티마이저 (RBO) 미리 정해둔 규칙에 따라 실행 계획을 최적화 실행 속도가 빠른 순으로 규칙을 세우고 우선순위를 설정 과거, 통계가 부족하고 CPU 성능이 낮아 비용 연산이 부담스러울 때 사용하던 방식 3. 비용 기반 옵티마이저 (CBO) 현재, 대부분의 RDBMS가 사용 실행 계획의 비용을 계산해 최소값을 고르는 방식 비용은 객체 및 시스템 통계 정보를 이용한 예상치로 계산 (테이블, 컬럼, 인덱스, C..
1. Lock 읽기 혹은 쓰기 잠금을 통해 다중 트랜잭션의 상호 간섭을 방지한다. 낙관적 동시성 제어 사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정 데이터 읽는 시점에 Lock을 걸지 않고, 수정 시점에 값이 변경되었는지 검사 Q. 동시에 수정된다면?: 마지막 커밋만 적용하기 등 전략 설정 필요 비관적 동시성 제어 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정 데이터를 읽는 시점에 Lock을 걸고, 트랜잭션이 완료될 때 까지 유지 공유락: 다른 공유락을 허락함 -> 읽기 잠금으로 사용 베타락: 다른 모든 락을 허락하지 않음 -> 쓰기 잠금으로 사용 2. MVCC Multi Version Concurrency Control (다중 버전 동시성 제어) 동시 접근을 허용하는 데이터베이스에..
1. 트랜잭션 데이터를 처리하는 하나의 논리적 작업 단위 트랜잭션 내의 모든 연산은 한꺼번에 수행되거나 모두 수행되지 않아야 한다. 트랜잭션이 성공적으로 완료된 후에는 결과가 영구적으로 반영되어야 한다. 2. ACID 특징 원자성(Atomicity): 트랜잭션 전체가 반영되거나 반영되지 않아야 한다. 일관성(Consistency): 의도하지 않은 데이터 손상으로 무결성을 해치지 않아야 한다. 고립성(Isolation): 트랜잭션은 서로의 연산을 방해하지 않아야 한다. 지속성(Durability): 트랜잭션 수행 결과가 시스템에 적용되는 것을 보장해야 한다. 3. Commit과 Rollback Commit: 하나의 트랜잭션이 끝났음을 알려주는 연산. 트랜잭션 결과가 시스템에 반영된다. Rollback: 트..

1. 인덱스란 데이터 검색 속도를 향상시키기 위한 자료구조 특정 속성의 값과 해당 레코드의 위치를 매핑하여, 데이터를 빠르게 찾을 수 있다. B-트리를 사용하여 O(logN)의 시간복잡도로 탐색이 가능하다. 추가적인 저장 공간을 필요로 하며 데이터 삽입, 수정, 삭제 시 시간이 더 많이 소요된다. 2. 클러스터형 인덱스 테이블 당 1개만 생성 가능 클러스터가 적용된 속성을 기준으로 데이터가 정렬됨 PK는 자동으로 클러스터형 인덱스 역할 수행 데이터는 페이지에 들어가게 되며, 각 페이지는 MySQL 기준 16kbyte이다. (페이지 = 노드) 페이지의 용량을 넘게 되면 B-트리의 분할을 수행한다. 3. 보조 인덱스 테이블 당 여러개 생성 가능 실제 데이터를 가르키는 인덱스 페이지 생성 데이터 자체가 정렬되..

1. 이상 릴레이션에서 속성 간 종속이나 데이터 중복으로 인해 발생하는 문제 데이터 조작 시 발생하며 삽입, 수정, 삭제 이상이 있다. 삽입 이상: 의도하지 않은 데이터까지 삽입해야 데이터 추가가 가능한 문제 수정 이상: 데이터가 중복되어 일부만 수정되고 데이터 모순이 발생하는 문제 삭제 이상: 데이터를 삭제할 때 의도하지 않은 데이터도 같이 삭제되는 문제 삽입 이상 학생(학번, 이름, 나이, 성별) 데이터를 추가할 때 강의 데이터를 함께 넣어줘야 한다. 수정 이상 3번 레코드를 수정하면 4번 레코드와 충돌이 발생한다. 삭제 이상 김영호 학생 데이터를 삭제하면 데이터베이스 개론 데이터도 함께 삭제된다. 2. 정규화 데이터 중복과 종속 관계를 제거하여 이상현상을 해소하는 과정 1NF, 2NF, 3NF, B..

데이터베이스 여러 사람이 공유하고 사용할 목적으로 관리되는 데이터 모음 데이터 공유 : 많은 사람들이 데이터를 공유할 수 있다. 중복의 제거 : 데이터를 한 곳에 모으면서 중복되는 데이터를 제거할 수 있다. 데이터 통합 : 흩어져 있는 데이터를 한 곳에 모을 수 있다. 보안성 : 권한이 있는 관리자가 데이터를 관리하여 데이터의 보안을 지킬 수 있다. DBMS (Data Base Management System) DB를 관리하고 운영하는 소프트웨어 응용프로그램들이 DB에 접근할 수 있는 인터페이스를 제공 복구 및 보안 기능 등을 제공 DBMS의 장점 자료의 통합성을 증진시키고 데이터의 접근을 용이하게 해준다. 데이터의 통제가 쉬워지고 애플리케이션을 쉽게 개발하고 관리할 수 있다. 중복되는 데이터를 최대한 ..