본 문서의 내용은 한국데이터산업진흥원에서 펴낸 SQL 전문가 가이드를 기반으로 자격증 취득에 도움이 될 개념을 정리한 것입니다.
|
1. 관계형 데이터베이스 개요
1. 데이터베이스
넓은 의미에서의 데이터베이스는 이러한 일상적인 정보들을 모아 놓은 것 자체를 의미한다. 그러나 일반적으로 데이터베이스라고 말할 때는 특정 기업이나 조직 또는 개인이 필요에 의해(ex: 부가가치가 발생하는) 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.
데이터베이스의 발전
- 1960 년대 : 플로우차트 중심의 개발 방법을 사용하였으며 파일 구조를 통해 데이터를 저장하고 관리하였다.
- 1970 년대 : 데이터베이스 관리 기법이 처음 태동되던 시기였으며 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품들이 상용화 되었다.
- 1980 년대 : 현재 대부분의 기업에서 사용되고 있는 관계형 데이터베이스가 상용화되었으며 Oracle, Sybase, DB2 와 같은 제품이 사용되었다.
- 1990 년대 : Oracle, Sybase, Informix, DB2, Teradata, SQL Server 외 많은 제품들이 보다 향상된 기능으로 정보시스템의 확실한 핵심 솔루션으로 자리잡게 되었으며, 인터넷 환경의 급속한 발전과 객체 지향 정보를 지원하기 위해 객체 관계형 데이터베이스로 발전하였다.
관계형 데이터베이스는 정규화를 통한 합리적인 테이블 모델링을 통해 이상(ANOMALY) 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공하고 있다.
DBMS 는 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공하고 있다. 테이블 생성 시에 사용할 수 있는 다양한 제약조건을 이용하여 사용자가 실수로 조건에 위배되는 데이터를 입력한다든지, 관계를 연결하는 중요 데이터를 삭제하는 것을 방지하여 데이터 무결성(Integrity)을 보장할 수 있다.
2. SQL (Structured Query Language)
-
데이터 조작어 (DML, Data Manipulation Language)
- SELECT
- INSERT, UPDATE, DELETE
- 데이터를 조회하거나 검색하기 위한 명령어 또는 데이터에 변형을 가하는 명령어
-
데이터 정의어 (DDL, Data Definition Language)
- CREATE, ALTER, DROP, RENAME
- 데이터 구조를 정의하거나 변경, 삭제하는 명령어
-
데이터 제어어 (DCL, Data Control Language)
- GRANT, REVOKE
- 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주거나 회수하는 명령어
-
트랜잭션 제어어 (TCL, Transaction Control Language)
- COMMIT, ROLLBACK
- 논리적인 작업 단위를 묶어 DML 조작 결과를 작업 단위(트랜잭션) 별로 제어하는 명령어
3. TABLE
데이터는 관계형 데이터베이스의 기본 단위인 테이블 형태로 저장된다. 모든 자료는 테이블에 등록이 되고, 우리는 테이블로부터 원하는 자료를 꺼내 올 수 있다.
테이블에는 등록된 자료들이 있으며, 이 자료들은 삭제하지 않는 한 지속적으로 유지된다. 만약 우리가 자료를 입력하지 않는다면 테이블은 본래 만들어졌을 때부터 가지고 있던 속성을 그대로 유지하면서 존재하게 된다.
테이블(TABLE)은 데이터를 저장하는 객체(Object)로서 관계형 데이터베이스의 기본 단위이다. 관계형 데이터베이스에서는 모든 데이터를 칼럼과 행의 2 차원 구조로 나타낸다. 세로 방향을 컬럼(Column), 가로 방향을 행(Row)이라고 하고, 칼럼과 행이 겹치는 하나의 공간을 필드(Field)라고 한다.
테이블 용어
테이블 (Table) | 행과 컬럼의 2차원 구조를 가진 데이터의 저장 장소 |
컬럼/열 (Column) | 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 각각의 특정 속성 |
행 (Row) | 2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 |
테이블을 분할하여 데이터의 불필요한 중복을 줄이는 것을 정규화(Normalization)라고 한다. 데이터의 정합성 확보와 데이터 입력/수정/삭제시 발생할 수 있는 이상현상(Anomaly)을 방지하기 위해 정규화는 관계형 데이터베이스 모델링에서 매우 중요한 프로세스이다.
테이블 관계 용어
-
정규화 (Normalization)
-
테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스
-
-
기본키 (Primary Key)
-
테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 컬럼
-
-
외부키 (Foreign Key)
-
다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 컬럼
-
4. ERD (Entity Relationship Diagram)
테이블 간 서로의 상관 관계를 그림으로 도식화한 것을 E-R 다이어그램이라고 하며, 간략히 ERD 라고 한다. ERD 의 구성 요소는 엔터티(Entity), 관계(Relationship), 속성(Attribute) 3 가지이며 현실 세계의 데이터는 이 3 가지 구성 요소로 모두 표현이 가능하다.
↓SQL 전문가 가이드 요약 목록
1장. 데이터 모델링의 이해
Part 1. 데이터 모델링의 이해
Part 2. 데이터 모델과 성능
2장. SQL 기본 및 활용
Part 1. SQL 기본
Part 2. SQL 활용
Part 3. SQL 최적화 기본원리
따로 PDF 파일이 필요하신 분은 댓글을 통해 메일 주소 적어주시기 바랍니다.
'데이터 사이언스 > SQL' 카테고리의 다른 글
[SQLD 학습 자료 요약] SQL 기본 및 활용 1.3. DML (0) | 2020.11.19 |
---|---|
[SQLD 학습 자료 요약] SQL 기본 및 활용 1.2. DDL (0) | 2020.11.19 |
[SQLD 학습 자료 요약] 데이터 모델링의 이해 2.6. 분산 데이터베이스와 성능 (0) | 2020.11.18 |
[SQLD 학습 자료 요약] 데이터 모델링의 이해 2.5. 데이터베이스 구조와 성능 (0) | 2020.11.17 |
[SQLD 학습 자료 요약] 데이터 모델링의 이해 2.4. 대량 데이터에 따른 성능 (0) | 2020.11.17 |