SQL - 관계형 데이터베이스

데이터베이스 첫걸음 - 미크, 기무라 메이지

Posted by Yan on May 8, 2021

데이터베이스에서 수행할 수 있는 데이터 조작

  1. 검색
  2. 신규 데이터 등록
  3. 기존 데이터 갱신(등록)
  4. 기존 데이터 제거

관계형 데이터베이스 (Relational DataBase)

  • 관계 : 2차원 표를 표기할 때 사용하는 단어. 엑셀, 구글독스와 같은 스프레드시트 형태
  • 관계형 데이터베이스 : 데이터를 2차원 표를 사용해 관리하는 데이터베이스
  • 장점 : 사람들이 자연스럽고 직관적으로 이해하기 쉬운 형식으로 데이터를 관리할 수 있음
2차원 표를 사용하는 이유

데이터베이스가 등장하기 전부터 텍스트파일, csv를 사용해 원시적인 형태로 데이터를 관리했음.

  1. 역사적 관점 - 소프트웨어를 사용해 2차원 표를 표현하는 것이 가능한지 여부를 이전에는 명확하지 않은 상태였음. 가능하다는 것을 관계형 데이터베이스를 이용해 보여줌.
  2. 기능적 관점 = 관계형 데이터베이스가 제공한 2차원 표를 사용한 데이터 관리 방법은 매우 획기적인 것이었음.

관계형 데이터베이스의 뛰어난 이점

  • 프로그래밍 언어를 사용하지 않아도 데이터를 조작할 수 있다는 것
  • 이를 가능하게 한 것이 SQL이라는 언어

SQL(Structured Query Language)이란

  • 관계형 데이터베이스가 데이터를 조작하기 위해 준비한 언어
  • 통상적인 프로그래밍 언어에 사용되는 반복문, 조건문을 사용하지 않아도 데이터 조작을 할 수 있음

SQL의 기본 조작 명령어

  1. SELECT : 검색
  2. INSERT : 등록
  3. UPDATE : 갱신
  4. DELETE : 제거

테이블

  • 관계형 데이터베이스에서 2차원 표를 테이블이라 부름
  • 데이터를 관리하기 위한 유일한 단위로, ‘어떤 테이블에 어떤 데이터를 포함하는가’ 는 시스템의 기능을 좌우하는 중요한 의미가 있음
  • 테이블을 어떻게 설계해야 하는지에 대해서도 기본적인 이론이 있음.
  • 예 )
    • 1개의 테이블에 많은 정보를 채워 넣는다고 하면 정보의 정합성을 유지 관리하기가 어려움
    • 데이터를 너무 엄격하게 분산시키면 성능이 나빠짐

열과 행

  • column : 가로축
  • row : 세로축
  • 교차부분 : 엑셀에서 cell이라 부름

DBMS와 데이터베이스의 차이

  • 데이터베이스 기능을 제공하는 소프트웨어 : DBMS(DataBase Management System)
  • 데이터베이스는 기능이나 구조를 나타내는 추상적인 개념
  • DBMS는 그것을 실현하기 위해 작성된 구체적인 소프트웨어를 가리킴
  • Oracle이나 MySQL같은 제품은 DBMS임.

소프트웨어와 데이터베이스의 관계

  • 시스템은 다른 여러가지 소프트웨어와 조합해서 만들어야 하는데, 이 작업을 SI(System Integration)이라 부름
  • 이때 사용되는 소프트웨어는 3가지로 구분됨
    1. 애플리케이션
    2. 미들웨어
    3. 운영체제
  • 위 3가지는 계층성이 있으며, 한 레이어의 소프트웨어가 동작하지 않으면 상위 레이어의 소프트웨어는 설치해도 동작하지 않거나 설치를 할 수 없는 제약이 발생함
  • DBMS는 미들웨어에 위치함. 미들웨어는 계층적으로 위치가 중간이라는 의미도 있고, 기능적으로 양쪽의 성질을 겸비해서 갖추고 있다는 의미도 있음

운영체제

  • 시스템을 동작하게 하기 위한 일종의 토대가 되는 기능을 제공하는 소프트웨어
  • OS의 종류 : windows, linux, unix

미들웨어

  • 중간 소프트웨어. 데이터베이스가 미들웨어에 속함. 데이터베이스는 OS에서 동작함.
  • OSDBMS 조합을 선택할 때 고려해야할 것 : 예산, 제품 기능, 개발자와 운용자의 기술조합
  • linuxunix 계열은 동작이 비슷해서 os를 변경해도 다루는 방법이 비슷하지만, windows는 조작 방법이 매우 다름.
  • 예) SQL serverwindows 이외의 os와 조합 불가능. SQL server에는 Windows 이외의 OS에 대응하는 구현물이 존재하지 않기 때문
    • 이유 : 기술적인 이유가 아닌 비즈니스 전략에 따른 것. SQL serverWindows는 모두 MS에서 개발, 판매되는 제품
  • 마이그레이션Migration : OS-DBMS의 조합을 다른 조합으로 시스템을 변경하는 것
    • OS만 변경 -> DBMS의 수정은 적음
    • DMBS만 변경 -> DBMS의 수정이 많음
    • OSDBMS 동시 변경 -> 가장 위험함

애플리케이션

  • 업무용 기능을 가진 프로그램된 소프트웨어로, 사용자가 빈번하게 조작하는 소프트웨어
  • 기존 인력에 의해 동작하던 비즈니스 로직을 프로그램으로 자동화하여 효율성을 높이고 비용도 줄일 수 있는 것이 시스템화의 장점
  • 애플리케이션을 실현하는 수단 2가지
    1. 스크래치Scratch : 직접 프로그램을 작성하는 방법. scratch는 처음부터라는 뜻
    2. 패키지Package : 기존에 있던 애플리케이션 소프트웨어를 사는 방법
스크래치
  • 장점 : 직접 만들기 때문에 업무의 세세한 부분까지 시스템에서 대응할 수 있어 꼼꼼한 서비스를 할 수 있음
  • 단점 : 세세한 대응을 시작하면 한도 끝도 없는 경우가 있어 개발 비용이 커짐
패키지
  • 장점 : 기존 제품을 설치할 뿐이라서 개발 비용을 줄일 수 있음.
  • 단점 : 패키지의 기능이 부족해 비즈니스 로직을 실현할 수 없는 경우라면 커스터마이징에 따른 추가 개발이 필요하게 되어 스크래치 개발보다 비용이 올라갈 수 있음

애플리케이션과 데이터베이스의 관계

  • 애플리케이션이 사용자와 데이터베이스 사이를 비집고 들어가있다.
  • 사용자가 데이터베이스를 직접 조작하는 것이 아닌 어디까지나 애플리케이션을 매개로 해서 데이터베이스에 접근하는 형태를 취함