본문 바로가기

잡다한 것

NCS - 정보기술1

728x90
반응형
SMALL

데이터베이스

  • SQL에서 SELECT, UPDATE, DELETE 문에 대해 각각 설명하시오.

SQL에서는 SELECT, UPDATE, DELETE 등의 기본 문장을 제공합니다.

SELECT 문은 데이터베이스에서 데이터를 조회하기 위해 사용되며, 특정 컬럼의 값을 조회하거나 특정 조건을 만족하는 데이터를 조회하는 등 다양한 방법으로 사용됩니다.

UPDATE 문은 데이터베이스에서 데이터를 변경하기 위해 사용되며, 특정 테이블의 특정 조건을 만족하는 데이터의 값을 변경합니다.

DELETE 문은 데이터베이스에서 데이터를 삭제하기 위해 사용되며, 특정 테이블의 특정 조건을 만족하는 데이터를 삭제합니다.

 문장은 기본적으로 FROM 절과 WHERE 절을 포함하며, FROM 절에서는 데이터를 가져올 테이블을 지정하고 WHERE 절에서는 가져오거나 조작할 데이터의 조건을 지정합니다. 이를 이용하여 SQL 문장을 구성할  있습니다.

 

  • 정규화에 대해 설명하시오.

정규화(normalization)는 데이터베이스 설계에서 중복을 최소화하고 데이터 일관성을 유지하기 위해 데이터를 구조화하는 과정입니다. 데이터를 효율적으로 저장하고 검색하기 위해 데이터를 여러 개의 테이블로 분리하여 중복을 제거하고 각 테이블간의 관계를 설정합니다.

정규화에는 1차 정규화, 2차 정규화, 3차 정규화 등 다양한 단계가 있으며, 각 단계에서는 데이터베이스 설계의 문제점을 해결하고 데이터 중복을 제거하여 데이터 일관성을 유지하는 목적으로 테이블을 분리하거나 조작합니다.

1차 정규화에서는 테이블의 컬럼이 중복되지 않도록 하는 것이 목적이며, 2차 정규화에서는 기본 키와 함수 종속 관계를 이용하여 테이블을 분리하여 중복을 최소화합니다. 3차 정규화에서는 기본 키 이외의 속성들 간의 함수 종속 관계를 이용하여 테이블을 분리하여 중복을 최소화합니다.

정규화를 통해 데이터의 일관성과 무결성을 유지할 있고, 데이터의 중복을 최소화하여 저장공간을 절약할 있습니다. 하지만, 과도한 정규화는 쿼리의 성능을 저하시키고, 데이터 업데이트 불필요한 조인 연산이 발생할 있기 때문에 적절한 정규화 수준을 유지하는 것이 중요합니다.

 

  • 트랜잭션의 ACID 속성에 대해 설명하시오.

트랜잭션(Transaction)은 데이터베이스에서 일련의 작업을 묶어서 하나의 논리적인 작업 단위로 처리하는 것을 말합니다. ACID는 트랜잭션의 성질을 나타내는 속성들의 앞글자를 따서 만들어진 약어로 다음과 같은 속성을 나타냅니다.

  1. 원자성(Atomicity): 트랜잭션은 하나의 논리적인 작업 단위로 처리되어야 합니다. 트랜잭션이 실행 도중 문제가 발생하면, 해당 트랜잭션은 전부 취소되어야 하며, 실행 전 상태로 롤백되어야 합니다.
  2. 일관성(Consistency): 트랜잭션이 완료된 후 데이터베이스의 상태가 일관성을 유지해야 합니다. 즉, 트랜잭션의 실행 결과는 데이터베이스의 무결성 규칙을 준수하여야 합니다.
  3. 격리성(Isolation): 동시에 실행되는 여러 트랜잭션들이 서로 영향을 끼치지 않도록 격리되어야 합니다. 즉, 각각의 트랜잭션은 독립적인 작업 단위로 처리되어야 하며, 다른 트랜잭션의 작업 결과에 대한 영향을 받지 않아야 합니다.
  4. 지속성(Durability): 트랜잭션이 완료된 후 해당 데이터의 상태가 영구적으로 유지되어야 합니다. 즉, 데이터베이스에 대한 변경 작업이 모두 디스크에 기록되어야 합니다.

ACID 속성은 데이터베이스에서 트랜잭션의 정확성과 안정성을 보장하는 중요한 역할을 합니다. 이러한 ACID 속성은 데이터베이스 관리 시스템(DBMS)에서 트랜잭션을 처리하는 방식에 대한 기준이 되며, 이를 만족시키기 위한 다양한 기술과 알고리즘이 개발되고 있습니다.

 

  • 인덱스와 클러스터 인덱스의 차이점에 대해 설명하시오.

인덱스(Index)는 데이터베이스에서 데이터를 빠르게 검색하고, 데이터의 정렬 및 유일성을 보장하기 위해 사용되는 구조입니다. 인덱스를 사용하면 검색 속도가 빨라지지만, 인덱스 자체가 데이터베이스 공간을 차지하므로 인덱스를 생성할 때 공간 부담이 있을 수 있습니다.

인덱스는 다음 두 가지 유형으로 구분됩니다.

  1. 비클러스터 인덱스(Non-clustered index): 인덱스를 생성한 열과 다른 열들을 포함한 데이터를 서로 다른 공간에 저장합니다. 인덱스에는 검색을 위한 포인터만 저장되어 있으며, 포인터를 따라 실제 데이터가 저장된 위치로 이동하여 데이터를 검색합니다. 비클러스터 인덱스는 하나의 테이블에 여러 개 생성할 수 있으며, 생성할 때 인덱스에 대한 따로 설정이 필요합니다.
  2. 클러스터 인덱스(Clustered index): 인덱스를 생성한 열의 값을 기준으로 데이터를 정렬한 후 저장합니다. 따라서 인덱스와 데이터의 물리적인 저장 순서가 일치합니다. 클러스터 인덱스를 생성할 때는 하나의 테이블당 하나의 클러스터 인덱스만 생성할 수 있습니다.

클러스터 인덱스는 검색 속도가 빠르지만, 인덱스를 생성할 데이터베이스 공간을 차지하므로 공간 부담이 있을 있습니다. 또한, 클러스터 인덱스를 생성할 때는 인덱스를 생성한 열의 값에 따라 데이터가 정렬되므로, 해당 열을 자주 검색하는 경우 검색 속도가 빨라지지만, 다른 열을 검색할 때는 검색 속도가 느려질 있습니다. 반면, 비클러스터 인덱스는 인덱스를 생성한 열과 다른 열들을 분리하여 저장하기 때문에 검색 속도는 느리지만, 인덱스 자체가 데이터베이스 공간을 적게 차지합니다.

 

728x90
반응형
LIST

'잡다한 것' 카테고리의 다른 글

NCS - 정보기술5  (0) 2023.03.14
NCS - 정보기술4  (0) 2023.03.14
NCS - 정보기술3  (0) 2023.03.14
NCS - 정보기술2  (0) 2023.03.14
NCS - 회계1  (0) 2023.03.14