전성빈의 사리사욕
[DataBase] 기초 : 용어와 장단점 본문
용어
Data : 의미를 가지면서 기록될 수 있는 알려진 사실
Database : 관련있는 데이타의 모임
DBMS(DataBase Management System) : 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지
Database System : 데이터베이스와 그를 관리하는 소프트웨어 모두를 칭하는 용어
mini-world : 데이터베이스 구축의 대상이 되는 실게계의 일부분
Example Database
대학교 정보 DB 예제
1. Entity
- STUDENT
- COURSE
- SECTION
- DEPARTMENT
- INSTRUCTOR
2. Relationship between Entities
- SECTION의 특정 COURSE에 속한다.
- STUDENT는 SECTION에 참가한다.
- COURSE는 선수 COURSE가 있다.
- INSTRUCTOR는 SECTION을 강의한다.
- COURSE는 DEPARTMENT에서 제공한다.
- STUDENT는 DEPARTMENT를 전공한다.
STUDENT
Name | Student_number | Class | Major |
Smith | 17 | 1 | CS |
Brown | 8 | 2 | CS |
COURSE
Course_name | Course_number | Credit_hours | Department |
Intro to Computer Science | CS1310 | 4 | CS |
Data Structures | CS3320 | 4 | CS |
Discrete Mathematics | MATH2410 | 3 | MATH |
DAtabase | CS3380 | 3 | CS |
Main features of Database
DB System의 self-describing
DB catalog에는 meta data가 저장되어 있으며, 이를 이용하여 하나의 DBMS가 다수의 DB를 관리할 수 있다.
meta-data : 데이타베이스에 대한 정보
프로그램과 데이타의 분리
데이타베이스 내의 데이타 저장 구조가 변경되어도 Database 응용 프로그램은 영향을 받지 않는 성질(변경할 필요가 없는)
프로그램과 데이타의 독립성(program-data independence)을 높임
Data Abstraction
데이타 모델을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉 시키고 개념적인 뷰만을 제공함
데이타에 대한 다중 뷰 제공
사용자는 전체 데이타 베이스 보다는 관심이 있는 데이타 베이스의 일부를 뷰로 정의할 수 있음
데이터의 공유와 닷 사용자 트랜잭션 처리
트랜잭션은 한 번 이상의 데이터베이스 접근을 포함하는 프로그램의 단위 혹은 프로세스 수행. 고립성과 원자성의 성질을 만족하여야 함
동시선 제어
온라인 트랜잭션 처리
다수 사용자를 위한 DB 프로그래밍 관점에서 트랜잭션에 대해 학습
DBMS의 장점
중복성의 제어
data consistency 보장 및 메모리 낭비 방지
다수 사용자 간의 데이타의 공유 및 동시 접근 보장
권한이 없는 접근 통제
보안과 권한 서브시스템
프로그램 객체를 위한 지속성 기억 공간 제공
지속성 객체(Persistency Object)
impedance mismatch : 기존 관계형 DB의 SQL과 프로그래밍 언어 사이에
데이터 구조, 기능 등의 차이로 발생하는 충돌 방지
효율적인 Query processing을 위한 저장 구조와 탐색 기법의 제공
백업과 회복 제공
다수의 UI 제공
데이터 간의 복잡한 관계의 표현
무결성 제약 조건(imtegrity constraint)의 시행
참조 무결성(Referential integrity)
비즈니스 규칙(Business Rule)
규칙을 사용한 추론과 수행
연역 데이터베이스 시스템
트리거
DBMS의 사용 효과
표준화된 데이타 관리
조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대
데이타 구조 변경에 융통성 부여
데이타베이스 내의 자료구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없음
응용 프로그램의 개발 시간 단축
응용 프로그램의 상당한 부분을 DBMS가 처리함
항상 최신의 정보를 제공
사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근 가능
규모의 경제성
부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저비용임
DataBase를 사용하지 않아도 좋은 경우
DBMS를 사용하면 비용이 높아짐
높은 초기 투자 비용과 추가적인 하드웨어가 필요하다.
데이타의 보안, 동시성 제어, 회복, 무경정 조건 등의 기능이 필요하지 않은 응용 - 오버헤드가 된다.
언제 DBMS가 불필요한가?
데이타베이스와 응용이 단순하고 잘 정의되어 있으며 변경될 가능성이 적을 경우
DBMS 오버헤드로 인하여 엄격한 실시간 데이타 처리 요구사항을 만족시키기 힘든 경우(최근에는 실시간 DBMS를 활용)
다 사용자 데이타 접근이 필요하지 않은 경우
'백엔드 로드맵따라가기 > RDBMS' 카테고리의 다른 글
[SQL] SQL 문법 정리 (1) | 2020.12.17 |
---|---|
[RDBMS] 관계형 모델의 스키마와 주요 제약조건 (0) | 2020.10.22 |
[SQL] SQL의 기초(DDL,DML,DCL) (0) | 2020.09.01 |
[RDBMS] RDBMS의 이해 (0) | 2020.08.29 |