1. 데이터 모델
컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형
대표 데이터모델 : 계층형, 네트워크형, 관계형, 객체 지향형 등이 있음
2. 계층형 데이터 모델
[그림]
- 나뭇가지 형태의 트리(tree)구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리함.
- 계층형 데이터모델을 이해하기 위해서는 일대다(1:다) 관계의 데이터 구조를 파악해야 함
특징
- 상위 개념에 하위 개념이 포함되어 있는 특징
- 하나의 부모 개체가 여러 자시을 가질 수 있음 (o)
- 자식개체는 여러 부모 개체를 가질 수 없다는 제약이 있음
=> 일대다 구조의 데이터를 표현하기에는 알맞지만 자식 개체가 여러 부모를 가진 관계는 표현할 수 없음
3. 네트워크형 데이터 모델
- 망형 데이터 모델이라고도 함
- 그래프(graph) 구조를 기반으로 함
- 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서 계층형 데이터 모델과 차이가 있음
4. 객체 지향형 데이터 모델
[그림]
- 객체지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델
- 객체 지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에서 사용되는 강력한 기능을 활용할 수 있음
5. 관계형 데이터 모델
- 다른 모델과 달리 '데이터 간 관계(relationship)' 에 초점을 둔다.
ex. 회사의 사원 정보와 사원이 소속된 부서 정보를 데이터로 관리하는 경우
[그림]
(1) 사원 정보와 부서 정보를 하나의 묶음으로 관리하면 데이터 구조가 간단해짐
(2) but, 같은 부서 사원들은 부서 정보가 중복되므로 효율적인 관리가 어려워짐
(3)=> 왜냐하면 부서 이름이 바뀌면 해당 부서 사원들은 부서 정보를 일일이 찾아서 모두 변경해 주어야 하기 때문
=> 따라서 관계형 데이터 모델에서는 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다.
[그림]
중복이 발생할 수 있는 데이터(여기서는 부서정보)는 별개의 릴레이션으로 정의한 후
사원 정보에 소속된 부서를 식별하는 '부서 코드'를 포함하여 사원 정보를 데이터와 부서 정보 데이터를 연결함.
6. 관계형 데이터 모델의 핵심 구성 요소
[그림]
이름 | 설명 |
개체(entity) | 데이터베이스에서 데이터화하려는 사물, 개념의 정보단위 관계형 데이터베이스의 테이블(table) 개념과 대응되며 테이블은 릴레이션(relation)으로 표기하도록 함 |
속성(attribute) | 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의 관계형 데이터베이스의 열(column) 개념과 대응됨 |
관계(relationship) | 개체와 개체 또는 속성 간의 연관성으 ㄹ나타내기 위해 사용함. 관계형 데이터베이스에서는 테이블 간의 관계를 외래키(foreign key) 등으로 구현하여 사용함 |
7. 관계형 데이터베이스란?
- 관계형 데이터베이스는 관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스를 의미함.
- 관계형 데이터베이스를 관리하는 시스템은 DBMS에 데이터 간의 관계를 강조하기 위한 'relational'을 앞에 붙여 RDBMS. 즉, 관계형 데이터베이스 관리 시스템이라고 부름
- ex. MS-SQL, MYSQL, MariaDB, PostgreSQL , DB2 , 오라클 등 대부분 관계형 데이터베이스 관리 시스템 이거나 최소한 부분적으로 관계형 데이터베이스를 사용하고 있다.
8. SQL이란?
- Structed Query Language의 약자
- RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베시으 질의 언어
- 간단히, 'SQL 정의를 'RDBMS에게 데이터에 관해 물어보고 결과를 얻는다' 정도로만 기억하면 됨
'CS > DB' 카테고리의 다른 글
[DB] 3. 관계형 데이터 베이스의 구성 요소, 키 종류(기본키, 보조키, 후보키, 복합키) (1) | 2024.12.06 |
---|---|
1. 데이터와 데이터베이스 , DBMS (0) | 2024.12.05 |