[SQLD 과목2 1장-1절] 관계형 데이터베이스 개요
1. 데이터 베이스
데이터베이스란?
- 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것
효율적인 데이터의 관리, 데이터의 손상 방지, 데이터 복구를 위한 SW 시스템으로 DBMS(Database Management System)이 등장함.
관계형 데이터베이스(Relational Database)란?
- Codd 박사가 제안함.
- 현재 기업에서 사용하는 대부분의 DB 구조
기존 파일시스템 방식의 단점
- 하나의 파일을 동시에 사용(입력, 수정, 삭제) 불가능
- 동일한 데이터가 여러 곳에 저장될 수 있음 -> 데이터의 불일치성
위의 단점들을 해결한 관계형 데이터베이스의 장점
- 정규화를 통한 테이블 모델링을 통해 이상(ANOMALY) 현상을 제거하고 데이터 중복을 피할 수 있게함.
- 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공함.
- 관계형 데이터베이스는 메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현 방법 등을 체계화할 수 있고, 데이터 표준화를 통한 데이터 품질을 확보할 수 있다.
- DBMS는 인증된 사용자만이 참조할 수 있도록 보안 기능 제공함.
- 테이블 생성시 제약조건을 이용하여 조건에 위배된 데이터 입력을 방지, 관계를 연결하는 데이터 삭제를 방지하여 데이터 무결성(Integrity) 보장.
- DBMS는 데이터 회복/복구 기능도 제공해 준다.
2. SQL(Structured Query Language)
SQL이란?
- SQL(Structured Query Language)은 관계형 DB에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어이다.
- 1986년부터 ANSI/ISO를 통해 표준화되고 있다.
- 각 벤더의 RDBMS는 표준화된 SQL 이외에도 벤더 차별화 및 이용 편리성을 위해 추가 기능이나 내장 함수 등에서 독자적 개발을 진행하고 있다.
SQL 문장들의 종류
데이터 조작어(DML: Data Manipulation Language)
SELECT: 데이터 조회 / 검색
INSERT, UPDATE, DELETE: 테이블의 행 단위로 변형을 가하는 명령어들
데이터 정의어(DDL: Data Definition Language)
- CREATE, ALTER, DROP, RENAME: 테이블 구조를 정의
데이터 제어어(DCL: Data Control Language)
- GRANT, REVOKE: DB에 접근하고 객체들을 사용하는 권한을 제어
트랜잭션 제어어(TCL: Transaction Control Language)
- COMMIT, ROLLBACK: 트랜잭션 제어
3. TABLE
데이터는 관계형 DB의 기본 단위인 테이블 형태로 저장된다. 모든 자료는 테이블에 등록되고, 우리는 테이블로부터 원하는 자료를 꺼내 올 수 있다.
테이블의 구성
- RDB에서는 모든 데이터를 칼럼과 행의 2차원 구조로 나타낸다.
- 칼럼(Column): 세로줄
- 행(Row): 가로줄
- 필드(Field): 칼럼과 행이 겹치는 하나의 공간 (엑셀에서의 셀)
테이블 관계 용어들
정규화(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) 표기법이 있다.