[SQL 기본] 관계형 데이터베이스 개요
관계형 데이터베이스 개요
1. 데이터베이스
- 넓은 의미에서의 데이터베이스는 일상적인 정보들을 모아 놓은 것 자체를 의미
- 일반적으로 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미
- 데이터베이스의 발전
- 1960년대 : 플로우차트 중심의 개발 방법, 파일 구조를 통해 데이터를 저장
- 1970년대 : 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 제품 상용화
- 1980년대 : 관계형 데이터베이스 상용화. → Oracle, Sybase, DB2
- 1990년대 : 객체 관계형 데이터베이스로 발전. → Oracle, Sybase, Informix, DB2, Teradata, SQL Server
- 관계형 데이터베이스 (Relational Database)
- 정규화를 통한 합리적인 테이블 모델링
- 이상(Anomaly) 현상 제거
- 데이터 중복 방지
- 동시성 관리
- 병행 제어
- 메타 데이터를 총괄 관리 - 데이터의 성격, 속성, 표현방법 체계화
- 데이터 표준화 - 데이터 품질 확보
- 보안기능 제공 - 인증된 사용자만 참조
- 데이터 무결성(Integrity)을 보장
- Rollback 기능 제공
- 데이터 복구 기능 제공
2. SQL(Structured Query Language)
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어이다.
1986년부터 ANSI/ISO를 통해 표준화되고 정의된 SQL 기능은 벤더별 DBMS 개발의 목표
관계형 데이터 베이스는 수학의 논리에 입각한 것이므로, SQL도 데이터를 집합으로써 취급
[표] SQL 문장들의 종류
명령어의 종류 |
명령어 |
설명 |
데이터조작어 (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 |
작업단위(트랜잭션) 별로 제어 |
3. TABLE
- 데이터는 관계형 데이터베이스의 기본 단위인 테이블 형태로 저장
- 테이블은 어느 특정한 주제와 목적으로 만들어지는 일종의 집합
- 테이블은 데이터를 저장하는 객체(Object)로서 관계형 데이터베이스의 기본단위
- 모든 데이터를 칼럼과 행의 2차원 구조로 나타냄
- 세로방향을 칼럼(Column), 가로방향을 행(Row), 칼럼과 행이 겹치는 하나의 공간을 필드(Field)라 함
[표] 테이블 용어
용어 |
설명 |
테이블(Table) |
행과 칼럼의 2차원 구조를 가진 데이터의 저장 장소 |
칼럼/열(Column) |
2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성 |
행(Row) |
2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 |
[표] 테이블 관계 용어
용어 |
설명 |
정규화 (Normalization) |
테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스 |
기본키 (Primary Key) |
테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼 |
외부키 (Foreign Key) |
다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼 |
4. ERD (Entity Relationship Diagram)
- ERD는 관계의 의미를 직관적으로 표현 할 수 있는 좋은 수단
- 테이블 간 서로의 상관 관계를 그림으로 도식화한 것을 E-R 다이어그램이라하며, 간략히 ERD라고 함
- ERD의 구성요소 : 엔터티(Entity), 관계(Relationship), 속성(Attribute) 3가지
- ERD 표기법 : IE(Information Engineering) 표기법, Barker(Case*Method) 표기법