데이터베이스 API
- API는 데이터베이스에 접근하기 위하여 공통적으로 사용되는 라이브러리 함수들의 모임
- 중요한 데이터베이스 API 표준 ODBC, JDBC
- ODBC(Open Database Connectivity) : 마이크로 소프트가 주도적 개발한 데이터베이스 드라이버로 윈도우 운영체제에서 사용
- JDBC(Java Database Connectivity) : 자바를 위한 데이터베이스 드라이버, 자바가 운영되는 모든 플랫폼에서 지원
데이터베이스 시스템 아키텍처의 유형
중앙 집중식 데이터베이스 시스템(centralized database system)
- 데이터베이스 시스템이 하나의 컴퓨터 시스템에서 운영됨
- 데이터베이스 접근과 관련하여 다른 컴퓨터 시스템과 상호 작용하지 않음
분산 데이터베이스 시스템(distributed database system)
- 네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있으며, 데이터베이스 시스템도 여러 컴퓨터 시스템에서 운영됨
- 사용자는 다른 사이트에 저장된 데이터베이스도 접근할 수 있음
클라이언트-서버 데이터베이스 시스템
- PC또는 워크스테이션처럼 자체 컴퓨팅 능력을 가진 클라이언트를 통해 데이터베이스 서버를 접근
- 데이터베이스가 하나의 데이터베이스 서버에 저장되어 있음
- 데이터베이스 시스템의 기능이 서버와 클라이언트에 분산됨
- 서버는 데이터베이스를 저장하고 DBMS를 운영하면서 여러 클라이언트에게 온 질의를 최적화하고 권한 검사를 수행하고, 동시성 제어와 회복 기능을 수행하고, 데이터베이스의 무결성을 유지하고, 데이터베이스 접근을 관리
- 클라이언트는 사용자 인터페이스를 관리하고 어플리케이션을 수행
2층 모델(2-tier model)
- 클라이언트와 데이터베이스 서버가 직접 연결됨
- 응용의 논리가 클라이언트와 서버에 분산됨
3층 모델(3-tier model)
- 클라이언트와 데이터베이스 서버 사이에 응용 서버가 추가됨
- 응용의 논리가 응용 서버에만 포함됨
클라이언트-서버 데이터베이스 시스템의 장점
- 데이터베이스를 보다 넓은 지역에서 접근할 수 있고 성능이 향상
- 하드웨어 비용이 절감됨
- 다양한 컴퓨터 시스템을 사용할 수 있음
클라이언트-서버 데이터베이스 시스템 단점
- 보안이 다소 취약할 수 있음
데이터 모델
데이터 모델 개념
- 데이터 모델(Data Model)이란 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구
데이터베이스 설계
개념적인 구조와 논리적인 구조를 거쳐 실제 데이터를 저장할 수 있는 물리적 구조로 변환
개념적 데이터 모델
- 속성들로 기술된 개체 타입(entity type)과 이 개체 타입들 간의 관계를 이용해 현실 세계를 표현하는 방법
- 가장 대표적인 것이 개체-관계 모델(E-R: Entity-Relationship model)
논리적 데이터 모델
데이터 필드로 기술된 데이터 타입과 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법
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의 카디날리티는 시간이 지남에 따라 계속해서 변함
반응형
'23년 이전 글 > 데이터베이스' 카테고리의 다른 글
관계 데이터 연산(select, project, 집합 연산) (0) | 2022.07.26 |
---|---|
Relation과 무결성 제약 (0) | 2022.07.26 |
데이터베이스 시스템 구성 요소 (0) | 2022.07.23 |
데이터베이스 관리 시스템 (0) | 2022.07.06 |
정보의 환경 (0) | 2022.07.06 |