DB/[이론] 34

트랜잭션 격리수준(isolation level)

트랜잭션 격리수준 발생에러 \ 트렌잭션 격리수준 Dirty Read Non-Repeatable read Pantom Read 격리수준 낮음 . . . . . 격리수준 높음 READ UNCOMMITED 발생 가능 발생 가능 발생 가능 READ COMMITED 없음 발생 가능 발생 가능 REPEATABLE READ 없음 없음 발생 가능 SERIALIZABLE 없음 없음 없음 READ UNCOMMITED 가장 낮은 격리수준으로서 커밋되지 않은 데이터를 볼 수 있음. 따라서 dirty read오류 발생 READ COMMITED 커밋된 데이터만 읽는것. 다른 A 트랜잭션에서 변경한 데이터를 읽을 때 B 트랜잭션에서 일관되게 읽지 않을 수 있음. 즉 unrepeatable read가 발생할 수 있음. 오라클의 ..

DB/[이론] 2023.11.19

데이터 무결성

데이터 무결성이란 - 데이터 무효갱신으로 부터 데이터를 보호하여 정확성, 유효성, 일관성, 안정성 등을 유지하는것 무결성의 종류 * 개체무결성 : 기본키로 선택된 필드는 빈 값을 허용하지 않음 * 참조 무결성 : 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관되어야 함 - 외래키는 Null이거나 참조하는 테이블의 기본키에 존재하는 값이여야 함 - 기본키 중 자신을 참조하는 외래키가 존재하면 기본키를 삭제할 수 없다. * NULL 무결성 : not null인 컬럼의 경우 not null이 지켜져야 함 * 영역 무결성(Domain Integrity) : 테이블에 존재하는 필드의 무결성을 보장하는것. 데이터타입, NULL 허용 등의 여부 정의. 속성값은 원자성을 가지며, 해당 도메인에서 정의된 값이여야..

DB/[이론] 2023.11.13

데이터베이스의 구성요소

데이터베이스의 구성요소 1. 데이터베이스 관리시스템 : 데이터베이스를 구축하고 이용하는 기능을 제공하는 시스템 소프트웨어 2. 데이터베이스(DB) : 한 조직의 여러 응용프로그램이 공용하기 위해 최소의 중복으로 저장한 데이터의 집합 3. 데이터베이스 언어 : 사람과 시스템의 인터페이스를 제공하는 도구 4. 사용자 : 데이터베이스 관리자(DBA), 데이터베이스 응용 프로그래머, 데이터 베이스 사용자 등

DB/[이론] 2023.10.15

redis 명령어

MAP - GET SET 함수 명령 설명 SET mykey "myvalue" key: mykey, value:myvalue 값을 가지는 객체 SET mykey "myvalue" EX 10 10s뒤에 삭제 SET mykey "myvalue" PX 10 10ms뒤에 삭제 SET mykey "myvalue" XX 키가 존재하면 SET을 실행 SET mykey "myvalue" GET 이전에 있던 value값을 return한후 SET을 실행 SET mykey "myvalue" NX SETNX mykey "myvalue" 키가 존재하지 않으면 SET을 실행 MSET key1 val1 key2 val2 ... 여러값을 SET MGET key1 key2 여러값을 GET - counter command 명령 설명 I..

DB/[이론] 2023.07.12

mac redis 설치 및 실행

redis란 cacheDB의 한 종류로서 다양한 자료구조를 제공하는 in memory database이다. 싱글스레드라는 특징이 있고 하나의 한 클라이언트만 자료를 저장/조회하기 때문에 데이터 lock없이 빠르게 데이터를 조회가능하다. cacheDB로 redis를 많이 사용하는 이유는 자료구조의 설계와 사례가 용도에 따라 명확하기 때문이다. 또한 분산 클러스터 모드를 지원하므로 확장성도 제공할 수 있고 레퍼런스가 충분히 많다. redis설치 및 실행 1. brew를 이용한 redis설치 brew install redis 2. redis 실행 redis-server //일반실행 brew services start redis //백그라운드실행 3. 실행됐는지 확인 brew services info re..

DB/[이론] 2023.07.02

NoSQL

