0%

200808 TIL

Database and Database Management System (DBMS)

도서관의 책들이 데이터베이스 라고 한다면, 도서관 사서 또는 도서 정보를 찾아주는 컴퓨터를 DBMS
라고 할 수 있다.

Database

  • 데이터의 집합 (A Set of Data)
  • 여러 응용 시스템(프로그램)들의 통합된 정보들을 저장하여 운영할 수 있는 공용(share) 데이터의 집합
  • 효율적으로 저장, 검색, 갱신 할 수 있도록 데이터 집합들끼리 연관시키고 조직화 되어야 한다.

Feature of Database

  • Real-time Accessbility
    • 사용자 요구를 즉시 처리
  • Continuous Evolution
    • 정확한 값을 유지하려고 삽입, 삭제, 수정 작업등을 이용해 데이터를 지속적으로 갱신
  • Concurrent Sharing
    • 사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터에 접근하고 이용 할 수 있다.
  • Content Reference
    • 저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조 할 수 있어야 한다.

Database Management System (DBMS)

A database management system (DBMS) is a software package designed to define, manipulate,
retrieve and manage data in database. A DBMS generally manipulates the data itself, the data
format, field names, record structure and file structure. It also defines rules to validate and
manipulate this data.

  • 데이터베이스를 관리하는 소프트웨어
  • 여러 응용 소프트웨어(프로그램) 또는 시스템이 동시에 데이터베이스에 접근하여 사용할 수 있게 한다.
  • 필수 3기능
    • 정의기능: 데이터베이스의 논리적, 물리적 구조를 정의
    • 조작기능: 데이터를 검색, 삭제, 갱신, 삽입, 삭제 하는 기능
    • 제어기능: 데이터베이스의 내용 정확성과 안정성을 유지하도록 제어하는 기능
  • Oracle, SQL Server, MySQL, DB2 등의 상용 또는 공개 DBMS가 있음

데이터베이스 관리 시스템의 장/단점

  • 장점
    • 데이터 중복이 최소화
    • 데이터 일관성 및 무결성 유지
    • 데이터 보안 보장
  • 단점
    • 운영비가 비싸다
    • 백업 및 복구에 대한 관리가 복잡
    • 부분적 데이터베이스 손실이 전체 시스템을 정지

MySQL

  • Install

    $ brew install Mysql

  • Starting server

    $ mysql.server start

    • starting on deamon(using HomeBrew)

      $ brew service start mysql

    • restarting

      $ brew service restart mysql

    • listing

      $ brew services list

  • Exit MySQL

    $ mysql.server stop

    • Quiting on HomeBrew

      $ brew services stop mysql

SQL(Structured Query Language)

  • SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어
  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단
  • DML(Data Manipulate Language): 데이터를 조작하기 위해서 사용, INSERT, UPDATE, DELETE, SELECT등
  • DDL(Data Definition Language): 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용, CREATE, DROP, ALTER등
  • DCL(Data Control Language): 데이터를 제어하는 언어, 권한을 관리하고, 데이터의 보안, 무결성 등을 정의 GRANT, REVOKE등

Table

  • 우리와 SpreadSheet에서의 table과 유사한 개념
  • 데이터베이스는 table의 형태로 존재하는 것이 아님
  • table을 보려면 table을 생성하는 SQL을 사용해야함
  • 테이블에 앖을 저장하려면 저장하기 위한 SQL을 사용

Table의 구성요소

  • Table: RDBMS의 기본적 저장구조, 한 개 이상의 column과 0개 이상의 row로 구성
  • Column: 테이블 상에서의 단일 종류의 데이터를 나타냄, 특정 데이터 타입 및 크기를 가지고 있음
  • Row: Column들의 값의 조합, 레코드라고 불림, 기본키에 의해서 구분 되며 기본키는 중복을 허용하지 않고, 없어서는 안됨
  • Field: Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을때는 NULL 값을 가지고 있음