반응형

관계형 데이터

관계형 데이터의 특징

  • 관계형 데이터베이스에서는 실제 세계의 엔터티 컬렉션을 테이블로 모델링함.
  • 엔터티는 정보를 기록할 대상이면 무엇이든 될 수 있으며, 주로 중요한 개체나 이벤트를 엔터티라고 함.
  • 테이블에는 행이 포함되며, 각 행은 엔터티의 단일 인스턴스를 나타냄.
  • 관계형 테이블은 정형 데이터를 위한 형식이며, 테이블의 각 행은 동일한 열을 가짐.
  • 경우에 따라 값이 필요하지 않은 열이 있을 수도 있음.
  • 테이블을 정의할 때 사용할 수 있는 데이터 형식은 사용 중인 데이터베이스 시스템에 따라 정해짐.
  • ANSI(American National Standards Institute)에 의해 정의된 표준 데이터 형식은 대부분의 데이터베이스 시스템에서 지원됨.

관계형 데이터

 

정규화와 정규화가 사용되는 이유

  • 정규화는 데이터베이스 전문가들이 데이터 중복을 최소화하고 데이터 무결성을 적용하는 스키마 디자인 프로세스를 의미함.
  • 정규화 방법
  1. 각 엔터티를 자체 테이블로 구분.
  2. 각 불연속 특성을 자체 열로 구분.
  3. 기본 키를 사용하여 각 엔터티 인스턴스(행)를 고유하게 식별.
  4. 외래 키 열을 사용하여 관련 엔터티를 연결.

 

일반적인 SQL 이해

  • SQL은 Structured Query Language(구조적 쿼리 언어)의 약자로, 관계형 데이터베이스와의 통신에 사용됨.
  • 관계형 데이터베이스 관리 시스템의 표준 언어임.
  • SELECT, INSERT, UPDATE, DELETE, CREATE, DROP과 같은 SQL 문을 사용하여 데이터베이스로 하려는 거의 모든 작업을 수행 가능.
  • Transact-SQL(T-SQL) - Microsoft SQL Server 및 Azure SQL 서비스에서 사용.
  • pgSQL - PostgreSQL에 구현된 확장이 포함됨.
  • PL/SQL - Oracle에서 사용되는 언어. 절차적 언어/SQL(Procedural Language/SQL)을 나타냄
  • SQL 문은 크게 세 가지 논리 그룹으로 구분됨 - 데이터 정의 언어(DDL), 데이터 컨트롤 언어(DCL), 데이터 조작 언어(DML)

 

DDL 문

  • DDL 문을 사용하여 데이터베이스(테이블, 저장 프로시저, 뷰 등)에서 테이블 및 기타 개체를 만들고 수정하고 제거 가능.
  • CREATE -  데이터베이스에서 테이블 또는 뷰와 같은 새 개체를 만듦.
  • ALTER - 개체의 구조를 수정.
  • DROP - 데이터베이스에서 개체를 제거.
  • RENAME - 기존 개체의 이름을 변경.

 

DCL 문

  • DCL 문을 사용하여 특정 사용자 또는 그룹에 대한 권한을 부여하거나 거부하거나 철회함으로써 데이터베이스에 있는 개체에 대한 액세스를 관리 가능.
  • GRANT - 특정 동작을 수행하는 권한 부여.
  • DENY -  특정 동작을 수행하는 권한 거부.
  • REVOKE - 이전에 부여한 권한 제거.

 

DML 문

  • DML 문은 테이블의 행을 조작하는 데 사용. 데이터를 가져오거나(쿼리), 새 행을 삽입하거나, 기존 행을 수정하거나, 행이 더 이상 필요하지 않은 경우 삭제 가능
  • SELECT - 테이블에서 행 읽기.
  • INSERT - 테이블에 새 행 삽입.
  • UPDATE - 기존 행의 데이터 수정.
  • DELETE - 기존 행 삭제

 

일반적인 데이터베이스 객체 이해

  • 뷰는 SELECT 쿼리의 결과를 기반으로 하는 가상 테이블.
  • 뷰는 하나 이상의 기본 테이블에서 지정된 행을 보여 주는 창으로 이해 가능.
  • 뷰는 테이블과 비슷한 방법으로 쿼리하고 데이터를 필터링 가능.

 

 

저장 프로시저

  • 저장 프로시저는 명령에 의해 실행될 수 있는 SQL 문을 정의.
  • 저장 프로시저는 애플리케이션이 데이터로 작업할 때 수행해야 하는 동작에 대한 프로그래매틱 로직을 데이터베이스에서 캡슐화하는 데 사용.
  • 매개 변수를 사용하여 저장 프로시저를 정의하면 특정 키 또는 기준을 기준으로 데이터에 적용해야 하는 일반적인 동작에 대한 유연한 솔루션 제작 가능.

 

저장 프로시저

 

인덱스

  • 인덱스는 테이블에서 데이터를 검색하는 데 도움됨.
  • 테이블의 인덱스는 책 뒷면에 있는 색인과 유사함.
  • 데이터베이스에서 인덱스를 만들 때는 테이블의 열을 지정함.
  • 인덱스는 이 데이터의 복사본을 테이블의 해당 행을 가리키는 포인터와 함께 정렬된 순서로 포함됨.
  • 사용자가 WHERE 절에서 이 열을 지정하는 쿼리를 실행하면 데이터베이스 관리 시스템은 이 인덱스를 사용하여 전체 테이블을 행별로 검사해야 하는 경우보다 더 빨리 데이터를 가져올 수 있음.
  • 테이블에 포함된 행이 몇 개 되지 않는 경우에는 테이블 전체를 읽고 쿼리에서 요청하는 행을 찾는 것(이 경우 쿼리 최적화 프로그램이 인덱스를 무시합니다)에 비해 인덱스를 사용하는 것이 크게 효율적이지 않을 수 있으나, 테이블에 포함된 행이 많은 경우에는 인덱스를 사용하면 쿼리의 성능을 크게 향상 가능.
  • 테이블에 대해 여러 인덱스를 만들 수 있음.
  • 인덱스를 사용하는 데는 비용이 들며, 인덱스는 스토리지 공간을 사용하며, 테이블에서 데이터를 삽입, 업데이트 또는 삭제할 때마다 해당 테이블의 인덱스를 새로 부여해함.
  • 인덱스로 인한 추가적인 작업으로 삽입, 업데이트, 삭제 작업의 속도가 느려질 수 있음.
  • 쿼리의 속도를 높여 주를 인덱스를 사용하는 것과 다른 작업을 수행하는 데 발생하는 비용 사이의 적절한 균형을 찾아야함.

 

인덱스

 

 


 

이전

 

[Azure 자격증 - DP-900] 핵심 데이터 개념 - Part 2

일반적인 데이터 처리 트랜잭션 데이터 처리 트랜잭션 데이터 처리 시스템은 대부분의 사람들이 비즈니스 컴퓨팅의 기본 기능이라고 생각하는 시스템임. 트랜잭션 시스템에서 수행하는 작업을

epictrave.tistory.com

 

다음 글

 

[Azure 자격증 - DP-900] Azure에서 관계형 데이터에 대한 고려 사항 - Part 2

Azure 관계형 데이터베이스 서비스 Azure SQL Database, Azure SQL을 포함한 Azure SQL 제품군에 대한 설명 Azure SQL은 Azure의 Microsoft SQL Server 기반 데이터베이스 서비스 제품군을 통칭하는 용어임. Azure..

epictrave.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기