NoSQL이란 - 기존의 관계형 데이터베이스의 한게를 벗어나 비정형, 초고용량 데이터 처리를 위해 만들어짐 - 쓰기속도에 중점을 둠 - 다수 서버에 데이터 복제,분산,저장 등 수평적 확장이 가능 NoSQL특징 1. 대용량 데이터 처리 : 페타바이터 수준의 데이터 처리 수용 가능 2. 유연한 스키마 사용 3. 저렴한 클러스터 구성 : 다수 서버를 통한 수평적인 확장 및 데이터 복제 및 분산 저장 가능 4. 높은 가용성 제공 5. 탄력성 : 시스템 일부 장애에도 불구하고 시스템에 접근하는 클라이언트, 응용시스템의 다운타임이 없도록 함 6. 질의가능 : 수십 대에서 수천 대 규모로 구성된 시스템에서도 데이터의 특성에 맞게 효율적으로 데이터를 검색/처리 할 수 있음 7. 높은 확장성 NoSQL종류 1. Key-..

DB/[이론] 2022.03.11

ETL (Operational Data Store, Data WareHouse, Data Mart)

ETL 1. 단어뜻 ETL : extraction, Transformation, Loading (데이터의 이동 및 변환) 2. 과정 Operational Data Store(ODS) => Data WareHouse(DW) => Data Mart 3. 정의 데이터에 대한 추가 작업을 위해 다양한 데이터 원천(source)들로 부터 데이터를 추출, 통합한 데이터베이스. 실시간, 실시간 근접, 원자성을 지닌 하위수준 데이터 저장을 위해 설계 4. 단계 (1) 인터페이스 : 다양한 데이터 원천들로부터 데이터를 획득하는 단계. 실시간 근접실시간, OLAP질의를 지원하기 위해 실시간 데이터 복제 기술 사용 (2) 데이터 스태이징 : 트래잭션 데이터들이 추출되어 하나 이상의 스태이징 테이블에 저장되는 단계 (3) 데..

DB/[이론] 2022.03.11

데이터베이스 장애 복구 방법

로그기반 기법 - 로그파일을 이용한 복구 - redo, undo사용 - 느림 검사점(check point) - 로그파일과 검사점을 이용한 복구 - 로그기반보다 상대적으로 복구속도가 빠름 - undo 사용 그림자 페이징 기법 - 그림자 페이지 테이블을 이용한 복구 - undo간단, redo불필요 - 로그 기반 or 검사점 기반과 함께 사용 - 그림자 페이지 테이블 복사, 기록하는데 따른 오버헤드 발생 - 복사 및 백업본에서 복구하므로 복구 속도가 빠름

DB/[이론] 2022.03.10

데이터 복구

데이터복구란? 데이터베이스 운영 도중 예기치 못한 장애가 발생할 경우 데이터베이스 장애 발생 이전으로 일관성과 무결성을 복원하는것 데이터베이스 장애 유형 1. 트랜젝션 장애 - 논리적 오류 : 내부적은 오류로 트랜젝션 완료 불가 - 시스템 오류 : Deadlock 등의 오류 조건으로 활성 트랜잭션을 강제로 종료 2. 시스템 장애 - 전원, 하드웨어, 소프트웨어 등의 고장 - 시스템 장애로 인해 저장 내용이 영향 받지 않도록 무결성 체크 3. 디스크 장애 - 디스크 스토리지의 일부 또는 전체가 붕괴 - 가장 최근의 덤프와 로그를 이용하여 덤프 이후에 완결된 트랜젝션을 재실행 4. 사용자 장애 - 사용자들의 데이터베이스에 대한 이해 부족으로 발생 - DBA가 데이터베이스를 관리하다 발생하는 실수 데이터베..

DB/[이론] 2022.03.10

교착상태

