본문 바로가기

Computer Science/DataBase4

Clustered Index와 Non-Clustered Index?? 1. Clustered Index와 Non-Clustered Index에 대해서 설명해주세요 Clustered Index는 테이블의 컬럼중 하나를 지정하여 Index로 설정하고, 물리적으로 테이블의 데이터를 재배열하는 것을 말합니다. 저장된 순서에 상관없이 지정된 index에 따라 정렬되며, key값으로 바로 데이터를 탐색합니다. 따라서 테이블 당 하나의 Clustered Index만 존재할 수 있으며, PK는 초기에 Clustered Index로 생성됩니다. 또한 물리적으로 정렬되어있기 때문에, 빠른 속도를 보입니다. 반면, Non-Clustered Index는 물리적으로 데이터를 정렬하지 않고, 별도의 데이터 페이지를 구성하는 것을 말합니다. 따라서 테이블 당 여러개의 Non-Clustered Ind.. 2021. 5. 17.
트랜잭션이 왜 필요할까? 1. 트랜잭션이 무엇인가요? 트랜잭션이란 DB의 상태를 변화시키는 하나의 논리적인 작업에 포함된 연산들의 집합입니다. DB의 상태를 변화시키는 작업은 일반적으로 하나의 작업으로 이루어지지 않습니다. 예를 들어, 은행계좌에서 금액을 이체하려 한다면, 1)A계좌의 잔액을 조회 2)A계좌의 잔액에서 이체할 금액을 빼고 저장 3)B계좌의 잔액을 조회 4)B계좌에 이제금액을 더한 뒤 저장 까지 몇가지의 과정들이 필요하고 이를 모두 합쳐 계좌 이체라는 하나의 작업단위를 구성합니다. 이렇듯 DB 상태 변화를 위한 작업에 포함된 과정(연산)의 집합을 트랜잭션이라고 합니다. 그리고 트랜잭션의 모든 과정의 수행 여부에 따라 Commit되거나 Rollback 됩니다.2. 트랜잭션의 성질에 대해 말해주세요. 트랜잭션의 성질은.. 2021. 5. 17.
DB를 왜 사용할까? 1. DB와 DBMS에 대해서 설명해주세요 DB는 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장되고 관리, 운영되는 데이터들의 집합입니다. 이를 통해 데이터들의 중복을 제거하고, 구조화하여 효율적인 데이터 처리를 할 수 있습니다. 그리고 DB는 별도의 미들웨어에 의해 관리가 되는데, 이를 DBMS라고 합니다. DBMS는 사용자과 DB 사이에서 사용자의 요청을 처리하고 DB를 관리할 수 있도록 도와줍니다.2. DB의 특징은 무엇인가요? DB의 특징은 크게 5가지로 말할 수 있습니다. - 실시간 접근 : 사용자의 요청을 즉시 처리하여 응답 - 계속적인 진화 : 데이터의 삽입, 갱신, 삭제를 통해 최신 데이터를 유지 - 동시 공유 : 여러 사용자가 동시에 데이터를 사용 가능 - 내용에 의한 참조 : .. 2021. 5. 17.
SQL Injection이란?? 1. SQL Injection은 무엇인가? SQL Injection 은 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 방식을 말합니다. 즉, 보안상의 취약점을 이용하여 임의의 SQL문을 주입하고 실행되게 하여 서버의 데이터베이스에 비정상적 동작을 하도록 조작하는 행위입니다. 비교적 쉬운 공격이지만, 성공할 경우 큰 피해를 입힐 수 있는 공격입니다. 주로 서버가 사용자의 입력을 제대로 필터링하지 못했을 경우 발생합니다.2. 어떻게 공격이 이루어지고 어떤 피해를 발생시키는가? - 논리적 에러를 이용한 SQL Injection : 'OR 1=1 -- ⇒ 쿼리문의 where 절을 모두 참으로 만들고 뒤의 구문을 주석처리 시켜서 통과 로그인 시, User 테이블의 모든 정보를 조회할 수 있고.. 2021. 4. 27.