3.1 관계형 데이터베이스 개요
데이터 : 수집한 사실 또는 값. 컴퓨터 작업의 처리 대상. 데이터는 특정한 목적에 따라 가공하여 유용한 정보로 변환할 수 있다.
데이터베이스 : 데이터를 효율적으로 가공하여 유용한 정보를 얻는 방법. 데이터를 일정한 체계에 따라 통합하여 디스크나 메모리에 저장하며, 응용 프로그램에 종속적이지 않도록 미들웨어 형태이다. 파일 형태로 데이터를 저장하여 처리하는 것에 비하여 자료의 독립성, 중복 저장의 최소화, 통합 처리, 자체적 관리 기능 등의 이점이 있다.
DBMS(DataBase Management System) : 데이터베이스를 구축하고 관리할 수 있는 기능을 제공하는 시스템 소프트웨어(엄밀한 의미에서 미들웨어).
관계형 데이터베이스(RDB, Relational DB) : 데이터의 일관성 문제를 근본적으로 해결한 데이터베이스 시스템. 2차원 구조의 행과 열로 구성된 테이블 형태로 데이터 모델을 다루며, 연산 자체를 수학적으로 최적화할 수 있다. SQL이라는 공통의 질의언어를 정의하여 원하는 정보를 보다 쉽게 조회, 가공, 추출할 수 있다.
최근에는 대부분의 DBMS가 객체관계형 데이터베이스로 확장되었다.
TABLE : 2차원 매트릭스 형태로 표현한 데이터 모델. 엔터티(논리적 모델링) == 테이블(물리적 모델링). 관계형 데이터베이스에서는 릴레이션이라고도 한다.
행(Row) == 인스턴스(Instance) == 레코드(Record) == 튜플(Tuple)
열(Column) == 필드(Field) == 속성(Attribute)
SQL(Structured Query Language) : 구조화된 질의언어. 데이터베이스에 저장된 데이터로부터 원하는 결과를 추출하기 위해 필요한 명령문을 제공하는 언어. 데이터베이스의 구조를 정의하고, 데이터를 조작, 제어할 수 있는 절차적+비절차적 언어이다.
SQL은 명령문의 성격에 따라 다음과 같이 구분한다.
① DDL(Data Definition Language, 데이터 정의 언어) : 데이터의 구조, 즉 스키마를 정의하는 명령어. ERD와 상호 변환이 가능하다.
예) CREATE, ALTER, DROP, RENAME, TRUNCATE
② DML(Data Manipulation Language, 데이터 조작 언어) : 테이블에 데이터를 조회, 입력, 수정, 삭제하는 명령어. 커밋 전에 롤백이 가능하다.
예) SELECT, INSERT, UPDATE, DELETE, MERGE
③ DCL(Data Control Language, 데이터 제어 언어) : 사용자 접근 권한과 같이 보안과 제어를 다루는 명령어.
예) GRANT, REVOKE
④ TCL(Transaction Control Language, 트랜잭션 제어 언어) : 트랜잭션에 대한 제어를 다루는 명령어.
예) COMMIT, ROLLBACK, SAVEPOINT