Types of Logical Data Model
논리적 데이터 모델은 컴퓨터에 저장할 데이터 구조를 논리적으로 표현하는 도구
계층형 모델(Hierarchical Model), 네트워크형 모델(Network Model), 관계형 모델(Relatonal Model)이 있음
최근에는 객체지향 기술(Object-Oriented Technology)을 도입한 데이터 모델인 객체지향형 모델(Object-Oriented Model) 등장
이 모델들은 현실 세계의 개체들이 데이터베이스에 어떤 형태로 저장될 것인가 하는 논리적인 구조를 표현해 줌
이 논리적 데이터 모델은 데이터베이스 시스템 개발 과정 중에 물리적인 데이터베이스 구조로 변환되어 구축되게 됨
Hierarchical Model
계층형 모델과 네트워크형 모델은 기존의 응용 프로그램에서 사용하던 데이터 구조를 확장한 것
데이터간의 관계를 포인터로 표현하기 때문에 사용자가 이 물리적 구조를 잘 이해하고 효율적으로 이용하기 어려움
데이터베이스의 논리적 구조를 표현한 다이어그램(diagram)이 트리(tree)형태로 나뉨
각 개체를 표현하는 레코드 타입들이 일 대 다(1:n)의 부모 자식 관계(parent-child relationship)로 연결되어 있음
트리 구조의 최상위에는 루트 레코드 타입 존재
IBM의 IMS( Information Management System)는 계층형 모델을 사용하는 계층형 데이터베이스 관리 시스템의 대표적인 제품
Network Model
네트워크형 데이터모델(Network Data Model)은 네트워크 형태로 나타나는 다이어그램을 가짐
네트워크형 데이터 모델에서는 각 객체를 표현하는 레코드 타입들 간에 다양한 관계를 맺을 수 있으며
하나의 레코드 타입은 서로 다른 여러 가지의 관계에 참여 가능
Object-Oriented Model
객체지향형 데이터 모델은 데이터를 객체(Object)의 형태로 저장함
객체(object)는 객체의 이름(name)과 객체를 표현하는 데이터 조각들인 속성, 객체의 속성 값을 얻거나 변경시키기 위해 수행될 연산인 메소드로 구성됨
객체지향형 모델에서는 각 객체들 간의 관계를 객체에 대한 참조 관계로 표현
이 참조 관계는 일반적으로 한 객체가 다른 객체의 객체 식별자인 OID를 참조하는 방식으로 구현
OID는 객체가 생성될 때 시스템에 의해 자동으로 정해지며 사용자가 변경할 수 없는 값임
Relational Model
관계형 데이터 모델을 기반으로 하여 관계형 데이터베이스 관리 시스템이 만들어짐
관계형 모델에서는 데이터를 릴레이션으로 표현함
이 릴레이션과 함께 릴레이션을 조작하기 위한 여러 가지 연산들과 데이터의 정확성과 일관성을 보장하기 위한 데이터 무결성 제약조건이 포함됨
관계형 모델은 계층형 모델이나 네트워크형 모델에 비해 사용자가 이해하기 쉽다는 장점을 가지고 있으며,
1980년대 이후 현재까지 가장 널리 사용되고 있는 데이터 모델임
릴레이션은 행과 열로 이루어진 2차원 테이블을 의미함
행은 다른 말로 튜플, 열은 속성이라고 부르기도 함
행과 열의 교차점은 필드, 혹은 셀이라고 부름
Characteristics of Relation
- 한 릴레이션 내에는 완전히 동일한 내용의 행이 존재하지 않음
- 행이나 열의 순서는 논리적으로 중요하지 않음
- 모든 열(column)의 각 값, 즉 각 필드(field)에 저장되는 값은 atomic value (더 이상 분해할 수 없는single value)이며
배열의 형식을 가지지 않음
데이터 간의 관계를 표현하기 위하여 물리적인 주소 값을 참조하는 포인터를 사용하는 계층형 데이터 모델이나 네트워크형 데이터 모델과 달리,
관계형 데이터 모델은 데이터 간의 관계를 같은 의미를 가지는 열 값의 논리적인 연결을 통하여 나타냄
Relational Algebra
관계형 데이터 모델은 릴레이션을 처리하기 위한 연산의 집합인 Relational Algebra 를 포함함
릴레이션에 Relational Algebra 연산을 적용한 결과도 릴레이션임
Relational Algebra 종류
- Set opreations : 수학적 집합 이론으로 부터 나온 집합 연산으로서 릴레이션을 행의 집합으로 보고 적용
- Relational operations : 릴레이션에 적용할 수 있도록 특별히 개발된 관계 연산임
Cartesian Product
일반적으로 Cartesian Product 연산만으로 얻어진 결과 자체는 어떤 중요한 의미를 가지는 데이터라고 보기 힘들지만 Cartesian product는 종종 다른 연산을 위한 중간 과정으로 사용되는 경우가 있으므로 주목할 필요가 있음
Select
릴레이션에 주어진 조건식을 만족하는 행들을 선택하는 연산
Select 연산의 결과로 만들어지는 릴레이션은 원래 릴레이션을 수평적으로 나눈 후 그 중 일부를 선택하여 구성한 것이므로 릴레이션의 수평적 부분집합이라고 볼 수 있음
행을 선택하는 조건은 WHERE 절로 나타내며 단순 비교식을 사용할 수도 있고
또 여러 개의 단순 비교식을 불린(Boolean) 연산자 AND, OR, NOT 등을 사용해 결합시켜 복잡하게 만든 조건식을 사용할 수도 있음
Project
릴레이션에서 특정 열을 선택하는 연산
Project 연산의 결과로 만들어지는 릴레이션은 원래 릴레이션을 수직적으로 나눈 후 그 중 일부를 선택하여 구성한 것이므로 릴레이션의 수직적 부분 집합이라고 볼 수 있음
Join
두 개의 릴레이션에서 특정 열 값 간의 비교 조건을 만족하는 행들을 연결하여 결과 릴레이션을 만들어내는 연산
이 연산은 두 개의 릴레이션을 연결하는 Cartesian Product 와 조건을 만족하는 행을 선택하는 Select 연산의 결합이라고 볼 수 있음
Join 연산의 조건식에서는 여러 가지 비교 연산자를 사용할 수 있는데 그 중에서 동등비교 연산자(=)를 사용하는 경우를 equi join 이라고 함
일반적으로 equi join은 양 쪽 릴레이션에 모두 존재하는 같은 의미를 가지는 열 간의 동등비교 연산을 통해 이루어지는 경구가 많음
위의 예에서 DEPARTMENT_ID 열과 같이 equi join의 결과 릴레이션에는 같은 의미와 이름을 가지는 열이 중복되어 나타날 수 있음
이러한 중복 열을 제거한 join을 natural join이라고 함
일반적으로 join이라는 용어는 natural join의 의미로 사용되는 경우가 많음
Data Integrity
관계형 데이터 모델은 데이터의 정확성과 일관성을 보장하기 위한 데이터 무결성 제약조건을 포함함
데이터 무결성에는 개체 무결성과 참조 무결성이 있음
데이터 무결성의 종류
- Entity Integrity : 릴레이션 내의 각 행들은 현실 세계의 개체를 나타냄
개체들을 각각 식별해 내기 위해서는 각 행들마다 유일한 값을 가지는 식별자 필요
이렇게 식별자로 사용되는 열이나 열의 조합을 Primary Key라고 함
- Referential Integrity : 서로 다른 릴레이션 내의 행들 간의 관계는 같은 의미를 가지는 열 값의 논리적인 연결을 통하여 나타낼 수 있음
논리적인 연결이란 하나의 릴레이션에서 다른 릴레이션의 열 또는 열의 조합 값을 참조하는 방법
다른 릴레이션의 열 값을 참조하는 릴레이션의 열을 Foreign Key라고 함
릴레이션 간의 올바른 연결관계를 보장하기 위하여 일반적으로 Foreign Key 가 참조하는 열은
참조되는 릴레이션의 Primary Key임
Relational Database
관계형 데이터베이스는 관계형 데이터 모델을 기반으로 만들어진 데이터베이스임
관계형 데이터베이스는 정보를 저장하기 위하여 릴레이션, 즉 2차원 테이블을 사용함
Relational Database Properties
관계형 데이터베이스에서, 사용자는 데이터에 접근하기 위하여 데이터의 물리적인 주소를 알 필요가 없음
단지 사용자는 관계형 데이터베이스 언어는 SQL을 사용하여 데이터를 요청하면 됨
SQL은 관계형 데이터베이스의 데이터에 접근하기 위해 사용하는 ANSI 표준 언어임
SQL은 테이블의 데이터를 조작하기 위해 관계형 데이터 모델의 Relational Algebra를 지원하는 여러 가지 연산자를 포함하고 있음
SQL 문장을 사용하면 데이터베이스 내의 데이터를 검색하고 변경할 수 있음
Relational Database Terminology
테이블
관계형 데이터베이스는 여러 개의 테이블을 포함할 수 있음
테이블은 RDBMS의 가장 기본적인 저장 구조로서 하나 이상의 열과 0개 이상의 행으로 구성됨
- 행 (Row) : 테이블 내의 열 값들의 조합, 레코드
- 열 (Column) : 테이블 내의 특정 데이터를 대표하며 특정 데이터 유형과 길이를 가짐
- 기본 키 (Primary Key) : 테이블 내의 각 행이 유일함을 보장할 수 있는 식별자로서 하나 이상의 열로 구성될 수 있음
- 외래 키 (Foreign Key) : 테이블이 다른 테이블과 어떻게 관계되는 지를 정의하는 열
같은 테이블 혹은 다른 테이블의 Primary Key 값 참조 - 필드 (Field) : 행과 열의 교차점으로서 하나의 값을 저장할 수 있음
- Null : 필드가 아무 값도 가지지 않는 경우도 있는데 이를 null 값이라고 부름
'DB > DBI' 카테고리의 다른 글
SQL (1) | 2024.01.08 |
---|---|
Database Design and Build (1) | 2024.01.08 |
Normalization (1) | 2024.01.04 |
Conceptual Data Modeling Basics (1) | 2024.01.04 |
Database System Concepts (0) | 2024.01.04 |