> DBMS 필요성
- 일반적으로 데이터베이스라고 말할 때는 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.
- 관리 대상이 되는 데이터의 양이 점점 많아지고, 같은 데이터를 여러 사람이 동시에 여러 용도로 사용하게 되면서 , 단순히 엑셀 같은 개인이 관리하는 소프트웨어만으로는 한계에 부딪히게 됨.
- 사용자들은 보다 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS라고 한다.
> DBMS 발전
- 1960s : 플로우 차트 중심의 개발 방법, 파일 구조를 통해 데이터 저장 및 관리
- 1970s : 데이터베이스 관리 기법이 처음 태동. 계층형 데이터 베이스, 망형 데이터베이스
- 1980s : 현재 대부분의 기업에서 사용되고 있는 관계형 데이터베이스가 상용
- 1990s : 많은 제품들이 보다 향상된 기능으로 정보시스템의 확실한 핵심 솔루션으로 자리 잡게 됨. 객체 관계형 데이터베이스로 발전
> 관계형 데이터베이스
- 현재 기업에서 사용하고 있는 대부분의 데이터베이스는 기존 관계형 데이터베이스에 객체 지원기능을 추가한 객체 관계형 데이터 베이스를 사용하고 있지만 현실적으로 기업의 핵심 데이터는 대부분 관계형 데이터 베이스 구조로 저장이되고, 관계형 데이터 베이스를 유일하게 조작할 수 있는 SQL 문장에 의해 관리되고 있으므로 관계형 데이터베이스와 SQL의 중요성은 아무리 강조해도 지나치지 않는다.
- 관계형 데이터베이스는 정규화를 통한 합리적인 테이블 모델링을 통해 데이터 이상 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공하고 있다.
> SQL
- SQL이 시스템에 미치는 영향이 크므로 고급 SQL이나 SQL 튜닝의 중요성은 계속 커지고 있다.
- SQL 기본 교육은 정확한 데이터를 출력하는 것이 목표
- SQL 문장은 단순 스크립트가 아니라 독립된 하나의 개발 언어이다. 하지만 일반적인 프로그래밍 언어와는 달리 SQL은 관계형 데이터베이스에 대한 전담 접속 용도로 사용되며 세미콜론으로 분리되어 있는 SQL 문장 단위로 독립되어 있다.
- 관계형 데이터베이스는 수학의 집합 논리에 입각한 것이므로, SQL도 데이터를 집합으로써 취급한다.
- 특정 데이터들의 집합에서 필요로 하는 데이터를 꺼내서 조회하고 새로운 데이터를 입력 / 수정 / 삭제 하는 행위를 통해서 사용자는 데이터베이스와 대화하게 된다. 그리고 SQL은 이러한 대화를 가능하도록 매개 역할을 하는 것이다. 결과적으로 SQL 문장을 배우는 것이 곧 관계형 데이터베이스를 배우는 기본 단계라 할 수 있다.
> SQL 종류
명령어의 종류 | 명령어 | 설명 |
데이터 조작어 (DML) | SELECT | 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 |
INSERT UPDATE DELETE |
데이터베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어. 데이터를 테이블에 새로운 행에 넣거나, 원하지 않는 데이터를 삭제하거나, 수정하는 것들의 명령어 | |
데이터 정의어 (DDL) | CREATE ALTER DROP RENAME |
테이블과 같은 데이터 구조를 정의하는데 사용되는 명렁어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어 |
데이터 제어어 (DCL) | GRANT REVOKE |
데이터 베이스에 접근하고 객체를 사용하도록 권한을 주고 회수하는 명령어 |
트랜잭션 제어어 (TCL) | COMMIT ROLLBACK |
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명렁어 |
> TABLE
- 테이블은 데이터를 저장하는 객체로서 관계형 데이터베이스의 기본 단위.
- 모든 자료는 테이블에 등록되고, 테이블로부터 원하는 자료를 꺼내 올 수 있다.
- 테이블은 어느 특정한 주제와 목적으로 만들어지는 일종의 집합
> TABLE 구조
- 테이블 : 행과 컬럼의 2차원 구조를 가진 데이터의 저장 장소
- 칼럼/열 : 2차원 구조를 가진 테이블에서 세로 방향으로 이루어진 하나하나의 특정 속성
- 로우/행 : 2차원 구조를 가진 테이블에서 가로 방향으로 이루어진 연결된 데이터 (현장에선 레코드라고 함)
> TABLE 관계
- 정규화 : 테이블을 분할하여 데이터의 적합성을 확보하고, 불필요한 중복을 줄이는 프로세스
- 기본키 : 데이블에 존재하는 각 행을 한가지 의미로 특정할 수 있는 한개 이상의 칼럼
- 외부키 : 다른 테이블의 기본 키로 사용되고 있는 관계를 연결하는 칼럼
> ERD
- 테이블 간 서로의 상관 관계를 그림으로 도식화한 것
- ERD의 구성요소는 개체 관계 속성 3가지
- 현실세계의 데이터는 이 3가지 구성 요소로 모두 표현이 가능
출처 : 한국데이터산업진흥원 게시자료