위로 아래

DBMS

DB (데이터베이스)

  1. 중복을 최소화하여 공용으로 사용할 수 있도록 저장해놓은 현재 사용 중인 데이터의 집합
    1. 저장되어 있는 데이터
    2. 공용 사용 가능 데이터
    3. 현재 사용 중 데이터
    4. 중복 최소화 데이터

DBMS (Database Management System)

  1. 데이터베이스 관리 시스템. 데이터베이스를 관리, 운영하는 시스템 또는 소프트웨어.
  2. 여러 명의 사용자나 응용프로그램이 공유하고 동시에 접근이 가능해야 한다.
  3. 오류가 있는 데이터가 데이터베이스에 들어오면 절대 안 된다!
  4. 데이터의 무결성 (Integrity) : 제약조건(Constrain)을 통해, 데이터베이스에 들어오는 데이터에는 오류가 없도록 한다.
  5. 데이터의 독립성 : 데이터베이스의 크기를 변경하거나 저장소를 변경해도, 기존에 작성된 응용 프로그램은 영향을 받지 않아야 한다.
  6. 보안 (Security) : 데이터베이스 안의 데이터에는 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
  7. 데이터 중복의 최소화 : 데이터가 중복 저장되지 않아야 한다.
  8. 데이터 안전성 향상 : DBMS의 백업, 복원 기능을 통해, 문제 발생시 복원 방법이 명확해진다.
  9. 응용 프로그램 제작 및 수정의 용이성 : 공유하는 데이터베이스를 통해 통일된 방식으로 응용프로그램을 작성해서, 유지보수가 쉬워진다.

 

용어

관계형 데이터 모델 일반 파일 시스템
릴레이션 테이블 파일
튜플 행(로우) 레코드
속성(어트리뷰트) 열(컬럼) 데이터 항목 또는 데이터 필드
(릴레이션) 차수 속성 개수  
카디넬리티 행(튜플) 개수  

 

데이터베이스 구조

  1. 물리적 독립성
  2. 논리적 독립성
  3. 자료 독립성

 

SQL (Structured Query Language)

  1. DBMS를 구축하고 관리하고 활용하기 위해서 사용되는 언어 
  2. DBMS마다 조금씩 문법이 다르다
  3. PL/SQL : 오라클의 SQL문법

스키마(schema)

  1. 테이블들을 그룹화 해 놓은 것.
  2. 여러 개가 있다.
  3. 데이터베이스라고 부르기도 한다. 

데이터베이스 서버

  1. 여러 스키마(데이터베이스)들을 다루는 서버.
  2. mySQL, 오라클 등을 설치한 건, 이 데이터베이스 서버를 설치한 것이다.

 

종류

DBMS 제작사 운영체제 비고
Oracle Oracle Unix, Linux, Windows 유료
MySQL Oracle Unix, Linux, Windows, Mac 오픈소스, 무료
SQL Server Microsoft Windows, Linux  
MariaDB MariaDB Unix, Linux, Windows 오픈소스, 무료
PostgreSQL PostgreSQL Unix, Linux, Windows, Mac 오픈소스, 무료
DB2 IBM Unix, Linux, Windows  
Access Microsoft Windows PC 용 (흉내만 내는 놈)
SQLite SQLite Android, iOS 모바일 전용, 오픈소스, 무료 (파이썬 안에 들어 있다)

 

 

 


CRUD

데이터베이스에서 가장 중요한 것은 데이터의 input과 output

  1. Create : 데이터 생성 (Insert)
  2. Read : 데이터 조회 (Select)
  3. Update : 데이터 수정 (Update)
  4. Delete : 데이터 삭제 (Delete)

 

 


DBMS의 분류 (RBDMS)

계층형 (Hierarchical DBMS)

  1. 최초의 DBMS 형태. 1960년대
  2. 각 계층은 트리 형태를 가지며 1:N의 관계.
  3. 처음 구축한 이후 구조를 변경하기가 까다롭다. 
  4. 단점 : 정해진 상태에서의 검색은 빠르나, 접근의 유연성이 부족해 임의의 검색은 어렵다.

 

망형 (Network DBMS)

  1. 계층형 DBMS의 문제점을 개선하기 위해 등장. 1970년대
  2. 1:1, 1:N, N:M의 관계.
  3. 효과적이고 빠른 데이터 추출이 가능하다.
  4. 단점 : 복잡한 내부 포인터를 사용함에도, 프로그래머가 모든 구조를 이해해야 프로그램 작성이 가능하다.

 

RDBMS 관계형 (Relational DBMS) 

  1. 가장 많이 사용되는 DBMS.
  2. Oracle, SQL Server, MySQL, DB2, Access 등
  3. 핵심 개념 : 데이터베이스의 최소 단위는 1개 이상의 열을 가진 테이블(table)
  4. 모든 데이터가 테이블에 저장된다. 
  5. 한 개가 아닌, 여러 개의 테이블로 나눠서 저장함으로써, 공간 낭비를 줄이고 데이터 저장의 효율성을 보장.
  6. 부모테이블과 자식테이블의 관계는 기본 키(primary key)와 외래 키(foreign key)로 맺어져 있으며, 조합하고자 할 경우 SQL 언어의 조인(join)기능을 이용.
  7. 다른 DBMS에 비해 업무가 변화될 경우 수정이 쉽고, 유지보수도 편리하다. 
  8. 대용량 데이터의 관리와 데이터 무결성을 잘 보장해준다. 
  9. 단점 : 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려진다. 

그 외

  1. 객체지향형 (Object-Oriented DBMS)
  2. 객체관계형 (Object-Relational DBMS)