다음을 통해 공유


데이터베이스 기본 사항

SQL Server의 데이터베이스는 구조화된 데이터의 특정 집합이 저장되는 테이블 모음으로 구성됩니다. 테이블에는 행과 열의 모음이 들어 있습니다. 행은 레코드나 튜플이라고도 하고 열은 특성이라고도 합니다. 테이블의 각 열에는 날짜, 이름, 달러 금액 및 숫자와 같은 특정 유형의 정보가 저장됩니다.

테이블에는 데이터의 유효성을 보장하는 여러 유형의 컨트롤이 있습니다. 이러한 컨트롤에는 제약 조건, 트리거, 기본값 및 사용자 정의된 사용자 데이터 형식 등이 있습니다. 여러 테이블에서 서로 관련된 데이터가 일치하도록 DRI(선언적 참조 무결성) 제약 조건을 테이블에 추가할 수 있습니다. 행을 빠르게 찾을 수 있도록 책의 색인과 유사한 인덱스를 테이블에 만들 수 있습니다. 또한 데이터베이스의 데이터로 작업을 수행할 수 있도록 Transact-SQL 또는 .NET Framework 프로그래밍 코드를 사용하는 프로시저를 데이터베이스에 포함할 수 있습니다. 이를 통해 테이블 데이터에 대한 사용자 지정 액세스를 제공하는 뷰를 만들거나 행의 하위 집합에서 복잡한 계산을 수행하는 사용자 정의 함수를 만드는 등의 작업을 수행할 수 있습니다.

예를 들어 MyCompanyDB라는 데이터베이스를 만들어 회사의 데이터를 관리할 수 있습니다. MyCompanyDB 데이터베이스에 Employees라는 테이블을 만들어 각 직원에 대한 정보를 저장합니다. 이 테이블에는 EmpId, LastName, FirstName, DeptTitle 열도 포함됩니다. 두 직원이 같은 EmpId를 공유하지 않고 Dept 열에 회사의 유효한 부서 번호만 들어가도록 테이블에 제약 조건을 추가해야 합니다.

인덱스를 정의하여 직원 ID나 성으로 직원 데이터를 빠르게 찾을 수 있습니다. Employees 테이블에 각 직원에 대한 데이터 행을 추가해야 하므로 AddEmployee라는 저장 프로시저도 만들어야 합니다. 새 직원에 대한 데이터 값을 받아들이고 Employees 테이블에 행을 추가하는 작업을 수행하도록 이 프로시저를 사용자 지정합니다. 부서별 직원 요약 정보가 필요할 수 있습니다. 이러한 경우 DeptEmps 테이블과 Departments 테이블의 데이터를 결합하고 결과를 생성하는 Employees라는 뷰를 정의합니다. 다음 그림에서는 이렇게 만든 MyCompanyDB 의 주요 부분을 보여 줍니다.

데이터베이스의 개체

SQL Server 인스턴스는 많은 데이터베이스를 지원할 수 있습니다. 각 데이터베이스에 다른 데이터베이스의 서로 관련된 데이터나 관련되지 않는 데이터를 저장할 수 있습니다. 예를 들어 SQL Server 인스턴스에 인사 데이터를 저장하는 데이터베이스와 제품 관련 데이터를 저장하는 데이터베이스가 있을 수 있습니다. 또는 한 데이터베이스에는 현재 고객 주문 데이터를 저장하고 다른 관련 데이터베이스에는 연간 보고에 사용되는 고객 주문 내역을 저장할 수 있습니다.

중요 정보중요

master 데이터베이스에는 테이블, 뷰, 저장 프로시저, 트리거 등의 사용자 개체를 만들 수 없습니다. master 데이터베이스에는 로그온 정보 및 구성 옵션 설정과 같이 SQL Server 인스턴스에서 사용하는 시스템 수준 정보가 포함됩니다.

OLTP 데이터베이스

데이터 변경을 관리하는 데 가장 적합한 데이터베이스는 OLTP(온라인 트랜잭션 처리) 관계형 데이터베이스입니다. OLTP 데이터베이스에서는 대개 여러 사용자가 실시간 데이터를 변경하는 트랜잭션을 동시에 수행합니다. 일반적으로 사용자의 각 데이터 요청은 적은 수의 행을 참조하지만 이 중 많은 요청이 동시에 이루어집니다.

OLTP 데이터베이스는 트랜잭션 응용 프로그램이 단일 트랜잭션을 최대한 빠르게 처리하는 데 필요한 데이터만 쓸 수 있도록 디자인되었습니다. 다음은 OLTP 데이터베이스의 일반적인 특징입니다.

  • 정기적으로 데이터를 추가하고 수정하는 동시 사용자를 많이 지원합니다.

  • 끊임없이 변경되는 조직의 상태를 나타내지만 그 기록은 저장하지 않습니다.

  • 트랜잭션 확인에 사용되는 광범위한 데이터를 비롯하여 대량의 데이터를 포함합니다.

  • 구조가 복잡합니다.

  • 트랜잭션 작업에 대해 응답하도록 조정되어 있습니다.

  • 조직의 일상 업무를 지원하기 위한 기술 인프라를 제공합니다.

  • 개별 트랜잭션이 신속하게 완료되며 상대적으로 적은 양의 데이터에 액세스합니다. OLTP 시스템은 동시에 입력되는 수백 또는 수천 개의 트랜잭션을 처리하도록 디자인되고 조정되었습니다.

OLTP 시스템의 데이터는 주로 다음과 같은 업무를 지원하도록 구성됩니다.

  • POS(Point-of-Sale) 터미널 또는 웹 사이트를 통해 입력된 주문 기록

  • 재고 수량이 지정된 수준으로 내려갈 때 추가 재고 주문

  • 제조 설비에서 최종 제품까지의 구성 요소 조립 상황 추적

  • 직원 데이터 기록

데이터 웨어하우스

높은 비율의 데이터 변경 내용과 추가 내용을 캡처하는 것이 목적인 OLTP 시스템과는 달리 데이터 웨어하우스의 목적은 용이한 분석과 검색을 위해 많은 양의 안정적인 데이터를 구성하는 것입니다. 데이터 웨어하우스가 비즈니스 인텔리전트 응용 프로그램의 기반으로 사용되는 경우가 많습니다.

다음은 데이터 웨어하우스에서 수행할 수 있는 작업 목록입니다.

  • 다른 데이터 원본 유형의 데이터를 같은 유형의 단일 구조로 결합할 수 있습니다.

  • 트랜잭션 처리가 아닌 분석 쿼리의 효율을 위해 데이터를 단순화된 구조로 구성할 수 있습니다.

  • 유효하고 일관성 있으며 통합되어 있고 분석에 알맞은 형식의 변환 데이터를 포함할 수 있습니다.

  • 비즈니스 내역을 보여 주는 안정적인 데이터를 제공합니다.

  • 트랜잭션을 자주 만들지 않고 추가 데이터를 사용하여 정기적으로 업데이트할 수 있습니다.

  • 보안 요구 사항을 간소화할 수 있습니다.

데이터베이스 스냅숏

데이터베이스 스냅숏은 데이터베이스(원본 데이터베이스)의 읽기 전용 정적 뷰입니다. 각 데이터베이스 스냅숏의 트랜잭션은 스냅숏 생성 당시의 원본 데이터베이스와 일치합니다. 자세한 내용은 데이터베이스 스냅숏을 참조하십시오.