[SQL] DB, DBMS, 관계형 데이터베이스 ( Relational Database ), SQL ( Structured Query Language )

728x90

 

■  데이터베이스 ( Database )

    -  일상적인 정보를 모아 놓은 것 자체 (넓은 의미)

    -  특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것 (일반적인 의미)

    -  DBMS ( Database Management System )  :  보다 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고,
                                                                               필요한 데이터를 복구하기 위한 강력한 기능의 SW
                                                                             ( Oracle, MySQL 등  ☞  관계형 데이터베이스 관리 시스템( RDBMS ) )

  □  데이터베이스의 발전
      -  1960년대  --  플로우차트 중심의 개발 방법 사용. 파일 구조를 통해 데이터를 저장하고 관리함
      -  1970년대  --  계층형( Hierarchical ) 데이터베이스, 망형( Network ) 데이터베이스 상용화
      -  1980년대  --  관계형 데이터베이스 상용화  ( ex) Oracle, Sybase, DB2 등 )
      -  1990년대  --  객체 관계형 데이터베이스로 발전  ( ex) 〃, Informix, Teradata, SQL Server )

 

■  관계형 데이터베이스 ( Relational Database )

    -  기존의 파일 시스템과 계층형, 망형 데이터베이스를 대부분 대체하면서 주력 데이터베이스가 됨

       ※  파일 시스템
         -  단점 -- 분산된 데이터 간 정합성을 보장하기 힘듬

         -  장점 -- 단일 사용자 or 어플리케이션이 사용하는 경우 데이터베이스보다 성능 뛰어남

       ※  정합성  :  데이터가 서로 모순이 없이 일관되게 일치해야 한다는 의미

    -  관계형 데이터베이스를 유일하게 조작할 수 있는 SQL 문장에 의해 관리

    -  정규화를 통한 합리적인 테이블 모델링을 통해 이상( anomaly ) 현상을 제거하고, 데이터 중복을 피할 수 있으며,
       동시성 관리, 병행 제어를 통해
많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능 제공

       ※  이상( anomaly ) 현상  :  데이터의 중복으로 인해 불일치성이 발생하는 현상
                                             ( 하나의 파일을 많은 사용자가 동시에 검색할 수는 있지만, 동시에 입력/수정/삭제할 수 없기 때문에
                                               원래의 데이터 파일을 여러 개 복사하여 사용 )

    -  메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성, 표현 방법 등을 체계화할 수 있고,
       데이터 표준화를 통한 데이터 품질을 확보할 수 있음

       ※  메타 데이터 ( metadata )  :  데이터( data ) 에 대한 데이터

    -  데이터의 무결성( Integrity ) 보장
     ( 테이블 생성 시 사용할 수 있는 제약조건 이용, 관계를 연결하는 중요 데이터 삭제 방지 )

       ※  무결성 ( Integrity )  :  정밀성, 정확성, 완전성, 유효성  —  데이터 보호, 정상적으로 유지
         *  참조 무결성  :  릴레이션은 참조할 수 없는 외래키 값을 가질수 없음을 의미하는 제약 조건
         *  개체 무결성  :  한 릴레이션의 기본키를 구성하는 속성 값은 NULL 값이나 중복 값을 가질 수 없음
         *  도메인 무결성  :  각 속성 값은 반드시 정의된 도메인에 속한 값이어야 함

    -  시스템의 갑작스런 장애로부터 사용자가 입력, 수정, 삭제하던 데이터가 제대로 반영될 수 있도록 보장. 
       시스템 다운, 재해 등의 상황에서도 데이터를 회복/복구할 수 있는 기능 제공

 

■  SQL  ( Structured Query Language )

    -  관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 비절차적 대화형  고급 데이터 언어

       ※  관계 데이터 연산
         *  관계 해석 ( Relational Calculus )
           -  비절차적 언어 ( 결과 중심 )  :  원하는 정보가 무엇이 라는 것만 정의

         *  관계 대수 ( Relational Algebra )
           -  절차적 언어 ( 절차 중심 )  :  원하는 정보를 어떻게 유도하는가를 연산자와 연산규칙을 이용해 기술

    -  데이터를 조회, 입력, 수정, 삭제하는 행위를 통해 사용자가 데이터베이스와 대화할 수 있는 매개 역할

    -  단순 스크립트가 아닌 독립된 하나의 개발 언어  ( 관계형 데이터베이스 전담 접속 용도 )

    -  데이터를 집합으로 취급

    -  ANSI / ISO를 통해 표준화되고 정의됨  ( 다른 DB를 사용하더라도 프로그램의 이식성 높음 -- 상호 호환성 뛰어남 )

  □  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

    ※  비절차적 데이터 조작어 ( DML )  :  사용자가 무슨( What ) 데이터를 원하는 지만을 명세  --  As-Is
    ※  절차적 데이터 조작어  :  어떻게( How ) 데이터를 접근해야 하는지 명세  --  To-BE
                                        ( ex) PL/SQL ( 오라클 ) , T-SQL ( SQL Server ) 등 )

 

 

반응형