DBMS 개요
데이터베이스의 정의
데이터베이스
데이터의 집합
- 여러 명의 사용자나 응용프로그램이 공유하는 데이터들
- 동시 접근 가능
- 데이터의 저장 공간 자체
DBMS
데이터베이스를 관리 ▪ 운영하는 역할
DBMS 개념도
DB/DBMS의 특징
-
무결성 (Integrity)
데이터베이스 안의 데이터는 오류가 없어야함
제약조건(Constrain)이라는 특성을 가짐
-
독립성
데이터베이스 크기를 변경하거나 데이터 파일의 저장소 변경 시
기존에 작성된 응용 프로그램은 전혀 영향을 받지 않아야 함
-
보안
데이터베이스 안의 데이터에 데이터 소유자 및 접근 허가된 사람만 접근할 수 있어야 함
사용자 계정에 따라 다른 권한을 가짐
-
중복 최소화
동일한 데이터가 여러 개 중복되어 저장되는 것을 방지
-
응용프로그램 제작 및 수정
통일된 방식으로 응용프로그램 작성 가능
유지보수 또한 쉬워짐
-
데이터의 안전성 향상
대부분의 DBMS가 제공하는 백업 ▪ 복원 기능 이용
데이터가 깨지는 문제 발생 시 원상으로 복원, 복구하는 방법이 명확해짐
데이터베이스의 발전
데이터베이스 관리시스템 (DBMS)
DBMS - Database Management System
- 파일시스템의 단점 보완
- 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해 사용
- 데이터의 집한인 '데이터베이스'를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어
Structured Query Language
- 관계형 데이터베이스에서 사용되는 언어
- DBMS에 데이터 구축/관리/활용을 위해 사용되는 언어
- DBMS를 통해 중요한 정보들을 입력, 관리, 추출
- DBMS와 독립적
- 다른 시스템으로 이식성이 좋음
- 대화식 언어, 분산형 클라이언트/서버 구조
관계형 DBMS (RDBMS)
RDBMS - Relational Database Management System
-
데이터베이스는 테이블(Table)이라 불리는 최소 단위로 구성
이 테이블은 하나 이상의 열로 구성
-
장점
다른 DBMS에 비해 업무가 변화될 경우 쉽게 변화에 순응
유지보수 측면에서 편리
대용량 데이터의 관리와 무결성(Integration) 보장
-
단점
시스템 자원을 많이 차지해 시스템이 전반적으로 느려짐
하드웨어 발전으로 해결
NoSQL - Not Only SQL
- 표준화 된 구조적 질이언어가 없음
- 관계를 갖지 않음
데이터베이스 모델링
현 세계에서 사용되는 사물들을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
데이터 모델링
- 개념적 모델링
: 개체와 개체들 간에 관계에서 ER다이어그램을 만드는 과정
- 논리적 모델링
: ER다이어그램을 사용하여 관계 스키마 모델을 만드는 과정
- 물리적 모델링
: 관계 스키마 모델의 물리적 구조를 정의하고 구현하는 과정
연관성 정의
- 주가 되는 쪽이 부모테이블, 참조하는 쪽이 자식 테이블
고객이 물건을 소유 ⭕, 물건이 고객을 소유 ❌
주가 되는 고객 테이블이 부모, 상세가 되는 구매 테이블이 자식이 됨 (1:N 모델)
- 기본 키 (PK, Primary Key)
중복되지 않고 비어있지 않아야 함 (Not Null)
- 외래 키 (FK, Foreign Key)
외래 키로 부모 테이블에서 유일하게 하나의 정보를 얻을 수 있음
- 제약조건
새로운 데이터가 들어갈 때 부모 테이블에 먼저 넣어야 함
데이터 삭제시 자식 테이블에서도 지워줘야 함