교착상태(Deadlock) 정의 - 다중 트랜잭션 데이터베이스 시스템에서 다수 트랜젝션이 특정 자원의 할당을 무한정 기다리고 있는 상태 - 교착 상태에 있는 트랜젝션은 실행을 끝낼 수 없으며 시스템 자원이 묶여있어서 다른 작업을 시작하는것도 불가능. - 예시 : T1은 T2가 X를 언락하기를 기다리고, T2는 T1이 Y를 언락 하기를 기다리고 있는 상황 교착상태 발생 원인 - 상호 배제 : 프로세스들이 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용하지 못함 - 점유와 대기 : 프로세스가 어떤 자원을 할당받아 점유하고 있으면서 다른 자원을 요구 - 비선점 : 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없으며 점유하고 있는 프로세스 자신만 해제가능 - 환형대기 : 프로세스..

DB/[이론] 2022.03.10

동시성 제어

동시성 제어란 - 다중 사용자 환경을 지원하는 데이터베이스 시스템에 여러 트랜젝션들이 성공적으로 동시에 실행될 수 있도록 하는것 - 트랜젝션의 직렬화를 수행(트랜젝션이 동시에 수행되더라도 그 결과가 순차적으로 수행되도록 만듦) - 무결성보장, 공유도 최대, 응답시간 최소, 시스템 활동의 최대 보장 동시성 제어 하지 않을 경우 문제점 - 갱신 손실 : 이전 트렌젝션이 종료하기 전에 다른 트랜젝션이 갱신 값을 덮어 쓰는 경우 - 오손 데이터 읽기 : 트랜젝션의 중간 수행결과를 다른 트랜잭션이 참조 - 모순성 : DB가 일관성이 없는 상태로 남음 - 연쇄복귀 : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소불가능 - 반복할 수 없는 읽기 : ..

DB/[이론] 2022.03.10

정규화 수행과정 #도부이결다조

정규화 수행과정 -1차 정규화 : 원자값 아닌 도메인 분해(도) -2차 정규화 : 부분 함수 종속 제거(부) -3차정규화 : 이행함수종속 제거(이) -보이스-코드 정규화 : 결정자가 후보키가 아닌 것 제거(결) -4차정규화 : 다치종속 제거(다) -5차정규화 : 조인종속 제거(조) 1차 정규화 - 하나의 컬럼에 원자값을 갖도록 조정 - 예시 2차 정규화 - 부분함수 종속 제거 - 기본키의 일부가 다른 컬럼과 종속 - 예시 3차 정규화 - 이행함수 종속 - 예시 - 물론 학번->학부->등록금을 거치지 않고도, 등록금은 학부에 종속된다(학번에을 알면 해당 학생의 등록금을 무조건 알 수 있기 때문이다.) 하지만 의미적으로 등록금은 학부에 종속적으로 결정되는 것이 맞다. 따라서 이를 분리해 주어야 하는 것이다...

DB/[이론] 2022.03.05

이상현상

샘플 테이블 삽입이상 - 어떤 정보를 삽입하고자 할 때 원하지 않는 정보까지 함께 삽입해야하는 현상 - 샘플테이블에서 (학과명=경영정보, 학과사무실=경영관)이라는 정보를 넣을 때 기본키인 학번이 NULL이 되면 안되므로 경영정보 소속인학생의 학번과 함께 학과명과 학과사무실 정보를 삽입해야함 삭제이상 - 어떤 정보를 삭제하고자 할 때 필요한 정보까지 함께 삭제되는 현상 - 학번=3333인 학생을 삭제할 때 해당 학생이 물리학과에 소속된 유일한 학생이면 물리학과의 사무실이 자연관 이라는 정보도 함께 삭제됨 수정이상(갱신이상) - 어떤 정보를 수정하고자 할 때 동일한 내용의 여러 건의 데이터에서 반복 수정해야 되는 현상 - 컴퓨터공학과의 사무실이 변경되면 컴퓨터공학과 학생 수만큼 사무실 column을 수정해야함

DB/[이론] 2022.03.05

뷰(View)

뷰의 정의 - 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 생성한 가상 테이블 뷰의 특징 - 참조한 테이블이 변경되면 뷰도 변경된다 - 뷰의 검색은 테이블과 동일하게 할 수 있지만, 뷰에 대한 입력 수정 삭제는 제약이 있다. - 특정 컬럼만 조회 되므로 보안성이 향상된다. - 한번 생성된 뷰는 변경할 수 없다. - ALTER이용하여 변경이 불가하다 사용 예시 CREATE VIEW T_EMP AS SELECT * FROM EMP;

