데이터베이스 시스템, 데이터 모델
23년 이전 글/데이터베이스

데이터베이스 시스템, 데이터 모델

 

데이터베이스 시스템 구조와 유형

 

데이터베이스 API

  • API는 데이터베이스에 접근하기 위하여 공통적으로 사용되는 라이브러리 함수들의 모임
  • 중요한 데이터베이스 API 표준 ODBC, JDBC
  • ODBC(Open Database Connectivity) : 마이크로 소프트가 주도적 개발한 데이터베이스 드라이버로 윈도우 운영체제에서 사용
  • JDBC(Java Database Connectivity) : 자바를 위한 데이터베이스 드라이버, 자바가 운영되는 모든 플랫폼에서 지원

데이터베이스API(ODBC)의역할

 

데이터베이스 시스템 아키텍처의 유형

 

중앙 집중식 데이터베이스 시스템(centralized database system)

  • 데이터베이스 시스템이 하나의 컴퓨터 시스템에서 운영됨
  • 데이터베이스 접근과 관련하여 다른 컴퓨터 시스템과 상호 작용하지 않음

분산 데이터베이스 시스템(distributed database system)

  • 네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있으며, 데이터베이스 시스템도 여러 컴퓨터 시스템에서 운영됨
  • 사용자는 다른 사이트에 저장된 데이터베이스도 접근할 수 있음

분산데이터베이스시스템(distributed database system)

 

클라이언트-서버 데이터베이스 시스템

  • PC또는 워크스테이션처럼 자체 컴퓨팅 능력을 가진 클라이언트를 통해 데이터베이스 서버를 접근
  • 데이터베이스가 하나의 데이터베이스 서버에 저장되어 있음
  • 데이터베이스 시스템의 기능이 서버와 클라이언트에 분산됨
  • 서버는 데이터베이스를 저장하고 DBMS를 운영하면서 여러 클라이언트에게 온 질의를 최적화하고 권한 검사를 수행하고, 동시성 제어와 회복 기능을 수행하고, 데이터베이스의 무결성을 유지하고, 데이터베이스 접근을 관리
  • 클라이언트는 사용자 인터페이스를 관리하고 어플리케이션을 수행

 

클라이언트–서버데이터베이스시스템

 

2층 모델(2-tier model)

  • 클라이언트와 데이터베이스 서버가 직접 연결됨
  • 응용의 논리가 클라이언트와 서버에 분산됨

3층 모델(3-tier model)

  • 클라이언트와 데이터베이스 서버 사이에 응용 서버가 추가됨
  • 응용의 논리가 응용 서버에만 포함됨

 

클라이언트-서버 데이터베이스 시스템의 장점

  • 데이터베이스를 보다 넓은 지역에서 접근할 수 있고 성능이 향상
  • 하드웨어 비용이 절감됨
  • 다양한 컴퓨터 시스템을 사용할 수 있음

 

클라이언트-서버 데이터베이스 시스템 단점

  • 보안이 다소 취약할 수 있음

 

데이터 모델

 

데이터 모델 개념

  • 데이터 모델(Data Model)이란 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구

 

현실과 데이터

 

데이터베이스 설계

개념적인 구조와 논리적인 구조를 거쳐 실제 데이터를 저장할 수 있는 물리적 구조로 변환

 

개념적 데이터 모델

  • 속성들로 기술된 개체 타입(entity type)과 이 개체 타입들 간의 관계를 이용해 현실 세계를 표현하는 방법
  • 가장 대표적인 것이 개체-관계 모델(E-R: Entity-Relationship model)

 

논리적 데이터 모델

데이터 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법

 

데이터 모델의 구성요소 [D = (S, O, C)]

 

Structure

  • 정적 성질(추상적 개념)
  • 개체타입과 이들 간의 관계를 명세

operation

  • 동적 성질
  • 개체 인스턴스를 처리하는 작업에 대한 명세
  • 데이터의 조작 기법

constraint

  • 데이터의 논리적 제약 -> 개체 인스턴스의 허용 조건: 구조(S)로부터 파생, 의미상 제약
  • 데이터 조작의 한계를 표현한 규정

 

논리적 데이터 모델 중에는 relational data model이 가장 많이 사용되며, 최근에는 객체 지향 데이터 모델과 객체-관계 데이터 모델도 사용. DBMS는 하나의 논리적 데이터 모델만을 구현 모델 간의 주요 차이점은 데이터 요소간의 관계를 표현하는 방식

개념적 데이터모델

논리적 데이터 모델

  • 개념적 구조를 컴퓨터가 이해할 수 있는 논리적 구조로 표현하는 방법
  • 데이터 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계를 이용하여 표현

 

논리적 데이터 모델

 

관계 데이터 모델

  • 가장 개념이 단순한 데이터 모델의 하나
  • IBM 연구소에 근무하던 E.F Codd가 1970년대 관계 데이터 모델 제안
  • Relation과 수학적 이론을 기초로하며, IBM연구소에서 개발된 SystemR(SQL)
  • 여러 데이터 모델이 새로 등장했지만 관계 DBMS가 가장 널리 사용되는 DBMS

 

관계 데이터 모델이 큰 성공을 거둔 요인

  • 간단한 테이블(relation)을 사용
  • 중첩된 복잡한 구조가 없음
  • 집합 위주로 데이터를 처리
  • 숙련되지 않은 사용자도 쉽게 이해할 수 있음
  • 다른 데이터 모델에 비해 이론이 잘 정립되었음
  • 관계 데이터 베이스설계와 효율적인 질의 처리 면에서 뛰어난 장점을 가짐

 

관계 데이터 모델 특징

  • relation(table)로 모든 데이터를 논리적으로 구성
  • 선언적인 질의어를 통한 데이터 접근을 제공
  • 응용 프로그램들은 데이터베이스 내의 레코드들의 어떠한 순서와도 무관하게 작성
  • 논리적으로 연관된 데이터를 연결하기 위해서 링크나 포인터를 사용하지 않음
  • 사용자는 원하는 데이터만 명시하고, 어떻게 이 데이터를 찾을지 명시할 필요가 없음

 

관계 데이터 모델의 용어

  • relation : 2차원의 테이블(스프레드 시트와 유사)
  • record : relation의 각 행
  • tuple : record를 좀 더 공식적으로 부르는 용어
  • attribute : relation에서 이름을 가진 하나의 열

 

도메인

  • 한 attribute에 나타날 수 있는 값의 집합
  • 각 attribute의 도메인의 값들은 원소 값
  • 프로그래밍 언어의 데이터 타입과 유사
  • 동일한 도메인이 여러 attribute에서 사용될 수 있음
  • 복합 attribute나 다치 attribute는 허용되지 않음
  • 도메인 정의
CREATE DOMAIN EMPNAME CHAR(10)
CREATE DOMAIN EMPNO INTEGER
CREATE DOMAIN DNO INTEGER

 

차수(degree)와 카디날리티(cardinality)

  • 차수 : 한 relation에 들어있는 attribute의 수
  • 유효한 릴레이션의 최소 차수는 1
  • 카디날리티 : relation에 tuple 수
  • 유효한 릴레이션은 카디날리티 0을 가질 수 있음
  • relation의 차수는 자주 바뀌지 않음
  • relation의 카디날리티는 시간이 지남에 따라 계속해서 변함

 

relation 예

 

 

 

 

반응형