대학교 2학년이 되어서 처음으로 데이터베이스라는 것을 제대로 접하고 배우게 되었다. 정규화, 인덱싱 등 여러 가지를 배웠는데 4학년이 되는 지금은 다시 가물가물해지는 기분이다.
조교를 맡게 되면서 이론을 다시 한번 짚어야 하는 상황 겸 복기하는 느낌으로 정리하고자 한다.
현대에 사용되는 Data(데이터)
- 지금의 데이터는 정형화된 작업에 사용이 된다.
- 의사결정에 사용이 되고 있다.
현대에 들어서서 데이터는 기업 내에서 중요한 역할을 하고 있다.
이 중요한 데이터들을 모으고, 저장하고, 처리하고, 다뤄지기(운영되기) 위해서는 뭔가가 필요했다.
필요에 의해 생긴 기술이 데이터베이스 기술이다.
- Data(데이터) : 물건이나 상황에서 얻어진 순수한 사실 그자체
- Information(정보) : 의미를 갖도록 처리된 데이터 -> 매우 meaningful!
- Knowledge(지식) : 행동을 가이드 해줄 수 있는 통찰력(insight)들의 모임 -> 매우 actionable!
즉, 데이터가 데이터베이스 기술을 이용하여 처리되면 정보와 지식이 된다.
Database(데이터베이스)란?
데이터와 관련된 이야기를 계속 하면서 데이터베이스라는 것을 언급하였다.
데이터베이스는 논리적으로 관련있는 데이터들의 모임이라고 보면 된다.
데이터베이스에는 메타데이터라는 것이 존재한다.
여기서 말하는 메타데이터는 데이터 타입, 데이터 크기, 허용값 등을 포함한 데이터들의 속성을 설명한 것이다.
File Processing의 단점(데이터베이스 미사용)
그렇다면 위에서 언급한 데이터베이스를 사용하지 않으면 나타나는 단점들은 무엇일지 알아보자.
- Program-Data Dependence : 모든 파일 프로그램들은 각각의 파일들에 메타데이터를 유지하고 있기 때문에 서로 종속적이다.
- Duplication of Data : 데이터 복사본들의 중복이 발생한다.
- Limited Data Sharing : 데이터를 중앙 집중식으로 제어하지 않기 때문에 관리가 힘들다.
- Lengthy Development Times : 각각의 데이터 파일들의 형태를 프로그래머들이 디자인해야 하므로 많은 시간을 소모하게 된다.
- Excessive Program Maintenance : 많은 데이터 유지 비용이 소모된다.
Database의 장점(데이터베이스 사용)
- 계획되지 않은 데이터의 중복, 복사를 제거해준다.
- 데이터를 일관되게 유지해준다.
- Program-Data Independence : 프로그램에 영향을 받지 않는 즉, 데이터와 프로그램이 독립적으로 된다. 데이터는 프로그램에 영향을 받지 않는다.
- 유지비용이 줄어든다.
- 데이터의 보안이 증가한다.
Database Development Process(데이터베이스 개발 과정)
- Preliminary Investigation
- Conceptual Data Modeling : Entity Relationship Diagram
- Logical and Physical Database Design
- Logical Database Design : Normalization(정규화), DBMS 종속, Constraints 추가
- Physical Database Design : 성능 향상에 주목, 인덱싱, 중앙vs.분산
- Database Implementation
- Database Maintenance
Three Schema Architecture
- External Schema : User View etc.
- Conceptual Schema : E-R Model
- Internal Schema : Logical Structure, Physical Structure
- External Schema
- 각각의 사람들은 같은 데이터에 대하여 서로 다른 화면을 보게 됨.
- Conceptual Schema
- 여러 개의 External View들을 하나의 논리적으로 이어져있는 종합적인 기업 데이터로 정의할 수 있도록 통합을 해둔 상태
- 실제 스토리지(Storage)와는 아직은 독립적.
- Internal Schema
- Logical Schema : 데이터 관리 기술의 형태 정하기(ex. 관계형?)
- Physical Schema : 특정 DBMS를 사용하여 데이터들을 어떻게 저장할지 정하기(ex. Oracle)
장점
- 각각의 유저가 보는 화면이 바뀌어도 서로에게 영향을 주지 않는다.
- DBA는 모든 유저들에게 영향을 주지 않고 데이터베이스의 개념적 구조를 바꿀 수 있다.
- 유저는 데이터베이스가 실제로 어떻게 구조를 이루는지 알 필요가 없다.