1. Evolution of database technologies
- 1960s
- 1970s
- 1980s
- 1990s
- 2000+
데이터를 끄집어내서 사용하는데 오랜시간이 걸리기때문에 data warehouse가 생겼다. 1990년도부터 시작되었다. 어느정도 기업이면 대부분 data warehouse를 사용한다.
기업에서 쓰는 DBMS
- Oracle
- SQL Server
- DB2
- MySQL, PostgreSQL
기능도 많고, 저장공간도 넓다.
2. The Range of Database Application
- 개인적인 database
- 2티어 클라이언트/서버 database
- 사용자 <—> DB Server————database
- 티어1 티어2
- 3티어 클라이언트/서버 database
- 가장 많이 사용되는 구조
- 사용자 <—-> Web Server <——>DB Server————database
- 티어1 티어2 티어3
- 멀티티어 클라이언트/서버 database
- enterprise applications
- ERP system(enterprise resource planning system)
- 회사 전체 자원을 관리하는 시스템
- 재무, 회계, 물류, 경영, 인사, 모든 것들을 커버하는 시스템
- CRM(Customer Relationship Management)
- SCM(Supply Chain Management)
- 공장, 제조회사, 물류 등 공급과 관련된 모든 것들을 관리하는 시스템
- 큰 의미인 ERP를 사용하기보다는 CRM, SCM 같은 것들을 사용한다.
- data warehouse implementation
- 여러가지 운영단계에서 필요한 데이터베이스에서 파생된 의사결정을 도와주는 시스템이다.
- 가령 보고서를 만드는데 필요한 데이터를 통합해서 제공
- dataware house에는 보고서를 만드는데 필요한 데이터를 선택해서 저장
- ETL(extract, transform, load) 과정을 거쳐서 data warehouse 구축
business intelligence —— non-algorithmic(heuristic), non-programmable
knowledge
information
data —— algorithmatic, programmable
4. databse design process
User Requirement를 수집
- ex) customers, products, order에 대한 기록을 저장할 database를 원함
data modeling의 3단계
-
Conceptual Design(ER Modeling)
- 개념적으로 database를 만듬
- ER Diagram을 그림
- entity와의 관계, relationalship에 대해 그림
-
Logical Design(Relational Model)
- 박스, 도형, 선으로 구성되어있는 컨셉의 er model을 실제 처럼
- ER Diagram으로 그린 것을 실제처럼
- 실제 저장구조와 비슷하게 디자인
- 정규화, 제약 조건 정의 등을 진행
- Physical Design
- 마지막 단계의 디자인
- Performance를 생각
- 변수의 데이터 타입
- 컬럼의 인덱싱 여부
- 정규화 판단
- database가 어떤 테이블, 어떤 컬럼으로 되어있는지
- 뭔가 성능을 생각하고, 각각의 컬럼이 어떤 타입인지
- 성능이 느릴 것 같으면 최적화하는 단계
- 가령 페이스북 이용자가 10몇억인데 이준규에 대한 정보를 얻고 싶으면 모든 레코드를 훑어야 가능한데 엄청 느릴 것이다.
- indexing
- partition(가,나,다 순으로 테이블로 쪼갬)
objective of database design
- 키 데이터가 반영되어야한다
- 자연스럽고 이해하기 쉬운 구조
- 올바른게 실행 가능해야함
- 모든 기능과 성능을 제공해야한다
database development process
- 시스템 개발 과정의 일부
- 목적을 달성하기 위해서 같이 일을 하는 연관성이 있는 컴포넌트들의 집합을 시스템이다
SDLC(software development lifecycle) - waterfall 형식, 되돌아 갈 수 없다
- preliminary investigation : 사전조사
- problem statement
- feasibility study
- system analysis : 시스템 분석
- system design : 시스템 디자인
- system implementation : 시스템 개발
- maintenance : 유지보수
어떠한 절차를 거쳐서 개발하느냐. SDLC가 한동안 오랫동안 하다가 Agile이 나옴. SDLC는 전단계를 완벽하게 끝내야 다음단계로 가서 시간이 너무 오래걸린다. 만약 주어진 기간, 예산이 있다면 프로젝트가 실패할 수 있다. agile도 sdlc를 빠르게 돌리는 거라고 보면 된다.