반응형
관계형 데이터
관계형 데이터의 특징
- 관계형 데이터베이스에서는 실제 세계의 엔터티 컬렉션을 테이블로 모델링함.
- 엔터티는 정보를 기록할 대상이면 무엇이든 될 수 있으며, 주로 중요한 개체나 이벤트를 엔터티라고 함.
- 테이블에는 행이 포함되며, 각 행은 엔터티의 단일 인스턴스를 나타냄.
- 관계형 테이블은 정형 데이터를 위한 형식이며, 테이블의 각 행은 동일한 열을 가짐.
- 경우에 따라 값이 필요하지 않은 열이 있을 수도 있음.
- 테이블을 정의할 때 사용할 수 있는 데이터 형식은 사용 중인 데이터베이스 시스템에 따라 정해짐.
- ANSI(American National Standards Institute)에 의해 정의된 표준 데이터 형식은 대부분의 데이터베이스 시스템에서 지원됨.
정규화와 정규화가 사용되는 이유
- 정규화는 데이터베이스 전문가들이 데이터 중복을 최소화하고 데이터 무결성을 적용하는 스키마 디자인 프로세스를 의미함.
- 정규화 방법
- 각 엔터티를 자체 테이블로 구분.
- 각 불연속 특성을 자체 열로 구분.
- 기본 키를 사용하여 각 엔터티 인스턴스(행)를 고유하게 식별.
- 외래 키 열을 사용하여 관련 엔터티를 연결.
일반적인 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
반응형
'Azure > DP-900' 카테고리의 다른 글
[Azure 자격증 - DP-900] Azure에서 비관계형 데이터 작업에 대한 고려 사항 설명 (0) | 2022.07.03 |
---|---|
[Azure 자격증 - DP-900] Azure에서 관계형 데이터에 대한 고려 사항 - Part 2 (0) | 2022.07.02 |
[Azure 자격증 - DP-900] 핵심 데이터 개념 - Part 2 (0) | 2022.07.02 |
[Azure 자격증 - DP-900] 핵심 데이터 개념 - Part 1 (0) | 2022.06.28 |
[Azure 자격증 - DP-900] Microsoft Azure Data Fundamentals 개념 요구 사항 (0) | 2022.06.26 |
최근댓글