DB/[이론] 2022.02.15

트랜젝션(transaction)의 정의 및 특징

트랜젝션이란 -쪼갤 수 없는 업무 처리의 최소단위 - A가 B에게 돈 1000원을 주었다면, A는 -1000, B는 +1000이 되어야 한다. 한 사람만 돈을 얻거나 잃는 일은 있을 수 없다. 이러한 업무처리의 최소단위를 묶어주는 것이 트랜젝션의 역할이다. 커밋(commit)과 롤백(rollback) - 커밋 : 트랜잭션 처리가 정상적으로 된 경우 결과를 반영함 - 롤백 : 오류가 발생한 경우 모든 동작을 원래대로 되돌림 트랜젝션의 특징 1. 일관성 : 트랜잭션의 결과로 DB상태가 모순되지 않아야 한다. 2. 원자성 : 작업이 모두 실행되거나, 하나도 실행되지 않아야 한다. 3. 연속성 : 트랜잭션 결과는 영구적으로 보장한다 4. 고립성 : 트랜잭션 연산 중간결과에 다른 트랜잭션이 접근할 수 없다.

DB/[이론] 2022.02.14

데이터베이스 종류

계층형 - 폴더와 파일등의 계층 구조로 데이터를 저장하는 방식 - 하드디스크나 DVD파일시스템 - 가장 오래된 데이터베이스 - 프로세스 변경에 따른 데이터 구조 변경이 어려움 네트워크형 - 그래프 구조의 데이터베이스 - 다대다 관계를 유지하고 데이터의 연결을 위해 포인터를 사용한다 - ex) 관계형 데이터베이스 - 행과 열을 가지는 표 형식의 데이터를 저장하는 형태의 데이터베이스 객체 지향 데이터베이스 - 관계형 데이터베이스는 새로운 데이터타입 생성 및 확장, 복합 객체표현시 상호 관련된 엔티티 처리가 어려움 - 사용자 정의 데이터타입 지원 및 상속성 명세 가능 - 비정형 복합 정보의 모델링 가능 - 트랜젝션 처리, 동시처리, 백업 및 복구 등에 취약하여 많이 확대되지 못함 키 밸류 스토어(KVS) - ..

DB/[이론] 2022.02.14

[ERD] 속성, 관계

속성 1. 분해 여부에 따른 속성의 종류 - 단일 속성 : 하나의 의미로 구성된 것(회원ID, 이름) - 복합 속성 : 여러개의 의미가 있는 것(주소 시 군 구) - 다중값 속성 : 속성에 여러 값을 가질 수 있는 것 (상품리스트) 2. 특성에 따른 속성의 종류 - 기본 속성 : 본래의 속성(이름, 계좌번호, 주문일시) - 설계 속성 : 모델링 과정에서 발생되는 속성(상품코드, 지점코드) - 파생 속성 : 다른 속성에 의해 만들어지는 속성 (합계, 평균) ​ 관계 (1) 식별관계 : 기본키끼리 (2) 비식별관계 : 기본키---기본키아닌것

DB/[이론] 2022.02.14

3층 스키마

3층 스키마란 - 스키마란? : 데이터베이스의 구조와 제약조건에 대한 구체적인 명세 - 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고, 이들간의 관계를 정의한 ANSI표준 - 데이터베이스의 독립성을 확보하기 위한 방법 데이터베이스 독립성 1. 데이터베이스 독립성확보하면? (1) 데이터 복잡도증가 (2) 데이터 중복 제거 (3) 사용자 요구사항 변경에 따른 대응력 증가 (4) 관리 및 유지보수 비용절감 2. 독립성의 종류 (1) 논리적 독립성 : 응용프로그램에 영향을 주지 않고 논리적 구조를 변경할 수 있는 것. (2) 물리적 독립성 : 논리적 구조에 영향을 미치지 않고 물리적 구조를 변경할 수 있는 것. 스키마의 종류 1. 외부 스키마 (1) 사용자 관점, 업무상 관..

DB/[이론] 2022.02.14