728x90
- 데이터베이스를 '데이터의 집합'이라 정의한다면 DBMS는 이 데이터베이스를 관리·운영하는 역할을 한다.
- 데이터베이스는 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야 한다.
- 데이터베이스는 '데이터의 저장공간' 자체를 의미하기도 한다.
DBMS 또는 데이터베이스의 특징
1. 데이터의 무결성(Integrity)
: 데이터베이스 안의 데이터는 어떤 경로를 통해 들어 왔던지 데이터에 오류가 있어서는 안된다.
2. 데이터의 독립성
: 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 한다.
3. 보안
: 데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나, 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다.
4. 데이터 중복의 최소화
: 동일한 데이터가 여러 개 중복되어 저장되는 것을 방지할 수 있다.
5. 응용 프로그램 제작 및 수정이 용이
: 통일된 방식으로 응용 프로그램 작성이 가능해지고, 유지보수 또한 쉬워진다.
6. 데이터의 안전성 향상
: DBMS가 제공하는 백업·복원 기능을 이용함으로써 데이터가 깨지는 문제가 발생할 경우 복원 또는 복구 방법이 명확해진다.
데이터베이스의 발전사
오프라인(종이 등) - 파일 시스템의 사용(엑셀, 메모장 등) - 데이터베이스 관리 시스템(DBMS)
DBMS 분류
- 계층형(Hierarchical)
- 처음으로 나온 DBMS 개념
- 1960년대에 시작
- 각 계층은 트리(Tree)형태를 가지며 1:N의 관계
- 처음 구축한 이후에는 구조를 변경하기가 상당히 까다롭다
- 주어진 상태에서의 검색은 상당히 빠르지만, 접근의 유연성이 부족해서 임의 검색에는 어려움이 따름
- 망형(Network)
- 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 시작
- 1:1, 1:N, N:M 관계가 지원
- 효과적이고 빠른 데이터 추출
- 매우 복잡한 내부 포인터 사용한다는 단점
- 관계형(Relational)
- 1969년 E.F.Codd라는 학자가 수학 모델에 근거해서 고안
- 하나 이상의 열로 구성된 '테이블(table)'을 최소 단위로 하는 데이터베이스
- 테이블을 부르는 다른 용어로는 릴레이션(Relation), 엔티티(Entity) 등이 있다.
- 정보를 저장하기 위해서 하나의 테이블이 아닌 여러 개의 테이블로 나누어서 저장
- 불필요한 공간의 낭비를 줄이고, 데이터 저장의 효율성을 보장3
- 나뉜 테이블의 관계(Relation)를 기본 키(Primary Key)와 외래 키(Foreign Key)를 사용해 맺어 줌으로써, 두 테이블을 부모와 자식의 관계로 묶어 줄 수 있다
- 업무가 변화될 경우에 쉽게 변화에 순응할 수 있는 구조
- 유지보수 측면에서도 편리함
- 대용량 데이터의 관리에 용이
- 데이터의 무결성 보장이 잘 됨
- 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려짐
- 객체지향형(Object-Oriented)
- 객체관계형(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 |