데이터베이스란? 데이터의 모음이다. 그런데 약속된 규칙에 의해 구조화를 곁들인 데이터베이스를 관리하는 시스템을 DBMS라고 한다 DB 종류에 따라 쿼리 언어가 달라진다 RDBMS(MySQL, PostgreSQL, SQL Server 등) : SQL 이용 NoSQL(MongoDB, Redis 등) : 쿼리 말고 함수 같은 것.. (?) 이용 ...
트랜잭션 용어 트랜잭션 한 작업의 단위이다. 내가 친구한테 30,000원을 송금하려고 할 때, 송금이라는 작업을 위해서 1) 해당 계좌에 잔액이 30,000원 이상 있는지 확인하고 2) 있다면 내 계좌에서 30,000원을 감하고 3) 친구의 계좌에 30,000원을 증가시켜야 ...
관계형데이터베이스 (RDBMS) 행과 열이 있는 테이블 형식으로 데이터를 저장한다. SQL 언어를 사용한다. MySQL, PostgreSQL, 오라클, SQL server, MSSQL 등 NoSQL SQL이 없다(No)는 뜻인 줄 알았는데, Not only SQL 이라고 해서 SQL로만 가능한게 아니야! 라는 슬로건과 함께 나타난 데이터베이스다. 그래...
인덱스란? 책의 색인을 보고 빠르게 해당 내용을 찾으러 갈 수 있는 것과 같은 장치이다. 왜 효율적일까? 인덱스의 자료구조가 균형잡힌 B-Tree 기반으로 되어 있어서 O(logN)의 탐색 속도로 매우 빠르기 때문이다. 또한 대수확장성 때문인데 트리가 한 depth 깊어질때, 인덱스 수는 빠르게 증가한다. 그래서 특정 노드까지 가는 depth가 짧다...
데드락이란? 둘 이상의 트랜잭션이 교착상태에 있는 것으로 서로 맞서서 서로가 먼저 물러서기를 기다리며 대치하고 있는 상태를 말한다. 예를 들어, 테이블A와 테이블B가 있는데, 트랜잭션1이 A테이블의 일부 행을 락을 걸고 B테이블의 특정 행을 업데이트 하러 갔다. 근데 트랜잭션2가 B테이블의 그 행을 락을 걸고 A테이블로 가서 업데이트를 하려는데 락이 걸려...
정규화란? 테이블(릴레이션)을 분리하는 과정을 말한다. 분리를 하는 이유는, 테이블이 설계가 잘못 되어, 잘못된 함수 종속으로 인해서(데이터가 중복되는 등) 이상현상을 일으키기 때문이다. 그래서 이를 해결하고자 정규화 과정을 거친다. 어떤 이상한 현상이 일어나나요? 테이블에 데이터를 1. 삽입, 2. 수정, 3. 삭제 할때 부작용이 발생한다. (주의할...