본문 바로가기
DBMS(SQL)

DBMS 개념정리(1, 2일차)

by JoinInNoetic 2023. 10. 9.

◆ 데이터의 종류

    ● 정형 데이터

        - 표 형식으로 정리된 데이터

        - ex) 엑셀

        - MySQL을 통해 다루게 될 데이터 형식

    ● 비정형 데이터

        - 텍스트 데이터, 이미지, 동영상, 음악 등...

        - ex) 인스타그램 게시글, 유튜브 동영상 등..

 

◆ 데이터베이스(DB)

    - 연관성있는 데이터들의 집합

    - ex) 회원 id와 password, 은행(입출금, 고객정보), 전화번호부, 대학교(학생 및 교수 정보)

◆ DBMS(데이터 베이스 관리 시스템)

    - 데이터베이스(DB)의 정의, 갱신, 질의 처리, 유지보수, 보안 등의 편리한 기능을 제공하는 시스템

    - 다수의 사용자들이 DB의 데이터에 접근할 수 있도록 함

 

◆ DBMS의 기능

    - 정의 기능 : DB 구조의 정의

    - 조작 기능 : 데이터의 검색, 삽입, 삭제, 갱신 등의 작업을 지원

    - 제어 기능 : 데이터를 정확, 안전하게 유지하는 기능

 

◆ DBMS와 파일 시스템의 비교

DBMS
파일 시스템
● 데이터 모델/조작
● 데이터 공유
● 동시성 제어
● 장애복구
● 보안성
● 확장성
● 파일은 디스크에 데이터/코드/텍스트 등을 저장하는 단위
● 파일시스템은 운영체제(OS)가 기능을 담당
● 모든 데이터베이스는 파일 형태로 디스크에 저장
● DBMS를 사용하지 않고 응용 프로그램에서 직접 데이터베이스를 관리

※ 파일시스템은 DBMS가 출시되기 이전에 주로 사용했던 데이터 관리 시스템

 

◆ DBMS의 종류

    - 계층형 DBMS

    - 네트워크형 DBMS

    - 관계형 DBMS(RDBMS)

        - 가장 많이 쓰임

 

        ※ 많이 쓰는 DBMS 솔루션

            Oracle, MS-SQL, Access, MySQL, DB2, Sybase 등

 

◆ DBMS의 장단점

    ● 장점

        - 데이터 중복과 불일치 감소

        - 데이터 보안

        - 질의 처리에 효율적인 저장구조

        - 백업과 복구

        - 다양한 인터페이스

        - 일관된 데이터를 유지

    ● 단점

        - 자원이 많고 복잡하며 비용이 높음

 

◆ DBS(데이터베이스 시스템)

    - 사용자가 DBMS를 통하여 물리적인 DB와 소통하는 형태의 시스템

    - 쉽게 정의하자면 DB + DBMS 형

 

◆ 데이터베이스 사용자(Database User)

    - 구축된 DB를 사용하는 사람들의 총칭

    - 크게 개발자와 사용자로 나뉨

    - 세부적으로는

    - 데이터베이스 관리자

    - 시스템 프로그램 개발자

    - 업무 분석가

    - 응용 프로그램 개발자

    - 일반 사용자 등..

 

◆ 데이터베이스 관리자(DBA)

    - 데이터베이스의 전체 환경 구성과 운영에 관련된 전반적인 책임자

    - 설계의 모든책임

    - 데이터베이스 관리자는 스키마의 정의부터 접근 권한 관리까지 모든 일을 수행

 

◆ 데이터베이스 설계자(Database Designer)

    - 요구 사항을 분석해 DB의 개념적, 물리적 스키마의 설계를 책임

    - DB의 구성 요소를 결정, 스키마를 정의

    - 저장 구조와 접근 방법을 선정

    - 효율적인 DB를 위해 정규화를 수행(사용자들의 요구를 만족)

 

◆ 최종 사용자(End User)

    - 일반 사용자, 초보 사용자, 전문 사용자 등으로 나뉨

    - 보통 DB에 대한 질의 및 갱신 연산을 주로 하는 단순 사용자

    - 프로그램 작성은 안하고 사용만

    - DBMS를 이용

 

◆ 시스템 분석가 / 응용 프로그램 개발자

    - 초보 사용자를 위하여 잘 정의된 기능의 응용 프로그램을 설계 및 구현하는 사람

    - 시스템 분석가

    - 사용자의 요구 사항을 분석하고 사용자를 만족시킬 수 있는 미리 작성된 트랜잭션들의 명세를 설계

    - 응용 프로그램 개발자

    - 사용자를 위한 프로그램 설계 및 구현을 담당

    - 트랜잭션들의 명세를 이용하여 프로그램 구현, 테스트, 오류 수정, 문서화 등의 작업

    - 미리 작성된 트랜잭션들을 유지 및 관리

 

◆ 데이터베이스 언어

    - 데이터 정의어(DDL) : 데이터 간의 관계를 정의하거나 이미 정의된 데이터베이스의 구조를 변경하거나

        수정하는 데 사용하는 언어

    - 데이터 조작어(DML) : 저장된 실제 데이터를 검색, 수정, 삭제, 변경 등을 수행하는 데 사용하는 언어

    - 데이터 제어어(DCL) : 관리자가 데이터를 관리하려고 데이터의 보안, 무결성, 데이터 복구,

        병행 수행 제어 등을 정의할 때나, 사용자의 권한을 설정할 때 사용하는 언어

    ※ RDBMS에서 사용할 때 사용하는 언어가 SQL

 

◆ SQL

    - 관계형 데이터베이스에서 사용하는 언어

    - 관계형 DB에서 정보를 저장하고 처리하기 위한 프로그래밍 언어

    - 일반적인 프로그래밍 언어(C, Java, Python 등..) 과는 조금 다른 특성을 가진다

    - DB에서 데이터를 저장, 업데이트, 검색, 제거 등을 할 수 있다.

    - DB 성능을 유지 관리하고 최적화하는 데 SQL을 사용 가능

 

◆ DBMS에서 SQL을 어떻게 알고 명령을 실행하는가?

    - 구문 분석을 통해서 SQL을 해석

    - 구문 분석이란 일종의 번역

    - 대소문자 및 띄어쓰기 등을 번역

    - 문법에 오류가 없는지 체크

    - SQL문을 수행하기 위한 요소 존재 확인

        -> 최종적으로 구문 분석이 완료되고 명령을 실행(=> 번역을 통해 DBMS가 인식)