데이터(Data)는 의미를 가지고 있고 기록 될 수 있는 것을 뜻합니다. (이름, 번호, 주소)
연관된 데이터들의 집합
DBMS는 이름 그대로 유저로 하여금 데이터베이스의 관리와 생성을 도와주는 소프트웨어 패키지 혹은 시스템을 뜻합니다. 예시로 Oracle, MySQL등이 있습니다.
DBMS와 Database System과 차이를 알아두어야 합니다.
Database System은 DB, DBMS + DB Application이 합쳐져서 이루어진 생태계를 뜻합니다.
유저는 Application을 통해 데이터베이스와 소통합니다.
이때 소통은 Query와 Transaction(데이터베이스의 처리 단위)을 생성함으로써 이루어지는데
Query는 읽기 전용 명령문이고 Transaction은 모든 명령을 통괄하는 용어입니다.
Universtity라는 환경을 가정해봅시다.
Universtity는 아래와 같은 Entity(특성을 지닌 개체)를 가집니다.
Students
Courses
Sections
Departments
Instructors
각각의 Entity들은 Relationship, 즉 관계로 맺어져있습니다.
따라서 Entity와 Relationship를 엮어서 표현하는 경우가 많은데, 주로 E-R이라고 표현합니다.
요구 분석
Conceptual Design (개념 구상)
Logical Design (논리 구상)
Physical Design (물질 구상)
Database 앱 구상
DB의 구조, 타입, 제약 조건을 모두 포함하고 있고 그것을 나타내는 것을 Catalog라고 부른다.
File기반 시스템에선 프로그램과 데이터의 독립성이 보장되지 않지만, DB에선 가능하다.
(Program-data Independence)
예를 들어, 이름, 학번이 들어가있는 학생 정보에 생일을 넣으려고 한다면 DB에선 Catalog에 저장된 테이블 정보에 추가만 하면 되지만, File 기반의 프로그램은 완전히 프로그램을 뜯어고쳐야 함.
데이터 추상화를 제공하는 도구인 Data model가 유저에게 복잡한 구조를 숨기고 간략하게 나타내어 보여줄 수 있습니다.
각각의 유저는 다른 View를 보게 됩니다. (권한에 따라서)
중복 제어
권한이 없는 접근을 제한함 -> 데이터의 보호
객체의 영속적 저장 -> 과거엔 해결할 수 없었던 문제가 OODBMS, BLOB 같은 시스템이 개발되면서 해결 되었습니다.
Index(색인) 등을 활용한 빠른 Query (읽기) 수행가능
DB의 안 써도 되는 순간
DBMS는 초기 비용이 많이 들어서 간단한 작업엔 필요없다.
나만 써야할때는 굳이 안 써도 됨
저장 공간이 작을 때는 쓸 수 없음
Real-Time 상시 상호작용으로 이루어지는 동작에는 DBMS의 기능이 Overhead 방대해서 해가 될 수 있습니다.