본문 바로가기

SQL

DBMS 개요

728x90
  • 데이터베이스를 '데이터의 집합'이라 정의한다면 DBMS는 이 데이터베이스를 관리·운영하는 역할을 한다.
  • 데이터베이스는 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야 한다. 
  • 데이터베이스는 '데이터의 저장공간' 자체를 의미하기도 한다. 

 


DBMS 또는 데이터베이스의 특징

1. 데이터의 무결성(Integrity)

 : 데이터베이스 안의 데이터는 어떤 경로를 통해 들어 왔던지 데이터에 오류가 있어서는 안된다.

 

2. 데이터의 독립성

 : 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 한다. 

 

3. 보안

 : 데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나, 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.

 

4. 데이터 중복의 최소화

 : 동일한 데이터가 여러 개 중복되어 저장되는 것을 방지할 수 있다. 

 

5. 응용 프로그램 제작 및 수정이 용이

 : 통일된 방식으로 응용 프로그램 작성이 가능해지고, 유지보수 또한 쉬워진다.

 

6. 데이터의 안전성 향상

 : DBMS가 제공하는 백업·복원 기능을 이용함으로써 데이터가 깨지는 문제가 발생할 경우 복원 또는 복구 방법이 명확해진다.

 


데이터베이스의 발전사

오프라인(종이 등) - 파일 시스템의 사용(엑셀, 메모장 등) - 데이터베이스 관리 시스템(DBMS)

 

 


DBMS 분류

  1. 계층형(Hierarchical)
    • 처음으로 나온 DBMS 개념
    • 1960년대에 시작
    • 각 계층은 트리(Tree)형태를 가지며 1:N의 관계
    • 처음 구축한 이후에는 구조를 변경하기가 상당히 까다롭다
    • 주어진 상태에서의 검색은 상당히 빠르지만, 접근의 유연성이 부족해서 임의 검색에는 어려움이 따름
  2. 망형(Network)
    • 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 시작
    • 1:1, 1:N, N:M 관계가 지원
    • 효과적이고 빠른 데이터 추출
    • 매우 복잡한 내부 포인터 사용한다는 단점
  3. 관계형(Relational)
    • 1969년 E.F.Codd라는 학자가 수학 모델에 근거해서 고안
    • 하나 이상의 열로 구성된 '테이블(table)'을 최소 단위로 하는 데이터베이스
      •  테이블을 부르는 다른 용어로는 릴레이션(Relation), 엔티티(Entity) 등이 있다.
    • 정보를 저장하기 위해서 하나의 테이블이 아닌 여러 개의 테이블로 나누어서 저장
    • 불필요한 공간의 낭비를 줄이고, 데이터 저장의 효율성을 보장3
    • 나뉜 테이블의 관계(Relation)를 기본 키(Primary Key)와 외래 키(Foreign Key)를 사용해 맺어 줌으로써, 두 테이블을 부모와 자식의 관계로 묶어 줄 수 있다
    • 업무가 변화될 경우에 쉽게 변화에 순응할 수 있는 구조
    • 유지보수 측면에서도 편리함
    • 대용량 데이터의 관리에 용이
    • 데이터의 무결성 보장이 잘 됨
    • 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려짐
  4. 객체지향형(Object-Oriented)
  5. 객체관계형(Object-Relational)

정보시스템 구축 절차

1단계 - 분석      : 무엇을 할지 결정
       ↓ 
2단계 - 설계      : 어떻게 할지 결정
       ↓ 
3단계 - 구현
       ↓ 
4단계 - 시험
       ↓  
5단계 - 유지보수 
  • 분석단계
    • 시스템 분석 또는 요구사항 분석
    • 구현하고자 하는 프로젝트의 가장 첫번째 단계
    • 요구사항 분석은 현재 우리가 '무엇을'할지 결정
    • 사용자 인터뷰와 업무 조사 등
    • 분석의 결과로 많은 문서를 작성
  • 설계단계
    • 시스템 설계 또는 프로그램 설계
    • 우리가 구축하고자 하는 시스템을 '어떻게' 할 것인지 결정

   위 두 단계가 전체 공정의 50%이상을 차지.

 


데이터베이스 모델링

분석과 설계 과정 중에서 가장 중요한 과정 중의 하나가 데이터베이스 모델링. 

데이터베이스 모델링이란 현실세계에 사용되는 데이터를 어떻게 DBMS에 옮겨 놓을 것인지를 결정하는 과정.

 

2021.09.01 - [SQL] - SQL 용어 정리

 

소프트웨어 공학 - 소프트웨어 개발 모델
(1) 폭포수 모델(waterfall model)
: 프로젝트 계획 → 업무 분석 → 시스템 설계 → 프로그램 구현 → 테스트 → 유지보수

▶ 가장 오래되고 전통적으로 사용되는 것
▶ 각 단계가 끝나면 다음 단계로 진행
▶ 각 단계가 명확히 구분되어서 프로젝트의 진행 단계가 명확해짐
▶ 문제점이 발생할 경우 앞 단계로 거슬러 올라가기 어려움

 

  • 개념적 모델링
    • 업부 분석 단계에 포함
  • 논리적 모델링
    • 업무 분석 후반부와 시스템 설계의 전반부에 걸쳐서 진행
  • 물리적 모델링
    • 시스템 설계 후반부에 주로 진행

 

 

'SQL' 카테고리의 다른 글

SQL 용어 정리  (0) 2021.09.01
PHP와 MySQL 연동하기(1) - 회원관리시스템  (0) 2021.09.01
MySQL - SQL 고급  (0) 2021.08.23
MySQL - SQL 기본(2)  (0) 2021.08.23
MySQL - SQL 기본(1)  (0) 2021.08.20