Data Model : 실데 데이터의 저장구조와 연산을 의미하며 일반적으로 관계형 모델을 가장 많이 사용하며, 그 외로 계층형, 망형 모델이 있다.
Database Model Structure에는 element(data type)을 포함하며 groups of element(entity, record, table)와 이들의 relationships를 포함 한다.
Database Model Operations는 기본적인 model operation(generic insert, delete, updata)와 user-defined-operation을 포함한다.
Database Schema(intenstion) : description of the database로 데이터의 타입, 제약, 구조에 대한 내용을 담고 있음 즉, database에 들어가 있는 수치, 즉 states들이 어떤 식으로 데이터베이스 안에서 구성이 되고 있는지를 설명해주는 역할
schema diagram
Database State(instanec)(extenstion) : 실제 Database instance라고도 불리는 Database state는 database에서 실질적인 데이터 값을 의미. Schema가 데이터베이스 구성에 대한 부분을 나타내주었다면, 그 안에 들어가는 데이터 값을 Database state. 즉, 데이터베이스의 데이터 값이 될 수도 있고 문자열로 구성된 데이터베이스 안의 특정 단어나 내용이 될 수도 있다.
요구 사양서 -> 개념적 데이터 모델 설계 -> 논리적 데이터 모델 설계 -> 물리적 데이터 모델 설계 -> 구현
1) 외부 스키마 (External Schema)
2) 개념 스키마(Conceptual Schema)
3) 내부 스키마(Internal Schema)
데이터 모델은 데이터베이스를 설계하기 위한 모든 개념들을 정의 내린 것. 데이터베이스의 구조, 연산자, 제약조건 등이 정의 되어있으며, 이를 활용하여 데이터 모델링을 진행함. ER 모델 같은 것이 데이터 모델입니다.
스키마라고 하면 앞서 설명한 데이터모델을 이용하여 실제 데이터베이스를 설계할 때, 각 객체와 관계에 대해 정의 내리고, 제약조건이나 연산자 정의. 제약조건이나 연산자는 데이터 모델에서 제공하는 것을 사용할 수도 있고, 사용자가 직접 정의할 수도 있음. 즉, 데이터 모델은 툴이라고 보면, 스키마는 그 툴을 이용하여 설계도를 그리는 단계.
사용자가 외부 스키마를 통해 데이터를 요구하면 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고, 다시 내부 스키마에 대한 요구로 변환하는 과정을 거처 해당 디스크로 접근하여 데이터를 추출한 뒤 해당 데이터를 다양한 형태롤 사용자에게 제공
하위 스키마에 대한 구조가 바뀌어도 사용자는 데이터 독립성에 의해 영향을 받지 않으며 사용자의 편의성 응용의 안정성 제공해중
파일 시스템의 경우파일 구조가 변경되면 이를 사용하는 응용 프로그램이 심각한 영향을 받게 됨
논리적 독립성
물리적 독립성
DDL(data definition language) : 데이터 정의어
DML(data manipulation laguage) : 데이터 조작어
DCL(data control) : 데이터 제어어
중앙 집중형
통합센터에서 시스템과 데이터를 저장하고 운영하는 방식이다.
대용량 서버에 통합 데이터베이스를 구성하여 아키텍처가 간단하다.
하지만 통합센터에 장애가 발생할 시 모든 서비스가 다운된다.
분산형
지역별로 데이터를 분산하여 시스템을 동작한다.
중소형 서버를 여러개 운용하며 부하 분산 효과를 가질 수 있다.
하지만 데이터베이스 무결성 관리고 어렵고 복잡해진다.
클라이언트-서버 아키텍처
시스템의 기능을 서버와 클라이언트에 분리하여 위치시키는 구조이다.
데이터 관리, 프로세스, 프리젠테이션 영역을 어디에 위치시키냐에 따라 담당하는 역할이 달라진다.
클라이언트에서 응용 프로그램을 동자기켜 UI를 구현시킬 수 있다.
게임, 메신저, 터미널 서버등이 있다.
웹 시스템 아키텍처
서버에 모든 기능을 구현하고 클라이언트는 웹브라우저로 이용만 한다.
미들웨어를 통해 안정적인 성능을 보장할 수 있으며 재사용성이 높다.
PC와 모바일 환경 동시에 사용이 가능하다.
2티어 아키텍처
3티어 아키텍처