CS/DB
-
[DB]TransactionCS/DB 2021. 7. 11. 20:25
📝 Transaction ✨ 해당 글은 아래 [10분 테코톡]을 듣고 작성했습니다.✨ 📌 Transaction 🔎 트랜잭션에 대해 알아보자. - 여러 쿼리를 논리적으로 하나의 작업으로 묶어주는 것이다. - 관련 용어를 알아보자. commit: 트랜잭션으로 묶인 모든 쿼리가 성공하여 트랜잭션 연산 결과를 DB에 반영한다. rollback: 쿼리 실행 결과를 취소하고 DB의 상태를 트랜잭션 이전 상태로 되돌린다. 📌 Transaction의 성질 🔎 트랜잭션의 성질을 알아보자. - 트랜잭션이 안전하게 수행된다는 것을 보장한다. 다음과 같은 성질을 가진다. (ACID 성질) Atomicitiy(원자성): 트랜잭션은 DB에 모두 반영되거나, 전혀 반영되지 않아야 한다. Consistency(일관성): 트랜잭션 작..
-
DB - RDBMSCS/DB 2021. 3. 1. 20:52
RDBMS RDBMS란? 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어이다. 데이터를 관계형 모델에 따라 구조화해 저장, 관리하고 사용자가 데이터베이스 언어로 질의 연산을 요구할 수 있다. 모든 데이터를 2차원 테이블로 표현한다. 관계형 데이터베이스? KEY와 VALUE의 관계를 테이블화 시킨 데이터베이스이다. 기본키를 기준으로 Index가 구성되어 있고, 자료구조는 B-tree를 사용한다. reference jwprogramming.tistory.com/52 www.tcpschool.com/mysql/mysql_intro_relationalDB
-
DB - TransactionCS/DB 2021. 2. 14. 22:42
Transaction 트랜젝션이란 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위이다. 다음과 같은 4가지 원칙을 만족한다. 원자성(Automicity): 트랜젝션의 연산은 DB에 모두 반영되던가, 전혀 반영되지 않아야 한다. 일관성(Consistency): 트랜젝션 작업이 종료된 후에도 일관성 있는 DB상태를 유지해야 한다. 독립성(Isolation): 한 트랜젝션이 작업하는 동안 작업중인 데이터를 다른 트랜젝션들이 접근하지 못하도록 해야 한다. 영속성(Durability): 트랜젝션의 실행이 성공적으로 완료된 후 결과는 영구적으로 반영되어야 한다. 격리수준(Isolation level) 동시에 여러 트랜젝션이 처리될 때 일관성 없는 데이터를 허용하는 수준을 말한..
-
DB - IndexCS/DB 2021. 2. 14. 20:18
DB - Index Index를 사용하는 이유 일반적인 테이블에서 데이터의 레코드는 내부적으로 아무런 순서 없이 저장된다. 이때 저장되는 데이터 영역을 Heap영역 이라고 한다. Heap에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 페이지의 처음 레코드부터 끝 페이지의 마지막 레코드까지 다 읽어서(Full scan) 검색 조건과 비교한다. 그러므로 칼럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들어 두는 것이다. 즉 인덱스는 데이터를 select 할때 빨리 찾기 위해 사용된다. Index란? 테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터 객체이다. index를 걸면 index를 거는 컬럼을 기준으로 새로운 객체를 생성하여 별도의 디스크 공간에 저장한다...
-
DB - KEYCS/DB 2021. 2. 12. 20:33
KEY KEY 데이터베이스에서 조건에 맞는 튜플을 찾거나 검색할 때 기준이 되는 속성이다. Super Key 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다. 유일성: 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 한다. 최소성: 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 한다. Canditate Key 후보키: 유일성과 최소성을 모두 만족하는 모든 키를 의미한다. Primary Key 기본키: 후보키 중에서 선정된 것을 의미한다. Alternate Key 대체키: 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미한다. Foreign Key 외래키: 다른 릴레이션의 기본키를 참조하는 속성을 ..
-
DB - 파티셔닝과 샤딩CS/DB 2021. 2. 12. 20:23
파티셔닝과 샤딩 파티셔닝과 샤딩 서비스 크기 증가에 따른 DB 크기 증가하며 VLDB(Very Large DBMS)가 등장했고 여러 테이블을 관리하며 생기는 성능 이슈를 해결하기 위해 파티셔닝과 샤딩이 나왔다. 파티셔닝 큰 테이블이나 인덱스를 관리하기 쉬운 크기로 분리하는 방법이다. 장점 가용성: 물리적인 노드 분리에 따라 전체 DB내의 데이터 손상 가능성이 줄어들고, 데이터 가용성이 향상된다. 관리 용이성: 큰 테이블을 제거하여 관리를 쉽게 할 수 있다, 성능: 대용량 Data Write환경에서 효율적이며 특정 DML과 쿼리 성능을 향상시킨다. 단점 테이블 간 JOIN비용 증가 테이블과 인덱스를 별도로 파티셔닝 할 수 없고 함께 파티셔닝 해야 한다. 방법 Horizontal Partitioning(수평..
-
DB - NOSQLCS/DB 2021. 2. 12. 19:47
NOSQL SQL 관계형 데이터베이스 에서 사용되며 '구조화 된 쿼리 언어(Structured Query Language)'의 약자이다. RDBMS(관계형 데이터베이스 관리 시스템)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 데이터는 정해진 데이터 스키마를 따라 테이블에 저장되고 관계를 통해 연결된 여러개의 테이블에 분산된다. 장점: 데이터의 무결성을 보장한다. 각 데이터를 중복 없이 한번만 저장한다. 단점: 데이터 스키마를 나중에 수정하기가 번거롭거나 불가능 할 수 있다. JOIN문이 많은 복잡한 쿼리가 만들어질 수 있어 성능에 문제가 생길 수 있다. NOSQL 스키마가 없고 관계가 없는 비 관계형 데이터베이스를 말한다. 레코드를 문서(documents)라고 부른다. 다른 구조의 데이터를 같..
-
DB - 스키마CS/DB 2021. 2. 12. 19:30
스키마 스키마 데이터베이스의 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. DBMS(데이터 베이스 관리 시스템)가 주어진 설정에 따라 스키마를 생성하며, 사용자가 자료를 저장, 조회, 삭제, 변경할 때는 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다. 스키마는 3층 구조(외부 스키마, 개념 스키마, 내부 스키마)로 되어있다. 외부 스키마 외부 스키마 = 서브 스키마 = 사용자 뷰 프로그래머나 사용자의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한다. 하나의 데이터에 여러개의 외부 스키마가 존재할 수 있다. 개념 스키마 개념 스키마 = 전체적인 뷰 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 ..