관계형 데이터베이스란?
관계형 데이터베이스는 관계형 데이터 모델을 기반으로 현재 가장 많이 사용되는 데이터베이스입니다. 관계형 데이터베이스의 구조, 무결성 제약 조건, 관계형 데이터베이스가 제공하는 관계형 대수 연산에 대해 알아봅시다.
학생 릴레이션 예시
학번 | 성명 | 학과명 | 학년 | 연락처 | 이메일 |
20140001 | 김기수 | 경영학과 | 4 | 010-****-**** | dptl1@daum.net |
20140002 | 김기영 | 법학과 | 4 | 010-****-**** | dptl2@naver.com |
20140003 | 김기전 | 컴퓨터공학과 | 4 | 010-****-**** | dptl3@gmail.com |
20140004 | 김기탁 | 물리학과 | 4 | 010-****-**** | dptl4@naver.com |
관계형 데이터베이스의 구조
관계형 데이터베이스는 일련의 정형화된 릴레이션(테이블)으로 구성된 데이터 항목들의 집합입니다. 관계형 데이터베이스의 가장 큰 장점은 구조가 단순하다는 것입니다. 관계형 데이터베이스에서 릴레이션(Relation)은 행과 열로 구성된 차원 테이블을 나타냅니다. 하나의 릴레이션은 하나의 엔티티(Entity)에 관한 데이터를 저장하며, 각 릴레이션은 고유한 이름을 가지게 됩니다. 위에 보이는 표는 학생 정보를 저장하는 학생 릴레이션입니다. 릴레이션의 각 행(Row)을 튜플(Tuple) 또는 레코드(Record)라고 하는데, 예를 들자면, '20140001', '김기수', '경영학과', '1', '연락처', '이메일' 등은 '김기수' 학생에 관한 정보를 나타내는 튜플입니다.
릴레이션의 각 열(Column)은 속성(Attribute)이라고 합니다. 학생 릴레이션에는 학생의 정보를 나타내기 위해 모두 6개의 속성을 사용했는데, 그중 '학번' 속성은 학생의 학번을 나타내는 속성입니다. 한편 하나의 속성이 가질 수 있는 값의 집합을 도메인(Domain)이라고 합니다. 만약 학생 릴레이션의 학생이 1학년부터 4학년까지 있다면 '학년' 속성에 대한 도메인은 '1, 2, 3, 4'가 되는 것입니다.
차수(Degree)는 튜플을 구성하는 속성의 개수를 의미합니다. 학생 릴레이션에는 학번, 성명, 학과명, 학년, 연락처, 이메일과 같이 6개의 속성이 존재하므로 차수는 6입니다. 카디널리티(Cardinality)는 튜플의 개수를 의미하며 학생 릴레이션에는 4개의 튜플이 존재하므로 카디널리티는 4입니다.
릴레이션에 튜플을 삽입할 때 어떤 속성 값은 정해지지 않을 수도 있습니다. 이와 같이 속성 값이 아직 정해지지 않았거나 해당되는 값이 없을 경우에는 널(Null) 값을 사용합니다. 학생 릴레이션에 학생 정보를 입력할 때 일부 학생은 휴대폰이 없을 수 있는데, 이때 학생의 '연락처' 속성을 널 값으로 입력합니다.
키(Key)는 각 튜플을 유일하게 구별할 수 있는 하나 이상의 속성 모임을 뜻합니다. 이때 후보 키(Candidate Key)는 각 튜플을 유일하게 구별할 수 있는 최소한의 속성들로 구성됩니다. 학생 릴레이션에서는 '학번'과 '성명, 학과명' 등이 후보 키에 포함됩니다. 즉 후보 키를 구성하는 속성 중에서 어떤 속성을 제외하면 각 튜플을 유일하게 구별하는 능력을 상실하게 됩니다. 예를 들자면, 학생 릴레이션의 후보 키(성명, 학과명)에서 '학과명' 속성을 제외하면 이름은 같고 소속 학과가 다른 학생들이 있기 때문에 각 튜플을 구별할 수 없게 됩니다.
후보 키가 두 개 이상이면 이 중 하나를 기본 키(Primary Key)로 선정해야 합니다. 학생 릴레이션에서 후보 키는 '학번'과 '성명, 학과명'이고, 이 중에서 '학번'을 기본 키로 선정할 수 있습니다. 이때 기본 키가 아닌 후보 키는 대체 키(Alternate Key)라고 합니다. 외래 키(Foreign Key)는 아래의 이미지와 같이 다른 릴레이션의 기본 키를 참조하며, 릴레이션과 릴레이션 간의 관계를 나타내는 역할을 합니다.
무결성 제약 조건(Integrity Constraint)
무결성 제약 조건은 데이터베이스 상태가 만족해야 하는 조건으로서 사용자에 의한 데이터베이스 갱신이 데이터베이스의 일관성을 손상하지 않도록 보장하는 수단입니다. 무결성 제약 조건은 스키마를 정의할 때 한 번만 명시해놓으면 데이터베이스가 갱신될 때마다 DBMS가 자동으로 검사합니다. 응용 프로그램이 일일이 검사할 필요가 없기 때문에 아주 편리합니다. 무결성 제약 조건은 도메인 제약 조건, 개체 무결성 제약 조건, 참조 무결성 제약 조건으로 구분됩니다.
도메인 제약 조건
각 속성의 값은 반드시 도메인에 속한 하나의 값을 가져야 한다는 것으로, 속성의 기본(Default) 값과 가능한 값들의 범위, 널(Null) 값의 허용 여부 등을 지정할 수 있습니다. 예를 들어 '특기' 속성의 도메인이 [운동, 독서]라면 '특기' 속성의 값은 2가지 중 하나만 가질 수 있습니다.
개체 무결성 제약 조건
릴레이션에 저장된 튜플들을 식별하기 위해서는 기본 키를 구성하는 어떤 속성도 널(Null) 값을 가질 수 없다는 것입니다.
참조 무결성 제약 조건
참조 무결성 제약 조건은 외래 키에 대한 제약 조건으로 외래 키의 값은 참조된 릴레이션의 기본 키 값과 같아야 한다는 것입니다. 아래의 이미지에서 Employee 릴레이션의 '발매 번호'는 Department 릴레이션의 기본 키인 '발매 번호'를 참조하는 외래 키입니다. 그러므로 Employee 릴레이션의 '발매 번호'에는 Department 릴레이션의 '발매 번호'에 있는 값만 나타날 수 있습니다. Employee 릴레이션의 '발매 번호'는 기본 키가 아니므로 널(Null) 값을 가질 수 있습니다.
관계형 대수(Relational Algebra)
관계형 대수는 관계형 데이터베이스에 데이터를 삽입하고, 저장된 데이터를 검색, 수정, 삭제하는 등의 기능을 수행하는 언어입니다. 관계형 대수는 주어진 릴레이션에 연산자를 적용하여 새로운 릴레이션을 생성합니다. 연산 결과 생성된 릴레이션은 또 다른 연산의 입력으로 사용되기도 합니다. 관계형 대수는 사용자가 원하는 데이터가 무엇(What)인지와 검색 방법(How)까지 기술하므로 절차적 언어입니다. 관계형 대수는 SQL의 이론적 기초로, SQL을 구현하고 최적화하기 위한 DBMS의 내부 언어로 사용됩니다.
'IT' 카테고리의 다른 글
SQL 기초 문법 정리 (0) | 2021.06.22 |
---|---|
데이터 모델 구성요소와 종류 (1) | 2021.05.20 |
스크린샷 단축키 캡쳐 저장위치(전체 스크린샷 찍는법) (1) | 2021.05.19 |