728x90
디비디비딥
📌Data model
DB 설계를 위한 개념적 도구이다.
어떤 Data model로 DB를 설계했는가가 DBMS 선택의 척도가 된다.
데이터 모델의 정의
다음 3가지 property에 의해 결정된다.
- Object type 모음
관계 테이블, attribute, record - Operator 모음
객체로 표현된 정보를 다루는 방식
관계대수, 관계해석 등 - Integrity rule 모음
무결성 유지를 위한 규칙 필요
데이터 모델의 생성 목적
- DBMS의 정확성을 보장하고, 구현에 이론적 구성을 제공하는 도구이다.
- 특정 DDL, DML, DCL을 만드는 기반이 된다.
ex) 관계대수는 기본 연산자의 조합으로 복합 연산자를 생성한다. 관계대수 기반 모든 쿼리를 생성할 수 있다. - DBMS를 평가하고 비교하는 지표이다.
📌데이터 모델의 발전
데이터 모델은 크게 두가지로 구분 할 수 있다.
- Record based model 레코드 기반 모델
Conventional(전통적) 모델이다 - Semantic model 의미적 모델
📌 전통적 모델의 분류
1. Procedural Model 절차적 모델
- Hierarchical model 계층형 모델: 레코드 간 관계가 상하관계만 존재
- Network model 망형 모델 : 수평적 관계도 표현 가능문제점 : 절차적 모델은 Imperative(명령형) 쿼리를 사용하여 what(목적)과 how(방법)를 둘 다 알아야 한다. 절차적인 처리를 위해서 사용자가 how를 제시해야하고 그러려면 DB 내부의 low level detail을 알아야만 한다.
- physical records가 physical links를 가진다. 포인터를 사용하여 해당하는 record link를 따라간다.
2. Nonprocedural Model 비절차적 모델
- Relational model 관계형 모델: 테이블 형식으로 데이터를 정의한다. 1970년대 말 ~ 1980년대 초에 E.F Codd에 의해 제안되었다.
- Declarative(선언형) 쿼리를 사용하여 what만 알고 how에 대해서는 몰라도 된다. What에 대해서만 제시하면, DBMS가 최적의 해결방법을 제시한다. 그래서 사용자는 low level detail을 몰라도 쿼리를 짤 수 있다.
한계 : 관계형 모델은 현실 세계를 표현하기에 의미적 표현력이 약하다.
📌시맨틱 모델의 분류
Semantic model은 의미적 표현력이 강한 모델이다.
1. Functional Model 함수적 모델
함수에 기반한 모델이다. 개체 간의 관계를 나타내기 위해서 함수를 적용한다.
2. Object based model 객체 기반 모델
객체 기반 모델은 데이터를 현실에 기반하여 나타낸다. 객체 기반 모델에서 데이터는 성격에 따라서 엔티티로 표현되고, 여러 관계로 연결된다.
1. ER(Entity-Relationship) model 엔티티-관계 모델
: 개체 간의 관계를 중점으로 모델링한다.
- Entity : 현실의 개체. 실세계에서 구분되는 모든 것.
- Relationship : 개체 간의 관계
- Attribute : 개체 혹은 관계가 가지는 속성
ER 모델을 ER Diagram으로 표현된다.
ERD에서 직사각형은 Entity를, 타원은 Attribute를, 마름모는 Relationship을 나타낸다.
2. Object oriented model 객체 지향 모델
: 객체 간의 상호작용을 중점으로 모델링한다.
- Class : 추상화된 객체의 틀로서 필드와 메서드를 가진다.
- Object : 클래스로부터 형성되는 실제 객체로 개체를 나타낸다.
- Inheritance: 자식 클래스는 부모 클래스로부터 공통된 속성과 메서드를 상속하여 사용한다.
- Polymorphism : 다형성. 여러가지 형태를 가질 수 있는 능력으로써 인터페이스를 상속하는 클래스들의 구현적 차이를 의미한다.
728x90
'DB' 카테고리의 다른 글
DB 개념 6편 - ER 모델 (0) | 2024.08.25 |
---|---|
DB 개념 5편 - View와 MView의 차이 (0) | 2024.08.25 |
DB 개념 4편 - SQL과 DB 사용자의 분류 (0) | 2024.08.22 |
DB 개념 3편 - RDB 무결성과 키 (0) | 2024.08.22 |
DB 개념 1편 - DB를 사용하는 이유 (0) | 2024.08.20 |