관계형 데이터베이스
관계형 데이터베이스(關係形 Database, Relational Database, 문화어: 관계자료기지, 관계형자료기지, RDB)는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다. 1970년 에드거 F. 커드가 제안한 데이터 관계형 모델에 기초하는 디지털 데이터베이스이다.[1]
관계형 모델
편집이 모델은 데이터를 컬럼(column)과 로우(row)를 이루는 하나 이상의 테이블(또는 관계)로 정리하며, 고유 키(Primary key)가 각 로우를 식별한다. 로우는 레코드나 튜플로 부른다.[2] 일반적으로 각 테이블/관계는 하나의 엔티티 타입(고객이나 제품과 같은)을 대표한다. 로우는 그 엔티티 종류의 인스턴스(예: "Lee" 등)를 대표하며 컬럼은 그 인스턴스의 속성이 되는 값들(예: 주소나 가격)을 대표한다.
키 (Key)
편집테이블의 각 로우에는 저만의 고유 키(key)가 있다. 한 테이블 안의 로우는 다른 테이블들의 로우로 연결이 가능한데, 이는 연결된 로우의 고유 키를 위한 컬럼을 추가함으로써 이루어진다. (이러한 컬럼들은 외래 키로 부른다)
관계 (Relationships)
편집관계는 테이블 간에 둘 다 존재한다. 이 관계들은 일대일, 일대다, 다대다, 이렇게 세 가지 형태로 이루어진다. 대부분의 관계형 데이터베이스들은 각 로우의 각 컬럼이 하나의 값만을 보유할 수 있도록 설계되어 있다. (값은 원자적이다)
트랜잭션 (Transaction)
편집데이터베이스 관리 시스템(DBMS)이 효율적이고 정확하게 운용되기 위해서는 ACID 트랜잭션을 갖추고 있어야 한다.[3][4][5]
저장 프로시저
편집RDBMS 내의 대부분의 프로그래밍은 저장 프로시저(SP)를 이용하여 이루어진다. 가끔 프로시저들은 시스템 안팎으로 전송되는 정보의 양을 줄이는데 큰 기여를 한다. 보안을 위해 시스템 디자인은 저장 프로시저에만 접근 권한을 주고 테이블에 직접 주지 않을 수도 있다.
용어
편집관계형 데이터베이스는 1970년 6월 IBM 산호세 연구소의 에드거 커드가 처음 정의하였다.[1] RDBMS의 자격이 되는 커드의 관점은 커드의 12 규칙에 요약되어 있다. 관계형 데이터베이스는 우세한 종류의 데이터베이스로 되어가고 있다. 관계형 모형 외에도 계층적 데이터베이스 모형과 네트워크 모형 등이 있다.
아래의 표는 가장 중요한 관계형 데이터베이스 용어의 일부 및 그와 일치하는 SQL 용어를 요약한 것이다:
SQL 용어 | 관계형 데이터베이스 용어 | 설명 |
---|---|---|
로우 | 튜플 또는 레코드 | 하나의 항목을 대표하는 데이터 |
컬럼 | 속성(어트리뷰트, attribute) 또는 필드 | 튜플의 이름 요소 (예: "주소", "태어난 날짜") |
테이블 | 관계 또는 기초 관계변수(base relvar) | 같은 속성을 공유하는 튜플의 모임. (컬럼이나 로우의 모임.) |
뷰 또는 결과 집합 | 파생 관계변수(derived relvar) | 튜플들의 모임. (질의어에 응답하는 RDBMS의 데이터 보고서) |
관계 또는 테이블
편집관계란 같은 속성을 지닌 튜플의 모임으로 정의된다. 튜플은 일반적으로 오브젝트와 그 오브젝트의 정보를 대표한다. 오브젝트는 일반적으로 물리적인 오브젝트나 개념을 가리킨다. 관계를 일반적으로 여러 열이나 컬럼으로 조직된 테이블로 기술하기도 한다. 속성에 의해 참조된 모든 데이터는 동일한 도메인에 있으며 동일한 제약을 따른다.
제약
편집제약(constraint)들을 이용하면 속성의 범위에 추가적으로 제한을 둘 수 있다. 이를테면 제약은 주어진 값의 속성을 1부터 10 사이의 정수로 제한할 수 있다. 각 속성이 관련 도메인을 소유하고 있으며, 여기에 도메인 제약이 존재한다. 관계형 모형의 두 가지 주된 원칙은 개체 무결성과 참조 무결성이다.
정규화
편집정규화는 관계형 모델의 필수적인 부분으로 커드가 처음 제안한 것이다. 단순하지 않은 도메인(비원자성 값)과 데이터 중복을 제거하기 위해 설계된 프로시저들의 모임을 아우르며, 데이터 조작의 변칙과 데이터 무결성의 손실을 예방한다.
관계형 데이터베이스 관리 시스템
편집관계형 데이터베이스 관리 시스템(關係形 Database 關理 System, Relational Database Management System, RDBMS)은 RDB를 관리하기 위한 소프트웨어 또는 그것이 설치된 시스템을 말한다.
미국 기업 제품
편집- 오라클 DBMS(Oracle)
- 마이크로소프트의 MS SQL Server
- 마이크로소프트의 MS Access
- MySQL
- 로터스 소프트웨어의 어프로치(Approach)
- PostgreSQL
- IBM사의 IBM DB2와 IBM SQL/DS
- 볼랜드의 dBASE IV와 파라독스(Paradox)
- Sybase
- Informix
- VMS/Rdb
대한민국 기업 제품
편집같이 보기
편집각주
편집- ↑ 가 나 Codd, E.F. (1970). “A Relational Model of Data for Large Shared Data Banks”. 《Communications of the ACM》 13 (6): 377–387. doi:10.1145/362384.362685.
- ↑ “A Relational Database Overview”. 《oracle.com》.
- ↑ “Gray to be Honored With A. M. Turing Award This Spring”. Microsoft PressPass. 1998년 11월 23일. 2009년 2월 6일에 원본 문서에서 보존된 문서. 2009년 1월 16일에 확인함.
- ↑ Gray, Jim (September 1981). 〈The Transaction Concept: Virtues and Limitations〉 (PDF). 《Proceedings of the 7th International Conference on Very Large Databases》. 19333 Vallco Parkway, Cupertino CA 95014: Tandem Computers. 144–154쪽. 2006년 11월 9일에 확인함.
- ↑ Gray, Jim, and Reuter, Andreas, Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. ISBN 1-55860-190-2.